@import url("tokens/fonts.css");
@import url("tokens/colors.css");
@import url("tokens/typography.css");
@import url("tokens/spacing.css");
@import url("tokens/borders.css");
@import url("tokens/elevation.css");
@import url("tokens/motion.css");
@import url("tokens/base.css");

html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  overflow-x: hidden;
}
a {
  color: var(--text-strong);
  text-decoration: none;
}
a:not(.btn) {
  border-bottom: 0;
}
a:hover { color: var(--honey-600); }

@keyframes stItemIn {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}
@keyframes stOverlayIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Buttons — match design-system variants */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  height: var(--control-h-md);
  padding: 0 var(--space-5);
  width: auto;
  font: var(--type-label);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  border-radius: 0;
  cursor: pointer;
  transition: var(--transition-control);
  box-sizing: border-box;
  text-decoration: none;
  border: var(--border-default) solid transparent;
}
.btn:active { transform: translateY(1px); }
.btn--sm { height: var(--control-h-sm); padding: 0 var(--space-3); font-size: var(--text-2xs); }
.btn--md { height: var(--control-h-md); padding: 0 var(--space-5); font-size: var(--text-sm); }
.btn--lg { height: var(--control-h-lg); padding: 0 var(--space-8); font-size: var(--text-md); }
.btn--full { width: 100%; }
.btn--accent { background: var(--honey-500); color: var(--ink-900); border-color: var(--honey-500); }
.btn--accent:hover { background: var(--honey-400); border-color: var(--honey-400); color: var(--ink-900); }
.btn--primary { background: var(--ink-900); color: var(--paper); border-color: var(--ink-900); }
.btn--primary:hover { background: var(--ink-700); border-color: var(--ink-700); color: var(--paper); }
.btn--secondary { background: transparent; color: var(--ink-900); border-color: var(--ink-900); }
.btn--secondary:hover { background: var(--ink-900); color: var(--paper); border-color: var(--ink-900); }
.btn--inverse { background: var(--paper); color: var(--ink-900); border-color: var(--paper); }
.btn--inverse:hover { background: var(--honey-500); border-color: var(--honey-500); color: var(--ink-900); }
.btn--ghost { background: transparent; color: var(--ink-800); border-color: transparent; }
.btn--ghost:hover { background: var(--surface-hover); color: var(--ink-800); }
.btn .icon { flex: none; }

.icon {
  display: inline-block;
  vertical-align: middle;
  flex: none;
}
.icon--sm { width: 16px; height: 16px; }
.icon--md { width: 20px; height: 20px; }
.icon--lg { width: 24px; height: 24px; }

.badge {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  font: var(--type-eyebrow);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  background: var(--honey-500);
  color: var(--ink-900);
}

.slot-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Overlay header on homepage */
.site-header--overlay {
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background 200ms cubic-bezier(.2,0,.2,1), border-color 200ms cubic-bezier(.2,0,.2,1);
}
.site-header--overlay.is-scrolled {
  background: var(--paper);
  border-bottom-color: var(--line-default);
}
.site-header--overlay .logo-white { opacity: 1; transition: opacity 200ms cubic-bezier(.2,0,.2,1); }
.site-header--overlay .logo-ink { opacity: 0; transition: opacity 200ms cubic-bezier(.2,0,.2,1); }
.site-header--overlay.is-scrolled .logo-white { opacity: 0; }
.site-header--overlay.is-scrolled .logo-ink { opacity: 1; }
.site-header--overlay [data-menu-toggle] { color: rgba(255,255,255,0.92); }
.site-header--overlay.is-scrolled [data-menu-toggle] { color: var(--ink-600); }
.site-header--overlay [data-menu-toggle] span { background: currentColor; }

.site-menu[hidden] { display: none !important; }
.site-menu:not([hidden]) { display: flex; }
body.menu-open { overflow: hidden; }

.site-menu [data-spoke] {
  transition: color var(--duration-fast) var(--ease-standard);
}
.site-menu [data-spoke]:hover {
  color: var(--ink-500) !important;
}
.spoke-link:hover { color: var(--text-link-hover) !important; }

.offer-choice.is-on {
  background: var(--honey-050) !important;
  border-top-color: var(--line-accent) !important;
}
.offer-choice:not(.is-on) {
  background: var(--surface-subtle) !important;
  border-top-color: var(--line-default) !important;
}

.calendly-inline-widget {
  position: relative;
  min-width: 320px;
  width: 100%;
  height: 700px;
  overflow: hidden;
}
.calendly-inline-widget iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Legal reading pages — labeled fact groups, not marketing sections */
.page-intro {
  background: var(--surface-subtle);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(48px, 6vw, 88px) clamp(24px, 4vw, 64px) clamp(28px, 3.5vw, 40px);
}
.legal {
  max-width: 68ch;
  padding: clamp(40px, 5vw, 80px) clamp(24px, 4vw, 64px) clamp(64px, 8vw, 128px);
}
.legal h2 {
  margin: var(--space-8) 0 0;
  font: var(--weight-semibold) var(--text-xl) / 1.25 var(--font-display);
  letter-spacing: var(--tracking-snug);
  color: var(--ink-700);
}
.legal h2:first-child {
  margin-top: 0;
}
.legal h3 {
  margin: var(--space-6) 0 0;
  font: var(--type-label);
  color: var(--ink-700);
}
.legal p {
  margin: var(--space-4) 0 0;
  font: var(--type-body);
  color: var(--text-body);
  text-wrap: pretty;
}
.legal h3 + p {
  margin-top: var(--space-2);
}

@media (max-width: 1024px) {
  [style*="grid-template-columns:repeat(5"],
  [style*="grid-template-columns:repeat(4"] { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  [style*="grid-template-columns:repeat(3"] { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
}
@media (max-width: 860px) {
  [style*="grid-template-columns"] { grid-template-columns: minmax(0,1fr) !important; }
  [style*="position:sticky"] { position: static !important; }
  section[id="top"] { height: auto !important; min-height: 0 !important; padding-top: 120px !important; padding-bottom: 40px !important; }
  section[id="top"].page-intro { padding-top: var(--space-10) !important; padding-bottom: var(--space-8) !important; }
  [style*="height:100vh"] { height: auto !important; min-height: 78vh !important; }
  [style*="min-height:720px"],
  [style*="min-height:700px"],
  [style*="min-height:680px"],
  [style*="min-height:640px"],
  [style*="min-height:600px"],
  [style*="min-height:520px"] { min-height: 320px !important; }
  header nav { display: none !important; }
  .site-menu .menu-grid { grid-template-columns: minmax(0,1fr) !important; }
}
@media (max-width: 600px) {
  [style*="height:clamp(360px"],
  [style*="height:clamp(320px"],
  [style*="height:clamp(300px"],
  [style*="height:clamp(280px"],
  [style*="height:clamp(260px"],
  [style*="height:clamp(240px"],
  [style*="height:clamp(220px"] { height: 240px !important; }
  [style*="width:200px"] img,
  img[style*="width:200px"] { width: 160px !important; }
}

@media print {
  [data-print="hide"] { display: none !important; }
  [data-print="only"] { display: flex !important; }
  header, .site-menu { display: none !important; }
}
