:root{
  /* Paleta Apple-like */
  --bg:#ffffff;
  --text:#0b0f14;
  --muted:rgba(11,15,20,.62);
  --line:rgba(11,15,20,.10);
  --accent:#0f766e;

  --max:1120px;
  --r:22px;

  --shadow-soft: 0 1px 2px rgba(0,0,0,.04);
  --shadow-mid: 0 10px 30px rgba(0,0,0,.06);
  --shadow-strong: 0 18px 40px rgba(0,0,0,.10);
}

/* RESET */
*{ box-sizing:border-box; }
html, body{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont,
               "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }

/* LAYOUT */
.container{
  width:min(var(--max), calc(100% - 40px));
  margin:0 auto;
}

/* NAV */
.nav{
  position:-webkit-sticky;
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav__row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:8px 0;
}
.brand{
  display:flex;
  align-items:center;
}
.brand__logo{
  height:44px;
  width:auto;
  max-width:180px;
  object-fit:contain;
  background:transparent;
  flex-shrink:0;
  display:block;
}
@media (min-width:720px){
  .brand__logo{ height:52px; }
}
.nav__links{
  display:flex;
  gap:4px;
  align-items:center;
  margin-left:auto;
}
.nav__links a{
  font-size:14px;
  color:var(--muted);
  padding:8px 10px;
  border-radius:999px;
  white-space:nowrap;
}
.nav__links a:hover{
  background:rgba(0,0,0,.04);
  color:var(--text);
}

/* Hamburguesa: oculta por defecto (desktop) */
.nav__toggle{
  display:none;
  background:none;
  border:1px solid var(--line);
  border-radius:8px;
  padding:7px 9px;
  cursor:pointer;
  flex-direction:column;
  gap:4px;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
}
.nav__hamburger{
  display:flex;
  flex-direction:column;
  gap:4px;
  pointer-events:none;
}
.nav__hamburger span{
  display:block;
  width:18px;
  height:2px;
  background:var(--text);
  border-radius:2px;
  transition:transform .2s ease, opacity .2s ease;
}

/* Cuando el nav está colapsado (JS lo detecta por tamaño) */
.nav--collapsed .nav__toggle{
  display:flex;
}
.nav--collapsed .nav__links{
  display:none;
  position:absolute;
  top:calc(100% + 6px);
  right:0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:0 8px 24px rgba(0,0,0,.10);
  flex-direction:column;
  gap:2px;
  padding:8px;
  min-width:180px;
  z-index:200;
}
.nav--collapsed .nav__links.is-open{
  display:flex;
}
.nav--collapsed .nav__links a{
  padding:10px 14px;
  border-radius:10px;
}
.nav--collapsed .nav__links a:hover{
  background:rgba(0,0,0,.04);
}

/* Animación hamburguesa → X cuando está abierto */
.nav--collapsed .nav__toggle[aria-expanded="true"] .nav__hamburger span:nth-child(1){
  transform: translateY(6px) rotate(45deg);
}
.nav--collapsed .nav__toggle[aria-expanded="true"] .nav__hamburger span:nth-child(2){
  opacity:0;
}
.nav--collapsed .nav__toggle[aria-expanded="true"] .nav__hamburger span:nth-child(3){
  transform: translateY(-6px) rotate(-45deg);
}

/* BUTTONS */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 16px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  font-size:14px;
  font-weight:600;
  transition:all .15s ease;
}
.btn:hover{
  transform:translateY(-1px);
  border-color:rgba(15,118,110,.35);
}
.btn--primary{
  background:var(--accent);
  color:#fff;
  border-color:rgba(15,118,110,.55);
}
.btn--ghost{
  background:transparent;
  border-color:transparent;
}
.btn--xl{
  padding:14px 20px;
  font-size:15px;
}

/* HERO */
.hero{
  position:relative;
  padding:72px 0 40px;
  border-bottom:1px solid var(--line);
}
.hero__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
}
.hero__grid--media{ grid-template-columns:1.2fr .8fr; }
.kicker{
  display:inline-block;
  font-size:13px;
  color:var(--muted);
  border:1px solid var(--line);
  padding:8px 12px;
  border-radius:999px;
  background:rgba(0,0,0,.02);
}
.hero__logo{
  height:124px;
  margin-bottom:10px;
}
.hero__title{
  margin:14px 0 10px;
  font-size:clamp(36px,4.5vw,60px);
  line-height:1.02;
  letter-spacing:-0.02em;
}
.hero__subtitle{
  font-size:18px;
  color:var(--muted);
  max-width:60ch;
}
.hero__actions{
  display:flex;
  gap:12px;
  margin-top:20px;
  flex-wrap:wrap;
}
.hero__meta{
  display:flex;
  gap:10px;
  margin-top:20px;
  flex-wrap:wrap;
}
.pill{
  font-size:13px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  color:rgba(11,15,20,.72);
}
.hero__media{
  position:relative;
  border-radius:var(--r);
  overflow:hidden;
  border:1px solid var(--line);
  background:#f4f6f8;
  box-shadow:var(--shadow-mid);
  aspect-ratio:4/3;
}
.hero__media img,
.hero__media video{
  width:100%;
  height:100%;
  object-fit:cover;
}
.media__overlay{
  position:absolute;
  inset:0;
  background:radial-gradient(1000px 400px at 40% 0%, rgba(255,255,255,.65), transparent);
}

/* ===== Video backgrounds (Hero / Enfoque / Equipo / Manifiesto) ===== */
.hero__video-bg,
.section__video-bg{
  position:absolute;
  inset:0;
  overflow:hidden;
  z-index:0;
  opacity:0;
  transition:opacity .6s ease;
  pointer-events:none;
}
.hero__video-bg video,
.section__video-bg video{
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.08);
  filter:grayscale(1) contrast(1.10) brightness(.88);
  opacity:.38;
  animation: videoDrift 14s ease-in-out infinite;
}

@keyframes videoDrift{
  0%{ transform: scale(1.08) translate3d(0,0,0); }
  50%{ transform: scale(1.11) translate3d(-1.25%, 0.8%, 0); }
  100%{ transform: scale(1.08) translate3d(0,0,0); }
}
.hero.is-video-active .hero__video-bg,
.section.section--with-video.is-video-active .section__video-bg{
  opacity:1;
}

/* capa de lectura */
.hero::before,
.section.section--with-video::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  /* degradado blanco -> transparente (izquierda a derecha) */
  background:linear-gradient(to right,
    rgba(255,255,255,.92) 0%,
    rgba(255,255,255,.78) 42%,
    rgba(255,255,255,.28) 72%,
    rgba(255,255,255,0) 100%
  );
  pointer-events:none;
}
.hero > .container,
.section.section--with-video > .container{
  position:relative;
  z-index:2;
}
.hero__fade{
  position:absolute;
  left:0; right:0; bottom:0;
  height:120px;
  background:linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,1));
  z-index:2;
  pointer-events:none;
}
.section.section--with-video{
  position:relative;
  overflow:clip;  /* clip no crea scroll container, hidden sí — importante para scroll-snap */
}

/* SECTIONS */
.section{
  padding:80px 0;
  border-bottom:1px solid var(--line);
}
.section--alt{
  background:rgba(0,0,0,.015);
}
.section__head{
  margin-bottom:28px;
}
.section__title{
  font-size:clamp(24px,2.5vw,34px);
  letter-spacing:-0.01em;
  margin:0;
}
.section__desc{
  margin-top:8px;
  color:var(--muted);
  max-width:75ch;
  font-size:16px;
}
.section__note{
  display:block;
  margin-top:6px;
  font-size:13px;
  color:rgba(11,15,20,.55);
}

/* CARDS */
.cards{
  display:grid;
  gap:18px;
}
.cards--4{
  grid-template-columns:repeat(4,1fr);
}
.card{
  border-radius:var(--r);
  background:#fff;
  padding:24px;
  box-shadow:var(--shadow-soft), var(--shadow-mid);
  transition:transform .2s ease, box-shadow .2s ease;
}
@media (hover: hover){
  .card:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-mid), var(--shadow-strong);
  }
}
.card__tag{
  font-size:12px;
  color:var(--muted);
  border:1px solid var(--line);
  padding:6px 10px;
  border-radius:999px;
  display:inline-block;
}
.card__title{
  margin:14px 0 8px;
  font-size:18px;
}
.card__text{
  font-size:14px;
  color:var(--muted);
}

/* FEATURE */
.feature{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:20px;
}
.feature__copy,
.feature__media{
  border-radius:var(--r);
  background:#fff;
  box-shadow:var(--shadow-soft), var(--shadow-mid);
}
.feature__copy{
  padding:28px;
}
.feature__media{
  overflow:hidden;
  background:#f4f6f8;
}
.feature__media img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* ===== LOGOS MARQUEE: Scroll automático hacia la izquierda (CORREGIDO) ===== */
.logoMarquee{
  margin-top: 22px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: #fff;
  overflow: hidden;
  box-shadow: var(--shadow-soft);
  position: relative;
  width: 100%;
}

.logoMarquee__track{
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0;
  padding: 14px;
  will-change: transform;
  width: max-content;
}

.logoWall{
  display: flex;
  flex-wrap: nowrap;
  gap: 14px;
  margin-top: 24px;
}

.logoWall--marquee{ 
  display: flex; 
  flex-wrap: nowrap;
  align-items: center;
  gap: 14px;  
  margin: 0;
  padding: 0;
  flex-shrink: 0;
}

.logoChip{
  height: 54px;
  min-width: 140px;
  width: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border-radius: 16px;
  box-shadow: var(--shadow-soft), var(--shadow-mid);
  flex-shrink: 0;
  padding: 8px;
}

.logoChip img{
  max-height: 100%;
  max-width: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: grayscale(100%);
  opacity: .85;
  transition: all 0.3s ease;
}

.logoChip:hover img{
  filter: grayscale(0%);
  opacity: 1;
}

/* TESTIMONIOS */
.testiGrid{
  margin-top:32px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.testiCard{
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: #fff;
  box-shadow: var(--shadow-soft);
  padding: 14px;
  min-height: 300px;
  display:flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (hover: hover){
  .testiCard:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-mid), var(--shadow-strong);
  }
}
.testiQuote{
  font-size:16px;
  line-height:1.55;
  letter-spacing:-0.01em;
  color:rgba(11,15,20,.88);
}
.testiMeta{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.testiWho{
  font-size:14px;
  font-weight:600;
  color:rgba(11,15,20,.75);
}
.testiWhen{
  font-size:12px;
  color:rgba(11,15,20,.5);
}
.testiBtn{
  margin-top:auto;
  align-self:flex-start;
  padding:8px 14px;
  border-radius:999px;
  border:1px solid var(--line);
  font-size:13px;
  font-weight:600;
  color:rgba(11,15,20,.7);
  background:rgba(0,0,0,.01);
}
.testiBtn:hover{
  border-color:rgba(15,118,110,.35);
  color:rgba(11,15,20,.95);
}

/* CTA */
.ctaSection{
  padding:96px 0;
}
.ctaSection__grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:24px;
}
.ctaSection__copy{
  border-radius:var(--r);
  padding:32px;
  background:#fff;
  box-shadow:var(--shadow-soft), var(--shadow-mid);
}
.ctaSection__title{
  font-size:clamp(28px,3vw,40px);
  letter-spacing:-0.02em;
}
.ctaSection__desc{
  margin-top:10px;
  color:var(--muted);
}
.ctaSection__actions{
  display:flex;
  gap:14px;
  margin-top:22px;
}

/* REVEAL */
.reveal{
  opacity:0;
  transform:translateY(12px);
  transition:opacity .6s ease, transform .6s ease;
}
.reveal.in{
  opacity:1;
  transform:translateY(0);
}

/* RESPONSIVE */
@media (max-width:980px){
  .hero__grid,
  .feature,
  .ctaSection__grid{
    grid-template-columns:1fr;
  }
  .cards--4{
    grid-template-columns:1fr 1fr;
  }
  .testiGrid{
    grid-template-columns:1fr 1fr;
  }
  /* Nav sticky funciona en móvil igual que desktop */
  .nav__row{ flex-wrap:nowrap; }
  .nav--always-collapsed .nav__toggle{ display:flex; }
}
@media (max-width:520px){
  .cards--4,
  .testiGrid{
    grid-template-columns:1fr;
  }
  /* Solo expandir botones donde tiene sentido, no en nav ni CTAs */
  .hero__actions .btn,
  .ctaSection__actions .btn{ width:100%; }
  .hero__actions{ flex-direction:column; }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .reveal{ transition:none; }
}

/* Fondo para hero media (si no hay imagen) */
.heroMediaBg{
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 420px at 65% 35%, rgba(0,0,0,.10), rgba(0,0,0,0) 60%),
    linear-gradient(135deg, #f6f7f8, #eef1f4);
}

/* ===== Experiencia: Casos de éxito (2 visibles + dots + miniaturas) ===== */
.caseCarousel{ 
  margin-top: 22px;
  width: 100%;
  box-sizing: border-box;
  border: 0px solid var(--line);
  border-radius: var(--r);
  background: transparent;
  overflow: visible;
  box-shadow: none;
  padding: 0px;
}

.caseTrack{
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 0px) / 3);
  gap: 16px;
  overflow-x: auto;
  overflow-y: visible;
  padding: 10px 20px 40px 20px;
  margin: 0 0px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.caseTrack::-webkit-scrollbar{ display:none; }

.caseCard{
  scroll-snap-align: start;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: #fff;
  box-shadow: var(--shadow-soft);
  padding: 14px;
  text-decoration: none;
  color: inherit;
  display:flex;
  flex-direction: column;
  gap: 12px;
  min-height: 300px;
  justify-content: flex-start;
}

.caseThumb{
  width:100%;
  height:100%;
  object-fit: contain;
  background: transparent;
  padding: 0;
  border: 0;
  border-radius: 0;
  display:block;
}

.caseDots{
  display:flex;
  gap: 8px;
  justify-content:center;
  margin-top: 10px;
}
.caseDot{
  width: 8px;
  height: 8px;
  border-radius: 99px;
  border: 1px solid rgba(0,0,0,.25);
  background: transparent;
  padding: 0;
}
.caseDot.is-active{
  background: rgba(0,0,0,.75);
  border-color: rgba(0,0,0,.75);
}
.caseDot:focus{ outline: 2px solid rgba(0,0,0,.25); outline-offset: 2px; }

@media (hover: hover){
  .caseCard:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-mid), var(--shadow-strong);
  }
}

/* Responsive: 2-up tablet, 1-up móvil */
@media (max-width: 980px){
  .caseTrack{ grid-auto-columns: calc((100% - 16px) / 2); }
}
@media (max-width: 720px){
  .caseTrack{ grid-auto-columns: 88%; }
}

.caseTitleTop{
  font-weight: 750;
  letter-spacing: .01em;
  line-height: 1.2;
}

.caseThumbWrap{
  width: 100%;
  border-radius: 14px;
  overflow: hidden;
  background: transparent;
  border: 0;
  aspect-ratio: 16 / 10;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* ===== Testimonios: carrusel con mismo movimiento que Casos de éxito ===== */
.testiCarousel{ 
  margin-top: 18px;
  overflow: visible;
}

.testiTrack{
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 32px) / 3);
  gap: 16px;
  overflow-x: auto;
  overflow-y: visible;
  padding: 10px 20px 40px 20px;
  margin: 0 -20px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.testiTrack::-webkit-scrollbar{ display:none; }

.testiDots{
  display:flex;
  gap: 8px;
  justify-content:center;
  margin-top: 10px;
}
.testiDot{
  width: 8px;
  height: 8px;
  border-radius: 99px;
  border: 1px solid rgba(0,0,0,.25);
  background: transparent;
  padding: 0;
}
.testiDot.is-active{
  background: rgba(0,0,0,.75);
  border-color: rgba(0,0,0,.75);
}
.testiDot:focus{ outline: 2px solid rgba(0,0,0,.25); outline-offset: 2px; }

.testiBody{
  display:flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 14px;
  height: 100%;
}

.testiQuote{ 
  margin: 0; 
  line-height: 1.45; 
  color: var(--text); 
}

@media (max-width: 980px){
  .testiTrack{ grid-auto-columns: calc((100% - 16px) / 2); }
}
@media (max-width: 720px){
  .testiTrack{ grid-auto-columns: 88%; }
}

/* ===== Navbar logo: sin bordes, integrado y alto ===== */
.header .logo img,
.navbar .logo img,
.nav__logo img,
a.logo img{
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  height: 44px;
  width: auto;
  display: block;
  object-fit: contain;
}

@media (min-width: 720px){
  .header .logo img,
  .navbar .logo img,
  .nav__logo img,
  a.logo img{
    height: 52px;
  }
}

/* Evitar estilos tipo 'chip' aplicados al logo del header */
.header .logo,
.navbar .logo,
.nav__logo,
a.logo{
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Testimonios: mostrar rol claro */
/* testiMeta: ver regla principal arriba */

/* ===== Fix tamaños de logos (Testimonios + nav + hero) ===== */

/* Logos dentro de tarjetas de Testimonios */
.testiHeader{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  min-height: 54px;
}
.testiLogoTop{
  display:block;
  width:auto !important;
  height:44px !important;
  max-width: 180px;
  max-height:44px;
  object-fit:contain !important;
}

/* Si en algún caso el contenedor fuerza altura, no estirar */
.testiCard img{
  object-fit:contain;
}

/* Logo principal (hero) — evitar que se vaya a 100% */
.heroLogo{
  width: min(320px, 62vw);
  height:auto;
  max-width:100%;
}

/* Logo nav: ver regla .brand__logo arriba */


/* ===== Hero rotator: colores por lista ===== */
.heroRed   { color: #8b0000; }          /* rojo oscuro — Preguntas    */
.heroGreen { color: #0f766e; }          /* verde — Resultados */
.heroBlue  { color: #1a56a0; }          /* azul — Objetivos            */
.heroBlack { color: var(--text, #0b0f14); }


/* ===== TESTIMONIOS: rol + botón en la misma fila ===== */
.testiBody{
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 12px;
}
.testiFooter{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
}
.testiRole{
  font-size: 12px;
  font-weight: 650;
  color: var(--muted);
  letter-spacing: .02em;
  text-transform: uppercase;
  line-height: 1.3;
  flex: 1;
}
/* Reubica el btn dentro del footer (sobrescribe margin-top:auto previo) */
.testiFooter .testiBtn{
  margin-top: 0;
  flex-shrink: 0;
}
/* La tarjeta ya es flex-column, testiBody ocupa el espacio restante */
.testiCard{
  display: flex;
  flex-direction: column;
}


/* ===== MANIFIESTO: dos tarjetas a la misma altura ===== */
.cards--manifiesto{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  align-items: stretch;   /* ambas columnas estiran al alto mayor */
}
.cards--manifiesto .card{
  display: flex;
  flex-direction: column;
  height: 100%;
}
@media (max-width: 720px){
  .cards--manifiesto{ grid-template-columns: 1fr; }
}


/* ===== CONTACTO: botones pegados al fondo de cada tarjeta ===== */
.contactCard{
  display: flex;
  flex-direction: column;
}
.contactCardActions{
  margin-top: auto;
  padding-top: 16px;
}

/* ===== iOS / Android: tap & touch fixes ===== */
a, button, [role="button"] {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;  /* evita doble-tap-zoom en botones */
}

/* ===== Barra CTA por sección ===== */
.hero .sectionCTA{ padding-bottom: 64px; }

.sectionCTA{
  /* Completamente transparente — se ve el fondo de la sección debajo */
  background: transparent;
  margin-top: 14px;
  margin-bottom: -80px;
  padding: 10px 0;
  /* z-index para estar sobre gradientes de video */
  position: relative;
  z-index: 3;
}
.sectionCTA__inner{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.sectionCTA__text{
  margin: 0;
  font-size: 16px;
  color: var(--muted);
  max-width: 55ch;
  line-height: 1.4;
}
.sectionCTA__actions{
  display: flex;
  gap: 8px;
  flex-shrink: 0;
  flex-wrap: wrap;
}
/* Botones verdes como el accent del sitio */
.sectionCTA__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px 16px;
  border-radius: 999px;
  border: 1px solid rgba(15,118,110,.55);
  background: var(--accent);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: filter .15s ease, transform .1s ease;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
@media (hover: hover){
  .sectionCTA__btn:hover{
    filter: brightness(.88);
    transform: translateY(-1px);
  }
}
.sectionCTA__btn.ghost{
  background: transparent;
  color: var(--accent);
  border-color: rgba(15,118,110,.40);
}
@media (max-width: 600px){
  .sectionCTA__inner{
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .sectionCTA__actions{ width: 100%; }
  .sectionCTA__btn{ flex: 1; justify-content: center; }
  .sectionCTA{ padding-bottom: 64px; }
}

/* ===== Scroll snap entre secciones ===== */
/* El snap container es html — así el scroll nativo del navegador
   ajusta automáticamente al inicio de la siguiente sección.
   'proximity' es menos agresivo que 'mandatory': snapa solo cuando
   el usuario está cerca de un punto de snap, permitiendo scroll libre
   dentro de secciones altas (Experiencia, Testimonios, etc.)        */
/* scroll-snap: html para Chrome/Edge, body para Safari/Firefox */
html, body {
  scroll-snap-type: y proximity;
}

/* Cada sección es un punto de snap.
   scroll-margin-top compensa la altura del nav sticky (~68px)
   para que el título de la sección no quede tapado.               */
.hero,
.section,
footer {
  scroll-snap-align: start;
  scroll-margin-top: 68px;
}

/* ===== Responsive móvil adicional ===== */

/* Reducir padding del hero en móvil */
@media (max-width: 720px){
  .hero{
    padding: 48px 0 28px;
  }
  .hero__title{
    font-size: clamp(28px, 7vw, 40px);
  }
  .hero__subtitle{
    font-size: 15px;
  }
}

/* Reducir padding de secciones en móvil */
@media (max-width: 720px){
  .section{
    padding: 52px 0;
  }
}
@media (max-width: 520px){
  .section{
    padding: 40px 0;
  }
  .hero{
    padding: 36px 0 20px;
  }
}

/* Carruseles: evitar overflow horizontal en móvil.
   El margin negativo -20px junto con overflow:hidden en el padre puede
   causar scroll horizontal en página. Se contiene con overflow-x:hidden */
@media (max-width: 720px){
  .caseCarousel,
  .testiCarousel{
    overflow-x: hidden;
  }
  .caseTrack,
  .testiTrack{
    margin: 0;
    padding: 10px 0 32px 0;
  }
}

/* Cards en contacto: una columna en móvil */
@media (max-width: 520px){
  .cards--4.contactCards,
  .cards--4{
    grid-template-columns: 1fr;
  }
}

/* Pills del hero: reducir tamaño en móvil para que no desborden */
@media (max-width: 520px){
  .hero__meta{
    gap: 6px;
  }
  .pill{
    font-size: 12px;
    padding: 6px 10px;
  }
}

/* Métricas del diagnóstico: 1 columna en móvil pequeño (ya en diag.css,
   pero asegurar que el texto de la barra CTA no desborde) */
@media (max-width: 480px){
  .sectionCTA__text{
    font-size: 14px;
  }
}
