* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body {
    font-family: var(--font-primary);
    background: var(--color-navy);
    color: var(--text-body);
    line-height: 1.6;
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
}
a { text-decoration: none; color: inherit; transition: var(--transition); }
img { max-width: 100%; height: auto; display: block; }
.container { max-width: 1200px; margin:0 auto; padding:0 24px; }
.text-center { text-align: center; }
.text-white { color: var(--white); }
.text-primary { color: var(--primary); }
.bg-light { background: var(--light-bg); }
.bg-dark { background: var(--dark-navy); }
.bg-primary { background: var(--primary); }
.py-1 { padding:2rem 0; }
.py-2 { padding:4rem 0; }
.py-3 { padding:6rem 0; }
.py-4 { padding:8rem 0; }
.mb-1 { margin-bottom:1rem; }
.mb-2 { margin-bottom:2rem; }
.mb-3 { margin-bottom:3rem; }
.mt-1 { margin-top:1rem; }
.mt-2 { margin-top:2rem; }
.wv-link-content {
    position: absolute; top:1rem; left:0; transform:translateX(-100%);
    transition: transform 0.3s; background: var(--primary); color: var(--white);
    padding: 0.75rem 1.5rem; z-index: 10000; font-weight: 600;
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.wv-link-content:focus { transform: translateX(1rem); }
:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
