/* ===========================================================
   GC Clinic — Base / Reset
   Minimal reset + global typography baseline.
   =========================================================== */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--gc-font-sans);
  font-size: var(--gc-fs-body);
  line-height: var(--gc-lh-normal);
  color: var(--gc-navy);
  background: var(--gc-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--gc-font-serif);
  font-weight: 600;
  color: var(--gc-navy);
  margin: 0 0 var(--gc-s-5) 0;
  line-height: var(--gc-lh-tight);
  letter-spacing: -0.01em;
}
h1 { font-size: var(--gc-fs-h1); }
h2 { font-size: var(--gc-fs-h2); line-height: var(--gc-lh-snug); }
h3 { font-size: var(--gc-fs-h3); line-height: var(--gc-lh-snug); }
h4 { font-size: var(--gc-fs-h4); line-height: var(--gc-lh-snug); font-weight: 600; }

p { margin: 0 0 var(--gc-s-4) 0; }
p:last-child { margin-bottom: 0; }

a { color: var(--gc-navy); text-decoration-color: var(--gc-gold); text-underline-offset: 3px; }
a:hover { color: var(--gc-gold-hover); }

img, svg, video { max-width: 100%; height: auto; display: block; }

ul, ol { margin: 0 0 var(--gc-s-4) 0; padding-left: var(--gc-s-6); }
li { margin-bottom: var(--gc-s-2); }

blockquote { margin: 0; padding: 0; }

button { font-family: inherit; cursor: pointer; border: 0; background: none; }
input, textarea, select { font-family: inherit; font-size: inherit; color: inherit; }

hr { border: 0; border-top: var(--gc-border); margin: var(--gc-s-8) 0; }

/* Global utilities */
.gc-container { max-width: var(--gc-container-max); margin: 0 auto; padding: 0 var(--gc-s-6); }
.gc-container--narrow { max-width: var(--gc-container-narrow); margin: 0 auto; padding: 0 var(--gc-s-6); }
.gc-container--text { max-width: var(--gc-container-text); margin: 0 auto; padding: 0 var(--gc-s-6); }

.gc-eyebrow {
  font-family: var(--gc-font-sans);
  font-size: var(--gc-fs-eyebrow);
  font-weight: 600;
  letter-spacing: var(--gc-ls-eyebrow);
  text-transform: uppercase;
  color: var(--gc-gold);
  margin-bottom: var(--gc-s-4);
  display: inline-block;
}
.gc-eyebrow--grey { color: var(--gc-grey); }
.gc-eyebrow--navy { color: var(--gc-navy); }

.gc-lede { font-size: var(--gc-fs-body-lg); color: var(--gc-navy-80); line-height: var(--gc-lh-normal); }

.gc-display {
  font-family: var(--gc-font-serif);
  font-size: var(--gc-fs-display);
  line-height: var(--gc-lh-tight);
  font-weight: 700;
  letter-spacing: -0.015em;
}
.gc-display em { font-style: italic; font-weight: 400; color: var(--gc-navy-80); }

.gc-small { font-size: var(--gc-fs-small); color: var(--gc-grey); }
.gc-caption { font-size: var(--gc-fs-caption); color: var(--gc-grey); }

.gc-serif { font-family: var(--gc-font-serif); }
.gc-italic { font-style: italic; }

.gc-text-cream { color: var(--gc-cream); }
.gc-text-gold  { color: var(--gc-gold); }
.gc-text-navy  { color: var(--gc-navy); }
.gc-text-grey  { color: var(--gc-grey); }

.gc-bg-navy   { background: var(--gc-navy); color: var(--gc-cream); }
.gc-bg-cream  { background: var(--gc-cream); }
.gc-bg-bej    { background: var(--gc-bej); }
.gc-bg-white  { background: var(--gc-white); }

.gc-bg-navy h1, .gc-bg-navy h2, .gc-bg-navy h3, .gc-bg-navy h4 { color: var(--gc-cream); }
.gc-bg-navy .gc-eyebrow { color: var(--gc-gold); }

.gc-sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

@media (max-width: 768px) {
  :root {
    --gc-fs-display: 36px;
    --gc-fs-h1: 30px;
    --gc-fs-h2: 26px;
    --gc-fs-h3: 20px;
    --gc-fs-body: 15px;
    --gc-fs-body-lg: 16px;
  }
}
