/* Usual Health site. System fonts (SF Pro on Apple devices, as in the app),
   the app's palette, no external requests. Placeholder mark until the
   design team's files arrive.
   Layout: the home page is one dark world (the app's dark palette) built
   from drawn product pieces; privacy and support follow the reader's theme. */
:root {
  --bg: #F4F7F6; --surface: #FFFFFF; --panel: #EEF3F2; --line: #D3DEDB;
  --fg: #0D1719; --fg2: #475854; --fg3: #5F716C;
  --accent: #0F7A5F; --notice: #8A5A00; --band: rgba(15, 122, 95, 0.12);
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, system-ui, sans-serif;
  --font-display: ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0B1114; --surface: #13201F; --panel: #192B2A; --line: #243D3C;
    --fg: #ECF2F0; --fg2: #94A9A4; --fg3: #7A948E;
    --accent: #54D6AE; --notice: #E8B45A; --band: rgba(84, 214, 174, 0.14);
  }
}
/* the home page commits to the dark palette in both themes */
.page-home {
  --bg: #0B1114; --surface: #121D1D; --panel: #172625; --line: #22383A;
  --fg: #ECF2F0; --fg2: #A3B6B1; --fg3: #7F9792;
  --accent: #54D6AE; --notice: #E8B45A; --band: rgba(84, 214, 174, 0.13);
  color-scheme: dark;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--fg); font-family: var(--font); font-size: 17px; line-height: 1.6; }
.wrap { max-width: 1120px; margin: 0 auto; padding-left: max(24px, env(safe-area-inset-left, 0px)); padding-right: max(24px, env(safe-area-inset-right, 0px)); }
a { color: var(--accent); text-underline-offset: 3px; }
a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3 { font-family: var(--font-display); letter-spacing: -0.02em; text-wrap: balance; margin: 0; }
p { margin: 0; }

/* header and footer */
.site-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 22px; }
.wordmark { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-display); font-weight: 700; font-size: 1.15rem; color: var(--fg); text-decoration: none; }
.wordmark svg { width: 28px; height: 28px; flex: none; }
.site-head nav { display: flex; gap: 24px; font-weight: 600; font-size: 0.95rem; }
.site-head nav a { color: var(--fg2); text-decoration: none; }
.site-head nav a:hover, .site-head nav a[aria-current="page"] { color: var(--accent); }
.m-bg { fill: var(--accent); }
.m-band { fill: var(--bg); opacity: 0.35; }
.m-dot { fill: var(--bg); }
.foot-band { border-top: 1px solid var(--line); margin-top: 120px; }
.site-foot { padding-block: 28px 48px; display: grid; gap: 14px; }
.foot-main { display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; align-items: baseline; }
.foot-brand { font-family: var(--font-display); font-weight: 700; }
.site-foot nav { display: flex; gap: 20px; }
.site-foot nav a { color: var(--fg2); }
.fine { color: var(--fg3); font-size: 0.85rem; max-width: 80ch; }

/* shared home pieces */
.kicker { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent); }
.block { padding-top: 140px; display: grid; gap: 18px; align-content: start; }
.block h2 { font-size: clamp(2rem, 4.2vw, 3rem); font-weight: 800; line-height: 1.08; max-width: 20ch; }
.block h2 span { color: var(--accent); }
.sub { font-size: 1.15rem; color: var(--fg2); max-width: 54ch; }
.center { justify-items: center; text-align: center; }
.center h2 { max-width: 22ch; }
.pill { display: inline-flex; align-items: center; background: var(--accent); color: var(--bg); font-weight: 700; border-radius: 999px; padding: 13px 22px; }
.split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 72px; align-items: center; }
.split > div { display: grid; gap: 18px; align-content: center; }

/* hero */
.hero { padding-block: 48px 20px; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 64px; align-items: center; }
.hero-copy { display: grid; gap: 24px; }
.hero h1 { font-size: clamp(2.8rem, 6.4vw, 5rem); font-weight: 800; line-height: 1.0; letter-spacing: -0.03em; }
.hero h1 span { color: var(--accent); }
.lede { font-size: 1.25rem; color: var(--fg2); max-width: 32ch; }
.works { font-size: 0.92rem; color: var(--fg3); letter-spacing: 0.01em; }

/* a phone drawn in CSS, showing a week of briefs */
.phone { justify-self: center; width: min(100%, 340px); border-radius: 48px; padding: 12px; background: linear-gradient(160deg, #2A3B3B, #101818); box-shadow: 0 40px 100px rgba(0, 0, 0, 0.55), inset 0 0 0 1px rgba(255, 255, 255, 0.06); }
.phone-screen { min-height: 600px; border-radius: 38px; background: #0B1114; padding: 44px 16px 22px; display: grid; gap: 8px; align-content: start; overflow: hidden; }
.ph-title { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg3); margin-bottom: 6px; padding-inline: 4px; }
.day-row { display: flex; gap: 12px; align-items: baseline; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 11px 14px; }
.day-row span { font-size: 0.78rem; font-weight: 700; color: var(--fg3); width: 2.2em; }
.day-row b { font-family: var(--font-display); font-weight: 700; font-size: 0.95rem; color: var(--accent); }
.flag-card { margin-top: 6px; border-radius: 18px; padding: 16px; display: grid; gap: 8px; background: linear-gradient(180deg, rgba(232, 180, 90, 0.16), rgba(232, 180, 90, 0.05)); border: 1px solid rgba(232, 180, 90, 0.5); }
.flag-day { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--notice); }
.flag-t { font-family: var(--font-display); font-weight: 800; font-size: 1.25rem; line-height: 1.15; color: var(--notice); }
.flag-s { font-size: 0.9rem; line-height: 1.45; color: var(--fg); }
.ph-monitor { margin-top: 8px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 14px; display: grid; gap: 10px; }
.ph-monitor p { display: flex; justify-content: space-between; align-items: baseline; font-size: 0.82rem; color: var(--fg2); }
.ph-monitor b { font-family: var(--font-display); font-size: 1rem; color: var(--notice); }
.ph-bar { display: grid; grid-template-columns: repeat(5, 1fr); gap: 5px; }
.ph-bar i { height: 7px; border-radius: 7px; background: var(--accent); display: block; }
.ph-bar i.o { background: var(--notice); }
.ph-monitor .ph-note { font-size: 0.78rem; color: var(--notice); }
.flag-act { justify-self: start; margin-top: 4px; border: 1px solid var(--line); border-radius: 999px; padding: 7px 14px; font-weight: 700; font-size: 0.82rem; color: var(--accent); background: var(--bg); }

/* the 62 versus 54 chart */
.chart { margin: 26px 0 0; width: 100%; max-width: 900px; }
.chart svg { width: 100%; height: auto; display: block; overflow: visible; }
.c-gen { stroke: var(--fg3); stroke-width: 2; stroke-dasharray: 2 8; stroke-linecap: round; }
.c-band { fill: var(--band); }
.c-dots circle { fill: var(--accent); }
.c-odd { fill: var(--notice); }
.c-lab { fill: var(--fg3); font: 600 15px var(--font); }
.c-odd-lab { fill: var(--notice); font: 800 16px var(--font); }

/* the health monitor card */
.monitor { background: var(--surface); border: 1px solid var(--line); border-radius: 26px; padding: 22px; display: grid; gap: 4px; }
.mon-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.mon-head span { font-size: 0.9rem; color: var(--fg2); }
.mon-head b { font-family: var(--font-display); font-size: 1.3rem; color: var(--notice); }
.mon-row { display: grid; grid-template-columns: minmax(0, 1fr) 160px; gap: 16px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); }
.mon-name { font-weight: 600; }
.mon-val { font-size: 0.92rem; color: var(--notice); font-weight: 600; }
.mon-val i { font-style: normal; color: var(--fg3); font-weight: 500; margin-left: 6px; }
.mon-row svg { width: 160px; height: 40px; display: block; overflow: visible; }
.m-usual { fill: var(--band); }
.m-line { fill: none; stroke: var(--accent); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.m-end { fill: var(--notice); }

/* three plain columns */
.trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; margin-top: 18px; }
.trio > div { border-top: 1px solid var(--line); padding-top: 18px; display: grid; gap: 8px; align-content: start; }
.trio h3 { font-size: 1.25rem; }
.trio p { color: var(--fg2); }

/* doctor questions */
.questions { background: var(--surface); border: 1px solid var(--line); border-radius: 26px; padding: 22px; display: grid; gap: 10px; }
.q-head { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg3); margin-bottom: 4px; }
.q { background: var(--panel); border-radius: 16px; padding: 14px 16px; font-weight: 600; line-height: 1.4; }
.q span { display: block; font-size: 0.8rem; font-weight: 700; color: var(--accent); margin-bottom: 4px; }
.flip > div:first-child { order: 0; }

/* a month of mornings */
.month { display: grid; grid-template-columns: repeat(14, 1fr); gap: 8px; width: min(100%, 620px); margin-top: 18px; }
.month i { height: 34px; border-radius: 10px; background: var(--accent); opacity: 0.75; display: block; }
.month i.o { background: var(--notice); opacity: 1; }
.month-cap { font-size: 0.9rem; color: var(--fg3); }

.closing { padding-top: 150px; display: grid; gap: 22px; justify-items: center; text-align: center; }
.closing h2 { font-size: clamp(2.6rem, 6vw, 4.4rem); font-weight: 800; letter-spacing: -0.03em; }

/* text pages */
.doc { max-width: 700px; padding-block: 40px 0; display: grid; gap: 18px; }
.doc h1 { font-size: clamp(2.2rem, 6vw, 3rem); font-weight: 800; line-height: 1.08; }
.doc h2 { font-size: 1.3rem; margin-top: 18px; }
.doc .meta { color: var(--fg3); font-size: 0.95rem; }
.doc ul { margin: 0; padding-left: 1.2em; display: grid; gap: 6px; }
.contact { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 18px 20px; display: grid; gap: 6px; }
.contact .addr { font-family: var(--font-display); font-weight: 700; font-size: 1.3rem; user-select: all; }
.faq { display: grid; gap: 10px; }
.faq details { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 14px 18px; }
.faq summary { font-weight: 700; cursor: pointer; }
.faq details[open] summary { margin-bottom: 8px; }
.faq details p + p { margin-top: 8px; }

@media (max-width: 900px) {
  .hero-grid, .split { grid-template-columns: minmax(0, 1fr); }
  .split { row-gap: 36px; }
  .flip > div:first-child { order: 2; }
  .trio { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .block { padding-top: 100px; }
  .phone { width: min(100%, 320px); }
  .phone-screen { min-height: 0; }
}
@media (max-width: 520px) {
  .hero { padding-top: 24px; }
  .mon-row { grid-template-columns: minmax(0, 1fr) 110px; }
  .mon-row svg { width: 110px; }
  .month { gap: 5px; }
  .month i { height: 26px; border-radius: 7px; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }
