*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { margin:0; background:white; color:var(--color-azul); font-family:var(--fuente-texto); line-height:1.5; }
img { display:block; max-width:100%; height:auto; }
[hidden] { display:none !important; } /* El estado HTML debe prevalecer sobre grid/flex del componente. */
a { color:inherit; text-decoration:none; }
a:hover { text-decoration:none; }
button,input,select,textarea { font:inherit; }
button,a,summary { -webkit-tap-highlight-color:transparent; }
:where(a,button,input,select,textarea,summary):focus-visible { outline:3px solid var(--color-rojo-ocre); outline-offset:4px; }
.skip-link { position:fixed; left:16px; top:8px; transform:translateY(-180%); background:white; padding:12px; z-index:120; }
.skip-link:focus { transform:none; }
/* La cabecera y las zonas comparten los mismos bordes horizontales. */
.section-shell, .header-shell { width:min(1280px,calc(100% - 64px)); margin-inline:auto; }
.section { position:relative; padding:100px 0; }
.section h2 { font-size:calc(clamp(1.8rem,3.2vw,2.9rem) * var(--escala-h2, 1)); line-height:1.08; margin:0; }
h1,h2,h3,p { overflow-wrap:break-word; }
p { margin:1rem 0; }
.section-kicker { font-size:.72rem; line-height:1.4; margin:0 0 20px; font-weight:400; text-transform:uppercase; }
.site-header, .site-header.is-scrolled { z-index:80; }
.header-shell { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.button { display:inline-flex; gap:12px; align-items:center; justify-content:center; border:1px solid transparent; padding:14px 20px; font-size:.85rem; font-weight:700; cursor:pointer; line-height:1.3; transition:background .2s,color .2s; }
.button span[aria-hidden] { font-size:1.5em; line-height:1; }
.button-primary { background:var(--color-azul); color:white; }
.button-primary:hover { background:white; border-color:var(--color-azul); color:var(--color-azul); }
.button-ghost { background:var(--color-rojo-ocre); color:white; border-color: var(--color-rojo-ocre); }
.button-ghost:hover { background:white; color:var(--color-rojo-ocre); border-color:var(--color-rojo-ocre); }
.button-rojo { background:var(--color-rojo-ocre); color:white; padding: 10px 40px; }
.button-rojo:hover { background:white; color:var(--color-rojo-ocre); border-color:var(--color-rojo-ocre); }
.button-borde { border-color:var(--color-azul); color:var(--color-azul); background:transparent; }
.button-borde:hover { color:white; background:var(--color-azul); }
.error-card { padding:100px 0; }
.error-card h1 { font-size:calc(clamp(2rem,5vw,4rem) * var(--escala-h1, 1)); }
.debug-message { white-space:pre-wrap; overflow:auto; }
@media(max-width:40rem) { .section-shell,.header-shell { width:calc(100% - 36px); } .section { padding:64px 0; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none !important; } }
