/* ==========================================================================
   Internet Physical Therapy — site stylesheet
   Tokens match the current internetphysicaltherapy.com brand.
   No JavaScript and no inline styles are used anywhere (strict CSP).
   ========================================================================== */

:root {
  --ink: #0b2545;
  --navy: #0a2342;
  --navy-deep: #06172e;
  --steel: #5d86ad;
  --steel-light: #bed2e6;
  --sky: #c4d9ed;
  --soft: #eaf1f8;
  --soft-2: #edf3f8;
  --ivory: #f5f8fc;
  --ivory-2: #f3f7fb;
  --paper: #ffffff;
  --muted: #5a7087;
  --kicker: #476684;
  --italic: #4f769b;
  --on-dark: #d2dfec;
  --line: rgba(11, 37, 69, 0.14);
  --line-dark: rgba(255, 255, 255, 0.2);
  --brand-line: #bacdde;
  --chip-line: #9eb1c4;
  --input-line: #7a90a8;
  --error: #a3342b;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --radius: 20px;
  --radius-sm: 12px;
  --shadow-card: 0 20px 50px rgba(11, 37, 69, 0.08);
  --section-y: clamp(72px, 8vw, 104px);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; font-family: var(--sans); font-size: 1.0625rem; line-height: 1.65; color: var(--ink); background: var(--paper); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--navy); }
a:hover { color: var(--navy-deep); }
h1, h2, h3, h4, p, ul, ol, dl, figure { margin: 0; }
ul[class], ol[class] { list-style: none; padding: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--steel); outline-offset: 3px; border-radius: 4px; }
main:focus { outline: none; }
.icon { flex: none; vertical-align: middle; }
.container { width: 100%; max-width: 1248px; margin-inline: auto; padding-inline: 24px; }
.narrow { max-width: 860px; }
.narrow--sm { max-width: 520px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.skip-link { position: absolute; left: 16px; top: -60px; z-index: 100; padding: 10px 16px; border-radius: 999px; background: var(--navy); color: #fff; font-weight: 700; text-decoration: none; }
.skip-link:focus { top: 12px; }
.muted { color: var(--muted); }
.break { overflow-wrap: anywhere; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ---------- Scripture bar ---------- */
.scripture { background: var(--navy-deep); color: #e8eff7; padding: 12px 24px; text-align: center; }
.scripture__text { max-width: 980px; margin: 0 auto; font-family: var(--serif); font-style: italic; font-size: 1rem; line-height: 1.5; }
.scripture__ref { font-family: var(--sans); font-style: normal; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--steel-light); white-space: nowrap; }

/* ---------- Header ---------- */
.site-header { background: rgba(255, 255, 255, 0.98); border-bottom: 1px solid var(--line); position: relative; z-index: 20; }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 12px 28px; padding-block: 14px; flex-wrap: wrap; }
.brand { display: inline-flex; align-items: center; gap: 12px; color: var(--ink); text-decoration: none; min-height: 44px; }
.brand__mark { width: 49px; height: 49px; border-radius: 50%; border: 1px solid var(--brand-line); display: inline-flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 650; letter-spacing: -1px; color: var(--navy); }
.brand__spark { color: var(--steel); font-weight: 500; }
.brand__type { display: flex; flex-direction: column; line-height: 1.05; }
.brand__type strong { font-family: var(--serif); font-weight: 400; font-size: 25px; letter-spacing: -1px; }
.brand__type small { margin-top: 4px; font-size: 13px; font-weight: 600; letter-spacing: 1.4px; text-transform: uppercase; color: #51677e; }

.nav--desktop { display: flex; align-items: center; gap: 0 26px; font-size: 0.9375rem; font-weight: 600; }
.nav--desktop a:not(.btn) { color: var(--ink); text-decoration: none; padding: 10px 0; }
.nav--desktop a[aria-current="page"] { text-decoration: underline; text-underline-offset: 6px; }
.nav--mobile { display: none; position: relative; }
@media (max-width: 1200px) { .nav--desktop { gap: 0 20px; } }
.nav--mobile summary { list-style: none; display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--line); cursor: pointer; font-weight: 700; }
.nav--mobile summary::-webkit-details-marker { display: none; }
.nav--mobile nav { position: absolute; right: 0; top: calc(100% + 8px); min-width: 240px; display: flex; flex-direction: column; padding: 10px; background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow-card); }
.nav--mobile nav a { padding: 12px 14px; border-radius: 10px; color: var(--ink); text-decoration: none; font-weight: 600; }
.nav--mobile nav a:hover { background: var(--soft); }
.secure-label { display: inline-flex; align-items: center; gap: 8px; font-size: 0.875rem; font-weight: 600; color: var(--kicker); }
.intake-phone { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; text-decoration: none; }

@media (max-width: 1040px) {
  .nav--desktop { display: none; }
  .nav--mobile { display: block; }
  .secure-label { display: none; }
}

/* ---------- Buttons & links ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 0 26px; border-radius: 999px; border: 1px solid transparent; font-size: 1rem; font-weight: 750; line-height: 1.2; text-decoration: none; cursor: pointer; transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease; }
.btn:hover { transform: translateY(-1px); }
.btn--primary { background: var(--navy); color: #fff; }
.btn--primary:hover { background: var(--navy-deep); color: #fff; }
.btn--light { background: #fff; color: var(--navy); box-shadow: 0 14px 30px rgba(3, 15, 31, 0.24); }
.btn--light:hover { color: var(--navy-deep); }
.btn--outline { background: transparent; color: var(--navy); border-color: var(--navy); }
.btn--outline-light { background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.6); }
.btn--outline-light:hover { color: #fff; border-color: #fff; }
.btn--block { display: flex; width: 100%; }
.btn--spaced { margin-top: 26px; }
.btn--sm { min-height: 46px; padding: 0 20px; font-size: 0.9375rem; }
.btn--lg { min-height: 58px; font-size: 1.0625rem; }
.btn-link { min-height: 44px; padding: 0; border: 0; border-bottom: 1px solid var(--navy); background: none; color: var(--navy); font-weight: 700; cursor: pointer; }
.text-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 0.9375rem; font-weight: 750; color: var(--navy); text-decoration: none; }
.text-link span { border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.text-link--light, .text-link--light:hover { color: #fff; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; margin-top: 32px; }
.actions--spaced { margin-top: 44px; }
.actions--center { justify-content: center; }

/* ---------- Type ---------- */
.kicker { margin-bottom: 18px; font-size: 0.8125rem; font-weight: 800; letter-spacing: 0.19em; text-transform: uppercase; color: var(--kicker); }
.kicker--light { color: var(--steel-light); }
.kicker--sm { margin-bottom: 8px; font-size: 0.75rem; letter-spacing: 0.16em; }
.kicker--line { display: flex; align-items: center; gap: 14px; }
.kicker--line::before { content: ""; width: 40px; height: 1px; background: currentColor; }
.kicker--spaced { margin-top: 80px; margin-bottom: 22px; }
.kicker--spaced-sm { margin-top: 26px; margin-bottom: 0; }
.display { font-family: var(--serif); font-weight: 400; font-size: clamp(2.375rem, 4.4vw, 3.5rem); line-height: 1.1; letter-spacing: -0.035em; color: var(--ink); }
.display em { display: block; font-style: italic; color: var(--italic); }
.display em.inline, .display--sm em, .display--center em { display: inline; }
.display--light { color: #fff; }
.display--light em { color: var(--sky); }
.display--sm { font-size: clamp(2rem, 3.6vw, 2.875rem); }
.display--md { font-size: clamp(2.25rem, 4vw, 3.125rem); }
.display--center { text-align: center; }
.lead { font-size: 1.125rem; color: var(--muted); max-width: 620px; }
.display + .lead, .display + .muted { margin-top: 22px; }
.lead--light { color: var(--on-dark); }
.lead--center { margin: 20px auto 0; text-align: center; }
.fine { margin-top: 14px; font-size: 0.875rem; line-height: 1.55; color: var(--muted); }
.fine--light { color: var(--steel-light); margin-top: 22px; }
.fine--spaced { margin-top: 28px; }
.pull { margin-top: 22px; font-family: var(--serif); font-size: 1.375rem; line-height: 1.5; }
.meta { margin-top: 10px; font-size: 0.9375rem; font-weight: 650; color: var(--kicker); }
.subhead { margin-top: 30px; font-size: 1.0625rem; font-weight: 750; }

/* ---------- Sections ---------- */
.section { padding-block: var(--section-y); }
.section--tight { padding-block: clamp(56px, 6vw, 80px); }
.section--navy { background: var(--navy); color: #fff; }
.section--soft { background: var(--soft-2); }
.section--ivory { background: var(--ivory); }
.section--center { text-align: center; }
.section-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px 64px; }
.section-head > div { flex: 1 1 520px; min-width: 0; }
.section-head > .lead { flex: 1 1 360px; }
.split { display: flex; flex-wrap: wrap; gap: 48px 72px; }
.split__aside { flex: 1 1 340px; min-width: 0; }
.split__main { flex: 1.4 1 520px; min-width: 0; }

/* ---------- Hero ---------- */
.hero {
  position: relative; color: #fff;
  background:
    linear-gradient(90deg, rgba(5, 22, 43, 0.96), rgba(5, 22, 43, 0.86) 37%, rgba(5, 22, 43, 0.43) 75%, rgba(5, 22, 43, 0.32)),
    url("../images/sedona-landscape.webp") center 46% / cover no-repeat,
    var(--navy);
}
.hero__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 48px 64px; padding-block: clamp(56px, 7vw, 96px) 150px; }
.hero__copy { flex: 1 1 540px; min-width: 0; }
.hero__title { margin-top: 26px; font-family: var(--serif); font-weight: 400; font-size: clamp(3rem, 6.2vw, 5.25rem); line-height: 1.04; letter-spacing: -0.045em; }
.hero__title em { display: block; font-style: italic; color: var(--sky); }
.hero__lead { margin-top: 26px; max-width: 560px; font-size: 1.1875rem; color: var(--on-dark); }
.founder-chip { margin-top: 40px; display: inline-flex; align-items: center; gap: 14px; padding: 8px 20px 8px 8px; border-radius: 999px; background: rgba(6, 23, 46, 0.82); border: 1px solid rgba(255, 255, 255, 0.4); color: #fff; text-decoration: none; }
.founder-chip:hover { color: #fff; }
.founder-chip img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; }
.founder-chip span { display: flex; flex-direction: column; line-height: 1.3; }
.founder-chip small { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--steel-light); }
.founder-chip strong { font-family: var(--serif); font-weight: 400; font-size: 1.125rem; }
.hero-card { flex: 1 1 380px; max-width: 470px; min-width: 0; padding: 30px; border-radius: var(--radius); background: #fff; color: var(--ink); box-shadow: 0 25px 70px rgba(0, 0, 0, 0.25); }
.hero-card .kicker { margin-bottom: 0; font-size: 0.75rem; }
.hero-card__title { margin-top: 12px; font-family: var(--serif); font-weight: 400; font-size: 2rem; line-height: 1.12; letter-spacing: -0.03em; }
.hero-card__title em { font-style: italic; color: var(--italic); }
.hero-card .field { margin-top: 20px; }
.hero-card .btn { margin-top: 22px; }
@media (max-width: 760px) {
  .hero { background: linear-gradient(180deg, rgba(5, 22, 43, 0.92), rgba(5, 22, 43, 0.82)), url("../images/sedona-landscape.webp") center / cover no-repeat, var(--navy); }
  .hero__inner { padding-bottom: 110px; }
  .hero-card { padding: 22px; }
}

/* ---------- Trust strip ---------- */
.trust-wrap { position: relative; z-index: 2; margin-top: -72px; }
.trust-strip { display: flex; flex-wrap: wrap; background: #fff; border-radius: var(--radius); border: 1px solid rgba(11, 37, 69, 0.08); box-shadow: 0 20px 50px rgba(11, 37, 69, 0.12); }
.trust-strip li { flex: 1 1 240px; display: flex; align-items: flex-start; gap: 14px; padding: 26px 24px; }
.trust-strip strong { display: block; font-size: 0.9375rem; font-weight: 650; }
.trust-strip li > span:last-child { font-size: 0.875rem; color: var(--muted); }
.tick { flex: none; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--brand-line); display: inline-flex; align-items: center; justify-content: center; font-size: 14px; color: var(--steel); }

/* ---------- Numbered columns ---------- */
.cols { display: flex; flex-wrap: wrap; gap: 36px 32px; margin-top: 52px; }
.col { flex: 1 1 230px; min-width: 0; padding-top: 22px; border-top: 1px solid var(--line); }
.col--strong { border-top-color: var(--navy); }
.cols--3 .col { flex-basis: 280px; }
.cols--dark .col { border-top-color: rgba(255, 255, 255, 0.3); }
.cols--dark p { color: var(--on-dark); }
.col__kicker { font-size: 0.75rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--kicker); }
.col__kicker--spaced { margin-top: 28px; }
.col__title { margin-top: 14px; font-family: var(--serif); font-weight: 400; font-size: 1.625rem; line-height: 1.2; letter-spacing: -0.02em; }
.col p:not(.col__kicker) { margin-top: 10px; font-size: 1rem; color: var(--muted); }
.cols--dark .col p { color: var(--on-dark); }

/* ---------- Accordion (native details/summary) ---------- */
.accordion { border-top: 1px solid var(--line); }
.accordion--dark { border-top-color: var(--line-dark); }
.accordion__item { border-bottom: 1px solid var(--line); }
.accordion--dark .accordion__item { border-bottom-color: var(--line-dark); }
.accordion__item summary { list-style: none; display: flex; align-items: center; gap: 20px; min-height: 76px; padding: 20px 0; cursor: pointer; }
.accordion__item summary::-webkit-details-marker { display: none; }
.accordion__item summary .icon { margin-left: auto; color: var(--steel); transition: transform 0.2s ease; }
.accordion--dark summary .icon { color: var(--steel-light); }
.accordion__item[open] summary .icon { transform: rotate(45deg); }
.accordion__num { font-size: 0.8125rem; font-weight: 800; letter-spacing: 0.16em; color: var(--steel-light); }
.accordion__title { font-family: var(--serif); font-size: 1.625rem; letter-spacing: -0.02em; }
.accordion__title--sm { font-size: 1.3125rem; }
.accordion__body { padding-bottom: 26px; max-width: 680px; color: var(--muted); }
.accordion--dark .accordion__body { color: var(--on-dark); }
.accordion__body--split { display: flex; flex-wrap: wrap; gap: 18px; max-width: none; }
.accordion__body--split > * { flex: 1 1 240px; min-width: 0; }
.tip { padding: 20px 22px; border-radius: 16px; background: rgba(255, 255, 255, 0.07); }
.tip__title { margin: 4px 0 8px; font-family: var(--serif); font-size: 1.25rem; line-height: 1.3; color: #fff; }

/* ---------- Stats, cards, myths ---------- */
.stats { display: flex; flex-wrap: wrap; gap: 32px; margin-top: 52px; }
.stat { flex: 1 1 280px; padding-top: 22px; border-top: 1px solid var(--navy); }
.stat__figure { font-family: var(--serif); font-size: 4rem; line-height: 1; letter-spacing: -0.04em; color: var(--navy); margin-bottom: 14px; }
.stat__source { margin-top: 8px; font-size: 0.8125rem; color: var(--muted); }
.cards { display: flex; flex-wrap: wrap; gap: 20px; }
.cards--spaced { margin-top: 48px; }
.cards--3 > * { flex: 1 1 320px; min-width: 0; }
.cards--2 > * { flex: 1 1 420px; min-width: 0; }
.card .actions { margin-top: 20px; }
.card { padding: 30px; border-radius: var(--radius); background: #fff; }
.card p { color: var(--muted); }
.card--ivory { background: var(--ivory); }
.card--ivory p:not(.myth):not(.col__kicker) { color: var(--ink); }
.card--outline { border: 1px solid var(--line); }
.card--navy { background: var(--navy); color: #fff; }
.card--navy p { color: var(--on-dark); }
.card--white { background: #fff; color: var(--ink); }
.card__figure { margin: 10px 0 14px; font-family: var(--serif); font-size: 3.75rem; line-height: 1; letter-spacing: -0.04em; color: #fff; }
.card__figure--navy { color: var(--navy); font-size: 3rem; }
.card__label { font-size: 1.1875rem; font-weight: 700; margin-bottom: 8px; }
.card__title { margin: 18px 0 8px; font-family: var(--serif); font-weight: 400; font-size: 1.5rem; letter-spacing: -0.02em; }
.card--outline .card__title, .card .card__title:first-child { margin-top: 12px; }
.card__title--lg { font-size: 1.75rem; }
.icon-badge { display: inline-flex; width: 46px; height: 46px; border-radius: 50%; background: var(--soft); color: var(--navy); align-items: center; justify-content: center; }
.myth { margin: 16px 0 14px; font-family: var(--serif); font-style: italic; font-size: 1.375rem; line-height: 1.3; color: var(--italic) !important; }

/* ---------- Comparison table ---------- */
.table-wrap { position: relative; margin-top: 44px; overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); }
.compare { width: 100%; min-width: 720px; border-collapse: collapse; font-size: 1rem; text-align: left; }
.compare th, .compare td { padding: 16px 20px; border-top: 1px solid var(--line); }
.compare thead th { border-top: 0; font-family: var(--serif); font-weight: 400; font-size: 1.1875rem; }
.compare thead th:first-child { font-family: var(--sans); font-size: 0.8125rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--kicker); width: 36%; }
.compare tbody th { font-weight: 600; }
.compare td { color: var(--muted); }
.compare .compare__us { background: var(--soft); color: var(--ink); font-weight: 750; }
.compare thead .compare__us { background: var(--navy); color: #fff; }

/* ---------- Founder ---------- */
.founder { display: flex; flex-wrap: wrap; align-items: center; gap: 48px 72px; }
.founder--top { align-items: flex-start; }
.founder__photo { flex: 1 1 380px; min-width: 0; }
.founder__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius); background: var(--soft); }
.founder__photo figcaption { margin-top: 14px; font-family: var(--serif); font-size: 1.1875rem; }
.founder__photo figcaption span { display: block; font-family: var(--sans); font-size: 0.875rem; color: var(--muted); }
.founder__copy { flex: 1.3 1 480px; min-width: 0; }
.founder__copy > .muted { margin-top: 14px; }
.pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.pills li { padding: 7px 14px; border-radius: 999px; border: 1px solid var(--brand-line); font-size: 0.875rem; font-weight: 600; }
.quote blockquote { margin: 0; font-family: var(--serif); font-size: 1.25rem; line-height: 1.45; }
.quote figcaption { margin-top: 16px; font-size: 0.875rem; font-weight: 650; }

/* ---------- Callout ---------- */
.callout { margin-top: 20px; display: flex; flex-wrap: wrap; align-items: center; gap: 20px 40px; padding: 32px; border-radius: var(--radius); background: var(--navy); color: #fff; }
.callout__icon { flex: none; display: inline-flex; width: 56px; height: 56px; border-radius: 50%; background: rgba(255, 255, 255, 0.1); align-items: center; justify-content: center; }
.callout__copy { flex: 1 1 420px; min-width: 0; }
.callout__copy h3 { font-family: var(--serif); font-weight: 400; font-size: 1.75rem; letter-spacing: -0.02em; }
.callout__copy em { font-style: italic; color: var(--sky); }
.callout__copy p { margin-top: 8px; color: var(--on-dark); }
.help-card { margin-top: 32px; padding: 24px; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); }
.help-card a { display: flex; align-items: center; min-height: 44px; font-weight: 750; }
.help-card__title { font-weight: 750; }

/* ---------- Closing ---------- */
.closing { position: relative; background: linear-gradient(180deg, rgba(5, 22, 43, 0.9), rgba(5, 22, 43, 0.82)), url("../images/sedona-landscape.webp") center 60% / cover no-repeat, var(--navy); color: #fff; text-align: center; }
.closing--plain { background: var(--navy); }
.closing__inner { max-width: 900px; padding-block: var(--section-y); }
.closing__title { font-family: var(--serif); font-weight: 400; font-size: clamp(2.75rem, 5.4vw, 4.5rem); line-height: 1.04; letter-spacing: -0.04em; }
.closing__title em { font-style: italic; color: var(--sky); }
.closing .lead { margin: 22px auto 0; }

/* ---------- Page heroes (About, Services, Legal) ---------- */
.page-hero { padding-block: clamp(72px, 8vw, 112px); background: var(--ivory-2); }
.page-hero--compact { padding-block: 64px; }
.page-hero__title { margin-top: 24px; max-width: 1000px; font-family: var(--serif); font-weight: 400; font-size: clamp(2.75rem, 5.8vw, 4.875rem); line-height: 1.04; letter-spacing: -0.045em; }
.page-hero__title em { display: block; font-style: italic; color: var(--italic); }
.page-hero__title--sm { font-size: clamp(2.25rem, 4.4vw, 3.5rem); }
.page-hero .lead { margin-top: 24px; max-width: 680px; }
.page-hero__row { margin-top: 44px; display: flex; flex-wrap: wrap; align-items: flex-end; gap: 32px 64px; }
.mission { flex: 2 1 540px; min-width: 0; padding-top: 22px; border-top: 1px solid var(--navy); }
.mission__text { margin-top: 12px; font-family: var(--serif); font-size: 1.5rem; line-height: 1.45; }
.page-hero__row .actions { flex: 1 1 260px; margin-top: 0; }
.jump { display: flex; flex-wrap: wrap; gap: 10px; }
.jump a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--chip-line); background: #fff; color: var(--ink); font-size: 0.9375rem; font-weight: 650; text-decoration: none; }
.jump a[aria-current="page"] { background: var(--navy); border-color: var(--navy); color: #fff; }
.jump--tabs { margin: 28px 0 0; }
.ruled-list { margin-top: 14px; border-top: 1px solid var(--line); }
.ruled-list li { padding: 12px 0; border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: 1.1875rem; }
.ruled-list small { font-family: var(--sans); font-size: 0.875rem; color: var(--muted); }
.ruled-list--plain li { font-family: var(--sans); font-size: 1rem; }
.ruled-list--dark { border-top-color: var(--line-dark); }
.ruled-list--dark li { border-bottom-color: var(--line-dark); padding-block: 16px; font-size: 1.3125rem; color: var(--on-dark); }
.ruled-list--italic li { font-style: italic; color: #fff; }
.before-after { margin-top: 48px; display: flex; flex-wrap: wrap; gap: 40px 64px; }
.before-after > div { flex: 1 1 420px; min-width: 0; }
.founder__copy .ruled-list + .text-link { margin-top: 20px; }

/* ---------- Services ---------- */
.condition { display: flex; flex-wrap: wrap; gap: 40px 72px; }
.condition > div { flex: 1 1 440px; min-width: 0; }
.condition .lead { margin-top: 20px; }
.condition__side { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.condition__side .card { align-self: stretch; padding: 28px 30px; }
.condition__side .card__title { margin-top: 0; }
.check-list { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; }
.check-list li { display: flex; gap: 12px; color: var(--ink); }
.check-list .tick { width: 24px; height: 24px; font-size: 12px; }
.card--navy .check-list li { color: #fff; }
.card--navy .check-list .tick { border-color: rgba(255, 255, 255, 0.35); color: var(--sky); }
.pay-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 32px 64px; }
.pay-strip > div { flex: 1 1 380px; }
.pay-strip > div .muted { margin-top: 12px; }
.pay-strip__list { flex: 1.6 1 520px; display: flex; flex-wrap: wrap; gap: 14px; }
.pay-strip__list li { flex: 1 1 180px; padding: 18px 20px; border-radius: 16px; border: 1px solid var(--line); }
.pay-strip__list strong { display: block; font-family: var(--serif); font-weight: 400; font-size: 1.3125rem; }
.pay-strip__list span { font-size: 0.9375rem; color: var(--muted); }

/* ---------- Footer ---------- */
.site-footer { padding: 56px 0 40px; border-top: 1px solid var(--line); font-size: 0.9375rem; }
.site-footer__grid { display: flex; flex-wrap: wrap; gap: 36px 56px; }
.site-footer__grid > div { flex: 1 1 170px; min-width: 0; }
.site-footer__grid > .site-footer__brand { flex: 2 1 300px; }
.site-footer__tagline { margin-top: 16px; font-family: var(--serif); font-size: 1.1875rem; }
.site-footer__tagline em { font-style: italic; color: var(--italic); }
.site-footer__heading { margin-bottom: 10px; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--kicker); }
.site-footer ul { display: flex; flex-direction: column; gap: 6px; list-style: none; padding: 0; margin: 0; }
.site-footer ul a { color: var(--ink); text-decoration: none; }
.site-footer ul a:hover { text-decoration: underline; }
.site-footer__legal { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 32px; font-size: 0.8125rem; color: var(--muted); }
.site-footer__links { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.site-footer__links a { color: var(--kicker); }
.site-footer__note { margin-top: 10px; font-size: 0.8125rem; color: var(--muted); }
.site-footer__note--small { font-size: 0.75rem; }
.mobile-cta { display: none; }
@media (max-width: 760px) {
  .mobile-cta { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, 0.97); border-top: 1px solid var(--line); }
  .layout-site .site-footer { padding-bottom: 110px; }
}

/* ---------- Intake ---------- */
.layout-intake, .layout-admin { background: var(--ivory); }
.tracker { background: #fff; border-bottom: 1px solid var(--line); }
.tracker__list { display: flex; flex-wrap: wrap; gap: 10px 32px; padding-block: 14px; }
.tracker__item { display: flex; align-items: center; gap: 10px; font-size: 0.9375rem; font-weight: 600; color: var(--muted); }
.tracker__dot { width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 0.875rem; font-weight: 750; border: 1.5px solid var(--chip-line); background: #fff; color: var(--navy); }
.tracker__item--done, .tracker__item--current, .tracker__item--pending { color: var(--ink); }
.tracker__item--done .tracker__dot, .tracker__item--current .tracker__dot { background: var(--navy); border-color: var(--navy); color: #fff; }
.tracker__item--current { font-weight: 750; }
.tracker__item--pending .tracker__dot { background: var(--soft); border-color: var(--steel); }

.intake { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 28px; padding-block: 36px 64px; }
.intake__card { flex: 999 1 620px; min-width: 0; padding: clamp(22px, 4vw, 44px); background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-card); }
.intake__card > .kicker:first-of-type { margin-bottom: 0; }
.intake__aside { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.intake__title { margin-top: 10px; font-family: var(--serif); font-weight: 400; font-size: clamp(2.125rem, 4vw, 2.875rem); line-height: 1.08; letter-spacing: -0.035em; }
.intake__title em { font-style: italic; color: var(--italic); }
.intake__title--spaced { margin-top: 22px; }
.intake__lead { margin-top: 14px; max-width: 640px; color: var(--muted); }
.intake__lead--dark { color: var(--ink); font-size: 1.125rem; }
.intake form { margin-top: 28px; }

.field { margin-top: 22px; min-width: 0; border: 0; padding: 0; }
fieldset.field { margin-inline: 0; }
.field-grid { display: flex; flex-wrap: wrap; gap: 0 16px; }
.field-grid > .field { flex: 1 1 240px; }
.field-grid > .field--full { flex-basis: 100%; }
.field-grid > .field--wide { flex: 2 1 280px; }
.field--narrow { max-width: 360px; }
.label { display: block; margin-bottom: 6px; padding: 0; font-size: 0.9375rem; font-weight: 650; color: var(--ink); }
.label--spaced { margin-top: 22px; }
.input { width: 100%; min-height: 52px; padding: 0 14px; border-radius: var(--radius-sm); border: 1px solid var(--input-line); background: #fff; font-size: 1rem; color: var(--ink); }
textarea.input { min-height: 96px; padding: 12px 14px; line-height: 1.5; resize: vertical; }
select.input { padding-right: 36px; }
.input[aria-invalid="true"] { border-color: var(--error); box-shadow: 0 0 0 1px var(--error); }
.input--static { display: flex; align-items: center; border-color: transparent; background: var(--ivory); }
.input--signature { min-height: 56px; font-family: var(--serif); font-style: italic; font-size: 1.375rem; }
.field__help { margin-top: 6px; font-size: 0.8125rem; color: var(--muted); }
.field__error { display: flex; align-items: center; gap: 6px; margin-top: 6px; font-size: 0.9375rem; font-weight: 650; color: var(--error); }

.chips { display: flex; flex-wrap: wrap; gap: 10px; }
.chips--grid .chip { flex: 1 1 28%; }
.chip { position: relative; display: inline-flex; cursor: pointer; }
.chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chip span { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--chip-line); background: #fff; font-size: 0.9375rem; font-weight: 650; color: var(--ink); transition: background-color 0.15s ease; }
.chip:hover span { border-color: var(--navy); }
.chip input:checked + span { background: var(--navy); border-color: var(--navy); color: #fff; }
.chip input:focus-visible + span { outline: 3px solid var(--steel); outline-offset: 2px; }
.chip--square span { min-width: 44px; padding: 0 8px; border-radius: 10px; }
.scale { display: flex; flex-wrap: wrap; gap: 6px; }
.scale .chip { flex: 1 0 44px; }
.scale__ends { display: flex; justify-content: space-between; margin-top: 6px; font-size: 0.8125rem; color: var(--muted); }

.check { display: flex; align-items: flex-start; gap: 12px; min-height: 44px; padding-block: 4px; font-size: 0.9375rem; line-height: 1.5; cursor: pointer; }
.check input { flex: none; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--navy); }
.check--boxed { padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.consents { display: flex; flex-direction: column; gap: 6px; }
.consent-list { display: flex; flex-direction: column; gap: 10px; margin-top: 18px; }
.check-grid { display: flex; flex-wrap: wrap; gap: 0 16px; }
.check-grid .check { flex: 1 1 220px; align-items: center; }
.inline-options { display: flex; flex-wrap: wrap; gap: 4px 24px; }

.alert { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 22px; padding: 14px 16px; border-radius: 14px; background: var(--soft); font-size: 0.9375rem; }
.alert--error { background: #fbeeec; color: #7c241d; }
.note { display: flex; align-items: flex-start; gap: 12px; margin-top: 18px; padding: 16px 18px; border-radius: 14px; font-size: 0.9375rem; line-height: 1.55; }
.note .icon { margin-top: 2px; color: var(--navy); }
.note--soft { background: var(--soft); }
.note--outline { border: 1px solid var(--line); }
.note--action { flex-wrap: wrap; align-items: center; justify-content: space-between; }
.note--action p { flex: 1 1 260px; }
.badge-icon { display: inline-flex; width: 60px; height: 60px; border-radius: 50%; background: var(--soft); color: var(--navy); align-items: center; justify-content: center; }
.badge-icon--solid { width: 64px; height: 64px; background: var(--navy); color: #fff; }
.promo { margin-top: 28px; padding: 28px 30px; border-radius: var(--radius); background: var(--navy); color: #fff; }
.promo__title { margin-top: 10px; font-family: var(--serif); font-weight: 400; font-size: 1.875rem; line-height: 1.15; letter-spacing: -0.02em; }
.promo__title em { font-style: italic; color: var(--sky); }
.promo p:not(.kicker) { margin-top: 12px; color: var(--on-dark); }
.promo .actions { margin-top: 22px; }
.numbered { counter-reset: n; display: flex; flex-direction: column; gap: 14px; margin-top: 14px; }
.numbered li { counter-increment: n; display: flex; gap: 14px; align-items: flex-start; }
.numbered li::before { content: counter(n); flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--soft); color: var(--navy); display: inline-flex; align-items: center; justify-content: center; font-size: 0.875rem; font-weight: 750; }
.bullets { margin-top: 12px; padding-left: 22px; display: flex; flex-direction: column; gap: 6px; }

.slots { margin: 22px 0 0; padding: 0; border: 0; min-width: 0; }
.slots__day { padding-block: 14px; border-top: 1px solid var(--line); }
.slots__day:last-child { border-bottom: 1px solid var(--line); }
.slots__label { margin-bottom: 10px; font-weight: 750; }
.chips--slots .chip { flex: 0 1 132px; }

.tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.tab { flex: 1 1 150px; display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 8px 12px; border-radius: var(--radius-sm); border: 1px solid var(--line); background: #fff; font-size: 0.875rem; font-weight: 600; color: var(--ink); text-align: left; cursor: pointer; }
.tab__dot { flex: none; width: 26px; height: 26px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 0.8125rem; font-weight: 750; border: 1.5px solid var(--chip-line); color: var(--navy); }
.tab--current { background: var(--soft); font-weight: 750; }
.tab--current .tab__dot, .tab--done .tab__dot { background: var(--navy); border-color: var(--navy); color: #fff; }
.pw-section { margin-top: 22px; padding-top: 24px; border-top: 1px solid var(--line); }
.pw-section__title { font-family: var(--serif); font-weight: 400; font-size: 1.75rem; letter-spacing: -0.02em; }
.pw-section__title em { font-style: italic; color: var(--italic); }
.uploads { display: flex; flex-wrap: wrap; gap: 12px; }
.upload { flex: 1 1 240px; padding: 16px; border-radius: 14px; border: 1.5px dashed var(--input-line); background: var(--ivory); }
.upload .label { display: flex; align-items: center; gap: 8px; }
.upload__input { width: 100%; font-size: 0.875rem; }
.upload__status { display: flex; align-items: center; gap: 6px; margin-top: 8px; font-size: 0.875rem; font-weight: 650; color: var(--navy); }
.pay-note { display: none; margin-top: 20px; padding: 16px 18px; border-radius: 14px; background: var(--soft); font-size: 0.9375rem; }
form:has(input[name="pay_method"][value="hsa"]:checked) .pay-note--hsa,
form:has(input[name="pay_method"][value="cash"]:checked) .pay-note--cash { display: block; }
form:has(input[name="pay_method"][value="hsa"]:checked) .insurance-fields,
form:has(input[name="pay_method"][value="cash"]:checked) .insurance-fields { display: none; }
.safety { margin-top: 22px; padding: 18px 20px; border-radius: 14px; background: var(--soft); }
.safety__title { float: left; width: 100%; margin-bottom: 8px; padding: 0; font-weight: 750; }
.safety .check { clear: both; }
.safety__note { margin-top: 10px; font-size: 0.875rem; line-height: 1.5; }
.form-footer { margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; }
.form-footer__right { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.summary { margin-top: 24px; padding: 4px 20px; border-radius: 16px; border: 1px solid var(--line); background: #fff; font-size: 0.9375rem; }
.summary > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.summary > div:last-child { border-bottom: 0; }
.summary dt { color: var(--muted); }
.summary dd { margin: 0; font-weight: 700; text-align: right; }

.panel { padding: 24px; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); }
.panel--navy { background: var(--navy-deep); color: #fff; border-color: rgba(255, 255, 255, 0.2); }
.panel--navy p { margin-top: 14px; font-size: 0.9375rem; color: var(--on-dark); }
.panel--soft { background: var(--soft); border-color: transparent; }
.panel--soft a { display: flex; align-items: center; min-height: 40px; font-weight: 700; }
.panel__title { font-weight: 750; }
.panel__person { display: flex; align-items: center; gap: 14px; }
.panel__person img { width: 60px; height: 60px; border-radius: 50%; object-fit: cover; }
.panel__person small { display: block; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--steel-light); }
.panel__person strong { display: block; margin-top: 2px; font-family: var(--serif); font-weight: 400; font-size: 1.1875rem; }
.mini-steps { display: flex; flex-direction: column; gap: 16px; margin-top: 4px; }
.mini-steps li { display: grid; grid-template-columns: 34px 1fr; column-gap: 8px; }
.mini-steps span { grid-row: span 2; font-family: var(--serif); font-size: 1.25rem; color: var(--italic); }
.mini-steps small { font-size: 0.875rem; color: var(--muted); }
.intake-footer { border-top: 1px solid var(--line); background: #fff; padding-block: 22px; font-size: 0.8125rem; color: var(--muted); }
.intake-footer__inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; }
.intake-footer__credit { margin-top: 10px; font-size: 0.75rem; }
.prose p + p { margin-top: 14px; }

/* ---------- Staff area ---------- */
.admin-waitlist { margin-top: 24px; }
.admin-waitlist__list { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 10px; }
.admin-table { width: 100%; min-width: 860px; border-collapse: collapse; background: #fff; font-size: 0.9375rem; }
.admin-table th, .admin-table td { padding: 12px 16px; border-top: 1px solid var(--line); text-align: left; }
.admin-table thead th { border-top: 0; font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--kicker); }
.flag { color: var(--error); }
.admin-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.admin-grid { display: flex; flex-wrap: wrap; gap: 24px; }
.admin-grid > .summary { flex: 1 1 420px; }
.admin-grid dd { max-width: 60%; }
.admin-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 0 20px; font-size: 0.9375rem; font-weight: 650; }
.admin-nav a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ink); text-decoration: none; }
.admin-nav a:hover { color: var(--navy); text-decoration: underline; text-underline-offset: 6px; }
.admin-nav a[aria-current="page"] { color: var(--navy); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; }
.admin-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; padding-block: 6px; border-top: 1px solid var(--line); }
.syscheck { margin-top: 24px; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.syscheck__group { padding: 16px 20px 8px; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--kicker); }
.syscheck__row { display: flex; align-items: flex-start; gap: 14px; padding: 12px 20px; border-top: 1px solid var(--line); font-size: 0.9375rem; }
.syscheck__status { flex: 0 0 auto; min-width: 70px; padding: 2px 10px; border-radius: 999px; font-size: 0.8125rem; font-weight: 800; text-align: center; }
.syscheck__status--ok { background: #e7f2ea; color: #1d5532; }
.syscheck__status--warn { background: #fbf1df; color: #6e4300; }
.syscheck__status--fail { background: #fbeeec; color: #7c241d; }
.syscheck__fix { margin-top: 4px; font-size: 0.875rem; line-height: 1.5; color: var(--muted); }
.key-box { margin-top: 12px; padding: 14px 16px; border-radius: 12px; background: var(--ivory); font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 0.875rem; word-break: break-all; }
.staff-forms { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 28px; }
.staff-forms > .intake__card { flex: 1 1 380px; }
.inline-form { display: inline; }
.admin-actions--tight { margin-top: 0; gap: 8px; flex-wrap: nowrap; }
.check--spaced { margin-top: 18px; }
.intake__card--spaced { margin-top: 28px; }
.steps-list { margin: 12px 0 0; padding-left: 22px; }
.steps-list li + li { margin-top: 10px; }
.intake__card code, .syscheck code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 0.875em; }

/* ---------- Small screens ---------- */
@media (max-width: 640px) {
  .container { padding-inline: 16px; }
  .scripture { padding-inline: 16px; }
  .scripture__text { font-size: 0.9375rem; }
  .brand__mark { width: 42px; height: 42px; font-size: 16px; }
  .brand__type strong { font-size: 21px; }
  .brand__type small { font-size: 11px; }
  .intake-phone { font-size: 0.875rem; }
  .accordion__title { font-size: 1.375rem; }
  .callout { padding: 24px; }
  .summary dd { text-align: left; }
}

/* ---------- v3.1: price line in the homepage card, legal pages ---------- */
.hero-card__price { margin-top: 18px; padding: 12px 14px; border-radius: var(--radius-sm); background: var(--soft); font-size: 0.9375rem; line-height: 1.45; }
.hero-card__price strong { font-size: 1.125rem; }
.legal h2 { margin-top: 36px; font-family: var(--serif); font-weight: 400; font-size: 1.5rem; line-height: 1.2; letter-spacing: -0.02em; }
.legal h2 + p, .legal h2 + ul { margin-top: 12px; }
.legal ul { margin-top: 12px; padding-left: 1.25em; list-style: disc; }
.legal li + li { margin-top: 8px; }
.legal ul + p, .legal p + ul { margin-top: 14px; }
.legal__updated { color: var(--muted); font-size: 0.9375rem; }
.legal__callout { padding: 16px 18px; border-radius: var(--radius-sm); background: var(--soft); }
.legal__nav { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--line); }
.legal__nav ul { list-style: none; padding-left: 0; display: flex; flex-wrap: wrap; gap: 8px 20px; }
.legal__nav li + li { margin-top: 0; }

/* v3.1: breathing room above full-width form buttons */
.field + .btn--block { margin-top: 24px; }

/* v3.1: printing a page (e.g. a legal page) leaves out the floating "Check availability" bar */
@media print { .mobile-cta { display: none !important; } }
