/* Base: reset, fonts, typography, layout primitives. Tokens only — no raw values. */
@font-face { font-family: "Cormorant Garamond"; src: url("../fonts/cormorant-garamond-500.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; src: url("../fonts/cormorant-garamond-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; src: url("../fonts/cormorant-garamond-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Jost"; src: url("../fonts/jost-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Jost"; src: url("../fonts/jost-500.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Jost"; src: url("../fonts/jost-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body); font-size: var(--fs-body); line-height: var(--lh-body);
  color: var(--ch-text); background: var(--ch-cream);
  -webkit-font-smoothing: antialiased;
}
img, iframe { max-width: 100%; display: block; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 600; line-height: 1.15; color: var(--ch-ink); }
h1 { font-size: var(--fs-hero); }
/* Lead heading of a hero-less page: semantic <h1> kept at section-title size */
.section-title { font-size: var(--fs-h2); }
/* Card section heading: semantic <h2> (keeps heading order under a page <h1>)
   rendered at card scale */
.card-title { font-size: var(--fs-h3); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }
p  { margin-block: var(--sp-2); }
a  { color: var(--ch-crimson); text-decoration: none; }
a:hover { color: var(--ch-crimson-deep); text-decoration: underline; text-underline-offset: 3px; }
ul { padding-left: 1.2em; }

.container { max-width: var(--container); margin-inline: auto; padding-inline: var(--sp-4); }
.container-narrow { max-width: var(--container-narrow); margin-inline: auto; padding-inline: var(--sp-4); }
.section { padding-block: var(--sp-6); }
.section-dark { background: var(--ch-ink); }
.section-dark h1, .section-dark h2, .section-dark h3, .section-dark p { color: var(--ch-white); }

.eyebrow {
  display: block; font-family: var(--font-body); font-size: var(--fs-eyebrow);
  font-weight: 600; letter-spacing: var(--ls-eyebrow); text-transform: uppercase;
  color: var(--ch-text-oncream-gold); margin-bottom: var(--sp-2);
}
.section-dark .eyebrow, .on-dark .eyebrow { color: var(--ch-gold); }

.rule-gold { border: 0; border-top: 2px solid var(--ch-gold); width: 64px; margin: var(--sp-3) 0; }
.center { text-align: center; }
.center .rule-gold { margin-inline: auto; }
.muted { color: var(--ch-text-muted); }
.rate-note { font-size: var(--fs-small); }
.visually-hidden {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0; padding: 0;
}
