/* ============================================================
   CLASES DE MANEJO — style.css (único)
   Paleta: verde + azul acero originales de la escuela
   ============================================================ */

/* ---------- FUENTES self-hosted ---------- */
@font-face{font-family:'Barlow';src:url('../IMG/fonts/barlow-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Barlow';src:url('../IMG/fonts/barlow-latin-600-normal.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('../IMG/fonts/barlow-condensed-latin-700-normal.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('../IMG/fonts/barlow-condensed-latin-800-normal.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap}

/* ---------- TOKENS ---------- */
:root{
  /* Paleta original de la escuela */
  --verde:        #3E8C3E;   /* verde logo/botones */
  --verde-osc:    #2A6B2A;
  --verde-clr:    #56A856;
  --verde-bg:     #EBF5EB;   /* fondo muy suave */
  --azul:         #3B6B8A;   /* azul acero secciones oscuras */
  --azul-osc:     #2A4F6A;   
  --azul-clr:     #4F85A8;
  --azul-bg:      #EBF2F7;

  --blanco:       #FFFFFF;
  --gris-claro:   #F5F6F7;
  --gris-borde:   #DDE2E8;
  --tinta:        #1A1F24;
  --tinta-2:      #4A5560;
  --tinta-3:      #8A96A3;

  --ff-display:   'Barlow Condensed', 'Arial Narrow', Arial, sans-serif;
  --ff-body:      'Barlow', system-ui, -apple-system, sans-serif;

  --wrap:         1320px;
  --gut:          20px;
  --r:            10px;
  --r-lg:         16px;
  --r-pill:       100px;
  --header-h:     70px;

  --sh:           0 2px 12px rgba(26,31,36,.09);
  --sh-lg:        0 8px 32px rgba(26,31,36,.13);
  --ease:         cubic-bezier(.22,.61,.36,1);
}
@media(min-width:768px){:root{--gut:36px;--header-h:76px}}

/* ---------- RESET ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--ff-body);font-size:17px;line-height:1.6;
  color:var(--tinta);background:var(--blanco);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%;height:auto}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}
ul,ol{list-style:none;padding:0}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
:focus-visible{outline:3px solid var(--verde);outline-offset:3px;border-radius:3px}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ---------- UTILIDADES ---------- */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.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}
.skip{position:absolute;left:8px;top:-60px;z-index:300;background:var(--verde);color:#fff;padding:10px 18px;border-radius:var(--r);font-weight:600;transition:top .2s}
.skip:focus{top:8px}

/* ---------- TIPOGRAFÍA ---------- */
.eyebrow{display:inline-block;font-size:.8125rem;font-weight:600;letter-spacing:.13em;
  text-transform:uppercase;color:var(--verde);margin-bottom:.55rem}
.h-xl{font-family:var(--ff-display);font-weight:800;line-height:.97;
  font-size:clamp(2.4rem,5.5vw,3.9rem);text-wrap:balance}
.h-lg{font-family:var(--ff-display);font-weight:800;line-height:1;
  font-size:clamp(1.85rem,3.6vw,2.9rem);text-wrap:balance}
.h-md{font-family:var(--ff-display);font-weight:700;line-height:1.08;
  font-size:clamp(1.3rem,2.2vw,1.75rem)}
.h-sm{font-family:var(--ff-display);font-weight:700;font-size:1.15rem;line-height:1.15}
.lead{font-size:clamp(1rem,1.4vw,1.125rem);color:var(--tinta-2);max-width:60ch}

/* ---------- BOTONES ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  min-height:50px;padding:.8rem 1.6rem;border-radius:var(--r-pill);
  font-family:var(--ff-body);font-weight:600;font-size:1rem;line-height:1.2;
  border:2px solid transparent;text-align:center;
  transition:background .2s var(--ease),border-color .2s var(--ease),
             color .2s var(--ease),transform .18s var(--ease),box-shadow .2s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn svg{width:19px;height:19px;fill:currentColor;flex:0 0 19px}

.btn-wa{background:var(--verde);color:#fff;box-shadow:var(--sh)}
.btn-wa:hover{background:var(--verde-osc);box-shadow:var(--sh-lg)}
.btn-pri{background:var(--verde);color:#fff;box-shadow:var(--sh)}
.btn-pri:hover{background:var(--verde-osc);box-shadow:var(--sh-lg)}
.btn-out{
  background:transparent;
  color:var(--tinta);
  border-color:#b8c4cc;
}

.btn-out:hover{
  border-color:var(--verde);
  color:var(--verde);
}
.btn-out:hover{border-color:var(--verde);color:var(--verde)}
.btn-out-w{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.btn-out-w:hover{background:rgba(255,255,255,.1);border-color:#fff}
.btn-sm{min-height:42px;padding:.6rem 1.2rem;font-size:.9375rem}
.btn-full{width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}

/* ---------- SECCIONES ---------- */
.sec{padding-block:clamp(3.2rem,7vw,5.5rem)}
.sec-azul{background:var(--azul);color:#fff}
.sec-verde{background:var(--verde-osc);color:#fff}
.sec-gris{background:var(--gris-claro)}
.sec-verde-bg{background:var(--verde-bg)}
.sec-tight{padding-block:clamp(2rem,4.5vw,3.5rem)}

.sec-head{margin-bottom:clamp(1.8rem,3.5vw,2.8rem)}
.sec-head--c{text-align:center}
.sec-head--c .lead{margin-inline:auto}
.sec-head .lead{margin-top:.7rem}

/* ============================================================
   HEADER
   ============================================================ */
.hdr{
  position:sticky;
  top:0;
  z-index:100;

  background:rgba(255,255,255,.72);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);

  border-bottom:1px solid rgba(62,140,62,.35);

  transition:
    background .25s ease,
    border-color .25s ease;
}
.hdr-in{display:flex;align-items:center;gap:1rem;min-height:var(--header-h)}

.hdr-logo{flex:0 0 auto;margin-right:auto;display:flex;align-items:center}
.hdr-logo img{width:140px;height:70px;object-fit:contain}

/* nav desktop */
.hdr-nav{display:none}
.hdr-cta{display:none}

@media(min-width:1024px){
  .hdr-nav{display:flex;align-items:center;gap:.25rem}
  .hdr-nav a{padding:.45rem .8rem;border-radius:var(--r);font-weight:600;font-size:1rem;
    transition:background .15s,color .15s}
  .hdr-nav a:hover{background:var(--verde-bg);color:var(--verde-osc)}
  .hdr-nav a[aria-current="page"]{color:var(--verde);
    box-shadow:inset 0 -2px 0 var(--verde)}
  .hdr-cta{display:inline-flex;margin-left:.75rem}
}

/* burger */
.burger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:10px;border-radius:var(--r);
  border:1px solid var(--gris-borde)}
.burger span{display:block;height:2px;background:var(--tinta);border-radius:2px;
  transition:transform .25s var(--ease),opacity .2s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.mob-menu{position:fixed;inset:var(--header-h) 0 auto 0;z-index:99;
  background:#fff;border-bottom:1px solid var(--gris-borde);box-shadow:var(--sh-lg);
  padding:.5rem var(--gut) 1.4rem;
  transform:translateY(-10px);opacity:0;visibility:hidden;
  transition:transform .25s var(--ease),opacity .22s,visibility .25s}
.mob-menu[data-open="true"]{transform:none;opacity:1;visibility:visible}
.mob-menu a{display:block;padding:.8rem .2rem;font-weight:600;font-size:1.15rem;
  border-bottom:1px solid var(--gris-borde)}
.mob-menu a:hover{color:var(--verde)}
.mob-menu .btn{margin-top:1rem}

@media(min-width:1024px){.burger,.mob-menu{display:none}}

/* ============================================================
   HERO — foto completa + overlay azul
   ============================================================ */

.hero{
  position:relative;
  overflow:hidden;
  background:#3f718f;
  color:#fff;
}

/* Altura controlada para que se vea también la barra de confianza */
.hero-in{
  position:relative;
  min-height:460px;
  display:flex;
  align-items:center;
  z-index:2;
}

/* La foto ocupa TODO el hero */
.hero-img{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
}

.hero-img img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 58%;
}

/* Veladura azul: más fuerte a la izquierda y más transparente hacia la derecha */
.hero-img::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(
      90deg,
      rgba(63,113,143,.88) 0%,
      rgba(63,113,143,.72) 30%,
      rgba(63,113,143,.42) 58%,
      rgba(63,113,143,.16) 82%,
      rgba(63,113,143,.08) 100%
    );
  z-index:1;
}

/* Contenido encima de la foto */
.hero-content{
  position:relative;
  z-index:3;
  width:min(650px, 62%);
  padding-block:2rem;
  margin-left:clamp(1.5rem, 4vw, 4rem);
}

/* Badge */
.hero-badge{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.28);
  border-radius:var(--r-pill);
  padding:.35rem 1rem;
  font-size:.8125rem;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,.94);
  margin-bottom:1rem;
  width:fit-content;
}

.hero-badge::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--verde-clr);
}

/* Título */
.hero-content .h-xl{
  margin-bottom:.85rem;
  max-width:620px;
}

.hero-content .h-xl em{
  font-style:normal;
  color:var(--verde-clr);
}

/* Texto */
.hero-content .lead{
  color:rgba(255,255,255,.88);
  margin-bottom:1.35rem;
  max-width:600px;
}

/* Indicadores */
.hero-trust{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem 1.3rem;
  margin-bottom:1.35rem;
}

.hero-trust span{
  font-size:.9375rem;
  color:rgba(255,255,255,.82);
  display:flex;
  align-items:center;
  gap:.35rem;
}

.hero-trust strong{
  color:#fff;
  font-weight:600;
}

/* ============================================================
   MOBILE
   ============================================================ */

@media(max-width:899px){

  .hero-in{
    min-height:500px;
    align-items:flex-end;
  }

  .hero-content{
    width:100%;
    margin-left:0;
    padding:2rem 1.25rem 2.25rem;
  }

  .hero-img::after{
    background:
      linear-gradient(
        180deg,
        rgba(63,113,143,.25) 0%,
        rgba(63,113,143,.52) 42%,
        rgba(63,113,143,.88) 100%
      );
  }
}

/* HERO — fade in */
.hero{
  animation:heroFadeIn 1.2s ease both;
}

@keyframes heroFadeIn{
  from{
    opacity:0;
  }
  to{
    opacity:1;
  }
}

@media(prefers-reduced-motion:reduce){
  .hero{
    animation:none;
    opacity:1;
  }
}


/* ============================================================
   BARRA DE CONFIANZA
   ============================================================ */
.trust{background:var(--verde);color:#fff}
.trust-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--verde-osc)}
@media(min-width:768px){.trust-grid{grid-template-columns:repeat(4,1fr)}}
.trust-it{background:var(--verde);padding:1.3rem 1rem;text-align:center}
.trust-n{display:block;font-family:var(--ff-display);font-weight:800;
  font-size:clamp(1.7rem,3.5vw,2.4rem);line-height:1;color:#fff}
.trust-l{display:block;font-size:.875rem;color:rgba(255,255,255,.8);margin-top:.3rem}

/* ============================================================
   POR QUÉ ELEGIRNOS — CARDS SPOTLIGHT
   ============================================================ */

.why-grid{
  display:grid;
  gap:1rem;
}

@media(min-width:640px){
  .why-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

@media(min-width:1024px){
  .why-grid{
    grid-template-columns:repeat(3,1fr);
  }
}

.why-card{
  --mouse-x: 50%;
  --mouse-y: 50%;

  position:relative;
  overflow:hidden;

  background-color:var(--azul-osc);

  /* textura de pequeños puntos */
  background-image:
    radial-gradient(
      circle,
      rgba(210,235,245,.13) 1px,
      transparent 1.2px
    );

  background-size:22px 22px;

  border:1px solid rgba(125,180,205,.22);
  border-top:3px solid var(--verde);

  border-radius:var(--r-lg);

  padding:1.6rem 1.4rem;

  color:#fff;

  transition:
    transform .25s var(--ease),
    border-color .3s var(--ease),
    box-shadow .3s var(--ease);
}

/* --------------------------------
   Luz que sigue al mouse
   -------------------------------- */

.why-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;

  background:
    radial-gradient(
      260px circle at var(--mouse-x) var(--mouse-y),
      rgba(150,215,235,.20) 0%,
      rgba(90,160,190,.10) 28%,
      transparent 68%
    );

  opacity:0;
  transition:opacity .35s ease;
}

/* Halo más concentrado sobre el borde */

.why-card::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;

  border-radius:inherit;

  background:
    radial-gradient(
      180px circle at var(--mouse-x) var(--mouse-y),
      rgba(190,230,245,.75),
      transparent 62%
    );

  opacity:0;
  transition:opacity .3s ease;

  /* hace que la luz quede principalmente en el borde */
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);

  -webkit-mask-composite:xor;
  mask-composite:exclude;

  padding:1px;
}

/* --------------------------------
   Contenido por encima de las luces
   -------------------------------- */

.why-card > *{
  position:relative;
  z-index:2;
}

/* Icono */

.why-ico{
  width:44px;
  height:44px;
  border-radius:var(--r);

  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.12);

  display:grid;
  place-items:center;

  color:#b9dfec;

  transition:
    background .3s ease,
    color .3s ease,
    border-color .3s ease;
}

.why-ico svg{
  width:24px;
  height:24px;

  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Título */

.why-card h3{
  margin:.9rem 0 .4rem;

  color:#fff;
}

/* Texto */

.why-card p{
  color:rgba(235,245,250,.76);
  font-size:1rem;
}

/* --------------------------------
   HOVER
   -------------------------------- */

@media (hover:hover) and (pointer:fine){

  .why-card:hover{
    transform:translateY(-5px);

    border-color:rgba(130,205,230,.48);

    box-shadow:
      0 16px 40px rgba(20,70,100,.22),
      0 0 28px rgba(70,155,190,.10);
  }

  .why-card:hover::before,
  .why-card:hover::after{
    opacity:1;
  }

  .why-card:hover .why-ico{
    background:rgba(150,215,235,.14);
    border-color:rgba(180,225,240,.28);
    color:#d8f1fa;
  }
}

/* ============================================================
   HABILITACIÓN OFICIAL
   ============================================================ */

.habilitacion{
  display:flex;
  align-items:center;
  gap:1rem;
  margin-top:2rem;
  padding: .7rem 1.2rem;

  background:var(--verde-bg);
  border:1px solid rgba(62,140,62,.25);
  border-left:4px solid var(--verde);
  border-radius:var(--r);

  color:var(--tinta);
}

.habilitacion-icon{
  flex:0 0 42px;
  width:42px;
  height:42px;

  display:grid;
  place-items:center;

  background:#fff;
  border-radius:50%;
  color:var(--verde);
}

.habilitacion-icon svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.habilitacion-copy{
  min-width:0;
  flex:1;
}

.habilitacion-copy strong{
  display:block;
  color:var(--tinta);
  font-weight:700;
  margin-bottom:.15rem;
}

.habilitacion-copy span{
  display:block;
  color:var(--tinta-2);
  font-size:.875rem;
}

.habilitacion-link{
  flex:0 0 auto;

  display:inline-flex;
  align-items:center;
  gap:.35rem;

  color:var(--verde-osc);
  font-weight:700;
  font-size:.875rem;
  text-decoration:none;
}

.habilitacion-link svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.3;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .2s;
}

.habilitacion-link:hover{
  color:var(--verde);
}

.habilitacion-link:hover svg{
  transform:translate(2px,-2px);
}

@media(max-width:639px){

  .habilitacion{
    align-items:flex-start;
    flex-wrap:wrap;
  }

  .habilitacion-copy{
    flex:1 1 calc(100% - 58px);
  }

  .habilitacion-link{
    margin-left:58px;
  }

}

/* ============================================================
   SEPARADOR — MARQUEE
   ============================================================ */

.marquee-strip{
  position:relative;
  z-index:2;
  padding:22px 0;
  overflow:hidden;

  background:var(--azul-osc);
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
}

.marquee-track{
  display:flex;
  align-items:center;
  gap:42px;
  width:max-content;

  animation:marquee 28s linear infinite;
}

.marquee-track span{
  display:flex;
  align-items:center;
  gap:12px;

  white-space:nowrap;

  font-family:var(--font-display);
  font-size:1rem;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;

  color:rgba(255,255,255,.72);
}

.marquee-track span::before{
  content:"";

  width:6px;
  height:6px;
  flex:0 0 6px;

  border-radius:50%;
  background:var(--verde-clr);
}

@keyframes marquee{
  from{
    transform:translateX(0);
  }

  to{
    transform:translateX(-50%);
  }
}

@media(max-width:639px){

  .marquee-strip{
    padding:17px 0;
  }

  .marquee-track{
    gap:28px;
    animation-duration:22s;
  }

  .marquee-track span{
    font-size:.78rem;
  }
}

@media(prefers-reduced-motion:reduce){

  .marquee-track{
    animation:none;
  }
}


/* ============================================================
   PASOS — CÓMO FUNCIONA
   ============================================================ */
.steps-grid{display:grid;gap:1.4rem}
@media(min-width:768px){.steps-grid{grid-template-columns:repeat(5,1fr);gap:1rem}}
.step{position:relative;display:flex;gap:1rem;align-items:flex-start}
@media(min-width:768px){.step{flex-direction:column;gap:.7rem;text-align:center;align-items:center}}
.step-n{flex:0 0 40px;width:40px;height:40px;border-radius:50%;
  background:var(--verde);color:#fff;font-family:var(--ff-display);font-weight:800;
  font-size:1.1rem;display:grid;place-items:center}
.step--opt .step-n{background:var(--azul)}
.step h3{font-family:var(--ff-display);font-weight:700;font-size:1.05rem;
  color:var(--tinta);margin-bottom:.25rem}
.step p{font-size:.9375rem;color:var(--tinta-2)}
.step-tag{display:inline-block;padding:.1rem .5rem;border-radius:5px;
  background:var(--azul-bg);color:var(--azul);font-size:.75rem;font-weight:600;
  text-transform:uppercase;letter-spacing:.06em}
/* Conector entre pasos en desktop */
@media(min-width:768px){
  .step:not(:last-child)::after{content:"";position:absolute;
    top:20px;left:calc(50% + 20px);right:calc(-50% + 20px);
    height:2px;background:var(--gris-borde)}
}

/* ============================================================
   QUÉ CLASE NECESITÁS + PARALLAX
   ============================================================ */

.need-section{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:var(--verde-osc);
}

/* Foto que ocupa TODA la sección */
.need-parallax{
  position:absolute;
  inset:-18% 0;
  z-index:-2;
  will-change:transform;
  overflow:hidden;
}

.need-parallax img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

/* Veladura verde sobre toda la imagen */
.need-section::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;

  background:
    linear-gradient(
      135deg,
      rgba(42,107,42,.90) 0%,
      rgba(42,107,42,.78) 45%,
      rgba(30,80,30,.84) 100%
    );
}

/* Contenido por encima de la imagen */
.need-section > .wrap{
  position:relative;
  z-index:2;
}


/* ============================================================
   GRID — QUÉ CLASE NECESITÁS
   ============================================================ */

.need-grid{
  display:grid;
  gap:1rem;
}

@media(min-width:640px){
  .need-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

@media(min-width:1024px){
  .need-grid{
    grid-template-columns:repeat(4,1fr);
  }
}


/* ============================================================
   CARDS — MISMO FONDO QUE "¿POR QUÉ ELEGIRNOS?"
   PERO CON HOVER PROPIO
   ============================================================ */

.need-card{
  position:relative;
  overflow:hidden;

  display:flex;
  flex-direction:column;

  /* MISMO FONDO QUE WHY-CARD */
  background-color:var(--azul-osc);

  background-image:
    radial-gradient(
      circle,
      rgba(210,235,245,.13) 1px,
      transparent 1.2px
    );

  background-size:22px 22px;

  border:2px solid var(--azul-clr);
  border-radius:var(--r-lg);

  padding:1.5rem 1.3rem;

  color:#fff;

  transition:
    transform .2s var(--ease),
    border-color .2s var(--ease),
    box-shadow .2s var(--ease);
}

/* Hover propio de estas cards */
.need-card:hover{
  transform:translateY(-5px);
  border-color:#fff;
  box-shadow:0 12px 30px rgba(10,45,65,.25);
}

.need-card h3{
  font-family:var(--ff-display);
  font-weight:800;
  font-size:1.3rem;
  line-height:1.1;
  color:#fff;
  margin-bottom:.5rem;
}

.need-card p{
  font-size:.9375rem;
  color:rgba(255,255,255,.75);
  margin-bottom:1.2rem;
}

.need-card .go{
  margin-top:auto;

  color:var(--verde-clr);
  font-weight:600;
  font-size:.9375rem;

  display:flex;
  align-items:center;
  gap:.4rem;
}

.need-card .go svg{
  width:16px;
  height:16px;

  fill:none;
  stroke:currentColor;
  stroke-width:2.5;
  stroke-linecap:round;
  stroke-linejoin:round;

  transition:transform .2s;
}

.need-card:hover .go svg{
  transform:translateX(4px);
}


/* ============================================================
   MOBILE
   ============================================================ */

@media(max-width:639px){

  .need-parallax{
    inset:-18% 0;
  }

  .need-section::after{
    background:
      linear-gradient(
        180deg,
        rgba(42,107,42,.78) 0%,
        rgba(42,107,42,.88) 55%,
        rgba(30,80,30,.94) 100%
      );
  }

  .need-card{
    padding:1.3rem 1.15rem;
  }

}

/* ============================================================
   MODALIDADES
   Mismo lenguaje visual que "¿Por qué elegirnos?"
   ============================================================ */

.mod-grid{
  display:grid;
  gap:.8rem;
  margin-bottom:2rem;
}

@media(min-width:560px){
  .mod-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

@media(min-width:900px){
  .mod-grid{
    grid-template-columns:repeat(4,1fr);
  }
}

/* Card */

.mod-it{
  position:relative;
  overflow:hidden;

  display:flex;
  align-items:center;
  gap:.8rem;

  background-color:var(--azul-osc);

  background-image:
    radial-gradient(
      circle,
      rgba(210,235,245,.13) 1px,
      transparent 1.2px
    );

  background-size:22px 22px;

  border:2px solid var(--azul-clr);
  border-radius:var(--r);

  padding:1rem 1.1rem;

  color:#fff;

  transition:
    transform .2s var(--ease),
    border-color .2s var(--ease),
    box-shadow .2s var(--ease);
}

/* Iluminación suave al pasar el mouse */

.mod-it::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;

  background:
    radial-gradient(
      180px circle at var(--mouse-x,50%) var(--mouse-y,50%),
      rgba(210,235,245,.16),
      transparent 65%
    );

  opacity:0;
  transition:opacity .3s ease;
}

/* Hover */

.mod-it:hover{
  transform:translateY(-4px);
  border-color:var(--azul-clr);
  box-shadow:0 12px 30px rgba(10,45,65,.25);
}

.mod-it:hover::after{
  opacity:1;
}

/* Icono */

.mod-it svg{
  position:relative;
  z-index:1;

  flex:0 0 22px;
  width:22px;
  height:22px;

  color:#b8ddec;

  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;

  transition:
    color .2s ease,
    transform .2s ease;
}

.mod-it:hover svg{
  color:#fff;
  transform:scale(1.08);
}

/* Texto */

.mod-it > span{
  position:relative;
  z-index:1;
  display:block;
}

.mod-it b{
  display:block;
  font-weight:600;
  font-size:.9688rem;
  color:#fff;
  margin-bottom:.15rem;
}

.mod-it > span > span{
  display:block;
  font-size:.8438rem;
  color:rgba(255,255,255,.72);
}

/* Mobile */

@media(max-width:559px){

  .mod-it{
    padding:.95rem 1rem;
  }

  .mod-it:hover{
    transform:none;
  }

}

/* SEPARADOR LINEA ENTRE SECCIONES */

.section-divider{
  width:min(1200px,86%);
  height:9px;
  margin:42px auto 46px;
  background:var(--azul-clr);
  border-radius:999px;
}

@media(max-width:639px){
  .section-divider{
    width:78%;
    height:7px;
    margin:32px auto 36px;
  }
}

/* ============================================================
   RESEÑAS — GRILLA FIJA
   ============================================================ */

.sec-resenas{
  background:#fff;
}

.reviews-row{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1rem;
}

.rev-slide{
  background-color:var(--azul-osc);
  background-image:
    radial-gradient(
      circle,
      rgba(210,235,245,.13) 1px,
      transparent 1.2px
    );
  background-size:22px 22px;

  border:2px solid var(--azul-clr);
  border-radius:var(--r-lg);
  padding:1.4rem;

  display:flex;
  flex-direction:column;
  color:#fff;

  min-width:0;
}

.rev-stars{
  display:flex;
  gap:2px;
  margin-bottom:.8rem;
  color:#F5A623;
  font-size:1.1rem;
  letter-spacing:1px;
}

.rev-quote{
  font-size:.9688rem;
  line-height:1.6;
  color:rgba(255,255,255,.82);
  flex:1;
  margin:0 0 1rem;
}

.rev-quote strong{
  color:#fff;
  font-weight:800;
}

.rev-meta{
  display:flex;
  align-items:center;
  gap:.65rem;

  padding-top:.9rem;
  border-top:1px solid rgba(255,255,255,.18);
  margin-top:auto;
}

.rev-av{
  width:38px;
  height:38px;
  border-radius:50%;
  flex:0 0 38px;
  object-fit:cover;
  display:block;
}

.rev-meta b{
  display:block;
  font-weight:600;
  font-size:.9375rem;
  color:#fff;
}

.rev-meta span span{
  display:block;
  font-size:.8125rem;
  color:rgba(255,255,255,.65);
}


/* MOBILE */

@media(max-width:899px){
  .reviews-row{
    grid-template-columns:repeat(2, 1fr);
  }
}

@media(max-width:639px){
  .reviews-row{
    grid-template-columns:1fr;
  }

  .rev-slide{
    padding:1.2rem;
  }
}

/* ============================================================
   RESEÑAS — ECARDS AZULES
   ============================================================ */

.sec-resenas{
  background:#fff;
}

.rev-slide{
  flex:0 0 clamp(260px,78vw,340px);
  scroll-snap-align:start;

  background-color:var(--azul-osc);
  background-image:
    radial-gradient(
      circle,
      rgba(210,235,245,.13) 1px,
      transparent 1.2px
    );
  background-size:22px 22px;

  border:2px solid var(--azul-clr);
  border-radius:var(--r-lg);

  padding:1.4rem;

  display:flex;
  flex-direction:column;

  color:#fff;

  transition:
    transform .2s var(--ease),
    border-color .2s var(--ease),
    box-shadow .2s var(--ease);
}

.rev-slide:hover{
  transform:translateY(-5px);
  border-color:#fff;
  box-shadow:0 12px 30px rgba(10,45,65,.25);
}

.rev-quote{
  font-size:.9688rem;
  line-height:1.6;
  color:rgba(255,255,255,.82);
  flex:1;
  margin-bottom:1rem;
}

.rev-meta{
  display:flex;
  align-items:center;
  gap:.65rem;

  padding-top:.9rem;
  border-top:1px solid rgba(255,255,255,.18);
  margin-top:auto;
}

.rev-av{
  width:38px;
  height:38px;
  border-radius:50%;
  flex:0 0 38px;

  background:rgba(255,255,255,.12);
  color:#fff;

  font-family:var(--ff-display);
  font-weight:800;
  font-size:1rem;

  display:grid;
  place-items:center;
  text-transform:uppercase;
}

.rev-meta b{
  display:block;
  font-weight:600;
  font-size:.9375rem;
  color:#fff;
}

.rev-meta span{
  display:block;
  font-size:.8125rem;
  color:rgba(255,255,255,.65);
}


.rev-av{
  overflow:hidden;
}

.rev-av img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.sec-resenas .reviews-row{
  flex-wrap:wrap;          /* permite 2 filas */
  overflow-x:visible;      /* no scroll en reseñas */
}
.sec-resenas .rev-slide{
  flex:0 0 calc(33.333% - .67rem);   /* 3 por fila en desktop */
  min-width:260px;
  background-color:var(--azul-osc);
  background-image:radial-gradient(circle,rgba(210,235,245,.13) 1px,transparent 1.2px);
  background-size:22px 22px;
  border:2px solid var(--azul-clr);
  border-radius:var(--r-lg);
  padding:1.4rem;
  display:flex;
  flex-direction:column;
  color:#fff;
  transition:transform .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.sec-resenas .rev-slide:hover{
  transform:translateY(-5px);
  border-color:#fff;
  box-shadow:0 12px 30px rgba(10,45,65,.25);
}
@media(max-width:900px){
  .sec-resenas .rev-slide{flex:0 0 calc(50% - .5rem)}
}
@media(max-width:600px){
  .sec-resenas .rev-slide{flex:0 0 100%}
}




/* ============================================================
   CTA BLOQUE — ir a packs
   ============================================================ 
.ctap{background:var(--verde);border-radius:var(--r-lg);
  padding:clamp(2rem,5vw,3rem);text-align:center;color:#fff}
.ctap p{max-width:50ch;margin:.8rem auto 1.7rem;color:rgba(255,255,255,.85)}
.ctap .btn-row{justify-content:center}*/

/* ============================================================
   ZONAS Y SUCURSALES
   ============================================================ */
.suc-grid{display:grid;gap:1rem;margin-bottom:1.5rem}
@media(min-width:820px){
  .suc-grid{
    grid-template-columns:repeat(2, 380px);
    justify-content:center;
    gap:13rem;
  }
}
.suc{
  background:#c8c9c9;
  border:2px solid var(--verde);
  border-radius:var(--r-lg);
  overflow:hidden;
  box-shadow:var(--sh);
}
.suc-img{aspect-ratio:4/3;background:var(--azul-bg);overflow:hidden}
.suc-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.suc:hover .suc-img img{transform:scale(1.04)}
.suc-body{padding:1.2rem 1.3rem}
.suc-body h3{margin-bottom:.2rem;color:var(--azul-osc)}
.suc-dir{color:var(--tinta-2);font-size:.9688rem;margin-bottom:1rem}

.zonas-nota{display:flex;gap:.8rem;align-items:flex-start;
  background:#f3f5f6;
  border:2px solid var(--verde);
  border-radius:var(--r);
  padding:1.1rem 1.2rem;margin-bottom:1.7rem}
.zonas-nota svg{flex:0 0 20px;width:20px;height:20px;margin-top:2px;
  color:var(--verde);fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.zonas-nota p{font-size:.9688rem;color:var(--tinta-2)}
.zonas-nota b{color:var(--tinta);font-weight:600}

/* ZONAS Y SUCURSALES — mismo fondo visual que Contacto */
.zonas{
  background-color:var(--azul-osc);
  background-image:
    radial-gradient(
      circle,
      rgba(210,235,245,.13) 1px,
      transparent 1.2px
    );
  background-size:22px 22px;
  color:#fff;
}

.zonas .sec-head .eyebrow{
  color:var(--verde-clr);
}

.zonas .sec-head .lead{
  color:rgba(255,255,255,.82);
}


/* ============================================================
   RECURSOS ÚTILES
   ============================================================ */
.rec-grid{display:grid;gap:.75rem}
@media(min-width:640px){.rec-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.rec-grid{grid-template-columns:repeat(3,1fr)}}
.rec-it{display:flex;align-items:center;gap:.9rem;
  background:#fff;border:1px solid var(--gris-borde);border-radius:var(--r);
  padding:1rem 1.1rem;
  transition:border-color .2s,transform .18s}
.rec-it:hover{border-color:var(--tinta);transform:translateX(3px)}
.rec-it svg.ic{flex:0 0 22px;width:22px;height:22px;color:var(--verde);
  fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rec-it b{display:block;font-weight:600;font-size:.9375rem;line-height:1.3}
.rec-it span{display:block;font-size:.8125rem;color:var(--tinta-3);margin-top:.1rem}
.rec-it .arw{margin-left:auto;flex:0 0 17px;width:17px;height:17px;
  color:var(--tinta-3);fill:none;stroke:currentColor;stroke-width:2.4;
  stroke-linecap:round;stroke-linejoin:round}
.is-pendiente{opacity:.5;pointer-events:none}

/* ── RECURSOS ÚTILES — puntos blancos ── 
.sec-verde{
  background-image:
    radial-gradient(
      circle,
      rgba(255,255,255,.13) 1px,
      transparent 1.2px
    );
  background-size:22px 22px;
}*/

/* ============================================================
   CTA FINAL
   ============================================================ */
.final{text-align:center}
.final .lead{margin:1rem auto 2rem}

/* ============================================================
   FOOTER
   ============================================================ */
.ftr{background:var(--azul-osc);color:#C8DBC8;font-size:.9688rem;
  padding-block:clamp(3rem,6vw,4.5rem) 0}
.ftr a:hover{color:var(--verde-clr)}
.ftr-grid{display:grid;gap:2.2rem}
@media(min-width:700px){.ftr-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.ftr-grid{grid-template-columns:1.4fr 1fr 1fr 1.1fr}}
.ftr-logo-link{
  display:inline-flex;
  align-items:center;
  margin-bottom:1rem;
  transform:translateX(-55px);
}

.ftr-logo{
  width:240px;
  height:80px;
  object-fit:contain;
  filter:brightness(0) invert(1);
}
.ftr p{line-height:1.6}
.ftr h3{font-family:var(--ff-display);font-weight:700;font-size:1.0625rem;
  letter-spacing:.08em;text-transform:uppercase;color:#fff;margin-bottom:.9rem}
.ftr li{margin-bottom:.55rem;line-height:1.5}
.ftr-lbl{display:block;font-size:.8125rem;letter-spacing:.07em;
  text-transform:uppercase;color:var(--tinta-3)}
.ftr-soc{display:flex;gap:.55rem;margin-top:1.1rem}
.ftr-soc a{display:grid;place-items:center;width:40px;height:40px;
  border-radius:var(--r);border:1px solid rgba(255,255,255,.15);
  transition:background .2s,border-color .2s}
.ftr-soc a:hover{background:rgba(255,255,255,.08);border-color:var(--verde-clr)}
.ftr-soc svg{width:19px;height:19px;fill:currentColor}
.ftr-bar{margin-top:2.5rem;border-top:1px solid rgba(255,255,255,.15);
  padding-block:1.2rem;display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;
  align-items:center;justify-content:space-between;font-size:.875rem}
.ftr-legal{display:flex;flex-wrap:wrap;gap:.4rem 1rem}
.ftr-by{color:var(--tinta-3)}
.ftr-by a{color:#B8C8D5;font-weight:600}
.ftr-by a:hover{color:var(--verde-clr)}

/* ============================================================
   WA FLOTANTE
   ============================================================ */
.wa-float{position:fixed;right:18px;bottom:18px;z-index:95;
  display:grid;place-items:center;width:58px;height:58px;border-radius:50%;
  background:var(--verde);color:#fff;box-shadow:0 6px 20px rgba(26,31,36,.28);
  transition:transform .2s var(--ease),background .2s}
.wa-float:hover{transform:scale(1.07);background:var(--verde-osc)}
.wa-float svg{width:29px;height:29px;fill:currentColor}
@media(min-width:768px){.wa-float{right:24px;bottom:24px}}

/* ============================================================
   BANNER DE COOKIES
   ============================================================ */
.cc{position:fixed;left:0;right:0;bottom:0;z-index:120;
  background:#fff;border-top:3px solid var(--verde);box-shadow:0 -6px 24px rgba(26,31,36,.14);
  padding:1.1rem var(--gut) calc(1.1rem + env(safe-area-inset-bottom));
  transform:translateY(110%);transition:transform .3s var(--ease)}
.cc[data-open="true"]{transform:none}
.cc-in{max-width:var(--wrap);margin-inline:auto;display:grid;gap:1rem}
@media(min-width:900px){.cc-in{grid-template-columns:1fr auto;align-items:center;gap:2rem}}
.cc-txt{font-size:.9375rem;color:var(--tinta-2)}
.cc-txt strong{color:var(--tinta)}
.cc-txt a{color:var(--verde);font-weight:600;text-decoration:underline}
.cc-btns{display:flex;flex-wrap:wrap;gap:.55rem}
.cc-btns .btn{flex:1 1 auto;min-width:140px}
@media(min-width:900px){.cc-btns .btn{flex:0 0 auto}}

/* ============================================================
   REVEAL AL SCROLL
   ============================================================ */
.rv{opacity:0;transform:translateY(20px);
  transition:opacity .55s var(--ease),transform .55s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.07s}.rv-d2{transition-delay:.14s}
.rv-d3{transition-delay:.21s}.rv-d4{transition-delay:.28s}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}}

/* ============================================================
   CURSOR VOLANTE ANIMADO (requiere main.js)
   ============================================================ */
@media (hover:hover) and (pointer:fine){
  html.has-cdm-cursor, html.has-cdm-cursor *{cursor:none !important}
  html.has-cdm-cursor input[type="text"],
  html.has-cdm-cursor input[type="email"],
  html.has-cdm-cursor input[type="tel"],
  html.has-cdm-cursor textarea{cursor:text !important}
}
.cdm-cursor{
  position:fixed;top:0;left:0;width:36px;height:36px;
  pointer-events:none;z-index:999;opacity:0;
  transition:opacity .15s ease;
}
.cdm-cursor.is-visible{opacity:1}
.cdm-cursor-inner{width:100%;height:100%;display:block;
  transform-origin:50% 50%}
.cdm-cursor.is-active .cdm-cursor-inner{animation:cdm-spin .6s linear infinite}
@keyframes cdm-spin{to{transform:rotate(360deg)}}


/* ============================================================
   ANIMACIONES HERO
   ============================================================ */

@keyframes heroFromLeft {
  from {
    opacity: 0;
    transform: translate3d(-100vw, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes heroFromRight {
  from {
    opacity: 0;
    transform: translate3d(100vw, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

/* Texto */
.hero-content .hero-badge,
.hero-content .h-xl,
.hero-content .hero-trust,
.hero-content .lead {
  animation: heroFromLeft 1.4s cubic-bezier(.22,.61,.36,1) both;
}

/* Entrada escalonada */
.hero-content .hero-badge {
  animation-delay: .05s;
}

.hero-content .h-xl {
  animation-delay: .12s;
}

.hero-content .hero-trust {
  animation-delay: .20s;
}

.hero-content .lead {
  animation-delay: .28s;
}

/* CTA desde la derecha */
.hero-content .btn-row {
  animation: heroFromRight 1.4s cubic-bezier(.22,.61,.36,1) .50s both;
}

/* Mobile: recorrido menor para evitar movimientos exagerados */
@media (max-width: 899px) {
  @keyframes heroFromLeft {
    from {
      opacity: 0;
      transform: translate3d(-70vw, 0, 0);
    }
    to {
      opacity: 1;
      transform: translate3d(0, 0, 0);
    }
  }

  @keyframes heroFromRight {
    from {
      opacity: 0;
      transform: translate3d(70vw, 0, 0);
    }
    to {
      opacity: 1;
      transform: translate3d(0, 0, 0);
    }
  }
}

/* Accesibilidad */
@media (prefers-reduced-motion: reduce) {
  .hero-content .hero-badge,
  .hero-content .h-xl,
  .hero-content .hero-trust,
  .hero-content .lead,
  .hero-content .btn-row {
    animation: none;
    opacity: 1;
    transform: none;
  }
}

/* ============================================================
   MODALIDADES — aparición desde distintos lados
   ============================================================ */

.mod-grid .mod-it {
  opacity: 0;
  transform: translate3d(0, 0, 0);
  transition:
    opacity .9s ease,
    transform .9s cubic-bezier(.22,.61,.36,1);
}

/* Posiciones iniciales */

.mod-grid .mod-it:nth-child(1) {
  transform: translate3d(-90px, -60px, 0);
}

.mod-grid .mod-it:nth-child(2) {
  transform: translate3d(90px, -45px, 0);
}

.mod-grid .mod-it:nth-child(3) {
  transform: translate3d(-80px, 65px, 0);
}

.mod-grid .mod-it:nth-child(4) {
  transform: translate3d(85px, 60px, 0);
}

.mod-grid .mod-it:nth-child(5) {
  transform: translate3d(-70px, 45px, 0);
}

.mod-grid .mod-it:nth-child(6) {
  transform: translate3d(75px, -55px, 0);
}

.mod-grid .mod-it:nth-child(7) {
  transform: translate3d(-85px, 55px, 0);
}

.mod-grid .mod-it:nth-child(8) {
  transform: translate3d(85px, -55px, 0);
}

/* Acomodarse en su posición final */

.mod-grid .mod-it.in {
  opacity: 1;
  transform: translate3d(0, 0, 0) !important;
}

/* Aparición escalonada */

.mod-grid .mod-it:nth-child(1) { transition-delay: .05s; }
.mod-grid .mod-it:nth-child(2) { transition-delay: .12s; }
.mod-grid .mod-it:nth-child(3) { transition-delay: .19s; }
.mod-grid .mod-it:nth-child(4) { transition-delay: .26s; }
.mod-grid .mod-it:nth-child(5) { transition-delay: .33s; }
.mod-grid .mod-it:nth-child(6) { transition-delay: .40s; }
.mod-grid .mod-it:nth-child(7) { transition-delay: .47s; }
.mod-grid .mod-it:nth-child(8) { transition-delay: .54s; }

/* Mobile */

@media (max-width: 899px) {

  .mod-grid .mod-it:nth-child(1) {
    transform: translate3d(-45px, -35px, 0);
  }

  .mod-grid .mod-it:nth-child(2) {
    transform: translate3d(45px, -30px, 0);
  }

  .mod-grid .mod-it:nth-child(3) {
    transform: translate3d(-40px, 40px, 0);
  }

  .mod-grid .mod-it:nth-child(4) {
    transform: translate3d(40px, 35px, 0);
  }

  .mod-grid .mod-it:nth-child(5) {
    transform: translate3d(-35px, 30px, 0);
  }

  .mod-grid .mod-it:nth-child(6) {
    transform: translate3d(35px, -35px, 0);
  }

  .mod-grid .mod-it:nth-child(7) {
    transform: translate3d(-40px, 30px, 0);
  }

  .mod-grid .mod-it:nth-child(8) {
    transform: translate3d(40px, -30px, 0);
  }

  .mod-grid .mod-it:nth-child(1) { transition-delay: .04s; }
  .mod-grid .mod-it:nth-child(2) { transition-delay: .09s; }
  .mod-grid .mod-it:nth-child(3) { transition-delay: .14s; }
  .mod-grid .mod-it:nth-child(4) { transition-delay: .19s; }
  .mod-grid .mod-it:nth-child(5) { transition-delay: .24s; }
  .mod-grid .mod-it:nth-child(6) { transition-delay: .29s; }
  .mod-grid .mod-it:nth-child(7) { transition-delay: .34s; }
  .mod-grid .mod-it:nth-child(8) { transition-delay: .39s; }
}

/* Accesibilidad */

@media (prefers-reduced-motion: reduce) {
  .mod-grid .mod-it,
  .mod-grid .mod-it.in {
    opacity: 1;
    transform: none !important;
    transition: none;
  }
}

/* ============================================================
   RECURSOS ÚTILES — aparición desde distintos lados
   ============================================================ */

.rec-grid .rec-it{
  opacity:0;
  transform:translate3d(0,0,0);
  transition:
    opacity .9s ease,
    transform .9s cubic-bezier(.22,.61,.36,1);
}

/* Posiciones iniciales */

.rec-grid .rec-it:nth-child(1){
  transform:translate3d(-90px,-55px,0);
}

.rec-grid .rec-it:nth-child(2){
  transform:translate3d(90px,-45px,0);
}

.rec-grid .rec-it:nth-child(3){
  transform:translate3d(-80px,60px,0);
}

.rec-grid .rec-it:nth-child(4){
  transform:translate3d(85px,55px,0);
}

.rec-grid .rec-it:nth-child(5){
  transform:translate3d(-75px,45px,0);
}

.rec-grid .rec-it:nth-child(6){
  transform:translate3d(80px,-50px,0);
}

/* Se acomodan en su posición */

.rec-grid .rec-it.in{
  opacity:1;
  transform:translate3d(0,0,0) !important;
}

/* Aparición escalonada */

.rec-grid .rec-it:nth-child(1){transition-delay:.05s}
.rec-grid .rec-it:nth-child(2){transition-delay:.12s}
.rec-grid .rec-it:nth-child(3){transition-delay:.19s}
.rec-grid .rec-it:nth-child(4){transition-delay:.26s}
.rec-grid .rec-it:nth-child(5){transition-delay:.33s}
.rec-grid .rec-it:nth-child(6){transition-delay:.40s}

/* Mobile */

@media(max-width:899px){

  .rec-grid .rec-it:nth-child(1){
    transform:translate3d(-45px,-35px,0);
  }

  .rec-grid .rec-it:nth-child(2){
    transform:translate3d(45px,-30px,0);
  }

  .rec-grid .rec-it:nth-child(3){
    transform:translate3d(-40px,40px,0);
  }

  .rec-grid .rec-it:nth-child(4){
    transform:translate3d(40px,35px,0);
  }

  .rec-grid .rec-it:nth-child(5){
    transform:translate3d(-35px,30px,0);
  }

  .rec-grid .rec-it:nth-child(6){
    transform:translate3d(40px,-30px,0);
  }

  .rec-grid .rec-it:nth-child(1){transition-delay:.04s}
  .rec-grid .rec-it:nth-child(2){transition-delay:.09s}
  .rec-grid .rec-it:nth-child(3){transition-delay:.14s}
  .rec-grid .rec-it:nth-child(4){transition-delay:.19s}
  .rec-grid .rec-it:nth-child(5){transition-delay:.24s}
  .rec-grid .rec-it:nth-child(6){transition-delay:.29s}
}

/* Accesibilidad */

@media(prefers-reduced-motion:reduce){
  .rec-grid .rec-it,
  .rec-grid .rec-it.in{
    opacity:1;
    transform:none !important;
    transition:none;
  }
}





/* ============================================================
   ============================================================
   QUIÉNES SOMOS — estilos específicos de esta página
   (No modifica ni redefine ninguna regla existente arriba)
   ============================================================
   ============================================================ */

/* ---------- HERO QUIÉNES SOMOS ---------- 
.qs-hero{background:var(--gris-claro);overflow:hidden}
.qs-hero-grid{display:grid;gap:2.2rem;align-items:center;
  padding-block:clamp(2.4rem,6vw,3.6rem)}
.qs-hero-content{max-width:56ch}
.qs-hero-content .h-xl{margin-block:.9rem 1rem}
.qs-hero-content .h-xl em{font-style:normal;color:var(--verde)}
.qs-hero-media{position:relative;border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--sh-lg);aspect-ratio:4/3}
.qs-hero-media img{width:100%;height:100%;object-fit:cover}
@media(min-width:900px){
  .qs-hero-grid{grid-template-columns:1.05fr 1fr;gap:3rem}
  .qs-hero-media{aspect-ratio:auto;height:100%;min-height:420px}
}*/

/* ============================================================
   QUIÉNES SOMOS — HERO
   ============================================================ */

.qs-hero{
  position:relative;
  min-height:calc(100vh - var(--header-h));
  display:flex;
  align-items:center;
  overflow:hidden;
  isolation:isolate;
  background:#183A52;
}

.qs-hero-bg{
  position:absolute;
  inset:-8% 0;
  z-index:-3;
  will-change:transform;
}

.qs-hero-bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

.qs-hero-overlay{
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(
      90deg,
      rgba(10,35,52,.88) 0%,
      rgba(10,35,52,.70) 42%,
      rgba(10,35,52,.28) 75%,
      rgba(10,35,52,.18) 100%
    );
}

.qs-hero-inner{
  width:100%;
  display:flex;
  align-items:center;
}

.qs-hero-content{
  max-width:720px;
  padding-block:5rem;
}

.qs-hero-content .eyebrow{
  color:#A9D8A9;
  margin-bottom:.8rem;
}

.qs-hero-content .h-xl{
  color:#fff;
  margin-bottom:1.2rem;
  max-width:700px;
}

.qs-hero-content .h-xl em{
  color:var(--verde-clr);
  font-style:normal;
}

.qs-hero-content .lead{
  color:rgba(255,255,255,.88);
  max-width:650px;
  margin:0;
}

/* Mobile */

@media(max-width:819px){

  .qs-hero{
    min-height:calc(100svh - var(--header-h));
  }

  .qs-hero-bg{
    inset:0;
    transform:none !important;
  }

  .qs-hero-bg img{
    object-position:center;
  }

  .qs-hero-overlay{
    background:
      linear-gradient(
        180deg,
        rgba(10,35,52,.45) 0%,
        rgba(10,35,52,.72) 55%,
        rgba(10,35,52,.88) 100%
      );
  }

  .qs-hero-content{
    padding-block:4rem;
    max-width:650px;
  }

}

@media(max-width:639px){

  .qs-hero{
    min-height:500px;
  }

  .qs-hero-content{
    padding-block:3.5rem;
  }

}

/* FADE IN — HERO QUIÉNES SOMOS */

.qs-hero{
  animation:qsHeroFadeIn 1.2s ease both;
}

@keyframes qsHeroFadeIn{
  from{
    opacity:0;
  }
  to{
    opacity:1;
  }
}

@media(prefers-reduced-motion:reduce){
  .qs-hero{
    animation:none;
    opacity:1;
  }
}


/* ---------- BLOQUE EDITORIAL: TEXTO + IMAGEN ---------- */
.qs-split{display:grid;gap:1.8rem}
.qs-split-media{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh);
  aspect-ratio:4/3}
.qs-split-media img{width:100%;height:100%;object-fit:cover}
.qs-split-body{
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:#2F5874;
  background-image:radial-gradient(rgba(255,255,255,.12) 1px,transparent 1px);
  background-size:18px 18px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:var(--r-lg);
  padding:2rem 2.2rem;
  color:#fff;
}

.qs-split-body .lead{
  max-width:none;
  color:rgba(255,255,255,.9);
}

.qs-split-body .lead + .lead{
  margin-top:.9rem;
}

.qs-split-body strong{
  color:#fff;
}

@media(max-width:639px){
  .qs-split-body{
    padding:1.5rem;
  }
}
@media(min-width:900px){
  .qs-split{grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
  .qs-split--rev .qs-split-media{order:2}
  .qs-split--rev .qs-split-body{order:1}
}

/* ---------- SUCURSALES (variante liviana de .suc, sin CTA) ---------- */
.qs-suc-grid{display:grid;gap:1rem;margin-top:2rem}
@media(min-width:640px){.qs-suc-grid{grid-template-columns:repeat(2,1fr)}}
.qs-suc{background:#fff;border:1px solid var(--gris-borde);border-radius:var(--r-lg);
  overflow:hidden;box-shadow:var(--sh)}
.qs-suc-img{aspect-ratio:4/3;background:var(--azul-bg);overflow:hidden}
.qs-suc-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.qs-suc:hover .qs-suc-img img{transform:scale(1.04)}
.qs-suc-body{padding:1.1rem 1.2rem}
.qs-suc-body h3{color:var(--azul-osc);margin-bottom:.25rem}
.qs-suc-body p{font-size:.9375rem;color:var(--tinta-2)}

/* ============================================================
   QUIÉNES SOMOS — NUESTRA HISTORIA
   ============================================================ */

/* Título: entra desde arriba, como si bajara desde el hero */
.qs-history-title{
  opacity:0;
  transform:translate3d(0,-180px,0);
  transition:
    opacity 1.05s var(--ease),
    transform 1.05s var(--ease);
}

.qs-history-title.in{
  opacity:1;
  transform:translate3d(0,0,0);
}


/* Texto e imagen de historia */
.qs-history-top{
  opacity:0;
  transform:translate3d(0,-55px,0);
  transition:
    opacity .9s var(--ease),
    transform .9s var(--ease);
}

.qs-history-top.in{
  opacity:1;
  transform:translate3d(0,0,0);
}

.qs-history-delay{
  transition-delay:.16s;
}


/* Sucursales */
.qs-suc-left{
  opacity:0;
  transform:translate3d(-80px,0,0);
  transition:
    opacity .9s var(--ease),
    transform .9s var(--ease);
}

.qs-suc-right{
  opacity:0;
  transform:translate3d(80px,0,0);
  transition:
    opacity .9s var(--ease),
    transform .9s var(--ease);
}

.qs-suc-left.in,
.qs-suc-right.in{
  opacity:1;
  transform:translate3d(0,0,0);
}


/* Accesibilidad */
@media(prefers-reduced-motion:reduce){
  .qs-history-title,
  .qs-history-top,
  .qs-suc-left,
  .qs-suc-right{
    opacity:1;
    transform:none;
    transition:none;
  }
}


/* ---------- LISTA DE CARACTERÍSTICAS (forma de enseñar) ---------- */

.qs-feat-list{
  display:grid;
  gap:.6rem;
  margin-top:1.1rem;
}

@media(min-width:640px){
  .qs-feat-list{
    grid-template-columns:repeat(2,1fr);
  }
}

.qs-feat{
  position:relative;
  overflow:hidden;

  display:flex;
  align-items:flex-start;
  gap:.65rem;

  background-color:var(--azul-osc);

  background-image:
    radial-gradient(
      circle,
      rgba(210,235,245,.13) 1px,
      transparent 1.2px
    );

  background-size:22px 22px;

  border:1px solid rgba(125,180,205,.22);
  border-radius:var(--r);

  padding:.7rem .8rem;

  color:#fff;
}

.qs-feat svg{
  flex:0 0 19px;
  width:19px;
  height:19px;
  margin-top:.1rem;
  color:var(--verde);

  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.qs-feat b{
  display:block;
  font-weight:600;
  font-size:.875rem;
  color:#fff;
  margin-bottom:.1rem;
}

.qs-feat span{
  display:block;
  font-size:.78rem;
  color:rgba(255,255,255,.72);
  line-height:1.3;
}

@media(min-width:900px){
  .qs-feat-list{
    width:100%;
    margin-top:1rem;
  }
}

/* ---------- SECCIÓN CÓMO ENSEÑAMOS ---------- */
.qs-enseniar{
  display:grid;
  gap:1.8rem;
}
.qs-enseniar-left{
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.qs-enseniar-right{
  border-radius:var(--r-lg);
  overflow:hidden;
  box-shadow:var(--sh);
}
.qs-enseniar-right img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
@media(min-width:900px){
  .qs-enseniar{
    grid-template-columns:1fr 1fr;
    gap:3rem;
    align-items:stretch;
  }
  .qs-enseniar-right{
    min-height:100%;
  }
}


/* ---------- INSTRUCTORES ---------- */
/* ══ FILA DE CARDS (instructores / egresados) ══ */
.reviews-row {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  padding-bottom: .75rem;          /* espacio para la scrollbar en desktop */
  /* Ocultar scrollbar visualmente pero mantener funcionalidad */
  scrollbar-width: thin;
  scrollbar-color: var(--verde) transparent;
}
.reviews-row::-webkit-scrollbar { height: 4px; }
.reviews-row::-webkit-scrollbar-track { background: transparent; }
.reviews-row::-webkit-scrollbar-thumb { background: var(--verde); border-radius: 4px; }

/* ── CARD base (instructores y egresados) ── */
.rev-card {
  flex: 0 0 calc(20% - .8rem);
  min-width: 200px;
  scroll-snap-align: start;
  border-radius: var(--r-lg);
  background: #fff;
  border: 2px solid var(--verde-clr);
  box-shadow: var(--sh);
  padding: 1.5rem 1.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: .75rem;
}

/* ── FLIP — solo cards con .instr-flip ── */
.instr-flip {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  perspective: 800px;
  min-height: 280px;
}

.instr-flip .flip-inner {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 280px;
  transform-style: preserve-3d;
  transition: transform .55s cubic-bezier(.4,0,.2,1);
  border-radius: var(--r-lg);
}

@media (hover: hover) {
  .instr-flip:hover .flip-inner {
    transform: rotateY(180deg);
  }
}

.instr-flip.flipped .flip-inner {
  transform: rotateY(180deg);
}

.flip-front,
.flip-back {
  position: absolute;
  inset: 0;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  border-radius: var(--r-lg);
  overflow: hidden;
}

/* FRENTE — igual que la card original */
.flip-front {
  background: #fff;
  border: 2px solid var(--verde-clr);
  box-shadow: var(--sh);
  padding: 1.5rem 1.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: .75rem;
}

/* REVERSO — foto a pantalla completa */
.flip-back {
  transform: rotateY(180deg);
  background: var(--azul-osc, #0a2d41);
  border: 2px solid var(--verde-clr);
  box-shadow: var(--sh);
}
.flip-back img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Foto circular del frente */
.rev-photo {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  border: 3px solid var(--verde);
}
.rev-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.rev-name {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--negro, #111);
  display: block;
}
.rev-role {
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--verde);
  display: block;
}
.rev-body {
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.rev-body p {
  font-size: .9rem;
  color: #555;
  margin: 0;
  line-height: 1.5;
}

/* Desktop: 5 columnas fijas sin scroll */
@media (min-width: 1100px) {
  .reviews-row {
    overflow-x: visible;
    flex-wrap: nowrap;
  }
  .rev-card {
    flex: 1 1 0;
    min-width: 0;
  }
}

/* Mobile: scroll, 1.5 cards visibles */
@media (max-width: 700px) {
  .rev-card {
    min-width: 72vw;
  }
}

/* ---------- EL EQUIPO — fondo azul ---------- */

.equipo-section{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background-color:var(--azul-osc);
  background-image:radial-gradient(
    rgba(255,255,255,.08) 1px,
    transparent 1px
  );
  background-size:16px 16px;
}

.equipo-section > .wrap{
  position:relative;
  z-index:2;
}

/* Texto de cabecera sobre fondo azul */
.equipo-section .sec-head .eyebrow{
  color:var(--verde-clr);
}

.equipo-section .sec-head .h-lg{
  color:#fff;
}

.equipo-section .sec-head .lead{
  color:rgba(255,255,255,.88);
}

/* ---------- VEHÍCULOS ---------- */
.qs-veh-tags{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.4rem}
.qs-veh-tag{display:inline-flex;align-items:center;gap:.45rem;
  background:#fff;border:1px solid var(--gris-borde);border-radius:var(--r-pill);
  padding:.5rem 1rem;font-weight:600;font-size:.875rem;color:var(--tinta)}
.qs-veh-tag svg{width:17px;height:17px;color:var(--verde);
  fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round
}

/* ============================================================
   VEHÍCULOS — aparición desde distintos lados
   ============================================================ */

.veh-title{
  opacity:0;
  transform:translate3d(0,-55px,0);
  transition:
    opacity .9s var(--ease),
    transform .9s cubic-bezier(.22,.61,.36,1);
}

.veh-title.in{
  opacity:1;
  transform:translate3d(0,0,0);
}


/* Imagen desde arriba/izquierda */
.veh-media{
  opacity:0;
  transform:translate3d(-75px,-55px,0);
  transition:
  opacity 1.2s var(--ease),
  transform 1.2s cubic-bezier(.22,.61,.36,1);
}

.veh-media.in{
  opacity:1;
  transform:translate3d(0,0,0) !important;
}


/* Texto desde abajo/derecha */
.veh-body{
  opacity:0;
  transform:translate3d(75px,55px,0);
  transition:
  opacity 1.2s var(--ease),
  transform 1.2s cubic-bezier(.22,.61,.36,1);
  transition-delay:.12s;
}

.veh-body.in{
  opacity:1;
  transform:translate3d(0,0,0) !important;
}


/* Mobile: movimientos más contenidos */
@media(max-width:899px){

  .veh-media{
    transform:translate3d(-45px,-35px,0);
  }

  .veh-body{
    transform:translate3d(45px,35px,0);
  }
}


/* Accesibilidad */
@media(prefers-reduced-motion:reduce){

  .veh-title,
  .veh-media,
  .veh-body{
    opacity:1;
    transform:none !important;
    transition:none;
  }
}


/* ---------- HABILITACIÓN (cierre institucional) ---------- */
.qs-habilitacion-wrap{max-width:760px;margin-inline:auto}
.qs-habilitacion-wrap .habilitacion{margin-top:0}

/* ---------- MOBILE: ajustes finos ---------- */
@media(max-width:639px){
  .qs-hero-media{aspect-ratio:16/11}
}

/* ============================================================
   EVITAR SCROLL HORIZONTAL PROVOCADO POR ANIMACIONES
   ============================================================ */

html,
body{
  overflow-x:clip;
}

@supports not (overflow:clip){
  html,
  body{
    overflow-x:hidden;
  }
}

