/* =====================================================================
   Guía de Derechos Migratorios en USA 2026
   Concepto: "guía-vecina" — cálida, luminosa, hecha a mano. Fondo crema,
   formas orgánicas (manchas y olas) en vez de rejillas o cortes
   diagonales, franja tipo serape como firma de marca, carrusel deslizable
   de capítulos en vez de tabla/timeline. Mobile-first.
   ===================================================================== */

:root{
  --navy-900:#0b1c30;
  --navy-700:#123055;
  --gold-500:#dba94a;
  --gold-600:#c48f2e;
  --gold-700:#a5701f;
  --red-600:#c23b3b;
  --terracota-600:#c1592f;
  --terracota-700:#a04a26;
  --cream-50:#faf7f0;
  --cream-100:#f3ecdd;
  --beige-100:#f1e4d3;
  --ink:#2b2016;
  --ink-soft:#5b4a3a;
  --ink-faint:#8a7a67;
  --white:#ffffff;

  --radius-sm:12px;
  --radius-md:20px;
  --radius-lg:30px;
  --radius-pill:999px;

  --shadow-soft:0 14px 34px -16px rgba(43,32,22,.28);
  --shadow-lift:0 20px 46px -18px rgba(43,32,22,.34);

  --container:1120px;
  --font-display:'Fraunces', Georgia, serif;
  --font-body:'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
#top, #video, #beneficios, #capitulos, #recursos, #descarga-completa{ scroll-margin-top:76px; }
body{
  margin:0;
  background:var(--cream-50);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{ font-family:var(--font-display); margin:0; color:var(--navy-900); }
p{ margin:0; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }
svg{ display:block; flex-shrink:0; }

.wrap{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:1.25rem;
}

.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--navy-900); color:var(--white);
  padding:.8rem 1.2rem; border-radius:var(--radius-sm); z-index:200;
}
.skip-link:focus{ left:1rem; top:1rem; }

/* ---------- Franja serape (firma de marca) ---------- */
.serape-trim{
  height:6px;
  width:100%;
  background:repeating-linear-gradient(
    -55deg,
    var(--terracota-600) 0 18px,
    var(--gold-500) 18px 36px,
    var(--navy-700) 36px 54px,
    var(--red-600) 54px 72px
  );
}

/* ---------- Navbar ---------- */
.navbar{
  position:sticky; top:0; z-index:100;
  background:rgba(250,247,240,.92);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(43,32,22,.08);
}
.navbar-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; padding-block:.7rem;
}
.nav-brand{
  display:flex; align-items:center; gap:.5rem;
  font-family:var(--font-display); font-weight:700;
  font-size:.98rem; color:var(--navy-900); white-space:nowrap;
}
.nav-brand-icon{
  display:flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:var(--radius-pill);
  background:var(--gold-500); color:var(--navy-900); flex-shrink:0;
}
.nav-brand-year{ color:var(--terracota-600); margin-left:.3em; }
.nav-links{ display:none; }
.nav-links a{
  font-weight:700; font-size:.92rem; color:var(--ink-soft);
  padding:.4rem .2rem;
}
.nav-links a:hover{ color:var(--terracota-600); }

.btn-download{
  display:inline-flex; align-items:center; gap:.55rem;
  background:var(--gold-600);
  color:var(--navy-900);
  font-weight:800;
  font-size:.95rem;
  padding:.85rem 1.3rem;
  border-radius:var(--radius-pill);
  border:none;
  min-height:44px;
  box-shadow:var(--shadow-soft);
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  white-space:nowrap;
}
.btn-download:hover{ background:var(--gold-700); transform:translateY(-2px); box-shadow:var(--shadow-lift); }
.btn-download:active{ transform:translateY(0); }
.nav-download{ font-size:.85rem; padding:.65rem 1rem; }
.nav-download span{ display:none; }


/* ---------- Hero ---------- */
.hero{
  position:relative;
  padding-top:clamp(1.8rem, 6vw, 3rem);
  background:
    radial-gradient(60% 55% at 82% 8%, rgba(219,169,74,.22), transparent 70%),
    radial-gradient(70% 60% at 8% 100%, rgba(193,89,47,.14), transparent 70%),
    var(--cream-50);
  overflow:hidden;
}
.hero-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:2.2rem;
  align-items:center;
  padding-bottom:3rem;
}
.hero-copy{ display:flex; flex-direction:column; align-items:flex-start; gap:1.1rem; }

.badge-pill{
  display:inline-flex; align-items:center;
  background:var(--navy-900); color:var(--gold-500);
  font-weight:800; font-size:.78rem; letter-spacing:.02em;
  padding:.5rem 1rem; border-radius:var(--radius-pill);
}

.hero-title{
  font-size:clamp(2.1rem, 7vw, 3.2rem);
  line-height:1.08;
  font-weight:700;
  letter-spacing:-.01em;
  color:var(--navy-900);
}
.hero-title-accent{
  color:var(--terracota-600);
  font-style:italic;
  font-weight:600;
}

.hero-lead{
  font-size:clamp(1rem, 3vw, 1.14rem);
  color:var(--ink-soft);
  max-width:56ch;
}
.hero-lead strong{ color:var(--ink); }

.hero-download{
  font-size:clamp(1.02rem, 3vw, 1.12rem);
  padding:1.05rem 1.7rem;
  width:100%;
  justify-content:center;
}
.hero-microcopy{
  font-size:.85rem;
  color:var(--ink-faint);
  font-weight:700;
}

.trust-chips{
  display:flex; flex-wrap:wrap; gap:.55rem;
  margin-top:.3rem;
}
.trust-chips li{
  display:flex; align-items:center; gap:.4rem;
  background:var(--white);
  border:1px solid rgba(43,32,22,.1);
  color:var(--ink-soft);
  font-weight:700; font-size:.8rem;
  padding:.45rem .8rem;
  border-radius:var(--radius-pill);
}
.trust-chips svg{ color:var(--gold-600); }

.hero-visual{
  position:relative;
  width:min(78%, 300px);
  margin-inline:auto;
}
.hero-blob{
  position:absolute;
  inset:-8% -14%;
  background:linear-gradient(155deg, var(--gold-500), var(--terracota-600));
  opacity:.24;
  border-radius:62% 38% 55% 45% / 48% 45% 55% 52%;
  filter:blur(2px);
  z-index:0;
}
.hero-cover{
  position:relative; z-index:1;
  width:100%; height:auto;
  filter:drop-shadow(0 22px 34px rgba(43,32,22,.32));
  transform:rotate(-2.5deg);
  animation:hero-float 4s ease-in-out infinite;
}

@keyframes hero-float{
  0%, 100%{ transform:translateY(0) rotate(-2.5deg); }
  50%{ transform:translateY(-10px) rotate(-1deg); }
}
.hero-sticker{
  position:absolute; z-index:2;
  top:-6%; right:-2%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center;
  width:74px; height:74px;
  border-radius:50%;
  background:var(--red-600);
  color:var(--white);
  font-weight:900; font-size:.78rem; line-height:1.15;
  transform:rotate(8deg);
  box-shadow:var(--shadow-soft);
  border:3px solid var(--cream-50);
}

.wave-divider{ position:relative; line-height:0; margin-top:-1px; }
.wave-divider svg{ width:100%; height:auto; }
.wave-divider path{ fill:var(--cream-100); }
.wave-divider.wave-flip{ transform:scaleY(-1); }
.wave-divider.wave-flip path{ fill:var(--navy-900); }

/* ---------- Secciones genéricas ---------- */
/* Todos los encabezados de sección (eyebrow + título + subtítulo) van
   centrados de forma consistente en toda la página. */
.eyebrow{
  font-weight:800; font-size:.82rem; letter-spacing:.04em;
  color:var(--terracota-600); text-transform:uppercase;
  margin-bottom:.6rem;
  text-align:center;
}
.eyebrow-light{ color:var(--gold-500); }
.section-head{
  font-size:clamp(1.6rem, 5vw, 2.4rem);
  font-weight:700; color:var(--navy-900);
  margin-bottom:.7rem;
  text-align:center;
}
.section-head em{ color:var(--terracota-600); font-style:italic; }
.section-head-light{ color:var(--white); }
.section-head-light em{ color:var(--gold-500); }
.section-dek{
  font-size:1rem; color:var(--ink-soft); max-width:56ch;
  margin-bottom:2.2rem;
  text-align:center;
  margin-inline:auto;
}
.section-dek-light{ color:rgba(255,255,255,.75); }

.reveal{ opacity:1; transform:none; }
html.js-ready .reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
html.js-ready .reveal.in{ opacity:1; transform:none; }

/* ---------- Video ---------- */
.video-section{
  background:var(--cream-100);
  padding-block:clamp(2.5rem, 7vw, 4rem) clamp(3rem, 8vw, 5rem);
}
.video-section .wrap{
  display:flex; flex-direction:column; align-items:center;
}
.video-frame{
  width:min(100%, 320px);
  margin-inline:auto;
  aspect-ratio:9/16;
  border-radius:var(--radius-lg);
  overflow:hidden;
  background:var(--navy-900);
  box-shadow:var(--shadow-lift);
  border:6px solid var(--white);
  outline:1px solid rgba(43,32,22,.08);
}
.video-frame video{
  width:100%; height:100%; object-fit:cover; display:block; background:var(--navy-900);
}
.collab-btn{
  background:var(--navy-900);
  color:var(--cream-50);
  font-size:clamp(1rem, 3vw, 1.08rem);
  padding:1rem 1.7rem;
  width:100%;
  justify-content:center;
  margin-top:1.6rem;
}
.collab-btn:hover{ background:var(--navy-700); }
@media (min-width:640px){
  .collab-btn{ width:auto; }
}

/* ---------- Beneficios ---------- */
.benefits-section{
  background:var(--cream-100);
  padding-bottom:clamp(1rem, 4vw, 2rem);
}
.benefit-rows{ display:flex; flex-direction:column; }
.benefit-row{
  display:flex; align-items:flex-start; gap:1.1rem;
  padding:1.4rem 1.25rem;
  max-width:var(--container);
  margin-inline:auto;
  border-top:1px solid rgba(43,32,22,.08);
}
.benefit-row:last-child{ border-bottom:1px solid rgba(43,32,22,.08); }
.benefit-row:nth-child(even){ background:rgba(219,169,74,.1); }
.benefit-icon{
  flex-shrink:0;
  width:52px; height:52px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--navy-900); color:var(--gold-500);
}
.benefit-body h3{
  font-size:1.12rem; font-weight:700; margin-bottom:.3rem; color:var(--navy-900);
}
.benefit-body p{ color:var(--ink-soft); font-size:.94rem; max-width:60ch; }

/* ---------- Capítulos (carrusel) ---------- */
.chapters-section{
  background:var(--navy-900);
  padding-block:clamp(2.6rem, 7vw, 4rem) clamp(2rem, 6vw, 3rem);
}
.chapters-track{
  display:flex;
  gap:1rem;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-padding-inline:1.25rem;
  padding:.3rem 1.25rem 1.6rem;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.chapters-track::-webkit-scrollbar{ display:none; }
.chapter-card{
  flex:0 0 auto;
  scroll-snap-align:start;
  width:min(76vw, 270px);
  background:var(--navy-700);
  border:1px solid rgba(219,169,74,.25);
  border-radius:var(--radius-md);
  padding:1.4rem 1.3rem;
  color:var(--white);
}
.chapter-num{
  display:inline-block;
  font-family:var(--font-display);
  font-weight:700; font-size:1.6rem;
  color:var(--gold-500);
  margin-bottom:.5rem;
}
.chapter-card h3{
  color:var(--white); font-size:1.02rem; font-weight:700; margin-bottom:.4rem;
}
.chapter-card p{ color:rgba(255,255,255,.7); font-size:.88rem; }

.chapters-dots{ display:flex; gap:.4rem; justify-content:center; }
.chapters-dots .dot{
  width:7px; height:7px; border-radius:50%;
  background:rgba(255,255,255,.25);
  transition:background .2s ease, transform .2s ease;
}
.chapters-dots .dot.is-active{ background:var(--gold-500); transform:scale(1.3); }

/* ---------- Recursos (plantillas sueltas — discreto a propósito, no compite
   con el botón dorado principal) ---------- */
.resources-section{
  background:var(--cream-50);
  padding-block:clamp(2.6rem, 7vw, 4rem);
  border-block:1px solid rgba(43,32,22,.08);
}
.resource-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:.9rem;
  margin-bottom:1.6rem;
}
.resource-card{
  background:var(--white);
  border:1px solid rgba(43,32,22,.1);
  border-radius:var(--radius-md);
  padding:1.1rem .9rem;
  display:flex; flex-direction:column; align-items:flex-start;
  gap:.5rem;
}
.resource-icon{
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px;
  border-radius:50%;
  background:var(--beige-100);
  color:var(--ink-soft);
}
.resource-card h3{
  font-size:.92rem; font-weight:700; color:var(--navy-900);
  line-height:1.25;
}
.resource-card p{
  font-size:.8rem; color:var(--ink-faint); line-height:1.4;
  flex-grow:1;
}
.resource-download{
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.78rem; font-weight:700;
  color:var(--navy-700);
  background:var(--beige-100);
  padding:.5rem .8rem;
  border-radius:var(--radius-pill);
  min-height:36px;
  transition:background .15s ease;
}
.resource-download:hover{ background:var(--cream-100); }
.resource-footnote{
  text-align:center; font-size:.85rem; color:var(--ink-faint);
}
.resource-scroll-link{
  color:var(--ink-soft); font-weight:700; text-decoration:underline;
}
.resource-scroll-link:hover{ color:var(--terracota-600); }

/* ---------- CTA final ---------- */
.cta-final{
  background:linear-gradient(120deg, var(--gold-500), var(--gold-600));
  padding-block:clamp(2.6rem, 7vw, 4rem);
}
.cta-final-inner{
  display:flex; flex-direction:column; gap:1.6rem; align-items:center; text-align:center;
}
.cta-final .eyebrow{ color:var(--navy-900); }
.cta-final-copy h2{
  color:var(--navy-900); font-size:clamp(1.6rem, 5vw, 2.2rem); margin-bottom:.5rem;
}
.cta-final-copy p{ color:rgba(11,28,48,.75); max-width:52ch; margin-inline:auto; }
.cta-download{
  background:var(--navy-900);
  color:var(--white);
  width:100%; justify-content:center;
}
.cta-download:hover{ background:var(--navy-700); }

/* ---------- Footer ---------- */
footer{ background:var(--cream-50); padding-block:clamp(2.4rem, 6vw, 3.4rem) 6.5rem; }
.foot-top{
  display:flex; flex-direction:column; gap:1rem;
  padding-bottom:1.6rem; margin-bottom:1.6rem;
  border-bottom:1px solid rgba(43,32,22,.12);
}
.foot-brand{ font-family:var(--font-display); font-weight:700; color:var(--navy-900); font-size:1.05rem; }
.foot-links{ display:flex; gap:1.2rem; flex-wrap:wrap; }
.foot-links a{ color:var(--ink-soft); font-weight:700; font-size:.9rem; }
.foot-links a:hover{ color:var(--terracota-600); }

.legal-card{
  background:var(--white);
  border:1px solid rgba(43,32,22,.1);
  border-radius:var(--radius-md);
  padding:1.3rem 1.4rem;
}
.legal-card p{
  font-size:.82rem; color:var(--ink-faint); line-height:1.6;
}
.legal-card p + p{ margin-top:.8rem; }
.foot-copyright{ font-weight:700; color:var(--ink-soft) !important; }

/* ---------- Sticky bottom bar (mobile) ---------- */
.sticky-download-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:90;
  padding:.7rem .9rem calc(.7rem + env(safe-area-inset-bottom));
  background:rgba(250,247,240,.94);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-top:1px solid rgba(43,32,22,.1);
  box-shadow:0 -10px 24px -14px rgba(43,32,22,.25);
  transform:translateY(120%);
  transition:transform .3s ease;
}
.sticky-download-bar.is-visible{ transform:translateY(0); }
.sticky-download-btn{ width:100%; justify-content:center; }

/* ---------- Modal ---------- */
.modal-overlay{
  position:fixed; inset:0; z-index:200;
  background:rgba(11,28,48,.55);
  display:flex; align-items:flex-end; justify-content:center;
  padding:0;
  opacity:0; visibility:hidden;
  transition:opacity .25s ease, visibility .25s ease;
}
.modal-overlay.is-open{ opacity:1; visibility:visible; }
.modal-card{
  position:relative;
  width:100%; max-width:420px;
  background:var(--cream-50);
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
  padding:2rem 1.6rem 1.8rem;
  box-shadow:0 -20px 50px -10px rgba(11,28,48,.4);
  border-top:5px solid var(--gold-500);
  transform:translateY(24px);
  transition:transform .3s ease;
  text-align:center;
}
.modal-overlay.is-open .modal-card{ transform:translateY(0); }
.modal-close{
  position:absolute; top:.9rem; right:.9rem;
  width:36px; height:36px; border-radius:50%;
  background:var(--white); border:1px solid rgba(43,32,22,.12);
  color:var(--ink-soft); font-size:1rem; line-height:1;
}
.modal-check{
  display:inline-flex; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:50%;
  background:#e4f2e7; color:#1e7145;
  margin-bottom:1rem;
}
.modal-card h3{ font-size:1.35rem; margin-bottom:.7rem; }
.modal-text{ color:var(--ink-soft); font-size:.95rem; margin-bottom:1.4rem; }
.modal-options{
  display:flex; flex-direction:column; gap:.6rem;
}
.modal-or{
  font-size:.78rem; font-weight:700; color:var(--ink-faint);
  text-transform:uppercase; letter-spacing:.04em;
  margin:.1rem 0;
}
.pay-btn{
  width:100%;
  display:flex; align-items:center; justify-content:space-between; gap:.8rem;
  background:var(--white);
  border-radius:var(--radius-md);
  padding:.9rem 1.1rem;
  min-height:44px;
  text-align:left;
  transition:background .15s ease, transform .15s ease;
}
.pay-btn:hover{ background:var(--beige-100); }
.pay-btn:active{ transform:scale(.98); }
.pay-btn-label{
  display:flex; align-items:center; gap:.6rem;
  font-size:.88rem; color:var(--ink); font-weight:700;
}
.pay-btn-label svg{ flex-shrink:0; }
.zelle-btn{ border:2px solid var(--gold-500); }
.zelle-btn .pay-btn-label svg{ color:var(--gold-600); }
.copy-tag{
  flex-shrink:0;
  font-size:.78rem; font-weight:800;
  color:var(--navy-900);
  background:var(--gold-500);
  padding:.35rem .7rem;
  border-radius:var(--radius-pill);
}
.zelle-btn.copied .copy-tag{ background:#1e7145; color:var(--white); }
.card-btn{ border:2px solid var(--navy-700); }
.card-btn .pay-btn-label svg{ color:var(--navy-700); }
.card-tag{
  flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  width:2.1rem; height:2.1rem;
  border-radius:50%;
  background:var(--navy-700); color:var(--white);
}
.modal-caption{
  font-size:.78rem; color:var(--ink-faint); margin-top:.8rem;
}
.modal-skip{
  background:none; border:none;
  margin-top:1.2rem;
  font-weight:700; font-size:.88rem;
  color:var(--ink-faint);
  text-decoration:underline;
  min-height:44px;
}

/* =====================================================================
   Tablet — 640px+
   ===================================================================== */
@media (min-width:640px){
  .nav-download span{ display:inline; }
  .hero-download, .cta-download{ width:auto; }
  .hero-copy{ align-items:flex-start; }
  .hero-visual{ width:min(60%, 340px); }
  .modal-overlay{ align-items:center; padding:1.5rem; }
  .modal-card{ border-radius:var(--radius-lg); }
}

/* =====================================================================
   Desktop — 1024px+
   ===================================================================== */
@media (min-width:1024px){
  .nav-links{ display:flex; gap:1.6rem; }

  .hero-grid{
    grid-template-columns:1.05fr .95fr;
    gap:3rem;
    padding-block:2rem 4.5rem;
  }
  .hero-copy{ padding-right:1.5rem; }
  .hero-download{ align-self:flex-start; }
  .hero-visual{ width:100%; max-width:400px; margin-inline:auto; }

  .sticky-download-bar{ display:none; }

  .benefit-row{ padding:1.7rem 1.5rem; gap:1.5rem; }
  .benefit-icon{ width:58px; height:58px; }

  .chapters-track{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:1.2rem;
    overflow:visible;
    max-width:var(--container);
    margin-inline:auto;
    padding:.3rem 1.25rem 0;
  }
  .chapter-card{ width:auto; }
  .chapters-dots{ display:none; }

  .resource-grid{ grid-template-columns:repeat(4, 1fr); }

  .cta-final-inner{ padding-block:.5rem; }
}

@media (min-width:1280px){
  .hero-title{ font-size:3.5rem; }
}

/* Respeta usuarios que piden menos movimiento */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  html.js-ready .reveal{ opacity:1; transform:none; transition:none; }
  .btn-download, .sticky-download-bar, .modal-card, .modal-overlay{ transition:none; }
  .hero-cover{ animation:none; }
}
