/* Styles for the website: the home page, /privacy and /support. Colors match the iPhone app. */
*,*::before,*::after{box-sizing:border-box}
:root{
  --bg:#FAF4F3; --surface:#FFFFFF; --surface-2:#F3E6E7; --ink:#2A1526; --muted:#5F4A5A; --line:#E8D7DB;
  --accent:#5E2750; --accent-ink:#FFFFFF; --accent-soft:#F1E1EC; --rose:#B0495E; --rose-soft:#F9E3E2;
  --t-standard:#5E2750; --t-gentle:#46709F; --t-postpartum:#B0495E; --t-bone:#96650F; --t-anywhere:#2D7C7D;
  --band:#5E2750; --band-ink:#FFFFFF; --band-muted:#E6CFE0;
  --shadow:0 1px 2px rgba(60,20,50,.06),0 24px 48px -12px rgba(60,20,50,.22);
  --display:"Bricolage Grotesque",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:"Atkinson Hyperlegible",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
}
@media (prefers-color-scheme: dark){
  :root{
    color-scheme:dark;
    --bg:#1A1118; --surface:#241821; --surface-2:#30222C; --ink:#F4E9EF; --muted:#C4B0BD; --line:#3E2C38;
    --accent:#E2AAD0; --accent-ink:#2A0F22; --accent-soft:#45273C; --rose:#F3A9B1; --rose-soft:#44262C;
    --t-standard:#E2AAD0; --t-gentle:#9BBDE6; --t-postpartum:#F3A9B1; --t-bone:#E3B75A; --t-anywhere:#7FCACA;
    --band:#2E1A29; --band-ink:#F4E9EF; --band-muted:#C4B0BD;
    --shadow:0 24px 48px -12px rgba(0,0,0,.6);
  }
}

html{font-size:106.25%;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:1rem/1.6 var(--body);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--accent);text-underline-offset:.2em}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:.5rem}
h1,h2,h3{font-family:var(--display);letter-spacing:-.025em;line-height:1.08;text-wrap:balance;margin:0}
p{margin:0;text-wrap:pretty}
.wrap{max-width:70rem;margin:0 auto;padding-inline:1.25rem}
.eyebrow{font-weight:700;color:var(--rose);font-size:.9375rem;margin:0 0 .75rem}
.muted{color:var(--muted)}

/* Header */
.nav{padding-top:calc(env(safe-area-inset-top,0px) + 1rem);padding-bottom:1rem}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.5rem;color:var(--ink);text-decoration:none}
.brand svg{width:2rem;height:2rem;flex:none}
.brand span{font-family:var(--display);font-weight:700;font-size:1.5rem;letter-spacing:-.03em;line-height:1}
.mark-bg{fill:var(--accent)} .mark-leaf{fill:var(--accent-ink)} .mark-leaf2{fill:var(--rose-soft)}
.mark-stem{stroke:var(--accent-ink);stroke-width:1.6;stroke-linecap:round;fill:none}
.nav-links{display:flex;gap:1.25rem;align-items:center;font-size:.9375rem}
.nav-links a{color:var(--muted);text-decoration:none;font-weight:700}
.nav-links a:hover{color:var(--ink)}

/* Buttons */
.ctas{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.8rem 1.25rem;border-radius:999px;font-weight:700;text-decoration:none;line-height:1.2}
.btn-solid{background:var(--accent);color:var(--accent-ink)}
.btn-solid:hover{filter:brightness(1.08)}
.btn-line{border:2px solid var(--line);color:var(--ink)}
.btn-line:hover{border-color:var(--accent)}
.store{display:inline-flex;flex-direction:column;padding:.55rem 1.25rem;border-radius:.9rem;background:var(--ink);color:var(--bg);line-height:1.15}
.store small{font-size:.75rem;opacity:.8}
.store b{font-family:var(--display);font-size:1.125rem;letter-spacing:-.01em}

/* Hero */
.hero{padding-block:2rem 4rem}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:3rem;align-items:center}
.hero h1{font-size:clamp(2.5rem,6.2vw,4.25rem);font-weight:700;margin-bottom:1.25rem}
.hero h1 em{font-style:normal;color:var(--rose)}
.hero .lead{font-size:1.1875rem;color:var(--muted);margin-bottom:2rem;max-width:34rem}
.promise{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;margin-top:1.5rem;padding:0;list-style:none;font-size:.9375rem;color:var(--muted)}
.promise li::before{content:"✓";color:var(--rose);font-weight:700;margin-right:.4rem}
/* Hero: centered text above a full-width banner of app screens */
.hero .wrap.hero-top,.hero .wrap.hero-banner{display:block}
.hero .wrap.hero-top{max-width:52rem;text-align:center}
.hero-top h1{margin-inline:auto}
.hero-top .lead{margin-inline:auto}
.hero-top .ctas,.hero-top .promise{justify-content:center}
.banner{display:block;width:100%;height:auto;border-radius:2rem;margin-top:3rem}
a.store{text-decoration:none}
a.store:hover{filter:brightness(1.15)}
.phones{position:relative;display:flex;justify-content:center;min-height:30rem}
.phones .phone:first-child{transform:rotate(-4deg) translateX(1.5rem);z-index:1}
.phones .phone:last-child{transform:rotate(4deg) translate(-1.5rem,3rem)}

/* Phone frame around a screenshot */
.phone{width:min(15.5rem,44vw);flex:none;border-radius:2.6rem;padding:.55rem;background:#1E1219;box-shadow:var(--shadow)}
.phone img{border-radius:2.1rem;width:100%;height:auto;aspect-ratio:1320/2868}

/* Sections */
section{padding-block:4.5rem}
.sec-head{max-width:40rem;margin-bottom:2.5rem}
.sec-head h2{font-size:clamp(2rem,4.5vw,2.75rem);margin-bottom:.75rem}
.sec-head p{font-size:1.125rem;color:var(--muted)}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.step .phone{width:100%;max-width:15rem;margin:0 auto 1.5rem}
.step h3{font-size:1.375rem;margin-bottom:.4rem}
.step .n{display:inline-grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:700;margin-bottom:.75rem}

.routines{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1rem}
.routine{background:var(--surface);border:1px solid var(--line);border-radius:1.25rem;padding:1.5rem;border-top:6px solid var(--c)}
.routine h3{font-size:1.25rem;margin-bottom:.25rem}
.routine .for{font-size:.875rem;font-weight:700;color:var(--c);margin-bottom:.75rem}
.routine p:last-child{color:var(--muted);font-size:.9375rem}

.features{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem 2.5rem}
.feature h3{font-size:1.1875rem;margin-bottom:.35rem;font-family:var(--body);letter-spacing:0}
.feature p{color:var(--muted)}
.feature .ico{width:2.75rem;height:2.75rem;border-radius:.9rem;background:var(--rose-soft);display:grid;place-items:center;margin-bottom:.9rem;font-size:1.25rem}

/* Privacy band */
.band{background:var(--band);color:var(--band-ink);border-radius:2rem;padding:clamp(2rem,5vw,4rem);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:2.5rem;align-items:center}
.band h2{font-size:clamp(2rem,4.5vw,2.75rem);margin-bottom:1rem}
.band p{color:var(--band-muted);font-size:1.0625rem}
.band ul{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}
.band li{display:flex;gap:.75rem;align-items:flex-start;font-weight:700}
.band li::before{content:"✓";flex:none;display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:rgba(255,255,255,.14)}
.band a{color:var(--band-ink)}

.stages{display:flex;flex-wrap:wrap;gap:.6rem}
.stages span{padding:.5rem 1rem;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-weight:700}

.final{text-align:center}
.final h2{font-size:clamp(2.25rem,5vw,3.25rem);margin-bottom:1rem}
.final p{color:var(--muted);font-size:1.125rem;margin:0 auto 2rem;max-width:32rem}
.final .ctas{justify-content:center}
.safety{max-width:44rem;margin:3rem auto 0;font-size:.875rem;color:var(--muted);text-align:center}

/* Footer */
footer{border-top:1px solid var(--line);padding-block:2rem calc(env(safe-area-inset-bottom,0px) + 2rem);margin-top:2rem;font-size:.9375rem;color:var(--muted)}
footer .wrap{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:center}
footer nav{display:flex;flex-wrap:wrap;gap:1.25rem}
footer a{color:var(--muted);font-weight:700;text-decoration:none}
footer a:hover{color:var(--ink)}

/* Privacy and support pages */
.doc{max-width:44rem;padding-block:2rem 3rem}
.doc h1{font-size:clamp(2.25rem,6vw,3.25rem);margin-bottom:.75rem}
.doc .updated{color:var(--muted);margin-bottom:2rem}
.doc h2{font-size:1.5rem;margin:2.5rem 0 .75rem}
.doc h3{font-size:1.125rem;margin:1.75rem 0 .5rem;font-family:var(--body);letter-spacing:0}
.doc p,.doc ul{margin:0 0 1rem}
.doc li{margin-bottom:.4rem}
.summary{background:var(--rose-soft);border-radius:1.25rem;padding:1.25rem 1.5rem;margin-bottom:1rem}
.summary p:last-child{margin-bottom:0}
.contact{background:var(--surface);border:1px solid var(--line);border-radius:1.25rem;padding:1.5rem;margin:1.5rem 0}
.contact p{margin-bottom:.5rem}
.contact .email{font-size:1.25rem;font-weight:700;word-break:break-all}
details{border-bottom:1px solid var(--line);padding-block:1rem}
details summary{cursor:pointer;font-weight:700;font-size:1.0625rem}
details[open] summary{margin-bottom:.75rem}
details p:last-child,details ul:last-child{margin-bottom:0}

@media (max-width:60rem){
  .features{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:48rem){
  .hero .wrap,.band{grid-template-columns:minmax(0,1fr)}
  .phones .phone{width:min(13rem,40vw)}
  .hero{padding-top:1rem}
  .phones{min-height:0;padding-bottom:3rem}
  .steps{grid-template-columns:1fr;gap:3rem}
  .step{max-width:22rem;margin:0 auto;text-align:center}
  .nav-links .hide-sm{display:none}
}
@media (max-width:30rem){
  .features{grid-template-columns:1fr}
  .banner{border-radius:1.25rem;margin-top:2rem}
  section{padding-block:3.25rem}
}
@media (prefers-reduced-motion:no-preference){
  .btn,.store{transition:filter .15s,border-color .15s}
}

/* /plan: a PT's home plan, shown from the link */
.plan [hidden]{display:none!important}
.plan .small{font-size:.875rem}
.plan h1{margin-bottom:.5rem}
.plan-note{background:var(--surface-2);border-radius:1rem;padding:1rem 1.25rem;margin:0 0 1.5rem}
.plan-moves{list-style:none;counter-reset:move;padding:0;margin:0 0 2rem;background:var(--surface);border:1px solid var(--line);border-radius:1.25rem}
.plan-moves li{counter-increment:move;display:grid;grid-template-columns:2rem 1fr;column-gap:.5rem;padding:.8rem 1.25rem;border-top:1px solid var(--line)}
.plan-moves li:first-child{border-top:0}
.plan-moves li::before{content:counter(move);grid-row:span 2;align-self:center;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.plan-moves li b{border-left:.35rem solid var(--k,var(--accent));padding-left:.6rem}
.plan-moves li span{color:var(--muted);font-size:.9375rem;padding-left:.95rem}
.k-breathe{--k:#46709F} .k-pelvic{--k:#B0495E} .k-core{--k:#5E2750} .k-strength{--k:#96650F} .k-balance{--k:#2D7C7D} .k-mobility{--k:#6A7A2B}
.plan-clinic{display:flex;flex-direction:column;gap:.1rem;border-left:.4rem solid var(--c);background:color-mix(in srgb,var(--c) 10%,transparent);border-radius:1rem;padding:.9rem 1.1rem;margin:0 0 1.25rem}
.plan-clinic b{color:var(--c);font-size:1.125rem}
.c-plum{--c:#5E2750} .c-rose{--c:#B0495E} .c-blue{--c:#46709F} .c-teal{--c:#2D7C7D} .c-green{--c:#2F6B4F} .c-amber{--c:#96650F}
.plan-steps{background:var(--surface);border:1px solid var(--line);border-radius:1.25rem;padding:1.5rem;margin:0 0 1.5rem}
.plan-steps h2{margin:0 0 .5rem}
.plan-steps ol{padding-left:1.25rem;margin:1rem 0}
.plan-steps li{margin-bottom:1.25rem}
.plan-steps li p{margin-bottom:.6rem}
.plan-steps .btn-line{margin-left:.5rem;padding:.45rem .9rem;background:none;font:inherit;font-weight:700;cursor:pointer}
@media (prefers-color-scheme: dark){
  .k-breathe{--k:#9BBDE6} .k-pelvic{--k:#F3A9B1} .k-core{--k:#E2AAD0} .k-strength{--k:#E3B75A} .k-balance{--k:#7FCACA} .k-mobility{--k:#BFCB7A}
  .c-plum{--c:#E2AAD0} .c-rose{--c:#F3A9B1} .c-blue{--c:#9BBDE6} .c-teal{--c:#7FCACA} .c-green{--c:#93D3B0} .c-amber{--c:#E3B75A}
}

/* /clinics: pricing, and the welcome and activate pages */
.clinics [hidden]{display:none!important}
.clinics .small{font-size:.875rem}
.billing{display:inline-flex;background:var(--surface-2);border-radius:999px;padding:.25rem;margin:0 0 1.5rem}
.billing button{border:0;background:none;font:inherit;font-weight:700;color:var(--muted);padding:.55rem 1.1rem;border-radius:999px;cursor:pointer}
.billing button small{font-weight:400;font-size:.8125rem}
.billing button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(60,20,50,.12)}
.prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin:0 0 1rem}
.price{background:var(--surface);border:1px solid var(--line);border-radius:1.25rem;padding:1.5rem;display:flex;flex-direction:column;gap:.5rem}
.price.featured{border:2px solid var(--accent)}
.price h2{margin:0;font-size:1.5rem}
.price .amount{margin:.5rem 0 0;font-size:1rem;color:var(--muted)}
.price .amount b{font-family:var(--display);font-size:2.5rem;color:var(--ink);letter-spacing:-.03em;margin-right:.25rem}
.price .saving{font-size:.9375rem;margin:0 0 .75rem;min-height:3em}
.price .btn{margin-top:auto;justify-content:center;border:0;font:inherit;font-weight:700;cursor:pointer}
.price .btn:disabled{opacity:.6;cursor:default}
.error{color:#A8322A;font-weight:700}
@media (prefers-color-scheme: dark){ .error{color:#F29B92} }
.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125rem;word-break:break-all;background:var(--surface-2);border-radius:.75rem;padding:.75rem 1rem;margin:.75rem 0}
.clinics .btn-line{padding:.45rem .9rem;background:none;font:inherit;font-weight:700;cursor:pointer;color:var(--ink)}
