/* Base común de la web (portada y páginas legales): colores, ancho, foco y pie. */
:root { --red:#d9202c; --brand:#d9202c; --ink:#171719; --paper:#f7f4ef; --cream:#fffdf9; --line:#ded9d0; --muted:#63605a; --header:rgba(247,244,239,.94); --soft:#eee8df; --faint:#ded8cf; --shadow:#171719; color-scheme:light; }
.wrap { max-width:1160px; margin:0 auto; padding:0 20px; }
:focus-visible { outline:3px solid var(--red); outline-offset:3px; }
footer { border-top:1px solid var(--line); padding:32px 0 44px; font-size:15px; color:var(--muted); }
footer .wrap { display:flex; flex-wrap:wrap; gap:14px 28px; align-items:center; justify-content:space-between; }
footer nav { display:flex; gap:20px; }
footer .brand { font-size:18px; color:var(--ink); }
footer .brand img { width:30px; height:30px; border-radius:22%; box-shadow:0 0 0 1px var(--line); }

:root[data-theme="dark"] {
    --red:#ff626d;
    --red-dark:#e84d59;
    --ink:#f7f4ef;
    --paper:#111113;
    --cream:#1b1b1f;
    --line:#36363c;
    --muted:#b7b4af;
    --header:rgba(17,17,19,.94);
    --soft:#26262b;
    --faint:#59595f;
    --shadow:#d9202c;
    color-scheme:dark;
}
@media (prefers-color-scheme:dark) {
    :root:not([data-theme]) {
        --red:#ff626d;
        --red-dark:#e84d59;
        --ink:#f7f4ef;
        --paper:#111113;
        --cream:#1b1b1f;
        --line:#36363c;
        --muted:#b7b4af;
        --header:rgba(17,17,19,.94);
        --soft:#26262b;
        --faint:#59595f;
        --shadow:#d9202c;
        color-scheme:dark;
    }
}
.site-header { position:sticky; top:0; z-index:10; background:var(--header); border-bottom:1px solid var(--line); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
.bar { display:flex; align-items:center; justify-content:space-between; gap:24px; height:84px; }
.brand { display:flex; align-items:center; gap:10px; font-weight:800; font-size:23px; letter-spacing:-.04em; text-decoration:none; }
.brand img { width:38px; height:38px; border-radius:22%; box-shadow:0 0 0 1px var(--line); }
.header-cta { display:inline-flex; align-items:center; min-height:44px; padding:0 16px; background:var(--ink); color:var(--paper); border:2px solid var(--ink); font-size:14px; font-weight:700; text-decoration:none; transition:background-color .15s ease-out, border-color .15s ease-out; }
.header-cta:hover { background:var(--red); border-color:var(--red); }
.desktop-nav { display:flex; align-items:center; gap:4px; }
.desktop-nav a { padding:10px 16px; text-decoration:none; font-size:15px; font-weight:600; }
.desktop-nav a:hover, .desktop-nav a:focus-visible { color:var(--red); }
.header-tools { display:flex; align-items:center; gap:16px; }
.langs { display:flex; align-items:center; gap:2px; }
.langs a { display:inline-flex; align-items:center; justify-content:center; min-width:36px; min-height:44px; padding:0 8px; text-decoration:none; color:var(--muted); font-size:13px; font-weight:600; }
.langs a.on { color:var(--ink); text-decoration:underline; text-decoration-color:var(--red); text-underline-offset:6px; text-decoration-thickness:2px; }
.langs a:hover { color:var(--red); }
.theme-switch { display:none; width:max-content; padding:3px; gap:3px; border:1px solid var(--line); background:var(--paper); }
.theme-enabled .theme-switch { display:flex; }
.theme-switch button { display:flex; align-items:center; justify-content:center; gap:9px; min-height:38px; min-width:38px; border:0; background:transparent; color:var(--muted); cursor:pointer; font:600 15px 'Barlow',system-ui,sans-serif; }
.theme-switch button[aria-pressed="true"] { color:var(--paper); background:var(--ink); }
.theme-switch button:hover:not([aria-pressed="true"]) { color:var(--ink); background:var(--soft); }
.theme-switch svg, .mobile-menu svg { width:20px; height:20px; flex:none; }
.mobile-menu { display:none; }
@media (max-width:819px) {
    html { scroll-padding-top:88px; }
    .bar { height:72px; gap:12px; }
    .brand { font-size:21px; }
    .brand img { width:32px; height:32px; }
    .desktop-nav, .desktop-langs { display:none; }
    .header-cta { min-height:40px; padding:0 12px; }
    .header-tools { gap:8px; }
    .mobile-menu { display:block; }
    .mobile-menu summary { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid var(--line); list-style:none; cursor:pointer; }
    .mobile-menu summary::-webkit-details-marker { display:none; }
    .mobile-menu[open] summary { background:var(--ink); color:var(--paper); }
    .mobile-panel { position:absolute; top:calc(100% + 10px); left:20px; right:20px; padding:12px 22px 18px; background:var(--cream); border:2px solid var(--ink); box-shadow:8px 8px 0 var(--shadow); }
    .mobile-panel > nav { display:grid; }
    .mobile-panel > nav a { display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:58px; text-decoration:none; font-size:20px; font-weight:600; border-bottom:1px solid var(--line); }
    .mobile-panel > nav a span { color:var(--red); }
    .mobile-language { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:12px; color:var(--muted); font-size:13px; }
}
@media (max-width:560px) { .header-cta { display:none; } }
@media (min-width:820px) { html { scroll-padding-top:100px; } }
