/* ============================================
   BST — Beyond Safety & Training
   Tokens oficiales: azul #2256AA · rojo (acento principal) #F52B2A
   amarillo (acento secundario) #F9EE32 · off-white #EDEFF3
   charcoal #1A1A1A
   Display: Archivo Expanded / Body: Inter

   Proporción 60-30-10:
   60% azul (--navy) → headers, footers, títulos, elementos estructurales
   30% blanco/gris neutro (--off-white, #fff, --line) → fondos de sección, tarjetas
   10% rojo + amarillo (--orange, --yellow) → SOLO acentos puntuales: botones,
       íconos, hover, subrayados, bullets. Nunca como fondo grande de sección,
       y nunca los dos juntos como fondo grande a la vez.

   Contraste verificado (WCAG):
   - Texto navy sobre amarillo: ~5.7:1 → cumple AA normal. Por eso todo botón/
     chip en amarillo lleva texto navy, nunca blanco (el amarillo es muy claro:
     amarillo sobre blanco/off-white da ~1.05:1, prácticamente invisible — por
     eso el amarillo NUNCA se usa como texto ni fondo sobre blanco/off-white).
   - Texto amarillo sobre navy: ~5.7:1 → cumple AA normal (topbar, footer, nav,
     stats, banner "statement").
   - Texto blanco sobre rojo: ~4.0:1 → cumple AA para texto grande/UI (botones);
     queda justo por debajo del AA estricto (4.5:1) para texto normal pequeño,
     así que se reserva para botones/etiquetas cortas, no párrafos.
   - Texto rojo sobre blanco/off-white: ~3.4–4.0:1 → cumple AA para texto
     grande/UI (eyebrows, tags, íconos); es el uso habitual en todo el sitio.
   ============================================ */

:root{
  --navy: #2256AA;       /* azul oficial */
  --navy-deep: #122C63;  /* azul oscuro para fondos grandes (header/footer) */
  --yellow: #F9EE32;     /* amarillo oficial — SOLO acentos pequeños, texto navy encima */
  --orange: #F52B2A;     /* rojo oficial — acento principal, admite texto blanco */
  --off-white: #EDEFF3;  /* gris claro neutro */
  --charcoal: #1A1A1A;
  --gray: #6B7280;
  --line: #DCDFE5;
  --radius: 4px;
  --container: 1200px;
  --font-display: 'Archivo Expanded', sans-serif;
  --font-body: 'Inter', sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--charcoal);
  background:var(--off-white);
  line-height:1.6;
}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.1;margin:0 0 .5em;}

.container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 24px;
}

.eyebrow{
  display:inline-block;
  font-family:var(--font-body);
  font-weight:700;
  font-size:12.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--orange);
  margin-bottom:12px;
}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:13px 26px;
  border-radius:var(--radius);
  font-weight:600;
  font-size:15px;
  border:1.5px solid transparent;
  cursor:pointer;
  transition:transform .15s ease, background .2s ease, border-color .2s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn--primary{background:var(--yellow);color:var(--navy-deep);}
.btn--primary:hover{background:#ffc82c;}
.btn--ghost{border-color:rgba(255,255,255,.55);color:#fff;}
.btn--ghost:hover{background:rgba(255,255,255,.1);}
.btn--outline{border-color:var(--navy);color:var(--navy);}
.btn--outline:hover{background:var(--navy);color:#fff;}
.btn--whatsapp{background:#25D366;color:#fff;}
.btn--whatsapp:hover{background:#1ebe5b;}
.btn--danger{background:var(--orange);color:#fff;}
.btn--danger:hover{background:#c91c17;}
.btn--lg{padding:15px 28px;font-size:16px;}
.btn--block{width:100%;justify-content:center;}

/* ============ TOPBAR ============ */
.topbar{background:var(--navy-deep);color:#cbd5e1;font-size:13px;}
.topbar__inner{display:flex;justify-content:space-between;align-items:center;padding:8px 24px;flex-wrap:wrap;gap:10px;}
.topbar__location{color:#cbd5e1;}
.topbar__social{display:flex;align-items:center;gap:14px;}
.topbar__social a{
  color:#cbd5e1;display:flex;align-items:center;justify-content:center;
  width:22px;height:22px;transition:color .2s ease;
}
.topbar__social a:hover{color:var(--yellow);}
.topbar__email a{color:#cbd5e1;}
.topbar__email a:hover{color:var(--yellow);}

/* ============ HEADER ============ */
.header{
  background:#fff;
  position:sticky;top:0;z-index:100;
  box-shadow:0 2px 12px rgba(0,0,0,.1);
}
.header__inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 24px;gap:24px;
}
.logo{display:flex;align-items:center;gap:12px;}
.logo__img{height:46px;width:auto;display:block;align-self:flex-start;}
.logo__img--footer{height:72px;width:auto;display:block;align-self:center;margin:0 auto 4px;}
.logo__text{display:flex;flex-direction:column;color:var(--navy);}
.logo__text strong{font-family:var(--font-display);font-size:15px;letter-spacing:.01em;}
.logo__text small{font-size:11px;color:var(--navy);opacity:.65;letter-spacing:.05em;}

.nav{display:flex;align-items:center;gap:28px;}
.nav > a{color:var(--navy);font-size:14.5px;font-weight:500;position:relative;padding:6px 0;}
.nav > a::after{
  content:'';position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--yellow);
  transition:width .2s ease;
}
.nav > a:hover::after{width:100%;}
.nav__toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px;}
.nav__toggle span{width:24px;height:2px;background:var(--navy);}

/* ============ NAV DROPDOWN (Servicios / Cursos) ============ */
.nav-dropdown{position:relative;}
.nav-dropdown__toggle{
  display:flex;align-items:center;gap:6px;background:none;border:0;cursor:pointer;
  color:var(--navy);font-size:14.5px;font-weight:500;font-family:var(--font-body);
  padding:6px 0;position:relative;
}
.nav-dropdown__toggle::after{
  content:'';position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--yellow);
  transition:width .2s ease;
}
.nav-dropdown:hover .nav-dropdown__toggle::after,
.nav-dropdown.open .nav-dropdown__toggle::after{width:100%;}
.nav-dropdown__chevron{width:9px;height:9px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);transition:transform .2s ease;margin-top:-3px;}
.nav-dropdown.open .nav-dropdown__chevron{transform:rotate(-135deg);margin-top:3px;}

.nav-dropdown__panel{
  list-style:none;margin:0;padding:10px;
  position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%);
  background:#fff;border-radius:6px;min-width:250px;
  box-shadow:0 20px 40px -12px rgba(11,37,69,.35);
  opacity:0;visibility:hidden;transform:translateX(-50%) translateY(8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
  z-index:120;
}
.nav-dropdown:hover .nav-dropdown__panel,
.nav-dropdown:focus-within .nav-dropdown__panel{
  opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);
}
.nav-dropdown__panel a{
  display:block;padding:10px 14px;border-radius:4px;font-size:14px;font-weight:500;
  color:var(--navy-deep);transition:background .15s ease;
}
.nav-dropdown__panel a:hover{background:var(--off-white);}
.nav-dropdown__more{
  color:var(--orange) !important;font-weight:700 !important;margin-top:4px;
  border-top:1px solid var(--line);padding-top:12px !important;
}

/* ============ HERO ============ */
.hero{position:relative;color:#fff;overflow:hidden;}
.hero__media{position:absolute;inset:0;z-index:0;}
.hero__img{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  background-color:#0e3157; /* fallback si no hay imagen aún */
  transform:scale(1.15);will-change:transform;
}
.hero__video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  background-color:#0e3157;
  transform:scale(1.15);will-change:transform;
}
.hero__overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(10,26,58,0) 0%, rgba(10,26,58,.25) 45%, rgba(10,26,58,.55) 70%, rgba(10,26,58,.82) 100%);
}
.hero__content{position:relative;z-index:1;padding:90px 24px 130px;max-width:720px;}
.hero h1{font-size:clamp(32px,5vw,54px);margin-bottom:20px;}
.hero h1 span{color:var(--yellow);}
.hero__lead{font-size:17px;color:#dbe3ee;max-width:560px;margin-bottom:34px;}
.hero__actions{display:flex;gap:16px;flex-wrap:wrap;}

.hazard-strip{
  position:relative;z-index:1;height:14px;
  background:linear-gradient(90deg,
    var(--orange) 0%, var(--orange) 33%,
    var(--navy) 33%, var(--navy) 66%,
    var(--yellow) 66%, var(--yellow) 100%);
}

/* ============ FAN CAROUSEL SECTIONS (home: Servicios / Cursos) ============ */
.fan-section{position:relative;overflow:hidden;padding:110px 0;color:#fff;}
.fan-section__bg{
  position:absolute;inset:0;z-index:0;
  background-size:cover;background-position:center;
  background-color:var(--navy-deep);
  transform:scale(1.15);will-change:transform;
}
.fan-section__overlay{position:absolute;inset:0;z-index:1;}
.fan-section--services .fan-section__overlay{background:rgba(34,86,170,.85);}
.fan-section--courses .fan-section__overlay{background:rgba(18,44,99,.85);}
.fan-section__inner{position:relative;z-index:2;}
.fan-section__title{
  text-align:center;color:#fff;
  font-size:clamp(26px,4vw,42px);letter-spacing:.03em;
  margin-bottom:68px;
}

.fan-carousel{position:relative;max-width:1200px;margin:0 auto;}
.fan-carousel__stage{
  position:relative;height:460px;
  display:flex;align-items:center;justify-content:center;
  perspective:1400px;
}
.fan-card{
  position:absolute;top:50%;left:50%;
  width:300px;height:390px;
  transform:translate(-50%,-50%);
  display:block;border:0;border-radius:10px;overflow:hidden;
  background-size:cover;background-position:center;background-color:rgba(255,255,255,.1);
  cursor:pointer;
  transition:transform .45s cubic-bezier(.22,.9,.32,1), opacity .45s ease, box-shadow .45s ease;
  box-shadow:0 20px 40px -12px rgba(0,0,0,.5);
}
.fan-card__label{
  position:absolute;left:0;right:0;bottom:0;
  padding:16px 14px 13px;
  background:linear-gradient(0deg, rgba(0,0,0,.85) 0%, rgba(0,0,0,0) 100%);
  color:#fff;font-size:14px;font-weight:700;line-height:1.3;text-align:left;
}
.fan-card.is-active{box-shadow:0 30px 60px -12px rgba(0,0,0,.6);}

.fan-carousel__arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:20;
  width:44px;height:44px;border-radius:50%;border:0;
  background:rgba(255,255,255,.15);color:#fff;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background .2s ease;
}
.fan-carousel__arrow:hover{background:rgba(255,255,255,.3);}
.fan-carousel__arrow--prev{left:-6px;}
.fan-carousel__arrow--next{right:-6px;}

.fan-section__cta{text-align:center;margin-top:52px;}

@media (max-width:1024px){
  .fan-carousel{max-width:100%;padding:0 50px;}
}

/* Móvil: carrusel horizontal simple con swipe, sin el efecto 3D en abanico */
@media (max-width:768px){
  .fan-section{padding:80px 0;}
  .fan-carousel{padding:0;}
  .fan-carousel__stage{
    height:auto;perspective:none;justify-content:flex-start;
    display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
    gap:14px;padding:6px 24px 20px;
    -webkit-overflow-scrolling:touch;
  }
  .fan-card{
    position:relative;top:auto;left:auto;
    flex:0 0 190px;height:250px;scroll-snap-align:center;
    transform:none !important;opacity:1 !important;box-shadow:0 12px 24px -10px rgba(0,0,0,.5);
  }
  .fan-carousel__arrow{display:none;}
}

/* ============ PAGE HERO (páginas internas) ============ */
/* Alto fijo por breakpoint (no depende del contenido de cada página), para
   que todos los banners internos midan lo mismo. El valor sale de calcular
   cuánto necesita el título MÁS LARGO del sitio ("Escoltas y Monitoreo a
   Unidades que Transportan Materiales Peligrosos", 71 caracteres) sin
   cortarse a 375px de ancho, más el párrafo debajo, con el padding recortado
   ~20-25% respecto a un margen "cómodo". Contenido se centra verticalmente
   con flex en vez de empujarlo con padding-top, así que en páginas con
   títulos cortos el banner no queda vacío arriba. */
.page-hero{
  position:relative;color:#fff;overflow:hidden;
  background:var(--navy-deep);
  display:flex;align-items:center;
  min-height:340px;
}
.page-hero__media{position:absolute;inset:0;z-index:0;}
.page-hero__img{
  position:absolute;inset:0;background-size:cover;background-position:center;
  background-color:#122C63;
  transform:scale(1.15);will-change:transform;
}
.page-hero__video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  background-color:#122C63;background-size:cover;background-position:center;
  transform:scale(1.15);will-change:transform;
}
.page-hero__overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(10,26,58,0) 0%, rgba(10,26,58,.25) 45%, rgba(10,26,58,.55) 70%, rgba(10,26,58,.82) 100%);
}
.page-hero__content{position:relative;z-index:1;width:100%;padding:32px 24px;max-width:760px;margin:0 auto;}

@media (max-width:768px){
  .page-hero{min-height:360px;}
}
.breadcrumb{font-size:13px;color:#a9c0e6;margin-bottom:14px;}
.breadcrumb a{color:#a9c0e6;}
.breadcrumb a:hover{color:var(--yellow);}
.page-hero h1{font-size:clamp(26px,4vw,40px);margin-bottom:10px;}
.page-hero p{color:#d3ddec;font-size:15.5px;max-width:600px;margin:0;}
.nav a.active{color:var(--orange);}
.nav a.active::after{width:100%;}
.nav-dropdown__toggle.active{color:var(--orange);}
.nav-dropdown__toggle.active::after{width:100%;}

/* ============ PROGRAM DETAIL PAGE ============ */
.program-body{padding:88px 0;background:#fff;}
.program-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:start;}
.program-grid h2{color:var(--navy-deep);font-size:24px;margin-top:36px;}
.program-grid h2:first-child{margin-top:0;}
.program-grid p{color:var(--gray);font-size:15.5px;}
.program-grid ul{margin:14px 0 0;}
.program-grid ul li{
  padding-left:26px;position:relative;margin-bottom:10px;color:var(--charcoal);font-size:15px;
}
.program-grid ul li::before{
  content:'';position:absolute;left:0;top:7px;width:12px;height:12px;background:var(--orange);border-radius:2px;
}
.program-side{
  background:var(--off-white);border:1px solid var(--line);border-radius:6px;padding:28px;position:sticky;top:100px;
}
.program-side h3{font-size:15px;color:var(--navy-deep);margin-bottom:16px;}
.program-side dl{margin:0 0 24px;}
.program-side dt{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--gray);font-weight:700;margin-top:14px;}
.program-side dd{margin:2px 0 0;font-size:14.5px;color:var(--charcoal);font-weight:600;}
.related-programs{display:flex;flex-direction:column;gap:10px;}
.related-programs a{
  display:block;padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:4px;font-size:13.5px;font-weight:600;color:var(--navy-deep);
}
.related-programs a:hover{border-color:var(--navy);}

/* ============ SERVICES OVERVIEW GRID ============ */
.services-overview{padding:88px 0;background:#fff;}
.services-overview__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;}
.service-block{
  display:flex;flex-direction:column;border:1px solid var(--line);border-radius:6px;overflow:hidden;
  background:#fff;transition:transform .25s ease, box-shadow .25s ease;
}
.service-block:hover{box-shadow:0 16px 30px -16px rgba(11,37,69,.25);transform:translateY(-3px);}
.service-block__img{
  aspect-ratio:16/9;background-size:cover;background-position:center;background-color:#e7eaee;
  transition:transform .4s ease;
}
.service-block:hover .service-block__img{transform:scale(1.04);}
.service-block__frame{overflow:hidden;}
.service-block__body{padding:22px 24px 26px;}
.service-block__num{font-family:var(--font-display);font-size:22px;color:var(--yellow);-webkit-text-stroke:1.5px var(--navy-deep);display:block;margin-bottom:8px;}
.service-block h3{color:var(--navy-deep);font-size:18px;margin-bottom:8px;}
.service-block p{color:var(--gray);font-size:14.5px;margin:0 0 14px;}
.service-block a{color:var(--orange);font-weight:700;font-size:13.5px;}

/* ============ GALERÍA DE FOTOS (páginas de servicio) ============ */
.service-gallery{margin-top:40px;}
.service-gallery h2{color:var(--navy-deep);font-size:20px;margin-bottom:16px;}
.service-gallery__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;}
.service-gallery__frame{
  aspect-ratio:4/3;border-radius:6px;overflow:hidden;background:#e7eaee;
  position:relative;transition:transform .3s ease, box-shadow .3s ease;
}
.service-gallery__frame:hover{
  transform:scale(1.7);
  z-index:5;
  box-shadow:0 24px 48px -12px rgba(11,37,69,.5);
}
.service-gallery__img{
  width:100%;height:100%;background-size:cover;background-position:center;
}

/* ============ CLIENTS PAGE GRID ============ */
.clients-page{padding:88px 0;background:#fff;}
.clients-page__grid{
  display:grid;grid-template-columns:repeat(5,1fr);gap:20px;
}
.clients-page__grid .client-logo{
  width:100%;height:130px;background-color:#fff;border:1px solid var(--line);border-radius:6px;padding:14px;
  background-origin:content-box;
}

/* ============ STATS ============ */
.stats{background:var(--navy-deep);color:#fff;padding:38px 0;}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;}
.stat__num{display:block;font-family:var(--font-display);font-size:34px;color:var(--yellow);}
.stat__label{font-size:13px;color:#a9b8cc;}

/* ============ SECTION HEAD ============ */
.section-head{margin-bottom:44px;max-width:640px;}
.section-head--center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head h2{font-size:clamp(26px,3vw,36px);color:var(--navy-deep);}

/* ============ ABOUT ============ */
.about{padding:96px 0;}
.about__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:stretch;}
.about__media{height:100%;}
.about__img{
  height:100%;min-height:320px;background-size:cover;background-position:center;
  border-radius:6px;background-color:#dfe4e8;
  box-shadow:0 20px 40px -12px rgba(11,37,69,.25);
}
.about h2{color:var(--navy-deep);font-size:clamp(24px,3vw,32px);}
.about p{color:var(--gray);font-size:15.5px;}
.about__list{margin-top:20px;}
.about__list li{
  padding-left:28px;position:relative;margin-bottom:10px;font-weight:500;color:var(--navy-deep);
}
.about__list li::before{
  /* Rojo, no amarillo: este marcador va sobre fondo claro (off-white),
     donde el amarillo casi no se distingue. */
  content:'';position:absolute;left:0;top:6px;width:14px;height:14px;
  background:var(--orange);border-radius:2px;
}

/* ============ STATEMENT BANNER ============ */
.statement{background:var(--navy);padding:22px 0;text-align:center;}
.statement p{
  margin:0;color:var(--yellow);font-family:var(--font-display);font-weight:700;
  font-size:clamp(15px,2vw,20px);letter-spacing:.04em;text-transform:uppercase;
}

/* ============ MISSION / VISION ============ */
.mission-vision{padding:90px 0;background:var(--off-white);}
.mv-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;}

/* ============ MISIÓN / VISIÓN — TARJETAS CON EXPANSIÓN ============ */
.mv-card{
  position:relative;border-radius:8px;overflow:hidden;
  background-size:cover;background-repeat:no-repeat;background-position:center;background-color:#fff;
  box-shadow:0 20px 40px -16px rgba(11,37,69,.25);
}
/* La tarjeta toma la proporción real de cada imagen (sin recorte ni
   franjas en blanco), en vez de forzar una altura fija distinta al arte. */
.mv-card--mision{aspect-ratio:493/534;}
.mv-card--vision{aspect-ratio:491/534;}
.mv-card__panel{
  position:absolute;left:0;right:0;bottom:0;height:20%;min-height:76px;
  display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;
  transition:height .38s cubic-bezier(.4,0,.2,1);
}
.mv-card--mision .mv-card__panel{background:rgba(18,44,99,.9);}
.mv-card--vision .mv-card__panel{background:rgba(196,30,25,.9);}

/* Estado expandido: por tap/click (.is-open, todos los dispositivos) o por
   hover (solo en dispositivos con puntero fino, para no dejar el hover
   "pegado" en pantallas táctiles). */
.mv-card.is-open .mv-card__panel{height:83%;}
@media (hover:hover) and (pointer:fine){
  .mv-card:hover .mv-card__panel{height:83%;}
}

.mv-card__header{
  flex-shrink:0;height:76px;display:flex;align-items:center;justify-content:space-between;
  gap:12px;padding:0 26px;cursor:pointer;
}
.mv-card__header h3{color:#fff;font-size:23px;margin:0;}
.mv-card__arrow{
  flex-shrink:0;width:30px;height:30px;border-radius:50%;
  background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;
  color:#fff;transition:transform .38s cubic-bezier(.4,0,.2,1);
}
.mv-card__arrow svg{width:14px;height:14px;}
.mv-card.is-open .mv-card__arrow{transform:rotate(180deg);}
@media (hover:hover) and (pointer:fine){
  .mv-card:hover .mv-card__arrow{transform:rotate(180deg);}
}

.mv-card__body{
  flex:1;min-height:0;overflow-y:auto;padding:0 26px 24px;
  opacity:0;transition:opacity .25s ease;
}
.mv-card.is-open .mv-card__body{opacity:1;transition-delay:.12s;}
@media (hover:hover) and (pointer:fine){
  .mv-card:hover .mv-card__body{opacity:1;transition-delay:.12s;}
}

.mv-card__tagline{color:#fff;font-weight:700;font-size:17.5px;line-height:1.4;margin:0 0 12px;}
.mv-card__text{color:rgba(255,255,255,.92);font-size:15.5px;line-height:1.65;margin:0 0 18px;}
.mv-card__btn{
  display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--navy-deep);
  font-weight:700;font-size:13px;padding:9px 20px;border-radius:4px;transition:transform .2s ease, box-shadow .2s ease;
}
.mv-card__btn:hover{transform:translateY(-2px);box-shadow:0 8px 16px -6px rgba(0,0,0,.35);}

/* ============ VALUES — tarjetas con ícono + expansión al hover/tap ============ */
.values{padding:90px 0;background:#fff;}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}

.value-card{
  position:relative;background:#fff;border:1.5px solid var(--line);border-radius:10px;
  padding:34px 26px;min-height:300px;text-align:center;
  display:flex;flex-direction:column;align-items:center;
  cursor:pointer;outline:none;
  transition:background-color .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.value-card.is-open,
.value-card:focus-visible{
  background-color:color-mix(in srgb, var(--value-color) 10%, white);
  border-color:color-mix(in srgb, var(--value-color) 40%, white);
  box-shadow:0 22px 40px -22px rgba(11,37,69,.3);
}

.value-card__icon-wrap{
  width:88px;height:88px;margin-bottom:18px;flex-shrink:0;
  transition:transform .35s cubic-bezier(.34,1.56,.64,1), filter .35s ease;
}
.value-card__icon{width:100%;height:100%;object-fit:contain;}
.value-card.is-open .value-card__icon-wrap,
.value-card:focus-visible .value-card__icon-wrap{
  transform:translateY(-8px);
  filter:drop-shadow(0 14px 16px rgba(0,0,0,.28));
}

.value-card h3{color:var(--navy-deep);font-size:16.5px;margin:0;}

.value-card__desc{
  color:var(--gray);font-size:13.5px;line-height:1.6;margin:14px 0 0;
  opacity:0;transition:opacity .3s ease;
}
.value-card.is-open .value-card__desc,
.value-card:focus-visible .value-card__desc{opacity:1;}

@media (hover:hover) and (pointer:fine){
  .value-card:hover{
    background-color:color-mix(in srgb, var(--value-color) 10%, white);
    border-color:color-mix(in srgb, var(--value-color) 40%, white);
    box-shadow:0 22px 40px -22px rgba(11,37,69,.3);
  }
  .value-card:hover .value-card__icon-wrap{
    transform:translateY(-8px);
    filter:drop-shadow(0 14px 16px rgba(0,0,0,.28));
  }
  .value-card:hover .value-card__desc{opacity:1;}
}

/* ============ PROTOCOLO DE ACCIDENTES ============ */
.protocol{padding:90px 0;background:var(--off-white);}
.protocol__intro{
  max-width:760px;margin:0 auto 32px;text-align:center;color:var(--gray);font-size:15.5px;
}
.protocol__actions{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;}

/* ============ MODAL ============ */
body.modal-open{overflow:hidden;}
.modal-overlay{
  position:fixed;inset:0;z-index:200;
  background:rgba(11,37,69,.6);
  display:flex;align-items:center;justify-content:center;padding:24px;
  opacity:0;visibility:hidden;
  transition:opacity .25s ease, visibility .25s ease;
}
.modal-overlay.open{opacity:1;visibility:visible;}
.modal{
  position:relative;background:#fff;border-radius:8px;
  max-width:640px;width:100%;max-height:85vh;overflow-y:auto;
  padding:36px 32px;box-shadow:0 30px 60px -20px rgba(0,0,0,.4);
  transform:scale(.94);transition:transform .25s ease;
}
.modal-overlay.open .modal{transform:scale(1);}
.modal__close{
  position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;
  border:0;background:var(--off-white);color:var(--navy-deep);font-size:22px;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
}
.modal__close:hover{background:var(--line);}
.modal h3{color:var(--navy-deep);font-size:22px;margin-bottom:18px;padding-right:30px;}
.modal__steps{margin:0;padding-left:22px;color:var(--charcoal);}
.modal__steps>li{margin-bottom:14px;font-size:14.5px;line-height:1.6;}
.modal__steps ul{margin:8px 0 0;padding-left:20px;list-style:disc;}
.modal__steps ul li{margin-bottom:6px;font-size:13.5px;color:var(--gray);}

.modal__body{color:var(--charcoal);font-size:14.5px;line-height:1.6;}
.modal__body h4{color:var(--navy-deep);font-size:15px;font-weight:700;margin:22px 0 8px;}
.modal__body h4:first-child{margin-top:0;}
.modal__body ul{margin:0;padding-left:20px;list-style:disc;}
.modal__body ul li{margin-bottom:7px;}
.modal__note{margin-top:26px;padding-top:22px;border-top:1px solid var(--line);}
.modal__note h4{margin-top:0;}
.modal__note .btn{margin-top:16px;}

@media (max-width:640px){
  .modal-overlay{padding:0;}
  .modal{
    max-width:100%;width:100%;height:100%;max-height:100%;
    border-radius:0;padding:28px 20px;
  }
}

/* ============ COURSES ============ */
.courses{padding:96px 0;background:#fff;}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:36px;}
.filter{
  background:transparent;border:1.5px solid var(--line);color:var(--navy-deep);
  padding:9px 18px;border-radius:30px;font-size:13.5px;font-weight:600;cursor:pointer;
  transition:.2s;
}
.filter:hover{border-color:var(--navy);}
.filter.active{background:var(--navy);border-color:var(--navy);color:#fff;}

.course-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.course-grid--3col{grid-template-columns:repeat(3,1fr);}
.course-card{
  display:block;width:100%;
  border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff;
  transition:transform .2s ease, box-shadow .2s ease;
  padding:0;text-align:left;font:inherit;cursor:pointer;
}
.course-card:hover{transform:translateY(-4px);box-shadow:0 18px 32px -14px rgba(11,37,69,.25);}
.course-card__img{
  aspect-ratio:4/3;background-size:cover;background-position:center;background-color:#e7eaee;
}
.course-card__img--pending{
  background-image:repeating-linear-gradient(135deg, #e9ecf1 0 14px, #dfe3e9 14px 28px);
  display:flex;align-items:center;justify-content:center;
}
.course-card__img--pending::after{
  content:'Foto próximamente';
  font-size:12px;font-weight:600;color:var(--gray);
  background:rgba(255,255,255,.85);padding:5px 12px;border-radius:20px;
}
.course-card__body{padding:18px 20px 22px;}
.tag{
  display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--orange);margin-bottom:8px;
}
.course-card h3{font-size:17px;color:var(--navy-deep);margin-bottom:6px;}
.course-card p{font-size:13.5px;color:var(--gray);margin:0;}
.course-card[hidden]{display:none;}

/* ============ COURSES CATEGORY (cursos.html) ============ */
.courses-category{margin-bottom:56px;}
.courses-category:last-child{margin-bottom:0;}
.courses-category__head{
  display:flex;align-items:baseline;gap:14px;margin-bottom:24px;
  border-bottom:1px solid var(--line);padding-bottom:12px;
}
.courses-category__head h2{font-size:clamp(19px,2.4vw,24px);color:var(--navy-deep);margin:0;}
.courses-category__head span{color:var(--gray);font-size:13px;}
.course-card__body p.card-note{font-size:12px;color:var(--orange);font-weight:700;margin-top:6px;}

/* ============ CLIENTS ============ */
.clients{padding:90px 0 100px;background:var(--off-white);}
.clients-header{text-align:center;margin-bottom:44px;}
.clients-header__title{margin:0;display:flex;flex-direction:column;gap:4px;}
.clients-header__line1{
  font-family:var(--font-display);font-weight:700;color:var(--navy-deep);
  font-size:clamp(18px,2.2vw,22px);letter-spacing:.01em;
}
.clients-header__line2{
  /* Rojo, no amarillo: el amarillo sobre el fondo claro de esta sección
     queda casi ilegible (~1:1 de contraste). El rojo sobre blanco/off-white
     sí cumple para texto grande (~3.4–4:1). */
  font-family:var(--font-display);font-weight:800;color:var(--orange);
  font-size:clamp(28px,4vw,40px);line-height:1.15;
}
.clients-header__divider{
  width:90px;height:4px;background:var(--orange);border-radius:2px;margin:22px auto 0;
}
.client-logo{
  width:100%;max-width:180px;height:96px;background-size:contain;background-repeat:no-repeat;background-position:center;
  background-color:transparent;
}

/* ============ CARRUSEL REUTILIZABLE (clientes, equipos, ...) ============ */
.carousel__row{display:flex;align-items:center;gap:16px;}
.carousel__viewport{
  flex:1;min-width:0;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.carousel__viewport::-webkit-scrollbar{display:none;}
.carousel__track{display:flex;}
.carousel__item{
  flex:0 0 25%;scroll-snap-align:start;padding:20px 16px;box-sizing:border-box;
  display:flex;align-items:center;justify-content:center;
}
/* Variante para tarjetas más grandes (foto + título), ej. equipos: menos
   ítems visibles por página que la variante de logos. */
.carousel--cards .carousel__item{flex:0 0 33.3334%;align-items:stretch;padding:14px;}
.carousel--cards .carousel__item > .course-card{width:100%;}

.carousel__arrow{
  flex-shrink:0;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);background:#fff;
  display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--navy-deep);
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.carousel__arrow:hover{background:var(--navy);border-color:var(--navy);color:#fff;transform:scale(1.06);}
.carousel__arrow:active{transform:scale(.96);}

.carousel__dots{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:26px;}
.carousel__dot{
  width:9px;height:9px;border-radius:50%;border:0;background:var(--line);cursor:pointer;padding:0;
  transition:background .2s ease, transform .2s ease, width .2s ease;
}
.carousel__dot:hover{background:var(--navy);}
/* Rojo, no amarillo: el punto activo debe distinguirse claramente del fondo
   claro de la sección — el amarillo ahí casi no se percibe (~1:1). */
.carousel__dot.active{background:var(--orange);width:24px;border-radius:5px;}

/* ============ CERTS ============ */
.certs{padding:0 0 100px;background:var(--off-white);}
.certs__grid{display:flex;justify-content:center;align-items:center;gap:56px;flex-wrap:wrap;}
.cert-logo{height:100px;background-size:contain;background-repeat:no-repeat;background-position:center;}

/* ============ CONTACT ============ */
.contact{background:#fff;color:var(--navy);padding:100px 0;}
.contact__grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
.contact h2{font-size:clamp(26px,3vw,34px);color:var(--navy-deep);}
.contact p{color:var(--gray);max-width:440px;}
.contact__actions{display:flex;gap:16px;margin:32px 0;flex-wrap:wrap;}
.contact__meta li{margin-bottom:8px;color:var(--charcoal);font-size:14.5px;}
.contact__meta strong{color:var(--navy);}

.contact__form-wrap{background:var(--off-white);border:1px solid var(--line);border-radius:8px;padding:32px;}
.contact__form{display:flex;flex-direction:column;gap:16px;}
.contact__form label{
  display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:600;color:var(--navy-deep);
}
.contact__form input,.contact__form textarea{
  border:1.5px solid var(--line);border-radius:4px;padding:11px 12px;font-family:var(--font-body);
  font-size:14.5px;resize:vertical;
}
.contact__form input:focus,.contact__form textarea:focus{outline:2px solid var(--navy);border-color:var(--navy);}
.form__note{font-size:12px;color:var(--gray);margin:0;}

/* ============ LIBRO DE RECLAMACIONES ============ */
.complaints{padding:80px 0 100px;background:#fff;}
.complaints__intro{max-width:840px;margin:0 auto 40px;}
.complaints__intro h2{color:var(--navy-deep);font-size:22px;margin:28px 0 12px;}
.complaints__intro h2:first-child{margin-top:0;}
.complaints__intro p{color:var(--gray);font-size:15px;margin:0 0 12px;}
.complaints__notice{
  /* Rojo, no amarillo: mismo motivo que el resto de los acentos sobre
     fondo claro de esta auditoría de contraste. */
  background:var(--off-white);border-left:3px solid var(--orange);padding:16px 20px;border-radius:4px;
  font-size:14px;color:var(--charcoal);margin-top:8px;
}

.complaints__types{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px;}
.complaints__type{border:1px solid var(--line);border-radius:6px;padding:20px;}
.complaints__type h3{color:var(--navy-deep);font-size:16px;margin-bottom:8px;}
.complaints__type p{color:var(--gray);font-size:13.5px;margin:0;}

.complaints__pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:20px;}
.complaints__pillar{border:1px solid var(--line);border-radius:6px;padding:20px;text-align:center;}
.complaints__pillar span{
  display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;
  border-radius:50%;background:var(--off-white);color:var(--orange);margin-bottom:10px;
}
.complaints__pillar h3{color:var(--navy-deep);font-size:15px;margin-bottom:6px;}
.complaints__pillar p{color:var(--gray);font-size:13px;margin:0;}

.complaints__cta{text-align:center;margin-top:32px;}

.complaints-form{
  background:var(--off-white);border:1px solid var(--line);border-radius:8px;
  padding:36px;max-width:900px;margin:0 auto;
}
.complaints-form fieldset{border:0;padding:0;margin:0 0 32px;}
.complaints-form fieldset:last-of-type{margin-bottom:0;}
.complaints-form legend{
  font-family:var(--font-display);color:var(--navy-deep);font-size:17px;font-weight:700;
  margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--line);width:100%;
}
.complaints-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;}
.complaints-form label{display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:600;color:var(--navy-deep);}
.complaints-form .required-mark{color:var(--orange);}
.complaints-form__grid > .full{grid-column:1 / -1;}

/* Los labels de .complaints-form__grid solo tienen texto suelto + un span
   (hint u obligatorio) seguido del campo; con flex-column cada nodo de texto
   se vuelve su propia fila. Se fuerzan a bloque para que el texto y el span
   queden en la misma línea, y el campo pase a la siguiente. */
.complaints-form__grid > label{display:block;}
.complaints-form__grid > label > input:not([type="radio"]):not([type="checkbox"]),
.complaints-form__grid > label > select,
.complaints-form__grid > label > textarea{display:block;width:100%;margin-top:6px;}
.complaints-form input:not([type="radio"]):not([type="checkbox"]),
.complaints-form select,
.complaints-form textarea{
  border:1.5px solid var(--line);border-radius:4px;padding:11px 12px;font-family:var(--font-body);
  font-size:14.5px;background:#fff;color:var(--charcoal);
}
.complaints-form input:not([type="radio"]):not([type="checkbox"]):focus,
.complaints-form select:focus,
.complaints-form textarea:focus{
  outline:2px solid var(--navy);border-color:var(--navy);
}
.complaints-form .input--lg{padding:16px 14px;font-size:16px;}
.complaints-form input[type="radio"],
.complaints-form input[type="checkbox"]{
  width:16px;height:16px;flex-shrink:0;accent-color:var(--navy);
}
.complaints-form textarea{resize:vertical;}
.complaints-form__hint{font-size:12px;color:var(--gray);font-weight:400;margin-top:2px;}

.complaints-radio-group{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.complaints-radio{
  display:block;border:1.5px solid var(--line);border-radius:6px;padding:16px;cursor:pointer;
  transition:border-color .2s ease, box-shadow .2s ease;background:#fff;
}
.complaints-radio:has(input:checked){border-color:var(--navy);box-shadow:0 4px 14px -6px rgba(11,37,69,.25);}
.complaints-radio input{margin-right:8px;}
.complaints-radio strong{color:var(--navy-deep);font-size:14.5px;}
.complaints-radio p{color:var(--gray);font-size:13px;margin:6px 0 0;}

.complaints-bien-group{display:flex;gap:20px;flex-wrap:wrap;}
.complaints-bien-group--center{justify-content:center;}
.complaints-bien-group label{flex-direction:row;align-items:center;gap:8px;font-weight:500;}
.complaints-bien-group input{margin:0;}

.complaints-consent{
  display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--gray);font-weight:400;
}
.complaints-consent input{margin-top:3px;}

/* ============ CHECKBOX LIST CON TEXTO EXPANDIBLE (Nueva Denuncia) ============ */
.complaints-checkbox-list{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;align-items:start;}
.complaints-checkbox{border:1.5px solid var(--line);border-radius:6px;padding:14px 16px;transition:border-color .2s ease;}
.complaints-checkbox:has(input:checked){border-color:var(--navy);}
.complaints-checkbox > label{
  display:flex;flex-direction:row;align-items:flex-start;gap:10px;font-weight:600;cursor:pointer;
}
.complaints-checkbox input{margin-top:2px;}
.complaints-checkbox details{margin:8px 0 0 26px;}
.complaints-checkbox summary{cursor:pointer;font-size:12.5px;color:var(--orange);font-weight:700;}
.complaints-checkbox details p{font-size:12.5px;color:var(--gray);margin:6px 0 0;font-weight:400;}

/* ============ PAGE TRANSITION OVERLAY ============ */
/* Se revela por CSS puro (sin depender de JS/CDN) al cargar cada página;
   el fundido de salida al navegar lo controla animations.js con GSAP. */
.page-transition{
  position:fixed;inset:0;z-index:999;
  background:var(--navy-deep);
  opacity:1;pointer-events:none;
  animation:page-reveal .6s ease forwards;
}
@keyframes page-reveal{
  from{opacity:1;}
  to{opacity:0;}
}
@media (prefers-reduced-motion: reduce){
  .page-transition{animation:none;opacity:0;}
}

/* ============ TITLE LINE REVEAL (GSAP) ============ */
.split-line-mask{display:block;overflow:hidden;}
.split-line-inner{display:block;will-change:transform;}

/* ============ FOOTER ============ */
.footer{background:#fff;color:var(--navy);border-top:1px solid var(--line);}
.footer__grid{display:grid;grid-template-columns:1.2fr .9fr .9fr 1fr 1.1fr;gap:32px;padding:64px 24px 40px;}
.footer h4{color:var(--navy-deep);font-family:var(--font-body);font-size:14px;margin-bottom:14px;}
.footer__grid > div{display:flex;flex-direction:column;gap:10px;}
.footer__desc{font-size:13.5px;margin-top:14px;max-width:280px;color:var(--gray);}
.footer a{font-size:13.5px;}
.footer a:hover{color:var(--orange);}
.footer__social{display:flex;gap:12px;margin-top:6px;}
.footer__social a{
  width:36px;height:36px;border-radius:50%;background:rgba(34,86,170,.08);
  display:flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease;
}
.footer__social a:hover{background:var(--yellow);color:var(--navy-deep);}
.footer__bottom{border-top:1px solid var(--line);padding:18px 0;font-size:12.5px;color:var(--gray);}
.footer__bottom .container{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px 20px;
}
.footer__copyright{grid-column:2;text-align:center;}
.footer__credit{
  grid-column:3;justify-self:end;
  display:flex;align-items:center;gap:5px;
  font-size:11.5px;color:var(--gray);opacity:.75;
}
.footer__credit svg{flex-shrink:0;}

@media (max-width:640px){
  .footer__bottom .container{grid-template-columns:1fr;justify-items:center;text-align:center;}
  .footer__copyright{grid-column:1;}
  .footer__credit{grid-column:1;justify-self:center;}
}

/* ============ WHATSAPP FLOAT ============ */
.whatsapp-float{
  position:fixed;bottom:24px;right:24px;z-index:200;
  background:#25D366;color:#fff;width:58px;height:58px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 20px rgba(0,0,0,.25);
  animation:pulse 2.4s infinite;
}
@keyframes pulse{
  0%{box-shadow:0 8px 20px rgba(0,0,0,.25),0 0 0 0 rgba(37,211,102,.5);}
  70%{box-shadow:0 8px 20px rgba(0,0,0,.25),0 0 0 14px rgba(37,211,102,0);}
  100%{box-shadow:0 8px 20px rgba(0,0,0,.25),0 0 0 0 rgba(37,211,102,0);}
}

.scroll-top{
  position:fixed;bottom:24px;left:24px;z-index:200;
  background:var(--navy-deep);color:#fff;width:46px;height:46px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;
  box-shadow:0 8px 20px rgba(0,0,0,.25);
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .25s ease,transform .25s ease,visibility .25s,background .2s;
}
.scroll-top.is-visible{opacity:1;visibility:visible;transform:translateY(0);}
.scroll-top:hover{background:var(--navy);}

/* ============ 404 ============ */
.error-page{
  background:var(--navy-deep);color:#fff;min-height:70vh;
  display:flex;align-items:center;position:relative;overflow:hidden;
}
.error-page::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(100deg, rgba(18,44,99,1) 0%, rgba(18,44,99,.9) 55%, rgba(27,63,139,.75) 100%);
}
.error-page__content{position:relative;z-index:1;text-align:center;padding:80px 24px;}
.error-page__code{
  font-family:var(--font-display);font-weight:800;
  font-size:clamp(90px,18vw,180px);line-height:1;color:var(--yellow);
  margin:0 0 8px;
}
.error-page h1{font-size:clamp(22px,3vw,32px);margin:0 0 12px;}
.error-page p{color:#d3ddec;font-size:15.5px;max-width:480px;margin:0 auto 32px;}
.error-page__actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;}

/* ============ RESPONSIVE ============ */
@media (prefers-reduced-motion: reduce){
  .whatsapp-float{animation:none;}
  html{scroll-behavior:auto;}
  .scroll-top{transition:opacity .01s,visibility .01s;}
}

@media (max-width:1024px){
  .course-grid{grid-template-columns:repeat(2,1fr);}
  .about__grid{grid-template-columns:1fr;}
  .about__media{order:-1;height:auto;}
  .about__img{aspect-ratio:978/481;min-height:0;}
  .contact__grid{grid-template-columns:1fr;}
  .program-grid{grid-template-columns:1fr;}
  .program-side{position:static;}
  .services-overview__grid{grid-template-columns:1fr;}
  .clients-page__grid{grid-template-columns:repeat(3,1fr);}
  .mv-grid{grid-template-columns:1fr;}
  .values-grid{grid-template-columns:repeat(2,1fr);}
  .footer__grid{grid-template-columns:1fr 1fr;}
  .complaints__types{grid-template-columns:1fr;}
  .complaints__pillars{grid-template-columns:1fr;}
  .complaints-form__grid{grid-template-columns:1fr;}
  .complaints-radio-group{grid-template-columns:1fr;}
  .complaints-checkbox-list{grid-template-columns:1fr;}
  .carousel__item{flex:0 0 33.3334%;}
  .carousel--cards .carousel__item{flex:0 0 50%;}
}

@media (max-width:768px){
  .nav{
    position:fixed;top:0;right:0;height:100vh;width:78%;max-width:320px;
    background:var(--navy);flex-direction:column;align-items:stretch;padding:100px 32px;gap:22px;
    transform:translateX(100%);transition:transform .3s ease;overflow-y:auto;
  }
  .nav.open{transform:translateX(0);}
  .nav > a{color:#e2e8f0;}
  .nav-dropdown__toggle{color:#e2e8f0;}
  .nav__toggle{display:flex;}
  .header__cta{display:none;}
  .stats__grid{grid-template-columns:repeat(2,1fr);}
  .course-grid{grid-template-columns:1fr;}
  .values-grid{grid-template-columns:1fr;}
  .value-card{min-height:0;}
  .footer__grid{grid-template-columns:1fr;}
  .hero__content{padding:70px 20px 90px;}
  .topbar__location,.topbar__social{display:none;}
  .topbar__inner{justify-content:center;}

  /* Dropdown como acordeón dentro del menú lateral */
  .nav-dropdown__toggle{width:100%;justify-content:space-between;}
  .nav-dropdown__panel{
    position:static;transform:none;visibility:visible;opacity:1;
    box-shadow:none;background:transparent;min-width:0;padding:0 0 0 14px;
    max-height:0;overflow:hidden;transition:max-height .3s ease;
  }
  .nav-dropdown.open .nav-dropdown__panel{max-height:400px;}
  .nav-dropdown__panel a{color:#cbd5e1;padding:9px 0;}
  .nav-dropdown__panel a:hover{background:transparent;color:#fff;}
  .nav-dropdown__more{border-top-color:rgba(255,255,255,.15);}

  /* Neutraliza el transform de :hover/:focus-within del dropdown de escritorio,
     que si no se gana por especificidad (no por orden) al tocar el botón en móvil. */
  .nav-dropdown:hover .nav-dropdown__panel,
  .nav-dropdown:focus-within .nav-dropdown__panel{transform:none;}

  .complaints-form{padding:24px 18px;}
  .complaints-bien-group{flex-direction:column;gap:10px;}
  .carousel__item{flex:0 0 50%;}
  .carousel--cards .carousel__item{flex:0 0 100%;}
  .carousel__arrow{width:38px;height:38px;}
  .carousel__row{gap:8px;}
  .mv-card__header{padding:0 20px;height:68px;}
  .mv-card__body{padding:0 20px 20px;}
}
