/* ═══════════════════════════════════════════════════════════
   Red Innovando · III Encuentro Latinoamericano · CDMX 2027
   Sistema visual heredado de certifica.redinnovando.com
   ═══════════════════════════════════════════════════════════ */

:root{
  --bg:        #FFFDFB;
  --bg-alt:    #F4EEE7;
  --surface:   #FFFFFF;
  --ink:       #171211;
  --ink-2:     #4C4441;
  --ink-3:     #8B817B;
  --line:      #E9E2DB;
  --line-soft: #F0EAE4;
  --accent:    #9E1B32;
  --accent-d:  #7E1226;
  --accent-t:  #FBEEF0;

  --serif: 'Newsreader', 'Iowan Old Style', Georgia, 'Times New Roman', serif;
  --sans:  'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

  --r:  10px;
  --r-lg: 16px;
  --shadow: 0 1px 2px rgba(23,18,17,.04), 0 8px 24px -18px rgba(23,18,17,.22);
  --nav-h: 68px;
}

*,*::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;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }
[hidden]{ display:none !important; }

section[id]{ scroll-margin-top:calc(var(--nav-h) + 18px); }

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:100;
  background:var(--ink); color:#fff; padding:10px 16px; border-radius:0 0 var(--r) 0;
  font-size:14px; text-decoration:none;
}
.skip-link:focus{ left:0; }

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

/* ── Layout ───────────────────────────────────────────── */
.wrap{ width:100%; max-width:1160px; margin-inline:auto; padding-inline:24px; }
.wrap--narrow{ max-width:760px; }
.center{ text-align:center; }

/* Cada sección llena la pantalla y centra su contenido: nunca dos a medias */
.section{
  display:flex; flex-direction:column; justify-content:center;
  min-height:calc(100vh - var(--nav-h));
  min-height:calc(100svh - var(--nav-h));
  padding:80px 0;
}
.section--alt{ background:var(--bg-alt); border-block:1px solid var(--line-soft); }
.section .wrap + .wrap{ margin-top:52px; }
#proposito{ padding-bottom:96px; }
#ediciones{ padding:72px 0; }

/* ── Tipografía ───────────────────────────────────────── */
.display{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(2.5rem, 5.6vw, 4.15rem);
  line-height:1.05;
  letter-spacing:-.022em;
  margin:0 0 22px;
  text-wrap:balance;
}
.display em{ font-style:italic; color:var(--accent); }
.display--sm{ font-size:clamp(1.85rem, 3.4vw, 2.6rem); line-height:1.14; }

.lead{
  font-size:clamp(1rem, 1.25vw, 1.075rem);
  color:var(--ink-2);
  margin:0 auto;
  max-width:62ch;
  text-wrap:pretty;
}

.eyebrow{
  display:inline-block;
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  background:var(--accent-t);
  border:1px solid #F4DCE1;
  border-radius:999px;
  padding:6px 15px;
  margin:0 0 26px;
}
.eyebrow--plain{
  background:none; border:none; padding:0; margin-bottom:12px;
  color:var(--ink-3); letter-spacing:.16em;
}

/* ── Botones ──────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--sans); font-size:14.5px; font-weight:500; line-height:1;
  padding:15px 26px; border-radius:8px; border:1px solid transparent;
  text-decoration:none; white-space:nowrap; cursor:pointer;
  transition:background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.btn--primary{ background:var(--accent); color:#fff; box-shadow:0 1px 2px rgba(158,27,50,.2); }
.btn--primary:hover{ background:var(--accent-d); transform:translateY(-1px); box-shadow:0 6px 18px -8px rgba(158,27,50,.6); }
.btn--ghost{ background:var(--surface); color:var(--ink); border-color:var(--line); box-shadow:var(--shadow); }
.btn--ghost:hover{ border-color:#D9CFC6; transform:translateY(-1px); }

/* ── Nav ──────────────────────────────────────────────── */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(255,253,251,.82);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .2s ease, background .2s ease;
}
.nav.is-scrolled{ border-bottom-color:var(--line); background:rgba(255,253,251,.94); }

.nav__inner{
  max-width:1240px; margin-inline:auto; padding:0 24px;
  height:var(--nav-h);
  display:flex; align-items:center; gap:22px;
}

.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; flex:none; }
.brand img{ width:auto; height:30px; }
.brand__txt{
  font-family:var(--serif); font-size:18px; letter-spacing:-.01em; color:var(--ink);
  border-left:1px solid var(--line); padding-left:11px;
}
.brand__txt span{ color:var(--ink-3); }

.nav__links{ display:flex; align-items:center; gap:22px; margin-left:auto; }
.nav__links a{
  font-size:13.5px; color:var(--ink-2); text-decoration:none;
  position:relative; padding:4px 0; transition:color .18s ease; white-space:nowrap;
}
.nav__links a::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--ink); transform:scaleX(0); transform-origin:left;
  transition:transform .22s ease;
}
.nav__links a:hover{ color:var(--ink); }
.nav__links a:hover::after{ transform:scaleX(1); }

.nav__divider{ width:1px; height:18px; background:var(--line); }

.nav__ext{ display:inline-flex; align-items:center; gap:5px; font-size:12.5px !important; color:var(--ink-3) !important; }
.nav__ext:hover{ color:var(--accent) !important; }
.nav__ext:hover::after{ background:var(--accent); }
.nav__ext svg{ width:10px; height:10px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; flex:none; }

.burger{
  display:none; width:38px; height:38px; border:1px solid var(--line); border-radius:8px;
  background:var(--surface); cursor:pointer; padding:0;
  flex-direction:column; align-items:center; justify-content:center; gap:5px;
}
.burger span{ display:block; width:15px; height:1.5px; background:var(--ink); border-radius:2px; transition:transform .2s ease, opacity .2s ease; }
.burger[aria-expanded="true"] span:first-child{ transform:translateY(3.2px) rotate(45deg); }
.burger[aria-expanded="true"] span:last-child{ transform:translateY(-3.2px) rotate(-45deg); }

.mobile{
  display:flex; flex-direction:column; gap:2px;
  padding:10px 24px 22px;
  border-top:1px solid var(--line);
  background:var(--bg);
}
.mobile a{ font-size:15px; color:var(--ink-2); text-decoration:none; padding:11px 0; border-bottom:1px solid var(--line-soft); }
.mobile a:last-of-type{ border:none; }
.mobile__ext{ color:var(--accent) !important; }

/* ── Hero ─────────────────────────────────────────────── */
.hero{
  position:relative; overflow:hidden;
  display:flex; align-items:center;
  min-height:calc(100vh - var(--nav-h));
  min-height:calc(100svh - var(--nav-h));
  padding:clamp(72px, 10vw, 120px) 0;
  border-bottom:1px solid var(--line-soft);
}
.hero__bg{
  position:absolute; inset:0;
  background:url('../img/cdmx.jpg') center 58% / cover no-repeat;
  -webkit-mask-image:linear-gradient(180deg, rgba(0,0,0,.72) 0%, #000 26%, #000 76%, rgba(0,0,0,0) 100%);
          mask-image:linear-gradient(180deg, rgba(0,0,0,.72) 0%, #000 26%, #000 76%, rgba(0,0,0,0) 100%);
}
.hero::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(58% 56% at 50% 47%, rgba(255,253,251,.86) 0%, rgba(255,253,251,.62) 52%, rgba(255,253,251,.14) 86%, rgba(255,253,251,0) 100%),
    linear-gradient(180deg, rgba(255,253,251,.55) 0%, rgba(255,253,251,.05) 26%, rgba(255,253,251,.05) 68%, rgba(255,253,251,.88) 100%);
}

/* Halo bajo el texto: permite bajar el velo sin perder legibilidad */
.hero .display,
.hero .lead,
.hero__countries{
  text-shadow:
    0 1px 2px rgba(255,253,251,.92),
    0 0 14px rgba(255,253,251,.95),
    0 0 34px rgba(255,253,251,.9),
    0 0 60px rgba(255,253,251,.75);
}
.hero .lead{ color:var(--ink-2); }
.hero__body{ position:relative; z-index:1; }
.hero .wrap--narrow{ max-width:900px; }
.hero .lead{ max-width:52ch; }
.hero__cta{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:34px; }
.hero__countries{
  margin:30px 0 0; font-size:11.5px; font-weight:600; letter-spacing:.15em;
  text-transform:uppercase; color:var(--ink-2);
}

/* ── Píldoras ─────────────────────────────────────────── */
.pills{
  list-style:none; margin:34px auto 0; padding:0;
  display:flex; flex-wrap:wrap; gap:9px; justify-content:center; max-width:720px;
}
.pills li{
  font-size:13px; color:var(--ink-2);
  background:var(--surface); border:1px solid var(--line); border-radius:999px;
  padding:8px 16px; box-shadow:0 1px 1px rgba(23,18,17,.02);
  transition:border-color .18s ease, color .18s ease, transform .18s ease;
}
.pills li:hover{ border-color:#E2CBD1; color:var(--ink); transform:translateY(-1px); }

/* ── Grids y tarjetas ─────────────────────────────────── */
.grid{ display:grid; gap:20px; }
.grid--2{ grid-template-columns:repeat(2,1fr); }
.grid--3{ grid-template-columns:repeat(3,1fr); }
.grid--4{ grid-template-columns:repeat(4,1fr); }

.card{
  display:flex; flex-direction:column;
  min-height:min(38vh, 310px);
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r);
  padding:30px 28px 28px; box-shadow:var(--shadow); text-decoration:none;
  transition:border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
a.card:hover{ border-color:#E2CBD1; transform:translateY(-2px); box-shadow:0 2px 4px rgba(23,18,17,.04), 0 16px 34px -24px rgba(23,18,17,.42); }
.card__t{ font-family:var(--serif); font-size:20px; font-weight:500; letter-spacing:-.01em; margin:0 0 10px; }
.card p{ margin:0 0 20px; font-size:14.5px; color:var(--ink-2); line-height:1.62; }
.card__go{
  margin-top:auto; display:inline-flex; align-items:center; gap:6px;
  font-size:12.5px; font-weight:500; color:var(--accent);
  transition:gap .18s ease;
}
.card__go svg{ width:11px; height:11px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
a.card:hover .card__go{ gap:10px; }

/* ── Banner de foto (Propósito) ───────────────────────── */
.banner{ margin:0; }
.banner img{
  width:100%; aspect-ratio:2.62/1; object-fit:cover; object-position:50% 44%;
  max-height:35vh;
  border-radius:var(--r-lg); border:1px solid var(--line); box-shadow:var(--shadow);
}
.banner figcaption{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  margin-top:12px;
  font-size:10.5px; font-weight:600; letter-spacing:.13em; text-transform:uppercase;
  color:var(--ink-3);
}
.banner__zoom{
  display:inline-flex; align-items:center; gap:7px; cursor:pointer;
  padding:6px 14px; border-radius:999px;
  background:var(--surface); border:1px solid var(--line); color:var(--ink-2);
  font-family:var(--sans); font-size:10.5px; font-weight:600;
  letter-spacing:.13em; text-transform:uppercase;
  transition:color .18s ease, border-color .18s ease, transform .18s ease;
}
.banner__zoom svg{ width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; }
.banner__zoom:hover{ color:var(--accent); border-color:#E2CBD1; transform:translateY(-1px); }

/* ── Introducción a dos columnas ──────────────────────── */
.intro{
  display:grid; grid-template-columns:0.85fr 1.15fr; gap:44px;
  margin-top:32px; align-items:start;
}
.intro__head .eyebrow--plain{ margin-bottom:10px; }
.split__t{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(1.7rem, 2.8vw, 2.3rem); line-height:1.14; letter-spacing:-.02em;
  margin:0 0 14px;
}
.split__lead{ margin:0; font-size:14.6px; color:var(--ink-2); line-height:1.6; max-width:56ch; }

/* Filas del propósito */
.rows{ display:flex; flex-direction:column; }
.rows--3{
  display:grid; grid-template-columns:repeat(3,1fr); gap:0 36px;
  margin-top:28px;
}
.rows--3 .row{ display:flex; flex-direction:column; padding:18px 0 0; border-top:1px solid var(--line); }
.rows--3 .row__go{ margin-top:auto; align-self:flex-start; }
.rows--3 .row:last-child{ border-bottom:none; }
.rows--3 .row:hover{ padding-left:0; border-color:#E2CBD1; }
.rows--3 .row:hover .row__t{ color:var(--accent); }
.rows--3 .row__t{ transition:color .18s ease; }
.row{
  display:block; text-decoration:none;
  padding:18px 16px 18px 0; border-top:1px solid var(--line);
  transition:padding-left .22s ease, border-color .22s ease;
}
.rows .row:last-child{ border-bottom:1px solid var(--line); }
.row:hover{ padding-left:12px; border-color:#E2CBD1; }
.row__t{ margin:0 0 5px; font-family:var(--serif); font-size:19px; font-weight:500; letter-spacing:-.012em; }
.row p{ margin:0 0 8px; font-size:13.8px; color:var(--ink-2); line-height:1.58; }
.row__go{
  display:inline-flex; align-items:center; gap:6px;
  font-size:12.5px; font-weight:500; color:var(--accent); transition:gap .2s ease;
}
.row__go svg{ width:11px; height:11px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.row:hover .row__go{ gap:10px; }

/* ── Pasos ────────────────────────────────────────────── */
.step{
  position:relative; overflow:hidden;
  display:flex; flex-direction:column;
  min-height:min(42vh, 340px);
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:30px 26px 26px; box-shadow:var(--shadow);
  transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.step::before{
  content:''; position:absolute; left:0; right:0; top:0; height:2px;
  background:linear-gradient(90deg, var(--accent), #D9738A);
  transform:scaleX(0); transform-origin:left; transition:transform .28s ease;
}
.step:hover{ transform:translateY(-3px); box-shadow:0 2px 4px rgba(23,18,17,.04), 0 20px 40px -26px rgba(23,18,17,.5); }
.step:hover::before{ transform:scaleX(1); }

.step__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.step__ico{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:10px;
  background:var(--accent-t); color:var(--accent);
}
.step__ico svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.step .step__n{
  font-family:var(--serif); font-size:30px; line-height:1;
  color:#DCCFC7; letter-spacing:.01em; transition:color .2s ease;
}
.step:hover .step__n{ color:var(--accent); }

.step__t{ font-size:15.5px; font-weight:600; margin:0 0 9px; letter-spacing:-.005em; }
.step p{ margin:0 0 20px; font-size:14px; color:var(--ink-2); line-height:1.62; }

.step__tag{
  margin-top:auto; align-self:flex-start;
  font-size:10.5px; font-weight:500; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-3); border:1px solid var(--line); border-radius:999px; padding:5px 12px;
}
.step__go{
  margin-top:auto; display:inline-flex; align-items:center; gap:6px;
  font-size:12.5px; font-weight:500; color:var(--accent); text-decoration:none;
  border-bottom:1px solid rgba(158,27,50,.3); padding-bottom:2px; align-self:flex-start;
  transition:border-color .18s ease, color .18s ease;
}
.step__go:hover{ border-color:currentColor; }
.step__go svg{ width:10px; height:10px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }

/* Paso destacado: el que lleva a Certifica */
.step--feature{
  background:linear-gradient(155deg, #2E2326 0%, #241B1D 48%, #17100F 100%);
  border-color:#241B1D;
}
.step--feature::before{ background:linear-gradient(90deg, #E4A0AE, #9E1B32); }
.step--feature .step__ico{ background:rgba(255,255,255,.09); color:#E4A0AE; }
.step--feature .step__n{ color:rgba(255,255,255,.28); }
.step--feature:hover .step__n{ color:#E4A0AE; }
.step--feature .step__t{ color:#fff; }
.step--feature p{ color:rgba(255,255,255,.66); }
.step--feature .step__go{ color:#E4A0AE; border-bottom-color:rgba(228,160,174,.35); }

/* ── Ediciones anteriores ─────────────────────────────── */
.edition{
  display:flex; flex-direction:column; overflow:hidden;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  box-shadow:var(--shadow);
  transition:border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.edition:hover{ transform:translateY(-2px); box-shadow:0 2px 4px rgba(23,18,17,.04), 0 18px 40px -26px rgba(23,18,17,.45); }
.edition__media{ position:relative; }
.edition__media img{ width:100%; aspect-ratio:16/9; max-height:16vh; object-fit:cover; }
.edition__year{
  position:absolute; left:18px; bottom:16px;
  font-family:var(--serif); font-size:22px; letter-spacing:.01em; color:#fff;
  background:rgba(23,18,17,.58); backdrop-filter:blur(6px);
  border-radius:999px; padding:3px 16px 5px;
}
.edition__body{ padding:18px 22px 20px; }
.edition__k{ margin:0 0 6px; font-size:10.5px; letter-spacing:.15em; text-transform:uppercase; color:var(--accent); font-weight:600; }
.edition__t{ margin:0 0 10px; font-family:var(--serif); font-size:22px; font-weight:400; letter-spacing:-.015em; line-height:1.2; }
.edition__d{ margin:0 0 18px; font-size:14.5px; color:var(--ink-2); line-height:1.62; }
.edition__org{ margin:0; padding-top:16px; border-top:1px solid var(--line-soft); font-size:13.5px; color:var(--ink); }
.edition__org span{ display:block; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); margin-bottom:3px; }

.edition__go{
  display:inline-flex; align-items:center; gap:8px; margin-top:14px;
  padding:10px 16px; border-radius:8px; text-decoration:none;
  background:var(--surface); border:1px solid var(--line); color:var(--ink);
  font-size:13px; font-weight:500;
  transition:border-color .18s ease, color .18s ease, gap .18s ease, box-shadow .18s ease;
}
.edition__go svg{ width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.edition__go:hover{ border-color:var(--accent); color:var(--accent); gap:12px; box-shadow:0 6px 18px -12px rgba(158,27,50,.6); }

.next{ margin:16px auto 0; text-align:center; }
.next__k{
  margin:0 0 14px;
  font-size:10.5px; font-weight:600; letter-spacing:.15em;
  text-transform:uppercase; color:var(--accent);
}
.next__list{
  list-style:none; margin:0; padding:0;
  display:inline-flex; flex-direction:column; gap:2px;
}
.next__list li{
  display:flex; align-items:baseline; gap:14px;
  padding:9px 4px; border-top:1px solid var(--line);
  font-family:var(--serif); font-size:19px; letter-spacing:-.01em; color:var(--ink);
  text-align:left;
}
.next__list li:last-child{ border-bottom:1px solid var(--line); }
.next__y{
  flex:none; min-width:62px;
  font-size:22px; color:var(--accent); letter-spacing:.01em;
}

/* ── Logos de la red ──────────────────────────────────── */
.logos{
  display:grid; grid-template-columns:repeat(5,1fr); gap:16px;
}
.logo{
  position:relative;
  display:flex; align-items:center; justify-content:center;
  min-height:132px; padding:24px 20px 30px;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r);
  box-shadow:var(--shadow); text-decoration:none;
  transition:border-color .18s ease, transform .18s ease;
}
.logo__go{
  position:absolute; left:0; right:0; bottom:12px;
  display:flex; align-items:center; justify-content:center; gap:4px;
  font-size:10.5px; letter-spacing:.04em; color:var(--ink-3);
  opacity:0; transform:translateY(3px);
  transition:opacity .18s ease, transform .18s ease;
}
.logo__go svg{ width:9px; height:9px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.logo:hover .logo__go, .logo:focus-visible .logo__go{ opacity:1; transform:none; color:var(--accent); }
.logo--dark:hover .logo__go{ color:#E4A0AE; }
.logo:hover{ border-color:#E2CBD1; transform:translateY(-2px); }
.logo img{ max-height:52px; width:auto; max-width:100%; object-fit:contain; }
.logo--fusion img{ max-height:80px; }
.logo--ls img{ max-height:70px; }
.logo--bo img{ max-height:34px; }

/* El wordmark de Open Geek es blanco: necesita fondo oscuro */
.logo--dark{ background:#241B1D; border-color:#241B1D; }
.logo--dark:hover{ border-color:#3A2C2F; }
.logo--dark img{ max-height:38px; }

.logos__note{
  margin:22px 0 0; text-align:center;
  font-size:12px; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-3);
}
.logos__note a{ text-decoration:none; transition:color .18s ease; }
.logos__note a:hover{ color:var(--accent); }

/* ── Footer ───────────────────────────────────────────── */
.foot{ border-top:1px solid var(--line); padding:64px 0 40px; background:var(--bg); }
.foot__top{ display:grid; grid-template-columns:1.7fr 1fr 1fr; gap:44px; }
.foot__brand img{ height:34px; width:auto; margin-bottom:16px; }
.foot__brand p{ margin:0; font-size:13.5px; color:var(--ink-3); line-height:1.6; max-width:42ch; }
.foot__col{ display:flex; flex-direction:column; gap:9px; }
.foot__k{ margin:0 0 4px; font-size:10.5px; letter-spacing:.15em; text-transform:uppercase; color:var(--ink); font-weight:600; }
.foot__col a{ font-size:13.5px; color:var(--ink-3); text-decoration:none; transition:color .18s ease; }
.foot__col a:hover{ color:var(--accent); }
.foot__bottom{
  display:flex; justify-content:space-between; gap:8px 26px; flex-wrap:wrap;
  margin-top:52px; padding-top:24px; border-top:1px solid var(--line-soft);
}
.foot__bottom p{ margin:0; font-size:12.5px; color:var(--ink-3); }
.foot__bottom a{ color:var(--ink-3); text-decoration:none; }
.foot__bottom a:hover{ color:var(--accent); }
.foot__credit{ margin-left:auto !important; }

/* ── Lightbox ─────────────────────────────────────────── */
.lightbox{
  position:fixed; inset:0; z-index:100;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(20px, 5vw, 64px);
  background:rgba(20,15,14,.92);
  animation:lb-in .22s ease-out;
}
@keyframes lb-in{ from{ opacity:0 } to{ opacity:1 } }
.lightbox__fig{ margin:0; max-width:100%; }
.lightbox__fig img{
  max-width:100%; max-height:78vh; width:auto; height:auto;
  border-radius:var(--r); box-shadow:0 30px 80px -40px #000;
}
.lightbox__fig figcaption{
  margin-top:16px; text-align:center;
  font-size:10.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.62);
}
.lightbox__close{
  position:absolute; top:22px; right:22px;
  display:grid; place-items:center; width:42px; height:42px;
  border-radius:50%; cursor:pointer;
  background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.22); color:#fff;
  transition:background .18s ease, border-color .18s ease;
}
.lightbox__close:hover{ background:rgba(255,255,255,.2); border-color:rgba(255,255,255,.5); }
.lightbox__close svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; }

/* ── Flecha clásica del hero ──────────────────────────── */
.hero .cue{
  position:absolute; left:50%; bottom:28px; transform:translateX(-50%); z-index:2;
  display:inline-flex; flex-direction:column; align-items:center; gap:8px;
  text-decoration:none;
}
.cue__label{
  font-size:10px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-2);
  text-shadow:0 0 12px rgba(255,253,251,.95), 0 0 30px rgba(255,253,251,.85);
  transition:color .2s ease;
}
.cue__btn{
  display:grid; place-items:center; width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,.9); backdrop-filter:blur(6px);
  border:1px solid var(--line); color:var(--ink-2); box-shadow:var(--shadow);
  transition:border-color .22s ease, color .22s ease, transform .22s ease, box-shadow .22s ease;
}
.cue__btn svg{
  width:16px; height:16px; fill:none; stroke:currentColor;
  stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round;
  animation:cue-bob 2.6s ease-in-out infinite;
}
@keyframes cue-bob{
  0%,100%{ translate:0 -2px; }
  50%    { translate:0 2px; }
}
.cue:hover .cue__label{ color:var(--accent); }
.cue:hover .cue__btn{
  border-color:var(--accent); color:var(--accent); transform:translateY(3px);
  box-shadow:0 8px 20px -12px rgba(158,27,50,.6);
}
@media (prefers-reduced-motion: reduce){
  .cue__btn svg{ animation:none; }
  .cue:hover .cue__btn{ transform:none; }
}

/* ── Navegación lateral + botón flotante ──────────────── */
.section{ position:relative; }

.dots{
  position:fixed; right:26px; top:50%; transform:translateY(-50%); z-index:40;
  display:flex; flex-direction:column; gap:16px;
  opacity:0; visibility:hidden; transition:opacity .35s ease, visibility .35s ease;
}
.dots.is-on{ opacity:1; visibility:visible; }

.dots a{
  position:relative; display:block; width:26px; height:10px;
  text-decoration:none;
}
.dots a::before{
  content:''; position:absolute; right:0; top:50%; transform:translateY(-50%);
  width:9px; height:9px; border-radius:999px;
  background:rgba(23,18,17,.18);
  transition:width .28s cubic-bezier(.22,.61,.36,1), height .28s ease, background .28s ease;
}
.dots a:hover::before{ background:rgba(158,27,50,.5); }
.dots a.is-active::before{
  width:26px; height:5px; background:var(--accent);
}

.dots a span{
  position:absolute; right:38px; top:50%; transform:translateY(-50%) translateX(6px);
  white-space:nowrap; pointer-events:none;
  padding:6px 13px; border-radius:999px;
  background:var(--ink); color:#fff;
  font-size:10.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  opacity:0; transition:opacity .2s ease, transform .2s ease;
  box-shadow:0 8px 22px -14px rgba(0,0,0,.9);
}
.dots a:hover span, .dots a:focus-visible span{ opacity:1; transform:translateY(-50%) translateX(0); }

.fab{
  position:fixed; right:22px; bottom:26px; z-index:41;
  display:grid; place-items:center; width:52px; height:52px;
  border:none; border-radius:50%; cursor:pointer; text-decoration:none;
  background:var(--accent); color:#fff;
  box-shadow:0 10px 26px -12px rgba(158,27,50,.85);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .35s ease, visibility .35s ease, transform .28s cubic-bezier(.22,.61,.36,1), background .2s ease;
}
.fab.is-on{ opacity:1; visibility:visible; transform:none; }
.fab:hover{ background:var(--accent-d); transform:translateY(-3px); }
.fab.is-up svg{ transform:rotate(180deg); }
.fab svg{
  width:20px; height:20px; fill:none; stroke:currentColor;
  stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;
  transition:transform .35s cubic-bezier(.22,.61,.36,1);
  animation:fab-bob 2.8s ease-in-out infinite;
}
@keyframes fab-bob{
  0%,100%{ translate:0 -2px; }
  50%    { translate:0 2px; }
}
.fab::after{
  content:''; position:absolute; inset:-6px; border-radius:50%;
  border:1px solid rgba(158,27,50,.35);
  animation:fab-pulse 3s ease-out infinite;
}
@keyframes fab-pulse{
  0%   { transform:scale(.9); opacity:.7; }
  70%  { transform:scale(1.25); opacity:0; }
  100% { transform:scale(1.25); opacity:0; }
}

@media (prefers-reduced-motion: reduce){
  .fab svg{ animation:none; }
  .fab::after{ animation:none; }
  .fab:hover{ transform:none; }
}
@media (max-width:900px){
  .dots{ display:none; }
  .fab{ right:16px; bottom:18px; width:46px; height:46px; }
}

/* ── Reveal ───────────────────────────────────────────── */
.reveal{ opacity:0; transform:translateY(10px); transition:opacity .6s cubic-bezier(.22,.61,.36,1), transform .6s cubic-bezier(.22,.61,.36,1); }
.reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  .btn:hover, .edition:hover, .logo:hover, .pills li:hover{ transform:none; }
}

/* ── Responsive ───────────────────────────────────────── */
@media (max-width:1180px){
  .nav__links a:not(.nav__ext){ display:none; }
  .nav__divider{ display:none; }
}
@media (max-width:1024px){
  .grid--4{ grid-template-columns:repeat(2,1fr); }
  .logos{ grid-template-columns:repeat(3,1fr); }
  .foot__top{ grid-template-columns:1fr 1fr; gap:36px; }
}
@media (max-width:900px){
  .nav__links{ display:none; }
  .burger{ display:flex; margin-left:auto; }
  .grid--3{ grid-template-columns:repeat(2,1fr); }
  .grid--2{ grid-template-columns:1fr; }
  .section{ padding:80px 0; }
  .intro{ grid-template-columns:1fr; gap:18px; margin-top:30px; }
  .rows--3{ grid-template-columns:1fr; gap:0; margin-top:26px; }
  .banner img{ aspect-ratio:16/9; max-height:none; }
}
/* Pantallas bajas o móviles: el contenido manda, sin forzar 100vh */
@media (max-height:620px), (max-width:640px){
  .section{ min-height:0; }
}
/* En táctil el scroll es natural: solo se mantiene la guía del hero */
@media (max-width:900px){
  .section > .cue{ display:none; }
}
@media (max-width:640px){
  .grid--3, .grid--4{ grid-template-columns:1fr; }
  .logos{ grid-template-columns:repeat(2,1fr); }
  .logo{ min-height:112px; }
  .foot__top{ grid-template-columns:1fr; gap:30px; }
  .foot__credit{ margin-left:0 !important; }
  .wrap{ padding-inline:20px; }
  .section{ padding:68px 0; }
  .hero__cta .btn{ width:100%; }
  .brand__txt{ font-size:16px; }

  /* En pantallas chicas la foto se recorta y sube el ruido: más velo */
  .hero{ min-height:auto; }
  .hero::after{
    background:
      radial-gradient(96% 52% at 50% 45%, rgba(255,253,251,.92) 0%, rgba(255,253,251,.78) 55%, rgba(255,253,251,.30) 88%, rgba(255,253,251,.08) 100%),
      linear-gradient(180deg, rgba(255,253,251,.62) 0%, rgba(255,253,251,.22) 26%, rgba(255,253,251,.24) 68%, rgba(255,253,251,.92) 100%);
  }
}
