html {
  scroll-behavior: smooth;
}

html.lenis,
html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: clip; }

body {
  font-family: var(--body);
  font-size: clamp(16px, 1.05vw, 18px);
  line-height: 1.6;
  background: var(--cream-warm);
  color: var(--ink-on-cream);
  font-feature-settings: "kern", "liga", "calt";
  text-rendering: geometricPrecision;
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 8 3 3;
  -webkit-tap-highlight-color: transparent;
}

main { display: block; overflow-x: clip; }

img,
picture,
svg,
video {
  max-width: 100%;
}

p, li {
  max-width: var(--max-line);
}

a {
  color: inherit;
  transition: color var(--t-base) var(--ease-out);
}

a:hover {
  color: var(--terracotta-soft);
}

strong { font-weight: 500; }
em { font-style: italic; }

@media (max-width: 720px) {
  body {
    text-rendering: optimizeLegibility;
    overflow-wrap: break-word;
  }

  p,
  li {
    max-width: 100%;
  }
}

/* Tabular figures wherever numerals appear in labels or durations */
.num,
.duration,
time {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}

/* Utility: visually hidden but accessible */
.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;
}

/* Print stylesheet for the treatment menu */
@media print {
  body { background: white; color: black; }
  .nav, .footer, .hero, .reveal-img, .magazine-moment, .visit-map { display: none !important; }
  a { color: black; text-decoration: none; }
  .treatment-row { break-inside: avoid; }
}
