/* V3 treatment pages (Tyler approved the mock, 2026-10-16; built by scripts/treatments/build-treatments.mjs). Built on the shared V3 system (style.css, v3.css, guides.css): the photo
   hero of /care, the guide body (g-grid, g-sec, g-cta), and four pieces only a treatment page has: the hero's visit
   facts, the visit steps, how Gabriel helps, and the at-a-glance card. */
/* The shared hero stacks the photo above the copy on phones; only the desktop layout and the photo's grade change here. */
.t-hero{background:var(--abyss)}
.t-hero .hero-bg img{filter:saturate(.45) contrast(1.06) brightness(.78)}
.t-hero .hero-copy{max-width:640px;gap:22px}
@media (min-width:761px){
  .t-hero{min-height:min(760px,92svh)}
  .t-hero .hero-bg img{object-position:68% 38%}
  .t-hero .hero-shade{background:linear-gradient(90deg,rgba(12,16,18,.9) 0%,rgba(12,16,18,.62) 42%,rgba(12,16,18,.12) 78%),linear-gradient(0deg,rgba(12,16,18,.85) 0%,rgba(12,16,18,0) 46%)}
  .t-hero .hero-in{width:100%;padding-bottom:clamp(48px,6vw,88px)}
}
@media (max-width:760px){.t-hero .hero-bg img{object-position:62% 30%}}
.t-hero .eyebrow a{color:inherit;text-decoration:none}
.t-hero .eyebrow a:hover{color:var(--pearl)}
.t-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 26px}
.t-actions .act-link{color:var(--pearl)}
.t-facts{display:grid;grid-template-columns:repeat(3,minmax(0,auto));justify-content:start;gap:0;margin-top:10px;border-top:1px solid rgba(240,243,241,.18)}
.t-facts div{display:grid;gap:4px;padding:16px 28px 0 0;margin-right:28px;border-right:1px solid rgba(240,243,241,.14)}
.t-facts div:last-child{border-right:0;margin-right:0}
.t-facts dt{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--silver)}
.t-facts dd{margin:0;font-size:var(--fs-17);color:var(--pearl);font-variant-numeric:tabular-nums}
@media (max-width:640px){
  .t-facts{grid-template-columns:1fr 1fr}
  .t-facts div{padding:14px 16px 0 0;margin-right:0;border-right:0}
  .t-facts div:last-child{grid-column:1/-1}
}

/* Visit steps: a real sequence, so it is numbered. */
.t-steps{list-style:none!important;padding:0!important;margin:6px 0 0;display:grid!important;gap:0!important;counter-reset:step;border-top:1px solid var(--rule)}
.t-steps li{counter-increment:step;display:grid;grid-template-columns:44px minmax(0,1fr);gap:6px 16px;padding:18px 0;border-bottom:1px solid var(--rule)}
.t-steps li::before{content:counter(step,decimal-leading-zero);grid-row:1/3;font-family:var(--mono);font-size:var(--fs-13);color:var(--emerald);padding-top:3px}
.t-steps b{font-size:var(--fs-17);font-weight:500;color:var(--ink)}
.t-steps span{color:var(--ash)}

/* Who it is for: two short columns. */
.t-who{display:grid;grid-template-columns:1fr 1fr;gap:12px 32px;list-style:none!important;padding:0!important}
.t-who li{position:relative;padding-left:22px}
.t-who li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--emerald);opacity:.75}
@media (max-width:640px){.t-who{grid-template-columns:1fr}}

/* How Gabriel helps: three plain cells on a soft band. */
.t-how{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:14px;overflow:hidden;margin-top:6px}
.t-how div{background:var(--paper);padding:22px 20px 24px;display:grid;gap:8px;align-content:start;min-width:0}
.t-how .t-k{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--emerald)}
.t-how b{font-size:var(--fs-17);font-weight:500;color:var(--ink);line-height:1.3}
.t-how p{font-size:var(--fs-15)!important;line-height:1.55!important}

/* At a glance, under the Ask card. */
.t-glance{margin:0;border-top:1px solid var(--rule)}
.t-glance div{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--rule)}
.t-glance dt{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ash);padding-top:3px}
.t-glance dd{margin:0;text-align:right;font-size:var(--fs-15);color:var(--ink);font-variant-numeric:tabular-nums}
.t-side-h{margin-bottom:4px}

/* ---------- The hub (/treatments) and treatment x city pages (Tyler, 2026-10-16, from the approved mock) ----------
   The guides hub's dark solo hero and grouped body, plus hero search, category filters, photo cards and the practice
   list of a city page. */
/* Hub hero: the guides hub hero, with search on the first screen. */
.th-hero .ph-copy{max-width:880px;gap:22px}
.th-search{display:flex;align-items:center;gap:12px;width:100%;max-width:620px;height:58px;padding:0 20px;border-radius:999px;background:var(--glass);border:1px solid rgba(240,243,241,.24);transition:border-color .2s}
.th-search:focus-within{border-color:var(--pearl)}
.th-search svg{flex:none;width:18px;height:18px;color:var(--silver)}
.th-search input{flex:1;min-width:0;height:100%;background:none;border:0;outline:0;color:var(--pearl);font:inherit;font-size:var(--fs-17)}
.th-search input::placeholder{color:var(--silver)}
.th-search input::-webkit-search-cancel-button{filter:invert(1);opacity:.6}
.th-hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 26px;color:var(--silver);font-size:var(--fs-15)}
.th-hero-meta .act-link{font-size:var(--fs-15)}

/* Category filters: they filter in place, so the reader never loses their spot. */
.th-bar{position:sticky;top:calc(68px + env(safe-area-inset-top,0px));z-index:4;background:var(--chalk);border-bottom:1px solid var(--rule)}
.th-filters{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-block:14px}
.th-filters::-webkit-scrollbar{display:none}
.th-f{flex:none;display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 15px;border-radius:999px;border:1px solid var(--rule);background:var(--paper);color:var(--ink);font:inherit;font-size:14px;cursor:pointer;transition:border-color .2s,background .2s}
.th-f:hover{border-color:var(--ink)}
.th-f b{font-weight:400;color:var(--ash);font-variant-numeric:tabular-nums}
.th-f[aria-pressed=true]{background:var(--obsidian);border-color:var(--obsidian);color:var(--pearl)}
.th-f[aria-pressed=true] b{color:var(--silver)}
.th-f:focus-visible{outline:2px solid var(--emerald);outline-offset:2px}

.th-body{padding-top:clamp(40px,5vw,64px)}
.th-status{font-size:var(--fs-15);color:var(--ash);margin-bottom:calc(-1 * clamp(48px,5vw,72px) + 14px)}
.th-pop{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
@media (max-width:1080px){.th-pop{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.th-pop{grid-template-columns:1fr}}
.th-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 24px}
.th-head p{font-size:var(--fs-15);color:var(--ash);max-width:46em}

/* Photo cards: the treatment's own photo, graded like the treatment page hero. */
.th-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,264px),1fr));gap:18px}
.th-card{display:flex;flex-direction:column;min-width:0;border-radius:16px;overflow:hidden;border:1px solid rgba(200,206,206,.8);background:var(--paper);color:var(--ink);text-decoration:none;transition:border-color .2s}
.th-card:hover{border-color:var(--ink)}
.th-card:focus-visible{outline:2px solid var(--emerald);outline-offset:3px}
.th-ph{position:relative;aspect-ratio:4/3;max-width:100%;background:var(--abyss);overflow:hidden}
.th-ph img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.5) contrast(1.05) brightness(.88);transition:transform .5s var(--ease-out)}
.th-card:hover .th-ph img{transform:scale(1.035)}
.th-chip{position:absolute;left:12px;top:12px;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;background:rgba(12,16,18,.74);color:var(--pearl);padding:6px 10px;border-radius:999px}
.th-tx{display:flex;flex-direction:column;gap:6px;padding:18px 18px 20px;flex:1}
.th-n{font-size:18px;font-weight:500;letter-spacing:-.015em;line-height:1.25}
.th-t{font-size:var(--fs-15);line-height:1.45;color:var(--ash)}
.th-m{margin-top:auto;padding-top:10px;font-family:var(--mono);font-size:11.5px;letter-spacing:.05em;color:var(--ash);font-variant-numeric:tabular-nums}
.th-empty{padding:28px;border-radius:16px;border:1px dashed var(--rule);display:grid;gap:10px;max-width:640px}
.th-empty p{color:var(--ash)}
.th-empty .th-empty-h{font-size:22px;letter-spacing:-.02em;color:var(--ink)}

/* Closing band: the one question for people who don't know what they need. */
.th-ask .frame{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px 64px;align-items:end}
.th-ask h2{font-size:var(--fs-h2);font-weight:400;letter-spacing:-.03em;line-height:1.05;max-width:13em;text-wrap:balance}
.th-ask p{color:var(--silver);max-width:34em;margin-top:18px}
.th-ask .t-actions{justify-content:flex-end}
@media (max-width:760px){.th-ask .frame{grid-template-columns:1fr}.th-ask .t-actions{justify-content:flex-start}}

/* Treatment x city: the practice list. Scoped under .g-sec so the guide body's own p, ul and link rules don't win. */
.g-sec .tc-list{display:flex;flex-direction:column;gap:14px;margin-top:4px}
.g-sec .tc-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 28px;padding:24px;border-radius:16px;border:1px solid rgba(200,206,206,.8);background:var(--paper)}
.g-sec .tc-main{display:flex;flex-direction:column;gap:4px;min-width:0}
.g-sec .tc-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.g-sec .tc-n{margin:0;font-size:19px;font-weight:500;letter-spacing:-.015em;line-height:1.25;color:var(--ink)}
.g-sec .tc-badge{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--emerald);border:1px solid currentColor;border-radius:999px;padding:4px 9px;white-space:nowrap}
.g-sec .tc-who{font-size:var(--fs-15);line-height:1.45;color:var(--ink)}
.g-sec .tc-where{font-family:var(--mono);font-size:12px;line-height:1.5;letter-spacing:.04em;color:var(--ash)}
.g-sec .tc-svc{flex-direction:row;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:10px 0 0}
.g-sec .tc-svc li{font-size:13px;line-height:1.3;padding:5px 11px;border-radius:999px;background:var(--chalk);border:1px solid var(--soft);color:var(--ink)}
.g-sec .tc-svc li::marker{content:""}
.g-sec .tc-act{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:12px}
.g-sec .tc-act .btn{height:46px;padding:0 20px;font-size:14px;color:var(--pearl);text-decoration:none}
.g-sec .tc-act .btn:hover{color:var(--pearl);background:var(--ink)}
.g-sec .tc-links{display:flex;gap:16px;font-size:14px}
.g-sec .tc-links a{color:var(--ash);font-size:14px}
.g-sec .tc-links a:hover{color:var(--ink)}
@media (max-width:640px){.g-sec .tc-card{grid-template-columns:1fr;padding:20px}.g-sec .tc-act{align-items:stretch}.g-sec .tc-links{justify-content:center}}
.g-sec .tc-more{margin-top:18px;padding:22px 24px;border-radius:16px;background:var(--soft);display:grid;gap:6px}
.g-sec .tc-more b{font-weight:500;color:var(--ink)}
.g-sec .tc-more p{font-size:var(--fs-15);color:var(--ink)}
.g-sec .tc-cities{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.g-sec .tc-cities a{font-size:14px;padding:7px 14px;border-radius:999px;border:1px solid var(--rule);color:var(--ink);text-decoration:none;background:var(--paper)}
.g-sec .tc-cities a:hover{border-color:var(--ink);color:var(--ink)}
/* A treatment page's city pages (2026-10-16): the busiest cities, the rest behind "N more cities". */
.g-sec .tc-all{margin-top:4px}
.g-sec .tc-all summary{cursor:pointer;font-size:var(--fs-15);color:var(--ink);text-decoration:underline;text-underline-offset:4px;list-style:none;width:fit-content}
.g-sec .tc-all summary::-webkit-details-marker{display:none}
.g-sec .tc-all[open] summary{margin-bottom:10px}
