/* ============================================================
   Base — reset + layout
   SIN COLORES LITERALES: todo el color vive en theme.css
   (generado desde data/sites/cms-mc/<slug>.json).
   ============================================================ */

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    font-family: var(--font-secondary);
    background: var(--cbn-bg);
    color: var(--cbn-text);
    line-height: 1.6;
}

img { max-width: 100%; height: auto; display: block; }

a {
    color: inherit;
    text-decoration: none;
    transition: color .3s ease, border-color .3s ease, background-color .3s ease;
}

ul, ol { list-style: none; }

h1, h2, h3, h4 { font-family: var(--font-primary); line-height: 1.2; }

.container {
    max-width: var(--ancho-max);
    margin: 0 auto;
    padding: 0 var(--space-lg);
}

.main-content { min-height: 60vh; }

/* Accesibilidad: foco visible y consistente en toda la flota. */
:focus-visible {
    outline: 2px solid var(--cbn-accent);
    outline-offset: 2px;
}

/* Respeta la preferencia de movimiento reducido del sistema. */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

@media (max-width: 768px) {
    .container { padding: 0 var(--space-md); }
}