*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 12px); }
body { margin: 0; background: var(--black); color: var(--cream); font-family: var(--f-body); font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; }
img, video, svg { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--gold-lt); }
button { font: inherit; cursor: pointer; }
ul, ol { margin: 0; padding: 0; list-style: none; }
p { margin: 0 0 1.1em; }
strong, b { font-weight: 700; color: var(--white); }
::selection { background: var(--gold); color: var(--black); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; border-radius: 4px; }

.skip-link { position: absolute; left: -9999px; top: 12px; z-index: 10000; background: var(--gold); color: var(--black); padding: 12px 18px; font-weight: 700; border-radius: 6px; }
.skip-link:focus { left: 12px; }
.screen-reader-text, .sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }

.container { width: min(100% - var(--gutter) * 2, var(--container)); margin-inline: auto; }
.container--wide { width: min(100% - var(--gutter) * 2, var(--container-wide)); margin-inline: auto; }
.container--narrow { width: min(100% - var(--gutter) * 2, 860px); margin-inline: auto; }
.section { position: relative; padding-block: var(--sec); }
.section--sm { padding-block: var(--sec-sm); }
.section--flush-top { padding-top: 0; }
.section--panel { background: var(--black-2); }
.section--gold { background: var(--gold); color: var(--black); }
.section--gold strong { color: var(--black); }
.section--gold a:hover { color: var(--black); }

/* Type */
h1, h2, h3, h4, .h-hero, .h-display, .h-title, .h-sub { margin: 0; color: var(--white); font-family: var(--f-display); font-weight: 800; text-transform: uppercase; letter-spacing: .005em; line-height: 1; text-wrap: balance; }
.h-hero { font-size: clamp(2.8rem, 6.6vw, 6.2rem); line-height: .98; }
.h-display { font-size: clamp(2.3rem, 4.6vw, 4.2rem); }
.h-title { font-size: clamp(1.8rem, 3vw, 2.7rem); line-height: 1.02; }
.h-sub { font-size: clamp(1.35rem, 2.1vw, 1.75rem); }
.h-display em.gold, .h-hero em.gold, .h-title em.gold, em.gold { font-style: normal; color: var(--gold); }
.h-hero em.gold, .h-display em.gold { -webkit-text-stroke: 0; }
.outline { color: transparent; -webkit-text-stroke: 1.5px var(--gold); }
.eyebrow { display: inline-flex; align-items: center; gap: 12px; margin: 0 0 18px; font-family: var(--f-sub); font-size: .8rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--gold); }
.eyebrow__bar { display: inline-block; width: 34px; height: 2px; background: var(--gold); }
.eyebrow--gold { color: var(--gold); }
.lede { font-size: clamp(1.05rem, 1.35vw, 1.25rem); line-height: 1.6; color: var(--silver); max-width: 62ch; }
.lede--lg { font-size: clamp(1.15rem, 1.6vw, 1.45rem); }
.sec-head { margin-bottom: clamp(40px, 5vw, 64px); }
.sec-head--center { text-align: center; }
.sec-head--center .lede { margin-inline: auto; }
.sec-head--center .eyebrow { justify-content: center; }
.text-center { text-align: center; }
.gold { color: var(--gold); }
.muted { color: var(--muted); }
.script { font-family: var(--f-cond); font-style: italic; font-weight: 600; text-transform: none; letter-spacing: 0; }

/* Prose (page content) */
.prose { max-width: 74ch; }
.prose h2 { font-size: clamp(1.8rem, 3vw, 2.5rem); margin: 2.2em 0 .6em; }
.prose h3 { font-size: clamp(1.35rem, 2vw, 1.7rem); margin: 1.8em 0 .5em; font-family: var(--f-cond); letter-spacing: .01em; }
.prose p, .prose li { color: var(--silver); font-size: 1.05rem; }
.prose ul { padding-left: 1.2em; list-style: disc; margin-bottom: 1.2em; }
.prose ol { padding-left: 1.2em; list-style: decimal; margin-bottom: 1.2em; }
.prose li { margin-bottom: .4em; }
.prose a { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }
.prose blockquote { margin: 2em 0; padding: 1.2em 1.6em; border-left: 3px solid var(--gold); background: var(--black-2); border-radius: 0 var(--radius) var(--radius) 0; font-family: var(--f-cond); font-size: 1.4rem; line-height: 1.3; color: var(--white); }
.prose img { border-radius: var(--radius); }
.prose hr { border: 0; height: 1px; background: var(--line-2); margin: 3em 0; }

/* Dividers */
.gold-line { height: 3px; background: linear-gradient(90deg, transparent, var(--gold) 20%, var(--gold-lt) 50%, var(--gold) 80%, transparent); }
.hairline { height: 1px; background: var(--line); }

/* Utility backgrounds */
.bg-marble { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .22; pointer-events: none; }
.bg-marble--1 { background-image: url("../images/textures/marble-1.jpg"); }
.bg-marble--2 { background-image: url("../images/textures/marble-2.jpg"); }
.bg-marble--3 { background-image: url("../images/textures/marble-3.jpg"); }
.bg-marble--4 { background-image: url("../images/textures/marble-4.jpg"); }
.bg-pattern { position: absolute; inset: 0; background: url("../images/textures/pattern-crown-gold.jpg") center / 520px repeat; opacity: .07; pointer-events: none; }
.bg-fade-top { position: absolute; inset: 0 0 auto 0; height: 220px; background: linear-gradient(180deg, var(--black), transparent); pointer-events: none; }
.bg-fade-bottom { position: absolute; inset: auto 0 0 0; height: 220px; background: linear-gradient(0deg, var(--black), transparent); pointer-events: none; }
.bg-glow { position: absolute; width: 60vw; height: 60vw; max-width: 900px; max-height: 900px; border-radius: 50%; background: radial-gradient(circle, var(--gold-glow) 0%, transparent 62%); filter: blur(20px); pointer-events: none; }
.section > .container, .section > .container--wide { position: relative; z-index: 1; }

/* WP admin bar offset */
body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .site-header { top: 46px; } }
:is(.h-display, .h-title) + .prose { margin-top: 22px; }
