:root {
  --black: #000000;
  --white: #FFFFFF;
  --gray: #EAEAEA;
  --serif: 'Instrument Serif', 'Times New Roman', serif;
  --sans: 'Inter', system-ui, -apple-system, sans-serif;
  /* Fixed header: promo strip + nav (approx — tune if bar wraps) */
  --site-header-offset: 6.75rem;
}

@media (min-width: 640px) {
  :root {
    --site-header-offset: 6.5rem;
  }
}

.site-mobile-nav-top {
  top: var(--site-header-offset);
}

/* Space below fixed header (promo + nav) for inner pages */
.z-page-hero {
  padding-top: calc(var(--site-header-offset, 6.75rem) + 0.5rem);
}

@media (min-width: 768px) {
  .z-page-hero {
    padding-top: calc(var(--site-header-offset, 6.5rem) + 0.75rem);
  }
}

html { scroll-behavior: smooth; }

body.mobile-nav-open {
  overscroll-behavior: none;
}

body {
  font-family: var(--sans);
  font-feature-settings: 'ss01', 'cv01', 'cv11';
  background: #fff;
  color: #111;
}

.font-serif { font-family: var(--serif); font-weight: 400; letter-spacing: -0.02em; }
.font-serif-italic { font-family: var(--serif); font-style: italic; font-weight: 400; letter-spacing: -0.02em; }

/* Editorial details */
.eyebrow {
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  color: #666;
}
.eyebrow-num {
  font-family: ui-monospace, 'SF Mono', Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.05em;
  color: #888;
}
.hairline {
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(0,0,0,0.14), transparent);
}
.divider-dot::before {
  content: '·';
  margin: 0 0.5em;
  color: #aaa;
}

::selection { background: #111; color: #fff; }

/* Accessible focus for keyboard users */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 2px solid #059669;
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .fade-up,
  .fade-up.visible {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* Subtle fade-up animation on scroll */
.fade-up { opacity: 0; transform: translateY(20px); transition: opacity .8s ease, transform .8s ease; }
.fade-up.visible { opacity: 1; transform: translateY(0); }

/* FAQ */
.faq-item[data-open="true"] .faq-icon { transform: rotate(180deg); }
.faq-item[data-open="true"] .faq-content { display: block; }

/* Scrollbar */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #fff; }
::-webkit-scrollbar-thumb { background: #ddd; border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: #bbb; }

/* Header: subtle elevation when scrolled */
#site-header.header-scrolled {
  box-shadow: 0 10px 40px -12px rgba(0, 0, 0, 0.08);
  border-bottom-color: rgba(0, 0, 0, 0.08);
  background-color: rgba(255, 255, 255, 0.94);
}

/* Mobile drawer open: hide floating CTA */
body.mobile-nav-open #sticky-cta {
  opacity: 0;
  pointer-events: none;
  transform: translateY(calc(100% + 1rem));
}
