/* Estilos compartidos por todas las páginas */
:root{
  --bg:#f7f6f3; --card:#ffffff; --ink:#111111; --muted:#5c5c5c; --line:#e4e2dd;
  --accent:#e23b2e; --accent-ink:#ffffff; --soft:#fbebe9; --ok:#1d7a4d;
  --inv-bg:#111111; --inv-ink:#f7f6f3; --inv-muted:#a9a9a9; --inv-line:#2c2c2c;
  --shadow:0 1px 2px rgba(0,0,0,.04),0 12px 32px rgba(0,0,0,.08);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0f0f0f; --card:#181818; --ink:#f2f2f2; --muted:#a3a3a3; --line:#2a2a2a;
    --accent:#ff5446; --soft:#2a1513; --ok:#4cc38a;
    --inv-bg:#f2f2f2; --inv-ink:#111111; --inv-muted:#555; --inv-line:#d9d9d9;
    --shadow:0 1px 2px rgba(0,0,0,.3),0 12px 32px rgba(0,0,0,.4);
  }
}
:root[data-theme="dark"]{
  --bg:#0f0f0f; --card:#181818; --ink:#f2f2f2; --muted:#a3a3a3; --line:#2a2a2a;
  --accent:#ff5446; --soft:#2a1513; --ok:#4cc38a;
  --inv-bg:#f2f2f2; --inv-ink:#111111; --inv-muted:#555; --inv-line:#d9d9d9;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 12px 32px rgba(0,0,0,.4);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Archivo,system-ui,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased;transition:background .3s,color .3s}
a{color:inherit}
img{max-width:100%;display:block}
.ic{flex:none;vertical-align:middle}
.c{max-width:1140px;margin:0 auto;padding:0 16px}

/* barra superior */
.nav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .3s}
.nav.scrolled{border-bottom-color:var(--line)}
.nav .c{display:flex;justify-content:space-between;align-items:center;height:68px;gap:16px}
.logo{font-weight:800;font-size:18px;text-decoration:none;letter-spacing:-.01em;white-space:nowrap}
.logo b{color:var(--accent);font-weight:800}
.nav .links{display:flex;gap:26px;font-size:15px;color:var(--muted)}
.nav .links a{text-decoration:none}
.nav .links a:hover{color:var(--ink)}
.nav .right{display:flex;gap:10px;align-items:center}
@media (max-width:820px){ .nav .links{display:none} }

/* botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:700;border:1px solid var(--accent);border-radius:10px;padding:13px 20px;background:var(--accent);color:var(--accent-ink);text-decoration:none;font-size:16px;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s;white-space:nowrap}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 30%,transparent)}
.btn .ic{transition:transform .2s}
.btn:hover .ic{transform:translateX(3px)}
.btn.sm{padding:9px 14px;font-size:14px}
.btn.line{background:transparent;color:var(--ink);border-color:var(--line)}
.btn.line:hover{border-color:var(--ink);box-shadow:none}
.btn.block{width:100%}
.tema-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color .2s}
.tema-btn:hover{border-color:var(--ink)}

/* tipografía */
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
h1,h2,h3{letter-spacing:-.02em;margin:0}
h2{font-size:clamp(30px,4.4vw,46px);line-height:1.06;font-weight:800}
.sub{color:var(--muted);font-size:18px;max-width:620px;margin:14px 0 0}

/* animaciones */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@keyframes subir{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes flotar{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.1)}100%{transform:scale(1)}}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* pie */
footer{padding:32px 0 48px;color:var(--muted);font-size:14px;border-top:1px solid var(--line)}
footer .c{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* botón flotante de WhatsApp */
.wa{position:fixed;right:16px;bottom:16px;z-index:30;display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:var(--bg);border-radius:999px;padding:12px 18px;font-weight:700;font-size:15px;text-decoration:none;box-shadow:var(--shadow);animation:subir .6s 1s both;transition:transform .2s}
.wa:hover{transform:translateY(-2px)}

@media print{ .nav,.wa,.no-print{display:none!important} body{background:#fff;color:#111} }
section[id]{scroll-margin-top:76px}

/* ===================== MENÚ LÍQUIDO ===================== */
.lnav{position:sticky;top:12px;z-index:40;padding:0 16px;margin:12px auto 0;max-width:1172px}
.lnav .bar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;height:60px;padding:0 8px 0 20px;border-radius:999px;
  background:color-mix(in srgb,var(--card) 58%,transparent);
  -webkit-backdrop-filter:blur(18px) saturate(180%);backdrop-filter:blur(18px) saturate(180%);
  border:1px solid color-mix(in srgb,#fff 45%,transparent);
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 55%,transparent),inset 0 -1px 0 color-mix(in srgb,#000 6%,transparent),0 10px 30px rgba(0,0,0,.08);
  transition:height .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,background .35s}
:root[data-theme="dark"] .lnav .bar{border-color:rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 10px 30px rgba(0,0,0,.4)}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .lnav .bar{border-color:rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 10px 30px rgba(0,0,0,.4)} }
.lnav.scrolled .bar{height:54px;background:color-mix(in srgb,var(--card) 72%,transparent)}
.lnav .links{position:relative;display:flex;gap:2px;padding:4px;border-radius:999px}
.lnav .links a{position:relative;z-index:1;padding:8px 14px;border-radius:999px;font-size:14.5px;font-weight:500;color:var(--muted);text-decoration:none;transition:color .25s}
.lnav .links a:hover,.lnav .links a.on{color:var(--ink)}
.lnav .blob{position:absolute;z-index:0;top:4px;bottom:4px;left:0;width:0;border-radius:999px;opacity:0;
  background:color-mix(in srgb,var(--ink) 8%,transparent);box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 40%,transparent);
  transition:left .5s cubic-bezier(.34,1.56,.64,1),width .5s cubic-bezier(.34,1.56,.64,1),opacity .25s}
.lnav .right{display:flex;align-items:center;gap:8px}
.lnav .tema-btn{border-radius:999px;background:transparent}
.lnav .btn.sm{border-radius:999px}
.menu-btn{display:none;width:40px;height:40px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;align-items:center;justify-content:center}
.lnav .drop{position:absolute;left:16px;right:16px;top:70px;padding:10px;border-radius:24px;display:grid;gap:2px;
  background:color-mix(in srgb,var(--card) 80%,transparent);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);
  border:1px solid color-mix(in srgb,#fff 35%,transparent);box-shadow:0 20px 40px rgba(0,0,0,.15);
  opacity:0;transform:translateY(-8px) scale(.97);transform-origin:top center;pointer-events:none;transition:opacity .25s,transform .35s cubic-bezier(.34,1.56,.64,1)}
.lnav.open .drop{opacity:1;transform:none;pointer-events:auto}
.lnav .drop a{padding:14px 16px;border-radius:14px;text-decoration:none;font-weight:600;font-size:17px}
.lnav .drop a:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}
.lnav .drop .btn{margin-top:6px;border-radius:14px;color:var(--accent-ink)}
@media (max-width:900px){ .lnav .links{display:none} .menu-btn{display:inline-flex} }
@media (max-width:520px){ .lnav .right .btn.sm{display:none} .lnav .bar{padding-left:16px} }

/* selector de idioma */
.lang-sw{position:relative;display:inline-flex;padding:3px;border-radius:999px;border:1px solid var(--line);background:color-mix(in srgb,var(--card) 50%,transparent)}
.lang-sw button{position:relative;z-index:1;width:36px;height:30px;border:0;background:transparent;font:inherit;font-size:12.5px;font-weight:700;letter-spacing:.04em;color:var(--muted);cursor:pointer;border-radius:999px;transition:color .3s}
.lang-sw .thumb{position:absolute;top:3px;left:3px;width:36px;height:30px;border-radius:999px;background:var(--ink);transition:transform .45s cubic-bezier(.34,1.56,.64,1)}
.lang-sw[data-l="en"] .thumb{transform:translateX(36px)}
.lang-sw[data-l="es"] button[data-l="es"],.lang-sw[data-l="en"] button[data-l="en"]{color:var(--bg)}

/* enlaces legales */
.legal-links{display:flex;gap:16px;flex-wrap:wrap}
.legal-links a{color:var(--muted);text-decoration:none}
.legal-links a:hover{color:var(--ink);text-decoration:underline}
@media (max-width:520px){
  .lnav{padding:0 10px}
  .lnav .bar{gap:6px;padding:0 6px 0 14px;height:56px}
  .lnav .right{gap:6px}
  .lnav .logo{font-size:16px}
  .lnav .tema-btn,.menu-btn{width:36px;height:36px}
  .lang-sw button,.lang-sw .thumb{width:30px;height:28px}
  .lang-sw[data-l="en"] .thumb{transform:translateX(30px)}
  .lnav .drop{left:10px;right:10px;top:64px}
}

/* logo con monograma */
.logo{display:inline-flex;align-items:center;gap:9px}
.logo .lg-m{height:1.55em;width:auto;flex:none;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}
.logo:hover .lg-m{transform:rotate(-6deg) scale(1.06)}
