*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ays-ink); background: var(--ays-white); font-family: var(--ays-sans); font-size: 1rem; line-height: 1.65; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--ays-olive-700); }
button, input, textarea { font: inherit; }
h1, h2, h3 { margin: 0 0 .6em; font-family: var(--ays-serif); font-weight: 500; line-height: 1.08; letter-spacing: -.025em; }
h1 { font-size: clamp(2.8rem, 7vw, 5.75rem); }
h2 { font-size: clamp(2.15rem, 4.3vw, 3.75rem); }
h3 { font-size: clamp(1.3rem, 2vw, 1.65rem); }
p { margin: 0 0 1.25rem; }
ul { margin: 0; padding: 0; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.ays-skip-link { position: fixed; z-index: 1000; top: .5rem; left: .5rem; padding: .7rem 1rem; background: var(--ays-white); transform: translateY(-150%); }
.ays-skip-link:focus { transform: translateY(0); }
.ays-container { width: min(calc(100% - 2.5rem), var(--ays-container)); margin-inline: auto; }
.ays-eyebrow { display: inline-block; margin-bottom: .8rem; color: var(--ays-gold-600); font-size: .75rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.ays-button { display: inline-flex; min-height: 3.2rem; align-items: center; justify-content: center; padding: .8rem 1.45rem; border: 1px solid transparent; border-radius: 999px; font-size: .9rem; font-weight: 750; transition: transform var(--ays-transition), background var(--ays-transition), color var(--ays-transition); }
.ays-button:hover { transform: translateY(-2px); }
.ays-button--primary { color: white; background: var(--ays-olive-800); }
.ays-button--primary:hover { color: white; background: var(--ays-olive-950); }
.ays-button--ghost { border-color: var(--ays-olive-700); color: var(--ays-olive-900); }
.ays-button--cream { color: var(--ays-olive-950); background: var(--ays-cream); }
.ays-text-link { display: inline-flex; align-items: center; gap: .6rem; color: var(--ays-olive-800); font-weight: 750; }
.ays-text-link span { transition: transform var(--ays-transition); }
.ays-text-link:hover span { transform: translateX(.3rem); }
.ays-badge { display: inline-flex; width: fit-content; padding: .35rem .7rem; border-radius: 999px; color: var(--ays-olive-900); background: var(--ays-olive-100); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

