*, *::before, *::after { box-sizing: border-box; }
html {
    background: var(--color-surface-alt);
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--header-height) + var(--space-4));
}
body {
    background: var(--color-surface-alt);
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: var(--text-base);
    line-height: var(--leading-body);
    margin: 0;
    min-width: 320px;
    text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6, .navbar-brand, .btn {
    font-family: var(--font-display);
}
h1, h2, h3, h4, h5, h6 {
    color: var(--color-primary);
    font-weight: 750;
    letter-spacing: -.03em;
    line-height: var(--leading-tight);
    text-wrap: balance;
}
p, li, dd { text-wrap: pretty; }
a {
    color: var(--color-action);
    text-decoration-thickness: .08em;
    text-underline-offset: .2em;
    transition: color var(--transition-fast);
}
a:hover { color: var(--color-primary); }
button, input, select, textarea { font: inherit; }
button, [role="button"], a { -webkit-tap-highlight-color: transparent; }
:focus-visible {
    outline: 3px solid var(--color-action);
    outline-offset: 3px;
}
[id] { scroll-margin-top: calc(var(--header-height) + var(--space-4)); }
img { height: auto; max-width: 100%; }

.cz-container {
    margin-inline: auto;
    max-width: var(--container);
    padding-inline: clamp(1rem, 4vw, 2rem);
    width: 100%;
}
.cz-section { padding-block: clamp(3.75rem, 8vw, var(--space-9)); }
.cz-section--white { background: var(--color-surface); }
.cz-section--ice { background: var(--color-primary-soft); }
.cz-eyebrow {
    color: var(--color-action);
    font-family: var(--font-display);
    font-size: var(--text-xs);
    font-weight: 800;
    letter-spacing: .1em;
    line-height: 1.4;
    text-transform: uppercase;
}
.cz-section-heading { font-size: clamp(2rem, 4vw, 3.35rem); }
.cz-muted { color: var(--color-text-muted) !important; }
.visually-muted { color: var(--color-text-muted); font-size: var(--text-sm); }
.skip-link {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    left: var(--space-4);
    overflow: hidden;
    position: fixed;
    top: var(--space-4);
    white-space: nowrap;
    width: 1px;
    z-index: 3000;
}
.skip-link:focus,
.skip-link:focus-visible {
    clip: auto;
    clip-path: none;
    height: auto;
    overflow: visible;
    white-space: normal;
    width: auto;
}

@media (max-width: 767.98px) {
    body { font-size: .975rem; }
    .cz-section { padding-block: 3.5rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}
