/* ============================================================
   Crowmie — Landing «sesión inicial»
   Tokens de marca primero. Base CLARA crema · hero/form navy.
   ============================================================ */

:root{
  --brand:#1B4EFF; --brand-press:#1640D6;   /* azul royal: CTA, enlaces, acentos */
  --cyan:#06E4FF;                            /* acento cian: micro detalles, dot del logo */
  --ink-on-brand:#FFFFFF;                    /* texto sobre botón royal (AA) */
  --navy:#0E1623;                            /* tinta sobre claro */
  --navy-2:#10213F; --navy-deep:#0A1730;     /* superficies/hero oscuros */
  --cream:#F4F3F1; --surface:#FFFFFF;        /* fondo página / tarjetas */
  --bg:var(--cream); --text:var(--navy); --text-muted:#56627A;
  --border:rgba(14,22,35,.12);
  --on-dark:#ECF2FF; --on-dark-muted:#A9BEE2; --border-dark:rgba(255,255,255,.18);
  --font-display:"Urbanist", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;  /* H1–H3 */
  --font:"Urbanist", system-ui, -apple-system, "SF Pro Text", "Segoe UI", Roboto, sans-serif; /* cuerpo/UI */

  --radius:12px;
  --radius-lg:20px;
  --shadow-sm:0 1px 2px rgba(14,22,35,.06), 0 2px 8px rgba(14,22,35,.05);
  --shadow-md:0 6px 24px rgba(14,22,35,.10);
  --shadow-lg:0 18px 50px rgba(10,23,48,.22);
  --maxw:1320px;
  --space:16px;
  --hero-grad:linear-gradient(160deg,#2E6BD6 0%,#14326B 52%,#0A1730 100%);
}

/* ----------------------------------------------------------------
   Reset / base
   ---------------------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  font-family:var(--font);
  font-size:17px;
  line-height:1.55;
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  -webkit-overflow-scrolling:touch;
  overflow-x:hidden;
}

h1,h2,h3,h4{ font-family:var(--font-display); font-weight:800; line-height:1.12; margin:0 0 .4em; letter-spacing:-.02em; }
h1{ font-size:clamp(2rem,5.4vw,3.4rem); }
h2{ font-size:clamp(1.6rem,3.6vw,2.5rem); }
h3{ font-size:clamp(1.2rem,2.2vw,1.5rem); }
p{ margin:0 0 1em; }
img{ max-width:100%; display:block; }
a{ color:var(--brand); text-decoration:none; }
a:hover{ text-decoration:underline; }
em,i{ font-style:italic; }

.container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--space); }
.section{ padding-block:clamp(48px,7vw,96px); }
.eyebrow{
  display:inline-block; font-family:var(--font); font-weight:700;
  font-size:.8rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--brand); margin-bottom:.6rem;
}
.section-head{ max-width:760px; margin-inline:auto; text-align:center; margin-bottom:clamp(28px,4vw,52px); }
@media (min-width:900px){ .section-head--wide{ max-width:none; } .section-head--wide h2{ white-space:nowrap; } }
.section-head p{ color:var(--text-muted); font-size:1.06rem; }
.center{ text-align:center; }

/* Skip link */
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--brand); color:#fff; padding:12px 18px; border-radius:0 0 var(--radius) 0; font-weight:700;
}
.skip-link:focus{ left:0; }

:focus-visible{ outline:3px solid var(--brand); outline-offset:2px; border-radius:6px; }

/* ----------------------------------------------------------------
   Buttons
   ---------------------------------------------------------------- */
.btn{
  --_bg:var(--brand); --_fg:var(--ink-on-brand);
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family:var(--font); font-weight:700; font-size:1.02rem; line-height:1;
  min-height:52px; padding:0 1.5rem;
  background:var(--_bg); color:var(--_fg);
  border:0; border-radius:var(--radius); cursor:pointer;
  text-decoration:none; text-align:center;
  transition:transform .18s ease, background-color .18s ease;
}
.btn:hover{ background:var(--brand-press); text-decoration:none; }
.btn:active{ transform:scale(.97); }
.btn:disabled,.btn[aria-disabled="true"]{ opacity:.4; cursor:not-allowed; transform:none; }
.btn--block{ width:100%; }
.btn--lg{ min-height:56px; font-size:1.08rem; padding:0 2rem; }
.btn--ghost{ --_bg:transparent; --_fg:var(--brand); border:1.5px solid var(--border); }
.btn--ghost:hover{ --_bg:rgba(27,78,255,.06); background:var(--_bg); }
@media (prefers-reduced-motion:reduce){ .btn{ transition:background-color .18s ease; } .btn:active{ transform:none; } }

/* ----------------------------------------------------------------
   Header
   ---------------------------------------------------------------- */
.header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.9); backdrop-filter:saturate(160%) blur(12px);
  border-bottom:1px solid var(--border);
}
.header__inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:64px; }
.header .btn{ min-height:44px; padding:0 1.1rem; font-size:.95rem; }
@media (max-width:767px){ .header{ display:none; } } /* en mobile, el CTA es el sticky inferior */

/* Logo (wordmark oficial Crowmie) */
.logo{ display:inline-flex; align-items:center; text-decoration:none; }
.logo:hover{ text-decoration:none; }
.logo img{ display:block; height:28px; width:auto; }
.logo--on-dark img{ height:30px; filter:brightness(0) invert(1); } /* blanco sobre navy */

/* ----------------------------------------------------------------
   Hero (navy gradient, no form)
   ---------------------------------------------------------------- */
.hero{
  background:
    linear-gradient(180deg, rgba(6,12,24,.18) 0%, rgba(6,12,24,.28) 50%, rgba(6,12,24,.55) 100%),
    url("../content/beckground.jpeg") center/cover no-repeat;
  color:var(--on-dark);
  text-align:center;
  position:relative;
  overflow:hidden;
}
/* Velo oscuro suave tras el texto (neutro, deja ver los negros de la foto) */
.hero::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(60% 55% at 50% 52%, rgba(6,12,24,.40), transparent 72%);
}
/* Refuerzo de legibilidad del titular/subtítulo sobre la imagen */
.hero h1,.hero .hero__sub{ text-shadow:0 2px 18px rgba(10,23,48,.45); }
.hero__inner{ position:relative; z-index:1; max-width:980px; margin-inline:auto; padding-block:clamp(56px,9vw,112px); display:flex; flex-direction:column; align-items:center; text-align:center; }
/* H1: Urbanist Regular 48px / 54.7px / letter-spacing 0 (spec del mock) */
.hero h1{
  color:#fff; font-weight:800; letter-spacing:-.02em;
  font-size:clamp(1.5rem,5vw,48px); line-height:1.14;
  max-width:none; margin-inline:auto; text-wrap:balance;
}
.hero h1 em{ font-style:italic; }
/* Logo en el hero: solo mobile (en desktop ya está en el header) */
.hero__logo{ display:none; height:30px; width:auto; margin:0 auto 1.4rem; filter:brightness(0) invert(1); }
@media (max-width:767px){ .hero__logo{ display:block; } }
/* Desktop: titular en 2 líneas */
@media (min-width:900px){ .hero h1{ max-width:32ch; } }
.hero .hero__sub{ color:#fff; font-weight:500; font-size:clamp(1.05rem,2.2vw,1.25rem); max-width:680px; margin:0 auto 2rem; }
/* Desktop: subtítulo en 1 línea */
@media (min-width:900px){ .hero .hero__sub{ max-width:none; white-space:nowrap; } }

/* Bullets → barra única "glass" con separadores (destaca del H1/subtítulo) */
.hero__bullets{
  list-style:none; margin:0 0 2.4rem; padding:0; align-self:center;
  display:flex; flex-direction:column; max-width:min(100%,360px);
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18);
  border-radius:16px; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  box-shadow:0 8px 30px rgba(6,12,24,.25); overflow:hidden;
}
.hero__bullets li{ display:flex; align-items:center; justify-content:center; gap:12px; padding:14px 20px; font-weight:600; color:#fff; }
@media (max-width:767px){ .hero__bullets li{ justify-content:flex-start; } } /* bullets a la izquierda en mobile */
.hero__bullets li + li{ border-top:1px solid rgba(255,255,255,.18); }
.hero__ico{ flex:none; display:grid; place-items:center; }
.hero__ico svg{ width:24px; height:24px; color:#fff; }
.hero__ico-label{ line-height:1.3; }
@media (min-width:900px){
  /* barra horizontal: 3 en una línea con divisores verticales */
  .hero__bullets{ flex-direction:row; max-width:none; }
  .hero__bullets li{ white-space:nowrap; }
  .hero__bullets li + li{ border-top:0; border-left:1px solid rgba(255,255,255,.18); }
}
.check{ display:inline-grid; place-items:center; }
.check svg{ color:var(--brand); }

/* Ratings hero (Google · Trustpilot) — todo en blanco, centrado, bajo el CTA */
.hero__ratings{ display:flex; flex-wrap:wrap; gap:clamp(20px,4vw,40px); justify-content:center; margin-top:clamp(22px,3vw,32px); }
.rating{ display:flex; align-items:center; gap:10px; }
.rating__logo{ display:inline-grid; place-items:center; width:34px; height:34px; }
.rating__logo svg{ width:30px; height:30px; }
.rating__body{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; line-height:1; }
.rating__brand{ font-weight:700; font-size:.95rem; color:#fff; }
.stars{ position:relative; display:inline-block; font-size:1rem; letter-spacing:1px; line-height:1; }
.stars__bg{ color:rgba(255,255,255,.30); }
.stars__fill{ position:absolute; top:0; left:0; overflow:hidden; white-space:nowrap; color:#fff; } /* estrellas blancas */

/* ----------------------------------------------------------------
   Autoridad
   ---------------------------------------------------------------- */
.stats{
  display:grid; grid-template-columns:repeat(3,1fr); gap:0;
  max-width:1000px; margin:0 auto;
}
.stat{ text-align:center; padding:8px clamp(12px,3vw,32px); }
.stat + .stat{ border-left:1px solid var(--border); } /* divisor vertical (desktop) */
@media (max-width:767px){
  .stats{ grid-template-columns:1fr; max-width:360px; }
  .stat{ padding:18px 8px; }
  .stat + .stat{ border-left:0; border-top:1px solid var(--border); } /* divisor horizontal */
}
.stat__val{ font-weight:800; font-size:clamp(1.8rem,4.5vw,3rem); color:var(--navy); line-height:1; letter-spacing:-.02em; }
.stat__label{ display:block; margin-top:.55rem; color:var(--brand); font-size:clamp(.85rem,1.6vw,1rem); font-weight:700; }

/* Banner de logos (prensa) — franja bajo el hero, carrusel en loop lento */
.prensa-band{ background:var(--surface); border-bottom:1px solid var(--border); padding-block:clamp(20px,3vw,32px); }

.marquee{
  overflow:hidden; width:100%;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.marquee__track{ display:flex; width:max-content; animation:marquee-scroll 70s linear infinite; }
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee__group{
  display:flex; align-items:center; flex:none;
  gap:clamp(34px,6vw,68px); padding-right:clamp(34px,6vw,68px);
}
.marquee__group img{
  height:28px; width:auto; flex:none;
  filter:brightness(0); opacity:.6; transition:opacity .2s ease;
}
.marquee__group img:hover{ opacity:1; }
@media (min-width:768px){ .marquee__group img{ height:34px; } }
@keyframes marquee-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){
  .marquee{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .marquee__track{ animation:none; }
}

.equipo{ max-width:820px; margin:clamp(36px,5vw,56px) auto 0; text-align:center; }
.equipo__img{ width:100%; height:auto; border-radius:var(--radius-lg); margin-bottom:clamp(20px,3vw,32px); box-shadow:var(--shadow-md); object-fit:cover; }
.equipo p{ color:var(--text-muted); font-size:1.06rem; }

/* Partners — carrusel en loop (logos en gris), ~4 visibles por vez */
.partners{ width:100%; margin:clamp(36px,5vw,56px) 0 0; }
.partners__group{ display:flex; align-items:center; flex:none; gap:clamp(40px,6vw,72px); padding-right:clamp(40px,6vw,72px); }
.partners__group img{ height:30px; width:auto; flex:none; opacity:.55; filter:grayscale(1); transition:opacity .2s ease, filter .2s ease; }
.partners__group img:hover{ opacity:.9; filter:grayscale(0); }
@media (min-width:768px){ .partners__group img{ height:48px; } }
@media (prefers-reduced-motion:reduce){ .partners__group img{ transition:none; } }

/* ----------------------------------------------------------------
   Modelo de inversión
   ---------------------------------------------------------------- */
.modelo{ background:var(--surface); }
.modelo__flow{ max-width:760px; margin:0 auto; }

/* Cadena 1 → 2 (encadenados, columna centrada con flecha) */
.modelo__chain{ display:grid; gap:36px; max-width:460px; margin:0 auto; }
.modelo__chain .node:not(:last-child)::after{ /* línea simple hacia el siguiente, igual que la horquilla */
  content:""; position:absolute; left:50%; bottom:-36px; width:2px; height:36px;
  background:var(--brand); opacity:.55; transform:translateX(-50%);
}

/* Horquilla: del paso 2 se bifurca a 3 y 4 */
.modelo__fork{ position:relative; width:100%; height:32px; }
.modelo__fork::before{ content:""; position:absolute; left:50%; top:0; bottom:0; width:2px; background:var(--brand); opacity:.6; transform:translateX(-50%); }
.modelo__fork svg{ display:none; }
@media (min-width:760px){
  .modelo__fork{ height:46px; }
  .modelo__fork::before{ display:none; }
  .modelo__fork svg{ display:block; width:100%; height:100%; }
  .modelo__fork svg path{ stroke:var(--brand); stroke-width:2; fill:none; opacity:.55; }
}

/* Alternativas 3 / 4 — mobile: carrusel swipeable (uno u otro); desktop: lado a lado */
/* mobile: A y B apiladas con una «o» entre ellas → se entiende que son opciones del paso 2 */
.modelo__branches{ display:grid; grid-template-columns:1fr; gap:32px; }
.modelo__branches .node{ position:relative; }
.modelo__branches .node--r2::before{
  content:"o"; position:absolute; left:50%; top:-16px; transform:translate(-50%,-50%);
  display:grid; place-items:center; min-width:30px; height:30px; padding:0 8px;
  background:var(--surface); color:var(--text-muted); font-weight:800; font-size:.95rem; text-transform:lowercase;
}
@media (min-width:760px){
  .modelo__branches{ grid-template-columns:1fr 1fr; gap:24px; }
  .modelo__branches .node--r2::before{ display:none; } /* en desktop la horquilla ya muestra la bifurcación */
}

.node{
  position:relative; background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-lg);
  padding:24px; box-shadow:var(--shadow-sm); text-align:center; /* contenido centrado */
}
.node__n{
  display:inline-grid; place-items:center; width:38px; height:38px; border-radius:50%;
  background:var(--brand); color:#fff; font-weight:800; margin-bottom:.7rem;
}
.node h3{ margin-bottom:.35rem; }
.node p{ color:var(--text-muted); margin:0; }

.modelo__cta{ text-align:center; margin-top:clamp(28px,4vw,44px); }

/* ----------------------------------------------------------------
   Acordeón (asesoría + faqs)
   ---------------------------------------------------------------- */
.accordion{ max-width:820px; margin-inline:auto; display:grid; gap:12px; }
.acc-item{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); }
.acc-trigger{
  width:100%; display:flex; align-items:center; gap:14px; justify-content:space-between;
  background:none; border:0; cursor:pointer; text-align:left;
  font-family:var(--font); font-weight:700; font-size:1.05rem; color:var(--text);
  padding:18px 20px; min-height:56px;
}
.acc-trigger:hover{ color:var(--brand); }
/* Icono = flecha (chevron) que gira al abrir/cerrar */
.acc-icon{ flex:none; width:22px; height:22px; position:relative; transition:transform .25s ease; color:var(--brand); }
.acc-icon::before{
  content:""; position:absolute; top:5px; left:6px; width:9px; height:9px;
  border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  border-radius:1px; transform:rotate(45deg); /* chevron hacia abajo */
}
.acc-trigger[aria-expanded="true"] .acc-icon{ transform:rotate(180deg); }
.acc-panel{ padding:0 20px; }
.acc-panel[hidden]{ display:none; }
.acc-panel__inner{ padding-bottom:20px; color:var(--text-muted); }
.acc-panel__inner p{ margin:0 0 .8em; }
.acc-panel__inner p:last-child{ margin-bottom:0; }
@media (prefers-reduced-motion:reduce){ .acc-icon{ transition:none; } }

/* Asesoría — foto a sangre a la izquierda + acordeón a la derecha */
.asesoria-sec{ padding:0; }
.asesoria-grid{ display:grid; grid-template-columns:1fr; }
.asesoria-photo{ position:relative; min-height:clamp(240px,48vw,340px); }
.asesoria-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }
.asesoria-content{ padding:clamp(40px,7vw,80px) clamp(16px,5vw,72px); }
.asesoria-content .section-head{ text-align:left; margin-inline:0; max-width:none; margin-bottom:clamp(20px,3vw,32px); }
@media (max-width:899px){ .asesoria-content .section-head{ text-align:center; } }
.asesoria-content .accordion{ max-width:none; margin:0; }
@media (min-width:900px){
  .asesoria-grid{ grid-template-columns:1fr 1fr; align-items:stretch; }
  /* foto rellena toda la columna (llega hasta el fondo de la sección) */
  .asesoria-photo{ position:relative; height:100%; }
}

/* ----------------------------------------------------------------
   Beneficios
   ---------------------------------------------------------------- */
.beneficios{ background:var(--surface); }
/* Card única que envuelve el título + los checks */
.benefit-card{
  max-width:760px; margin:0 auto;
  background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md); padding:clamp(28px,4vw,48px);
}
.benefit-card h2{ text-align:center; margin-bottom:clamp(20px,3vw,32px); }
.benefit-list{ list-style:none; margin:0; padding:0; display:grid; gap:14px 28px; }
.benefit-list li{ display:flex; align-items:flex-start; gap:14px; font-weight:600; }
.benefit-list .check{ flex:none; margin-top:1px; }
.benefit-list .check svg{ color:var(--brand); width:24px; height:24px; }
@media (min-width:720px){ .benefit-list{ grid-template-columns:1fr 1fr; } }

/* ----------------------------------------------------------------
   Reseñas (carousel scroll-snap)
   ---------------------------------------------------------------- */
.reviews-track{
  display:grid; grid-auto-flow:column; grid-auto-columns:86%;
  gap:16px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding:6px 4px 22px; margin-inline:calc(var(--space) * -1); padding-inline:var(--space);
  -webkit-overflow-scrolling:touch; scrollbar-width:thin;
}
.review{ scroll-snap-align:start; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:24px; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; gap:14px; }
.review__stars{ color:#F5A623; letter-spacing:2px; font-size:1rem; }
.review__text{ color:var(--text); margin:0; flex:1; }
.review__person{ display:flex; align-items:center; gap:12px; }
.review__avatar{ flex:none; width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:var(--brand); color:#fff; font-weight:800; font-size:.95rem; }
.review__name{ font-weight:700; }
@media (min-width:680px){ .reviews-track{ grid-auto-columns:46%; } }
@media (min-width:1040px){ .reviews-track{ grid-auto-columns:31%; } }

/* ----------------------------------------------------------------
   FAQ footer
   ---------------------------------------------------------------- */
.faq-footer{ max-width:760px; margin:clamp(32px,4vw,48px) auto 0; text-align:center; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:clamp(28px,4vw,40px); box-shadow:var(--shadow-sm); }
.faq-footer p{ color:var(--text-muted); }
.faq-footer .btn{ margin-top:.6rem; }

/* ----------------------------------------------------------------
   Formulario (navy gradient section)
   ---------------------------------------------------------------- */
.form-section{
  background:
    linear-gradient(0deg, rgba(0,0,0,.40), rgba(0,0,0,.40)), /* oscurecido NEUTRO (sin azul) para legibilidad */
    url("../content/image-129.png") center bottom/cover no-repeat; /* foco abajo (amarillo), sin sobre-zoom */
  background-color:#0a0a0a;
  color:var(--on-dark);
  /* Efecto stacking: las FAQs quedan fijas detrás y esta sección las cubre al subir */
  position:relative; z-index:2;
  box-shadow:0 -24px 60px rgba(0,0,0,.30);
}
/* Separación visual suave: el formulario tiene borde superior redondeado + sombra.
   Sin sticky ni solape que tape contenido → todas las respuestas se ven completas. */
.form-section{
  border-radius:clamp(28px,4vw,40px) clamp(28px,4vw,40px) 0 0;
}
@media (max-width:767px){
  .form-section{ background-position:center, right bottom; } /* mobile: foco abajo-derecha */
}
/* Layout en 2 columnas (desktop): texto a la izquierda + card a la derecha */
.form-layout{ display:grid; gap:clamp(28px,4vw,56px); align-items:center; }
@media (min-width:900px){ .form-layout{ grid-template-columns:1fr 1.4fr; align-items:start; } }
.form-intro{ text-align:left; }
@media (max-width:767px){
  .form-intro{ text-align:center; }
  .form-intro__sub{ margin-inline:auto; }
  .form-intro__more{ display:none; } /* ocultar en mobile */
}
.form-intro .eyebrow{ color:#fff; opacity:.85; }
.form-intro h2{ color:#fff; font-weight:700; font-size:clamp(1.9rem,3.6vw,2.8rem); line-height:1.1; margin-bottom:.5em; }
.form-intro__sub{ color:var(--on-dark); opacity:.92; font-size:clamp(1rem,1.4vw,1.15rem); max-width:48ch; }
.form-intro__more{ margin-top:clamp(22px,3vw,30px); padding-top:clamp(22px,3vw,30px); border-top:1px solid var(--border-dark); max-width:48ch; }
.form-intro__more h3{ color:#fff; font-size:1.2rem; margin-bottom:.4rem; }
.form-intro__more p{ color:var(--on-dark); opacity:.9; margin:0; font-size:1rem; }

.form-card{
  background:var(--surface); color:var(--text);
  border-radius:var(--radius-lg); padding:clamp(24px,3.5vw,40px); box-shadow:var(--shadow-lg);
}

.field{ margin-bottom:18px; } /* un campo por línea */
.field > label{ display:block; font-weight:700; font-size:.95rem; margin-bottom:6px; }
.control{
  width:100%; font-family:var(--font); font-size:1rem; color:var(--text);
  background:#fff; border:1.5px solid var(--border); border-radius:var(--radius);
  padding:13px 14px; min-height:50px; transition:border-color .15s ease, box-shadow .15s ease;
  appearance:none;
}
.control:focus{ outline:0; border-color:var(--brand); box-shadow:0 0 0 3px rgba(27,78,255,.18); }
select.control{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2356627A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:42px; cursor:pointer; }
.tel-group{ display:grid; grid-template-columns:120px 1fr; gap:10px; }
.control[aria-invalid="true"]{ border-color:#D7263D; box-shadow:0 0 0 3px rgba(215,38,61,.14); }
.field-error{
  display:none; align-items:center; gap:6px; margin-top:6px; color:#C21C30; font-size:.88rem; font-weight:600;
}
.field-error.is-visible{ display:flex; }
.field-error svg{ flex:none; width:16px; height:16px; }
.form-legal{ font-size:.82rem; color:var(--text-muted); margin:14px 0 0; text-align:center; }
.form-global-error{
  display:none; margin:0 0 16px; padding:12px 14px; border-radius:var(--radius);
  background:rgba(215,38,61,.1); border:1px solid rgba(215,38,61,.4); color:#C21C30; font-weight:600; font-size:.92rem;
}
.form-global-error.is-visible{ display:block; }
.form-card .btn{ margin-top:6px; }

/* ----------------------------------------------------------------
   Footer
   ---------------------------------------------------------------- */
.site-footer{ background:var(--navy-deep); color:var(--on-dark-muted); padding-block:48px; text-align:center; }
.site-footer .logo{ color:#fff; margin:0 auto 18px; }
.footer-links{ list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:10px 22px; padding:0; margin:0 0 22px; }
.footer-links a{ color:var(--on-dark); font-size:.92rem; }
.footer-links a:hover{ color:#fff; }
.footer-copy{ font-size:.88rem; margin:0; }

/* ----------------------------------------------------------------
   Sticky CTA mobile
   ---------------------------------------------------------------- */
.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:90;
  padding:10px var(--space) calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.92); backdrop-filter:saturate(160%) blur(12px);
  border-top:1px solid var(--border);
  transform:translateY(0); transition:transform .3s ease;
}
.sticky-cta.is-hidden{ transform:translateY(120%); }
.sticky-cta .btn{ width:100%; }
@media (min-width:768px){ .sticky-cta{ display:none; } }
@media (prefers-reduced-motion:reduce){ .sticky-cta{ transition:none; } }

/* ----------------------------------------------------------------
   Gracias page
   ---------------------------------------------------------------- */
.gracias{ min-height:100vh; display:grid; place-items:center; background:var(--hero-grad); color:var(--on-dark); text-align:center; padding:24px; }
.gracias__card{ max-width:560px; }
.gracias h1{ color:#fff; }
.gracias p{ color:var(--on-dark-muted); font-size:1.1rem; margin-bottom:2rem; }
.gracias .check-big{ width:72px; height:72px; margin:0 auto 1.4rem; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.16); color:#fff; }
.gracias .check-big svg{ width:40px; height:40px; }

/* ----------------------------------------------------------------
   Reveal animation
   ---------------------------------------------------------------- */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .5s ease, transform .5s ease; }
.reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ----------------------------------------------------------------
   Interacciones (hover / microinteracciones)
   ---------------------------------------------------------------- */
.node, .review, .benefit-card{ transition:transform .25s ease, box-shadow .25s ease; }
.node:hover, .review:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.benefit-card:hover{ box-shadow:var(--shadow-lg); }
.acc-item{ transition:box-shadow .2s ease, border-color .2s ease; }
.acc-item:hover{ box-shadow:var(--shadow-md); border-color:rgba(27,78,255,.35); }
.benefit-list li{ transition:transform .2s ease; }
.benefit-list li:hover{ transform:translateX(4px); }
.footer-links a{ transition:color .2s ease; }
.rating{ transition:transform .2s ease; }
.rating:hover{ transform:translateY(-2px); }

/* Entrada del hero al cargar (stagger) */
.hero__inner > *{ animation:hero-in .6s cubic-bezier(.16,.84,.44,1) both; }
.hero__inner > *:nth-child(1){ animation-delay:.05s; }
.hero__inner > *:nth-child(2){ animation-delay:.13s; }
.hero__inner > *:nth-child(3){ animation-delay:.21s; }
.hero__inner > *:nth-child(4){ animation-delay:.29s; }
.hero__inner > *:nth-child(5){ animation-delay:.37s; }
@keyframes hero-in{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }

@media (prefers-reduced-motion:reduce){
  .node, .review, .benefit-card, .benefit-list li, .rating, .acc-item{ transition:none; }
  .node:hover, .review:hover, .benefit-list li:hover, .rating:hover{ transform:none; }
  .hero__inner > *{ animation:none; }
}

/* spacing helper for body offset under sticky cta on mobile */
@media (max-width:767px){ body{ padding-bottom:0; } }

/* ----------------------------------------------------------------
   Dark mode (on-brand: crema → navy)
   ---------------------------------------------------------------- */
@media (prefers-color-scheme:dark){
  :root{
    --bg:var(--navy-deep); --surface:#0F1E36; --text:var(--on-dark); --text-muted:var(--on-dark-muted);
    --border:var(--border-dark);
  }
  body{ background:var(--bg); color:var(--text); }
  .header{ background:rgba(10,23,48,.82); border-bottom-color:var(--border-dark); }
  .logo img{ filter:brightness(0) invert(1); } /* logo blanco sobre header navy */
  .marquee__group img{ filter:brightness(0) invert(1); opacity:.7; } /* prensa blanca sobre navy */
  .partners__group img{ filter:grayscale(1) brightness(0) invert(1); opacity:.7; }
  .partners__group img:hover{ filter:none; opacity:1; }
  .stat__val{ color:#fff; }
  .control{ background:#0B1A33; color:var(--on-dark); }
  select.control{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23A9BEE2' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; }
  .form-card{ color:var(--text); }
  .form-card__sub{ color:var(--text-muted); }
  .sticky-cta{ background:rgba(10,23,48,.92); border-top-color:var(--border-dark); }
  .review__text,.benefit-list li{ color:var(--text); }
}
