*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--hgc-ink-2); background: var(--hgc-paper); font-family: var(--hgc-sans); font-size: 15px; line-height: 1.9; letter-spacing: .035em; font-feature-settings: "palt" 1; -webkit-font-smoothing: antialiased; }
body.hgc-menu-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
figure { margin: 0; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { color: inherit; font: inherit; }
button, select { cursor: pointer; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { font-family: var(--hgc-serif); font-weight: 600; line-height: 1.45; letter-spacing: .03em; }
h1 { font-size: clamp(2rem, 6.5vw, 4.6rem); }
h2 { font-size: clamp(1.65rem, 4.6vw, 3rem); }
h3 { font-size: clamp(1.2rem, 3vw, 1.7rem); }
::selection { color: var(--hgc-paper); background: var(--hgc-gold-deep); }
.hgc-shell { width: var(--hgc-shell); margin-inline: auto; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { z-index: 100000; top: 8px; left: 8px; width: auto; height: auto; padding: 12px 18px; clip: auto; color: var(--hgc-ink); background: white; }
.hgc-eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; color: var(--hgc-gold-deep); font-family: var(--hgc-display); font-size: .75rem; font-weight: 700; line-height: 1; letter-spacing: .28em; text-transform: uppercase; }
.hgc-eyebrow::before { width: 24px; height: 1px; content: ""; background: currentColor; }
.hgc-eyebrow--light { color: var(--hgc-gold); }
.hgc-button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 28px; padding: 12px 24px; border: 1px solid transparent; border-radius: 999px; font-size: .78rem; font-weight: 700; letter-spacing: .12em; transition: transform .25s ease, box-shadow .25s ease, gap .25s ease, color .25s ease, background .25s ease; }
.hgc-button:hover { gap: 34px; transform: translateY(-2px); }
.hgc-button--ink { color: var(--hgc-paper); background: var(--hgc-ink-2); box-shadow: var(--hgc-shadow); }
.hgc-button--light { color: var(--hgc-ink-2); background: var(--hgc-paper); }
.hgc-button--outline { color: var(--hgc-ink-2); border-color: var(--hgc-gold); background: transparent; }
.hgc-section { padding: 76px 0; }
.hgc-section--paper { background: var(--hgc-paper); }
.hgc-section--cream { background: var(--hgc-paper-2); }
.hgc-section-heading { max-width: 760px; margin: 0 auto 42px; text-align: center; }
.hgc-section-heading .hgc-eyebrow { justify-content: center; }
.hgc-section-heading .hgc-eyebrow::after { width: 24px; height: 1px; content: ""; background: currentColor; }
.hgc-section-heading h2 { margin-bottom: 14px; text-wrap: balance; }
.hgc-section-heading h2 span { display: block; }
.hgc-section-heading > p:last-child { color: var(--hgc-muted); }
.hgc-section__action { margin-top: 40px; text-align: center; }

@media (min-width: 768px) {
  body { font-size: 16px; }
  .hgc-section { padding: 118px 0; }
  .hgc-section-heading { margin-bottom: 64px; }
  .hgc-button { min-height: 56px; padding-inline: 30px; }
}

@media (max-width: 767px) {
  body { font-size: 15px; line-height: 1.85; letter-spacing: .025em; }
  .hgc-shell { width: min(var(--hgc-shell), calc(100vw - 32px)); }
  h1, h2, h3, h4 { line-height: 1.48; letter-spacing: .02em; overflow-wrap: normal; word-break: normal; word-break: auto-phrase; line-break: strict; text-wrap: balance; }
  h1 { font-size: clamp(2rem,10vw,3rem); }
  h2 { font-size: clamp(1.65rem,7.8vw,2.35rem); }
  .hgc-section { padding: 72px 0; }
  .hgc-section-heading { margin-bottom: 34px; }
  .hgc-section-heading h2 { max-width: 15em; margin-right: auto; margin-left: auto; font-size: clamp(1.5rem,7vw,1.85rem); line-height: 1.55; }
  .hgc-section-heading h2 span { display: block; }
  .hgc-section-heading > p:last-child { max-width: 30em; margin-right: auto; margin-left: auto; font-size: .86rem; line-height: 1.9; }
  .hgc-eyebrow { font-size: .66rem; letter-spacing: .2em; }
}
