* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Roboto', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

/* Variables utilitarias */
:root {
  --nav-h: 72px;          /* altura aprox de la navbar para offset */
  --brand-dark: #1b2644;  /* azul oscuro IPlay */
  --brand-light: #34b3e8; /* celeste IPlay */
  --fc-min-h: 160px;      /* altura mÃ­nima de cada card */
  --footer-h: 72px;       /* altura aprox del footer fijo */
  /* Suavizado entre secciones */
  --sec-neutral: #e6ebf2; /* gris intermedio para transiciones */
}

body {
  background-color: #f5f5f5;
  padding: 0;
  color: #1b2644;
  line-height: 1.6;
}

body.is-preloading {
  overflow: hidden;
  background: #000;
}

.preload-screen {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
  z-index: 2000;
  transition: opacity .6s ease, visibility .6s ease;
}

.preload-screen.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.preload-video {
  width: 100%;
  height: 100%;
  object-fit:contain ;
}

.preload-skip {
  position: absolute;
  bottom: clamp(24px, 6vw, 48px);
  right: clamp(24px, 6vw, 48px);
  appearance: none;
  border: 0;
  border-radius: 999px;
  padding: 12px 28px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #0b172f;
  background: #ffffff;
  cursor: pointer;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}

.preload-skip:hover,
.preload-skip:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.45);
}

.preload-skip:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.65);
  outline-offset: 4px;
}

.site-wrapper {
  opacity: 0;
  transition: opacity .6s ease;
}

body:not(.is-preloading) .site-wrapper {
  opacity: 1;
}

/* Evitar que el footer fijo tape el contenido al final */
body {
  padding-bottom: calc(var(--footer-h) + env(safe-area-inset-bottom, 0px));
}
@media (min-width: 1201px) {
  body { padding-bottom: 0; }
}

.navbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #ffffff;
  padding: 15px 40px;
  position: sticky;
  top: 0;
  z-index: 1000;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}


.logo img {
  height: auto;
  width: 100px;
  display: flex;
  flex-shrink: 0;
  margin-right: 50px;
}

.nav-container {
  flex: 1;
  display: flex;
  justify-content: center;
}

.nav-links {
  display: flex;
  list-style: none;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  position: relative;
}

.nav-links li {
  margin: 0 12px;
}

/* Estilo btn-2 aplicado a los enlaces de navegaciÃ³n */
.nav-btn {
  color: #1b2644;
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  position: relative;
  padding: 10px 0;
  text-transform: uppercase;
  letter-spacing: 0;
  transition: all 0.6s ease;
  display: block;
  white-space: nowrap;
}

.nav-btn:hover,
.nav-btn:active {
  letter-spacing: 2px;
  color: #34b3e8;
}

.nav-btn:after,
.nav-btn:before {
  backface-visibility: hidden;
  border: 1px solid rgba(52, 179, 232, 0);
  bottom: 0px;
  content: " ";
  display: block;
  margin: 0 auto;
  position: relative;
  transition: all 0.3s ease-in-out;
  width: 0;
}

.nav-btn:hover:after,
.nav-btn:hover:before {
  backface-visibility: hidden;
  border-color: #34b3e8;
  transition: width 0.3s ease-in-out;
  width: 70%;
}

.nav-btn:hover:before {
  bottom: auto;
  top: 0;
  width: 70%;
}

/* Separadores */
.nav-links .separator {
  color: #d0d0d0;
  font-weight: 300;
  margin: 0 5px;
  user-select: none;
}

/* Fecha y clima */
.navbar-weather-full {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  width: 150px;
}

.navbar-date-full {
  font-size: 12px;
  color: #666;
  white-space: nowrap;
}

.navbar-weather-info-full {
  display: flex;
  align-items: center;
  gap: 5px;
}

.navbar-weather-icon-full {
  font-size: 14px;
}

.navbar-weather-temp-full {
  font-size: 14px;
  font-weight: 500;
  color: #1b2644;
  white-space: nowrap;
}

/* Estilos para el menÃº hamburguesa */
.hamburger {
  display: none;
  cursor: pointer;
  flex-direction: column;
  justify-content: space-around;
  width: 30px;
  height: 21px;
  position: relative;
  z-index: 1001;
}

.hamburger span {
  height: 3px;
  width: 100%;
  background-color: #1b2644;
  border-radius: 3px;
  transition: all 0.3s ease;
}

/* Estado activo del menÃº hamburguesa */
.hamburger.active span:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  transform: rotate(-45deg) translate(7px, -6px);
}


.feature-card[data-coming-soon] {
  pointer-events: auto;
}
.feature-card.is-coming-soon {
  border-color: rgba(52, 179, 232, 0.45);
  box-shadow: 0 16px 36px rgba(52, 179, 232, 0.24), 0 4px 12px rgba(27, 38, 68, 0.12);
  transform: translateY(-6px);
}

/* Responsive */
@media screen and (max-width: 900px) {
  .navbar {
      padding: 15px 20px;
      flex-wrap: wrap;
      justify-content: center; /* centrar contenido */
      position: relative;      /* para posicionar hijos */
      min-height: 72px; /* altura suficiente para el logo + aire */
  }
  
  .logo {
      order: 2;
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      margin: 0;
  }
  .logo img { margin-right: 0; height: 56px; width: auto; }
  
  .nav-container {
      order: 3;
      flex: none;
      width: 100%;
  }
  
  .hamburger {
      display: flex;
      order: 1;
      position: absolute;
      left: 16px;
      top: 50%;
      transform: translateY(-50%);
  }
  
  /* Ocultar fecha y clima en mÃ³viles */
  .navbar-weather-full {
      display: none;
  }
  
  .nav-links {
      width: 100%;
      max-height: 0;
      overflow: hidden;
      flex-direction: column;
      align-items: center;
      background-color: #ffffff;
      box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
      transition: max-height 0.4s ease;
      position: absolute;
      top: 100%;
      left: 0;
      margin: 0;
      padding: 0;
      left: 0; /* Reset para mÃ³vil */
  }
  
  .nav-links.active {
      max-height: 300px;
  }
  
  .nav-links li {
      margin: 12px 0;
      opacity: 0;
      transform: translateY(-10px);
      transition: opacity 0.4s ease, transform 0.4s ease;
  }
  
  .nav-links.active li {
      opacity: 1;
      transform: translateY(0);
  }
  
  /* Ocultar separadores en mÃ³vil */
  .nav-links .separator {
      display: none;
  }
  
  /* Ajustes para el efecto btn-2 en mÃ³vil */
  .nav-btn {
      padding: 12px 0;
  }
  
  .nav-btn:hover:after,
  .nav-btn:hover:before {
      width: 50%;
  }
  
  .nav-btn:hover:before {
      width: 50%;
  }
  
  /* Retraso para la animaciÃ³n de cada elemento */
  .nav-links.active li:nth-child(1) {
      transition-delay: 0.1s;
  }
  .nav-links.active li:nth-child(2) {
      transition-delay: 0.15s;
  }
  .nav-links.active li:nth-child(3) {
      transition-delay: 0.2s;
  }
  .nav-links.active li:nth-child(4) {
      transition-delay: 0.25s;
  }
}

.content {
  max-width: 1200px;
  margin: 50px auto;
  padding: 20px;
  text-align: center;
}

.content h1 {
  margin-bottom: 20px;
  color: #1b2644;
}

/* Parte Reproductor */

/* Reproductor de radio fijo */
.radio-player {
  position: fixed;
  bottom: env(safe-area-inset-bottom, 0);
  left: 0;
  width: 100%;
  background: linear-gradient(135deg, #1b2644 0%, #2c3e6e 100%);
  color: white;
  padding: 8px 16px; /* mÃ¡s compacto */
  padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px)); /* evitar que quede oculto */
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.3);
  z-index: 1000;
  border-top: 1px solid #34b3e8;
}

.radio-player-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 auto;
  gap: 20px;
}

.radio-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1;
}

.radio-station {
  font-weight: bold;
  font-size: 16px;
  margin-bottom: 3px;
  color: #34b3e8;
}

.now-playing {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
}

.now-playing-label {
  opacity: 0.8;
  font-size: 11px;
}

.song-title {
  max-width: 250px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.radio-controls {
  display: flex;
  align-items: center;
}

/* Estado inicial (pausado): centrar play y ocultar volumen */
/* TransiciÃ³n suave del toggle del volumen dentro del Ã¡rea de controles */
.radio-controls { --volw: 120px; }

.radio-player .volume-control {
  width: var(--volw);
  opacity: 1;
  transform: translateX(0) scaleX(1);
  transform-origin: left center;
  overflow: hidden;
  transition: width 0.28s ease, opacity 0.22s ease, transform 0.28s ease;
}

.radio-player:not(.is-playing) .volume-control {
  width: 0;              /* que el play quede pegado a la derecha */
  opacity: 0;
  transform: translateX(6px) scaleX(0.85);
  pointer-events: none;
}

/* BotÃ³n play/pausa - ESTILOS CORREGIDOS */
.playBut {
  display: inline-block;
  width: 44px;
  height: 44px;
  cursor: pointer;
}

.playBut svg {
  width: 100%;
  height: 100%;
}

.playBut .circle {
  stroke: #34b3e8;
  stroke-dasharray: 650;
  stroke-dashoffset: 650;
  opacity: 0.3;
  transition: all 0.3s ease;
}

.playBut .triangle {
  stroke: #ffffff;
  stroke-dasharray: 240;
  stroke-dashoffset: 480;
  transition: all 0.3s ease;
}

/* Barras de pausa */
.pause-bar {
  stroke: #ffffff;
  opacity: 0;
  transition: all 0.3s ease;
}

.pause-bar-left {
  transform: translateX(-20px);
}

.pause-bar-right {
  transform: translateX(20px);
}

/* ESTADO PLAY (por defecto) */
.playBut:not(.playing) .circle {
  stroke-dashoffset: 650;
  opacity: 0.3;
}

.playBut:not(.playing) .triangle {
  stroke-dashoffset: 480;
  opacity: 1;
}

.playBut:not(.playing) .pause-bar {
  opacity: 0;
}

.playBut:not(.playing) .pause-bar-left {
  transform: translateX(-20px);
}

.playBut:not(.playing) .pause-bar-right {
  transform: translateX(20px);
}

/* ESTADO PAUSA (reproduciendo) */
.playBut.playing .circle {
  stroke-dashoffset: 0;
  opacity: 1;
  animation: circlePulse 1.5s infinite ease-in-out;
}

.playBut.playing .triangle {
  stroke-dashoffset: 0;
  opacity: 0;
}

.playBut.playing .pause-bar {
  opacity: 1;
}

.playBut.playing .pause-bar-left {
  transform: translateX(0);
}

.playBut.playing .pause-bar-right {
  transform: translateX(0);
}

/* Efecto de pulso para el cÃ­culo */
@keyframes circlePulse {
  0% {
    stroke-width: 7;
  }
  50% {
    stroke-width: 9;
  }
  100% {
    stroke-width: 7;
  }
}

/* Hover effects */
.playBut:hover .circle {
  stroke-dashoffset: 0;
  opacity: 1;
}

.playBut:not(.playing):hover .triangle {
  animation: nudge 0.6s ease-in-out;
}

.playBut.playing:hover .pause-bar {
  stroke: #34b3e8;
}

@keyframes nudge {
  0% {
    transform: translateX(0);
  }
  30% {
    transform: translateX(-5px);
  }
  50% {
    transform: translateX(5px);
  }
  70% {
    transform: translateX(-2px);
  }
  100% {
    transform: translateX(0);
  }
}

/* Transiciones para animaciones suaves */
.playBut .triangle,
.playBut .pause-bar {
  transition: all 0.7s cubic-bezier(0.68, -0.55, 0.27, 1.55);
}

/* Control de volumen estilizado - ESTILOS CORREGIDOS */
.volume-control {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: 15px;
}

.speaker {
  width: 24px;
  height: 18px;
  cursor: pointer;
  transform: translateY(-3px); /* afinar alineaciÃ³n vertical */
}

.speaker svg {
  width: 100%;
  height: 100%;
}

.vlCtrl {
  width: 70px; /* barra mÃ¡s compacta */
  height: 24px; /* consistente con viewBox y footer compacto */
  transform: translateY(-1px); /* centrado visual */
}

.vlCtrl svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.volElem {
  fill: none;
  stroke-width: 5;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-miterlimit: 10;
}

#speakB, #arcBigB, #arcSmB {
  stroke: #ffffff;
  opacity: 0.4;
}

#speakF, #arcBigF, #arcSmF {
  stroke: #34b3e8;
  transition: opacity 0.2s ease, stroke-dasharray 0.2s ease;
}

#crossLtRb, #crossLbRt {
  stroke: #c40000;
  opacity: 0.85;
  transform: scale(0);
  stroke-width: 8;
  transform-origin: 50% 50%;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

#volCtrlLineB {
  stroke: #a0c1d9;
  opacity: 0.3;
  stroke-linecap: butt; /* Cambiar a 'butt' para terminaciones cuadradas */
}

#volCtrlLineF {
  stroke: #34b3e8;
  stroke-linecap: butt; /* Cambiar a 'butt' para terminaciones cuadradas */
}

#volCtrlCircle {
  fill: #34b3e8;
  cursor: pointer;
  transition: transform 0.2s ease;
  stroke: none;
  filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3)); /* Sombra para mejor visibilidad */
}

/* Pulso/latido para las ondas de volumen */
#arcSmF.pulsing {
  animation: wavePulseSm 0.9s ease-in-out infinite;
}

#arcBigF.pulsing {
  animation: wavePulseBig 1.2s ease-in-out infinite;
}

@keyframes wavePulseSm {
  0% { opacity: 0.7; stroke-width: 5; }
  50% { opacity: 1;   stroke-width: 6.5; }
  100% { opacity: 0.7; stroke-width: 5; }
}

@keyframes wavePulseBig {
  0% { opacity: 0.6; stroke-width: 5; }
  50% { opacity: 0.95; stroke-width: 6.5; }
  100% { opacity: 0.6; stroke-width: 5; }
}

#volCtrlCircle:hover {
  transform: scale(1.1);
}

/* Ajustes responsivos */
/* Desktop y tablet: mantener controles a la derecha; no centrar en pausa */

@media screen and (max-width: 768px) {
  .volume-control {
    margin-left: 10px;
  }
  .radio-controls { --volw: 90px; }
  
  .speaker {
    width: 22px;
    height: 16px;
  }
  
  .vlCtrl {
    width: 56px;
    height: 20px;
  }
  /* Mantener layout horizontal como desktop */
  .radio-player-container {
    flex-direction: row;
    gap: 10px;
    text-align: initial;
  }
  .radio-info { align-items: flex-start; order: initial; }
  .radio-controls { order: initial; }
  
  .playBut {
    width: 40px;
    height: 40px;
  }
  
  .song-title {
    max-width: 200px;
  }
}

@media screen and (max-width: 480px) {
  .volume-control {
    margin-left: 5px;
    gap: 5px;
  }
  .radio-controls { --volw: 70px; }
  /* Ubicar controles a la derecha y mostrar parlante a la izquierda del play al reproducir */
  .radio-controls { margin-left: auto; 
    gap: 5px}
  .radio-controls .volume-control { order: 1; }
  .radio-controls .playBut { order: 2; margin-right: 8px; }

  /* TransiciÃ³n suave de apariciÃ³n del parlante en mÃ³viles */
  .radio-player:not(.is-playing) .volume-control { opacity: 0; transform: translateX(8px); pointer-events: none; }
  /* En mÃ³viles mostrar solo play y parlante (sin slider) */
  .radio-player.is-playing .volume-control {
    width: auto;
    opacity: 1;
    transform: none;
  }
  .vlCtrl { display: none !important; }
  
  .vlCtrl {
    width: 48px;
    height: 18px;
  }
  
  .radio-player {
    padding: 7px 12px;
    padding-bottom: calc(7px + env(safe-area-inset-bottom, 0px));
  }
  
  .radio-station { font-size: 13px; }
  
  .now-playing { flex-direction: row; gap: 5px; font-size: 10px; }
  
  .song-title { max-width: 150px; font-size: 10px; }
  
  .playBut {
    width: 36px;
    height: 36px;
  }
}



/* SecciÃ³n */
.break-silence-section {
  min-height: var(--hero-min-h, 100svh);
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
  overflow: hidden; /* evitar mini scroll por redondeos */
}

.break-silence-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: start;
  width: 100%;
}

.text-column {
  display: grid;
  grid-template-rows: auto 1fr; /* auto para frase, 1fr para botones */
  gap: 20px;
  color: #1b2644;
}

.break-silence-title {
  font-family: 'PT Sans Narrow', sans-serif;
  font-size: 4rem;
  font-weight: 700;
  transform: scale(1,2);
  margin-bottom: 20px;
  text-transform: uppercase;
  letter-spacing: 2px;
  text-align: right;
}

.break-silence-subtitle {
  font-size: 1rem;
  opacity: 0.9;
  align-self: stretch;
}

.break-silence-subtitle .slogan {
  font-size: 1.5rem;
}

.break-silence-subtitle .slogan span {
  color: var(--brand-light)
}

.media-column {
  display: flex;
  align-items: flex-start; /* alinear el video arriba */
  justify-content: center;
}

/* Mantener ratio para el video y ocultar controles: efecto GIF */
.video-aspect {
  width: 100%;
  aspect-ratio: 9 / 16;
  max-height: calc(100vh - var(--nav-h) - var(--footer-h) - 48px);
  border-radius: 12px;
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
}

.media-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #e9ecef;
  color: #6c757d;
  font-size: 1.1rem;
}

.media-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none; /* sin interacciÃ³n, como GIF */
  outline: none;
}
.media-video:focus { outline: none; }
.video-aspect:focus { outline: none; }

/* Ocultar UI nativa del video en navegadores WebKit */
video::-webkit-media-controls-enclosure,
video::-webkit-media-controls,
video::-webkit-media-controls-overlay-play-button,
video::-webkit-media-controls-panel {
  display: none !important;
  -webkit-appearance: none;
}

/* Grid 3/4: 4 bloques en desktop, 2 en mediano, 1 en mÃ³vil */
.features-grid {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  align-items: stretch; /* que todas las celdas crezcan igual */
}

.feature-card {
  position: relative;
  display: flex;
  align-items: center;
  min-height: var(--fc-min-h);
  padding: 14px 40px 14px 20px; /* mÃ¡s padding a derecha por flecha */
  border-radius: 12px;
  border: 2px solid transparent;
  background: linear-gradient(#ffffff, #ffffff) padding-box,
              linear-gradient(135deg, var(--brand-dark), var(--brand-light)) border-box;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 1px 0 rgba(27,38,68,0.04);
  transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, background-color .2s ease;
  will-change: transform;
  color: var(--brand-dark);
  height: 100%; /* ocupar alto de la grid cell */
}

.feature-card .fc-label {
  font-weight: 800;
  letter-spacing: .2px;
  background-image: linear-gradient(135deg, var(--brand-dark), var(--brand-light));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Nuevo layout interno: icono + tÃ­tulo + subtÃ­tulo */
.feature-card .fc-icon {
  font-size: 1.5em;
  width: 32px;
  height: 32px;
  margin-right: 14px;
  color: var(--brand-light);
  flex: 0 0 auto;
}
.feature-card .fc-content { display: grid; }
.feature-card .fc-title {
  font-weight: 800;
  background-image: linear-gradient(135deg, var(--brand-dark), var(--brand-light));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  transition: opacity .2s ease;
}
.feature-card .fc-subtitle {
  font-size: 0.8rem;
  color: #5b6b86;
  margin-top: 4px;
  transition: opacity .2s ease;
}

.fc-title.coming-soon-hidden,
.fc-subtitle.coming-soon-hidden {
  opacity: 0;
}

.feature-card::before {
  content: "";
  position: absolute;
  left: 10%;
  right: 10%;
  height: 12px;
  bottom: -12px;
  border-radius: 999px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,.35) 0%, rgba(0,0,0,0) 70%);
  opacity: 0;
  transform: translateY(-2px) scale(.8);
  transition: opacity .25s ease, transform .25s ease;
  pointer-events: none;
}

.feature-card::after {
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  content: "\f105";
  margin-left: 8px;
  display: inline-block;
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 24px;
  line-height: 1;
  color: var(--brand-light);
  transition: transform .25s ease;
}

.feature-card:hover, .feature-card:focus-visible {
  transform: translateY(-6px);
  box-shadow: 0 10px 24px rgba(27, 38, 68, 0.14), 0 2px 6px rgba(27, 38, 68, 0.08);
  background: linear-gradient(#fbfdff, #fbfdff) padding-box,
              linear-gradient(135deg, var(--brand-dark), var(--brand-light)) border-box;
}

.feature-card:hover::after, .feature-card:focus-visible::after { /* flecha */
  transform: translate(3px, -50%);
}

/* Sombra elÃ­ptica al flotar */
.feature-card:hover::before, .feature-card:focus-visible::before {
  opacity: .7;
  transform: translateY(0) scale(1);
}



.feature-card:focus-visible {
  outline: 2px solid #34b3e8;
  outline-offset: 2px;
}

/* Responsive */

/* Segunda transiciÃ³n: ocultar ad izquierdo y ajustar contenido */
@media screen and (max-width: 1250px) {
  .break-silence-content { 
    grid-template-columns: 1fr 1fr; 
    gap: 20px;
  }
  .break-silence-subtitle {
    font-size: 1.1rem;
  }
  .features-grid {
    gap: 14px;
  }
  .feature-card {
    min-height: 140px;
    padding: 12px 30px 12px 16px;
  }
  .feature-card .fc-icon {
    width: 28px;
    height: 28px;
  }
  .feature-card .fc-title {
    font-size: 0.95rem;
  }
  .feature-card .fc-subtitle {
    font-size: 0.75rem;
  }
  .video-aspect {
    max-height: calc(100vh - var(--nav-h) - var(--footer-h) - 80px);
    max-width: 90%;
  }
}

/* Tercera transiciÃ³n intermedia: ajuste mÃ¡s gradual del video */
@media screen and (max-width: 1100px) {
  .video-aspect {
    max-height: calc(100vh - var(--nav-h) - var(--footer-h) - 90px);
    max-width: 88%;
  }
}

/* Cuarta transiciÃ³n: seguir ajustando tamaÃ±os */
@media screen and (max-width: 1000px) {
  .break-silence-content { 
    gap: 16px;
  }
  .break-silence-subtitle {
    font-size: 1rem;
  }
  .features-grid {
    gap: 12px;
  }
  .feature-card {
    min-height: 120px;
    padding: 10px 24px 10px 14px;
  }
  .feature-card .fc-icon {
    width: 24px;
    height: 24px;
  }
  .feature-card .fc-title {
    font-size: 0.9rem;
  }
  .feature-card .fc-subtitle {
    font-size: 0.7rem;
  }
  .video-aspect {
    max-height: calc(100vh - var(--nav-h) - var(--footer-h) - 100px);
    max-width: 85%;
  }
}

/* Cuarta transiciÃ³n: pantalla mÃ¡s pequeÃ±a, seguir ajustando */
@media screen and (max-width: 900px) {
  .break-silence-content { 
    gap: 14px;
  }
  .break-silence-subtitle {
    font-size: 0.95rem;
  }
  .features-grid {
    gap: 10px;
  }
  .feature-card {
    min-height: 110px;
    padding: 8px 20px 8px 12px;
  }
  .feature-card .fc-icon {
    width: 22px;
    height: 22px;
  }
  .feature-card .fc-title {
    font-size: 0.85rem;
  }
  .feature-card .fc-subtitle {
    font-size: 0.65rem;
  }
  .video-aspect {
    max-height: calc(100vh - var(--nav-h) - var(--footer-h) - 120px);
    max-width: 80%;
  }
}

/* Solo tablet en horizontal: sin scroll general */
@media screen and (min-width: 901px) and (max-width: 1200px) and (orientation: landscape) {
  body { overflow-y: hidden; }
}

/* Quinta transiciÃ³n: apilar contenido verticalmente */
@media screen and (max-width: 800px) {
  .break-silence-content {
    grid-template-columns: 1fr; /* apilado */
    gap: 20px;
  }
  .text-column {
    grid-template-rows: auto auto; /* se adapta */
  }
  .media-column { display: none; }
  .video-aspect { aspect-ratio: 16 / 9; max-height: 40vh; }
  body { overflow-y: auto; }
}

@media screen and (max-width: 768px) {
  .features-grid { grid-template-columns: 1fr; }
}

/* ======= PÃ¡gina de CÃ¡maras ======= */
.inline-section { display: block; }
.inline-section.is-open { display: block; }

/* Grilla base para centrar secciones */
.section-grid { display: grid; grid-template-columns: minmax(0, 1fr); padding: 24px; }
.section-main { grid-column: 1; width: min(100%, 1200px); margin: 0 auto; }

/* Secciones simples a pantalla completa */
.simple-section { min-height: var(--hero-min-h, 100svh); display: flex; align-items: center; }
.simple-section .section-grid { width: 100%; align-items: center; }
.inline-section .section-main { padding-bottom: calc(var(--footer-h) + 16px); }

/* Evitar que las Ãºltimas tarjetas queden bajo el footer */
.news-container { padding-bottom: calc(var(--footer-h) + 16px); }
.inline-section { scroll-margin-top: calc(var(--nav-h) + 8px); }

/* Temas alternados (el color de fondo lo definiste tÃº). AÃ±adimos suavizado */
.theme-light { position: relative; background: #F5F5F5; color: var(--brand-dark); }
.theme-dark  { position: relative; background: #ffffff; color: var(--brand-dark); }
.theme-dark .news-heading { color: var(--brand-dark); }

/* Fades suaves en los bordes de cada secciÃ³n */
.inline-section { position: relative; }
.theme-light::before,
.theme-light::after,
.theme-dark::before,
.theme-dark::after {
  content: "";
  position: absolute;
  left: 0; right: 0;
  height: 36px;
  pointer-events: none;
}
/* Top: del neutral hacia transparente (para mezclar con la secciÃ³n anterior) */
.theme-light::before,
.theme-dark::before { top: 0; background: linear-gradient(to bottom, var(--sec-neutral) 0%, rgba(0,0,0,0) 100%); }
/* Bottom: de transparente a neutral (para mezclar con la siguiente) */
.theme-light::after,
.theme-dark::after  { bottom: 0; background: linear-gradient(to bottom, rgba(0,0,0,0) 0%, var(--sec-neutral) 120%); }
.cams-section {
  min-height: calc(100vh - var(--nav-h) - var(--footer-h));
  padding: 32px 0 calc(var(--footer-h) + 48px);
  background: #ffffff;
}

.cam-preview {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
  gap: 20px;
  margin: 0 0 28px;
  padding: 18px 20px;
  border-radius: 18px;
  border: 1px solid rgba(27, 38, 68, 0.08);
  background: linear-gradient(135deg, #f4f7fb 0%, #ffffff 100%);
  box-shadow: 0 16px 32px rgba(27, 38, 68, 0.08);
}

.cam-preview-player {
  position: relative;
  border-radius: 16px;
  background: radial-gradient(circle at center, rgba(52, 179, 232, 0.18), rgba(27, 38, 68, 0.12));
  overflow: hidden;
  min-height: 220px;
}

.cam-preview.cam-preview-has-media .cam-preview-player {
  background: #000000;
}

.cam-preview-player::before {
  content: "";
  display: block;
  padding-top: 56.25%;
}

.cam-preview-player .cam-preview-media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: cover;
}

.cam-preview-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 24px;
  font-weight: 700;
  color: rgba(27, 38, 68, 0.7);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.cam-preview-meta {
  display: grid;
  align-content: start;
  row-gap: 16px;
}

.cam-preview-title {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--brand-dark);
  line-height: 1.3;
}

.cam-preview-open {
  appearance: none;
  border: 0;
  border-radius: 999px;
  padding: 12px 20px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: #ffffff;
  background: linear-gradient(135deg, var(--brand-dark), var(--brand-light));
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
  justify-self: flex-start;
}

.cam-preview-open[disabled] {
  cursor: not-allowed;
  opacity: 0.45;
}

.cam-preview-open:not([disabled]):hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(27, 38, 68, 0.18);
}

.cam-preview-history {
  display: grid;
  row-gap: 12px;
}

.cam-preview-history.is-empty {
  display: none;
}

.cam-preview-history-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(27, 38, 68, 0.66);
}

.cam-preview-history-list {
  display: grid;
  gap: 10px;
}

.cam-history-item {
  appearance: none;
  border: 0;
  border-radius: 14px;
  padding: 10px 14px;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 12px;
  width: 100%;
  background: linear-gradient(#ffffff, #ffffff) padding-box,
              linear-gradient(135deg, var(--brand-dark), var(--brand-light)) border-box;
  color: var(--brand-dark);
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
}

.cam-history-item:hover,
.cam-history-item:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(27, 38, 68, 0.16);
}

.cam-history-item:focus-visible {
  outline: 2px solid rgba(52, 179, 232, 0.6);
  outline-offset: 3px;
}

.cam-history-thumb {
  width: 64px;
  height: 44px;
  border-radius: 12px;
  object-fit: cover;
  background: linear-gradient(135deg, rgba(52, 179, 232, 0.3), rgba(27, 38, 68, 0.2));
}

.cam-history-thumb--placeholder {
  display: grid;
  place-items: center;
  font-size: .7rem;
  font-weight: 800;
  color: #ffffff;
  letter-spacing: .2em;
}

.cam-history-title {
  font-size: .9rem;
  line-height: 1.3;
}

.cams-container {
  width: 100%;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  justify-items: center;
}

.cam-block {
  width: 100%;
  max-width: 940px;
  display: grid;
  gap: 12px;
  justify-items: center;
  margin: 0 auto;
}

.cam-player {
  position: relative;
  width: 90%;
  max-width: 680px;
  aspect-ratio: 16 / 9;
  margin: 0 auto;
  border-radius: 16px;
  overflow: hidden;
  background: #000;
  box-shadow: 0 12px 28px rgba(27, 38, 68, 0.18);
  grid-column: 1 / -1;
}

.cam-video-player {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  background: #000;
}

.cam-overlay {
  position: absolute;
  pointer-events: none;
  mix-blend-mode: normal;
  display: block;
}

.cam-overlay-logo {
  top: 12px;
  right: 12px;
  width: min(18vw, 120px);
  max-width: 120px;
}

.cam-overlay-text {
  bottom: 12px;
  right: 12px;
  width: min(24vw, 180px);
  max-width: 180px;
}

.cam-fullscreen-btn {
  position: absolute;
  bottom: 12px;
  left: 12px;
  z-index: 5;
  background: rgba(0, 0, 0, 0.55);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 10px;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.cam-fullscreen-btn:hover,
.cam-fullscreen-btn:focus-visible {
  background: rgba(0, 0, 0, 0.75);
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.25);
}

.cam-fullscreen-btn:focus-visible {
  outline: 2px solid #34b3e8;
  outline-offset: 2px;
}

.cam-fullscreen-btn i {
  font-size: 16px;
}

.cam-overlay img {
  width: 100%;
  height: auto;
  display: block;
}

.cam-overlay-video {
  bottom: 12px;
  right: 12px;
  width: min(26vw, 220px);
  max-width: 220px;
  aspect-ratio: 16 / 9;
  pointer-events: none;
  opacity: 0.9;
  border-radius: 10px;
  overflow: hidden;
  mix-blend-mode: normal;
}

.cam-status {
  margin: 8px auto 0;
  text-align: center;
  color: rgba(27, 38, 68, 0.7);
  font-size: 0.95rem;
  width: 100%;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.cam-card {
  display: grid;
  grid-template-rows: auto auto;
  text-decoration: none;
  border-radius: 14px;
  border: 2px solid transparent;
  background: linear-gradient(#ffffff, #ffffff) padding-box,
              linear-gradient(135deg, var(--brand-dark), var(--brand-light)) border-box;
  overflow: hidden;
  color: var(--brand-dark);
  transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease;
}

.cam-card:hover,
.cam-card.is-active {
  transform: translateY(-6px);
  box-shadow: 0 10px 24px rgba(27,38,68,.14);
}

.cam-card.is-active {
  border-color: rgba(52, 179, 232, 0.65);
}

.cam-thumb { aspect-ratio: 16/9; overflow: hidden; }
.cam-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.cam-title { padding: 14px 16px; font-weight: 800; color: var(--brand-dark); }

@media (max-width: 900px) {
  .cam-preview {
    grid-template-columns: 1fr;
    row-gap: 18px;
    padding: 16px;
  }
  .cam-preview-meta {
    justify-items: start;
  }
  .cams-container { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .cam-history-item {
    grid-template-columns: 1fr;
    row-gap: 8px;
  }
  .cam-history-thumb {
    width: 100%;
    height: 52px;
  }
}

/* ======= PÃ¡gina de Noticias ======= */
.news-section {
  min-height: calc(100vh - var(--nav-h) - var(--footer-h));
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
}

.news-container { width: 100%; padding: 0; }
.news-heading { font-size: 1.6rem; margin: 6px 4px 16px; font-weight: 800; color: var(--brand-dark); }

/* Filtros (tabs) */
.news-filter { display: flex; gap: 10px; padding: 6px 4px 14px; flex-wrap: wrap; }
.news-tab {
  appearance: none;
  border: 2px solid transparent;
  border-radius: 999px;
  padding: 8px 14px;
  font-weight: 700;
  background: linear-gradient(#ffffff,#ffffff) padding-box,
              linear-gradient(135deg, var(--brand-dark), var(--brand-light)) border-box;
  color: var(--brand-dark);
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
}
.news-tab:hover { transform: translateY(-2px); box-shadow: 0 6px 14px rgba(27,38,68,.12); }
.news-tab.is-active { background: linear-gradient(#f7fbff,#f7fbff) padding-box,
                               linear-gradient(135deg, var(--brand-dark), var(--brand-light)) border-box; }

.news-grid {
  width: min(72rem, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.75rem;
  padding: 8px 0 32px;
}

.news-card {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas:
    "title"
    "content"
    "meta";
  gap: .5rem;
  padding: 1.5rem 1.5rem 3rem;
  text-decoration: none;
  color: var(--brand-dark);
  background-image: linear-gradient(135deg, #eef4fb 0%, #f8fbff 100%);
  border-radius: 1.8rem;
  border: 1px solid rgba(52, 179, 232, 0.18);
  box-shadow:
    inset -2px 2px rgba(255, 255, 255, 0.92),
    -20px 20px 40px rgba(27, 38, 68, 0.18);
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease;
}

.news-card::after {
  content: "";
  position: absolute;
  left: 1.5rem;
  right: 1.5rem;
  bottom: 2rem;
  height: 3px;
  border-radius: 999px;
  background-image: linear-gradient(90deg, var(--brand-light), var(--brand-dark));
  opacity: .65;
  transition: opacity .25s ease;
}

.news-card:hover,
.news-card:focus-visible {
  transform: translateY(-6px);
  box-shadow:
    inset -1px 1px rgba(255, 255, 255, 0.9),
    -24px 28px 48px rgba(27, 38, 68, 0.22);
}

.news-card:focus-visible {
  outline: 2px solid rgba(52, 179, 232, 0.6);
  outline-offset: 4px;
}

.news-card:hover::after,
.news-card:focus-visible::after {
  opacity: 1;
}

.news-card-title {
  grid-area: title;
  font-weight: 700;
  letter-spacing: .06em;
  font-size: .8rem;
  text-transform: uppercase;
  color: var(--brand-dark);
}

.news-card-content {
  grid-area: content;
  color: #4d5c7a;
  font-size: .75rem;
  line-height: 1.55;
}

.news-card-content p { margin: 0; }

.news-card-meta {
  grid-area: meta;
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  font-size: .65rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(27, 38, 68, 0.82);
}

.news-card-source {
  font-weight: 700;
}

.news-card-time {
  color: rgba(27, 38, 68, 0.6);
  white-space: nowrap;
}

.news-loading {
  grid-column: 1 / -1;
  padding: 32px;
  text-align: center;
  color: rgba(27, 38, 68, 0.64);
  font-weight: 600;
  letter-spacing: .09em;
  text-transform: uppercase;
}

@media (max-width: 900px) {
  .news-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .news-card {
    padding: 2rem 1.6rem 2.6rem;
    border-radius: 1.6rem;
  }
  .news-card::after {
    left: 1.6rem;
    right: 1.6rem;
    bottom: 1.6rem;
  }
  .news-card-title { font-size: 1.05rem; }
  .news-card-content { font-size: .9rem; }
}

@media (max-width: 600px) {
  .news-grid { grid-template-columns: 1fr; }
  .news-card {
    padding: 1.8rem 1.4rem 2.4rem;
    border-radius: 1.45rem;
  }
  .news-card::after {
    left: 1.4rem;
    right: 1.4rem;
    bottom: 1.4rem;
  }
  .news-card-meta {
    flex-direction: column;
    align-items: flex-start;
    gap: .45rem;
    font-size: .72rem;
  }
}

/* Forzar versiÃ³n mÃ³vil cuando el dispositivo es tÃ¡ctil aunque pidan modo escritorio */
@media (hover: none) and (pointer: coarse) {
  .cams-container { grid-template-columns: 1fr; }
  .news-grid { grid-template-columns: 1fr; }
}

/* Separadores suaves entre secciones */
.section-fade { display: none; }

/* Grilla 2x2 dentro del Ã¡rea central */
.two-grid { display: grid; grid-template-columns: repeat(2, minmax(260px,1fr)); gap: 18px; }
.tile-card { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 180px; border-radius: 14px; font-weight: 800; color: var(--brand-dark); border: 2px solid transparent; background: linear-gradient(#ffffff,#ffffff) padding-box, linear-gradient(135deg, var(--brand-dark), var(--brand-light)) border-box; }
@media (max-width: 900px) { .two-grid { grid-template-columns: 1fr; } .tile-card { min-height: 140px; } }

/* ======= Contacto ======= */
.contact-block { text-align: center; padding: 12px 0 16px; display: grid; row-gap: 14px; justify-items: center; }
.contact-heading { font-size: 1.9rem; font-weight: 800; color: var(--brand-dark); margin: 0 0 20px; }
.contact-emails { display: grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); gap: 14px; justify-content: center; margin: 0 auto; max-width: 720px; }
.email-item { 
  display: grid; 
  grid-template-columns: 1fr; 
  align-items: center; 
  padding: 10px 14px; 
  border-radius: 12px; 
  text-decoration: none; 
  color: var(--brand-dark); 
  border: 2px solid transparent; 
  background: linear-gradient(#ffffff,#ffffff) padding-box, linear-gradient(135deg, var(--brand-dark), var(--brand-light)) border-box;
  transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, background-color .2s ease;
  will-change: transform;
}
.email-item:hover, .email-item:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 8px 18px rgba(27, 38, 68, 0.12);
  background: linear-gradient(#fbfdff, #fbfdff) padding-box,
              linear-gradient(135deg, var(--brand-dark), var(--brand-light)) border-box;
}
.email-item:focus-visible {
  outline: 2px solid #34b3e8;
  outline-offset: 2px;
}
.email-label { font-weight: 800; opacity: .9; }
.email-value { font-size: .95rem; opacity: .85; }

/* Responsive para emails */
@media (max-width: 1000px) {
  .email-item { 
    padding: 8px 12px; 
  }
  .email-label { 
    font-size: 0.9rem; 
    font-weight: 700; 
  }
  .email-value { 
    font-size: 0.85rem; 
  }
}

@media (max-width: 720px) { 
  .contact-emails { 
    grid-template-columns: 1fr; 
    gap: 10px;
  }
  .email-item { 
    padding: 6px 10px; 
  }
  .email-label { 
    font-size: 0.85rem; 
    font-weight: 600; 
  }
  .email-value { 
    font-size: 0.8rem; 
  }
}

.social-list { list-style: none; display: flex; gap: 18px; justify-content: center; align-items: center; padding: 0; margin: 50px auto; flex-wrap: wrap; }

/* Responsive para redes sociales */
@media (max-width: 1000px) {
  .social-list { 
    gap: 14px; 
    margin: 40px auto;
  }
  .social { 
    width: 52px; 
    height: 52px; 
  }
}

@media (max-width: 800px) {
  .social-list { 
    gap: 12px; 
    margin: 30px auto;
    max-width: 400px;
  }
  .social { 
    width: 48px; 
    height: 48px; 
  }
}

@media (max-width: 600px) {
  .social-list { 
    gap: 10px; 
    margin: 25px auto;
    max-width: 300px;
  }
  .social { 
    width: 44px; 
    height: 44px; 
  }
}
.social { position: relative; width: 58px; height: 58px; display: inline-flex; align-items: center; justify-content: center; background: transparent; transition: transform .25s ease, box-shadow .25s ease; text-decoration: none; color: currentColor; }
.social svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.social .ring { stroke: currentColor; stroke-width: 2; fill: none; stroke-dasharray: 176; stroke-dashoffset: 176; opacity: .55; transition: stroke-dashoffset .6s ease; }
.social:hover { transform: translateY(-2px); }
.social:hover .ring { stroke-dashoffset: 0; }
.social i { position: relative; z-index: 1; font-size: 22px; color: currentColor; }
.social-fb { color: #1877F2; }
.social-tw { color: #1DA1F2; }
.social-ig { color: #E1306C; }
.social-in { color: #0A66C2; }
.social-yt { color: #FF0000; }
.social-tt { color: #000000; }

/* ======= Entrevistas ======= */
.exp-row { display: flex; gap: 16px; height: 420px; margin: 10px auto 0; width: 100%; max-width: 1100px; align-items: stretch; }
.exp-card { position: relative; flex: 1; border-radius: 16px; overflow: hidden; background-size: cover; background-position: center; text-decoration: none; transition: flex .4s ease; }
.exp-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.55) 100%); }
.exp-card:hover { flex: 3; }
.exp-title { position: absolute; left: 14px; right: 14px; bottom: 14px; z-index: 1; color: #fff; font-weight: 900; text-shadow: 0 2px 10px rgba(0,0,0,.4); }

@media (max-width: 1000px) {
  .exp-row { flex-direction: column;}
  .exp-card { height: 180px; }
}
.iv-hero { position: relative; height: 48vh; min-height: 320px; border-radius: 16px; overflow: hidden; background-size: cover; background-position: center center; }
.iv-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.55) 75%); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: #fff; padding: 24px; }
.iv-title { font-size: 2rem; font-weight: 900; margin: 0 0 6px; }
.iv-sub { opacity: .9; font-weight: 600; }

.iv-row { margin-top: 18px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.iv-card { position: relative; display: block; border-radius: 14px; overflow: hidden; background-size: cover; background-position: center; aspect-ratio: 16/9; text-decoration: none; }
.iv-card::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,.65) 100%); }
.iv-card-meta { position: absolute; left: 12px; right: 12px; bottom: 10px; z-index: 1; display: flex; align-items: baseline; justify-content: space-between; color: #fff; font-weight: 700; }
.iv-name { font-size: 1rem; }
.iv-date { font-size: .9rem; opacity: .9; }

@media (max-width: 1000px) {
  .iv-hero { height: 36vh; min-height: 200px; }
  .iv-row { grid-template-columns: 1fr; }
}


section[data-coming-soon-section] {
  display: none !important;
}

/* Estilos para el reproductor de video de la cámara */
.cam-video-player {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border: 0;
    background-color: #000;
}

.cam-error {
    color: white;
    background-color: black;
    padding: 1em;
    text-align: center;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
