/* Común a todas las páginas. Se carga después del CSS de cada página. */
:root { --hf:'Familjen Grotesk Variable','Familjen Grotesk',sans-serif; --bf:'Inter Variable','Inter',system-ui,sans-serif; }

/* Barra */
nav a { color:inherit; text-decoration:none; }
nav .links.desktop a:hover { text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:.2em; }
nav .links.desktop a[aria-current="page"] { text-decoration:underline; text-decoration-color:var(--accent); text-decoration-thickness:2px; text-underline-offset:.3em; }
nav a:focus-visible, nav button:focus-visible, main a:focus-visible, main button:focus-visible, footer a:focus-visible { outline:3px solid var(--accent); outline-offset:3px; border-radius:2px; }
nav .links.mobile .cv { min-height:44px; }
nav .links.mobile .cv, nav .name { white-space:nowrap; }

/* Menú móvil */
nav .burger { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; margin-right:-10px; padding:0; border:0; background:none; cursor:pointer; color:#111; }
nav .burger .ico { width:24px; height:24px; }
nav .burger .bc { display:none; }
nav.open .burger .bx { display:none; }
nav.open .burger .bc { display:block; }
nav .cv .cvl { display:none; }
nav.open .cv .cvs { display:none; }
nav.open .cv .cvl { display:inline; }
nav.open .links.mobile { gap:4px; }
@media (max-width:379px) { nav.open .links.mobile .cv { font-size:14px; } nav.open .links.mobile .cv .ico { width:20px; height:20px; } }
.mmenu { display:none; position:absolute; left:0; right:0; top:100%; background:#fff; border-bottom:1.5px solid var(--text); padding:4px 16px 20px; }
nav.open .mmenu { display:block; }
.mmenu ul { list-style:none; margin:0; padding:0; }
.mmenu li + li { border-top:1px solid var(--line); }
.mmenu ul a { position:relative; display:flex; align-items:center; justify-content:flex-end; min-height:56px; padding-right:19px; font-family:var(--hf); font-weight:500; font-size:21px; letter-spacing:-0.01em; color:var(--text); }
.mmenu ul a::before { content:""; position:absolute; right:0; top:16px; bottom:16px; width:5px; background:var(--accent); }
.mshade { display:none; position:fixed; inset:0; background:rgba(17,17,17,.35); z-index:15; }
body.menu-open .mshade { display:block; }
@media (min-width:701px) { .mmenu, .mshade { display:none !important; } }

/* Pie */
footer a { color:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.2em; }
footer a:hover { color:var(--text); }

/* Casos en construcción */
.body .wip { color:var(--muted); font-style:italic; }

/* Enlace para saltar al contenido */
.skip { position:absolute; left:-9999px; top:8px; z-index:50; background:#111; color:#fff; padding:10px 14px; border-radius:4px; }
.skip:focus { left:8px; }

/* Al abrir un caso por ancla, que el título no quede bajo la barra fija */
details[id] { scroll-margin-top:72px; }
