/* =========================================================================
   Inner-page design system — single/archive/page/blog templates.
   Built on the reference tokens (--ink, --forest, --green, --ivory, --paper…)
   defined in index.css, so inner pages match the homepage exactly.
   Superpower-inspired: dark hero band, generous whitespace, one accent,
   soft rounded cards, editorial article column + sticky sidebar.
   ========================================================================= */

.innerRoot { background: var(--paper); position: relative; z-index: 1; }
.skipLink {
  position: absolute; left: -999px; top: 0; z-index: 200;
  background: var(--forest-deep); color: #fff; padding: 10px 16px; border-radius: 0 0 10px 0;
}
.skipLink:focus { left: 0; }

/* Keep the fixed reference header legible over inner pages: give it a soft
   dark veil from the top (the hero band beneath it is dark anyway). */
.innerHeader::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 200%;
  background: linear-gradient(180deg, rgba(4, 22, 17, .55), rgba(4, 22, 17, 0));
  pointer-events: none; z-index: -1;
}

/* ---------- Hero band ---------------------------------------------------- */
.innerHero { position: relative; color: #eaf6ee; }

/* Superpower-style hero: an inset, rounded image panel with white padding
   around it, content overlaid on the left. Sits on the paper page under a
   light header. */
.innerHero.heroPanel {
  background: var(--paper);
  padding: calc(84px + 16px) clamp(12px, 3vw, 34px) clamp(14px, 3vw, 34px);
}
body.admin-bar .innerHero.heroPanel { padding-top: calc(84px + 48px); }
@media screen and (max-width: 782px) { body.admin-bar .innerHero.heroPanel { padding-top: calc(84px + 62px); } }
.heroPanelInner {
  position: relative; isolation: isolate; overflow: hidden;
  border-radius: clamp(22px, 2.6vw, 36px);
  min-height: clamp(440px, 66vh, 640px);
  display: flex; align-items: center;
  box-shadow: 0 46px 100px -54px rgba(6, 31, 25, .55);
}
.heroPanelInner .innerHeroBg { position: absolute; inset: 0; z-index: 0; }
.heroPanelFill { position: absolute; inset: 0; z-index: 0; background: radial-gradient(120% 130% at 80% -10%, #164636, rgba(22,70,54,0) 55%), linear-gradient(150deg, #0b3026, #082820 55%, #061f19); }
.heroScrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(96deg, rgba(4,22,17,.82) 0%, rgba(5,26,20,.5) 40%, rgba(6,31,25,.08) 74%), linear-gradient(0deg, rgba(4,22,17,.4), rgba(4,22,17,0) 40%); }
.heroPanelContent { position: relative; z-index: 2; max-width: 780px; text-align: left; padding: clamp(28px, 4vw, 54px); }
.heroPanelContent .innerCrumbs { justify-content: flex-start; }
/* Refined superpower-scale hero type: smaller, tighter title (long treatment
   names stay ~3-4 graceful lines) and a lighter, calmer body paragraph. */
.heroPanelContent .innerHeroKicker { font-size: 10.5px; margin-bottom: 14px; }
.heroPanelContent .innerHeroTitle { font-size: clamp(28px, 3.2vw, 44px); line-height: 1.08; letter-spacing: -.015em; font-weight: 540; max-width: 26ch; text-wrap: balance; }
.heroPanelContent .innerHeroSub { margin: 18px 0 0; max-width: 52ch; font-size: clamp(14.5px, 1.1vw, 16.5px); line-height: 1.62; color: #c6ddd0; }
@media (max-width: 620px) { .heroPanelContent { padding: 26px 22px; } .heroPanelInner { min-height: 460px; } }
/* Inside the panel the image reads clearly; only the left scrim darkens it. */
.heroPanel .innerHeroBg::after { content: none; }

/* -------- Light header (paper page + rounded hero panel) ----------------- */
.innerHeader { color: var(--ink); background: transparent; }
.innerHeader::before { display: none; }
.innerHeader .brandLight { color: var(--ink); }
.innerHeader .adaptiveHeaderBrand .pulseMark i { background: var(--green); }
.innerHeader .adaptiveNavLinks a { color: #34433c; }
.innerHeader .adaptiveNavLinks a:hover { color: var(--ink); }
.innerHeader .adaptiveNavCall { color: var(--ink); }
.innerHeader .adaptiveMenuButton { color: var(--ink); background: rgba(16,35,29,.05); border-color: rgba(16,35,29,.12); }
.innerHeader .adaptiveMenuButton .navDotGrid i { background: #2c3a34; }
/* Light floating pill on scroll (paper page) — mirrors the dark pill but tuned
   for the light header; higher specificity beats the dark rule in extra.css. */
.innerHeader.isScrolled { background: transparent; box-shadow: none; }
.adaptiveHeader.innerHeader.isScrolled .adaptiveNavCore.adaptiveNavSplit {
  background: rgba(251, 250, 246, .9);
  border: 1px solid rgba(16, 35, 29, .1);
  box-shadow: 0 20px 46px -22px rgba(6, 31, 25, .34), inset 0 1px rgba(255, 255, 255, .6);
}
.innerHeader.isScrolled .adaptiveMenuButton { background: rgba(16,35,29,.05); }

/* -------- Team hero on paper (light, to match the light header) ---------- */
.innerHero.teamHero { background: var(--paper); color: var(--ink); padding: calc(84px + 30px) 0 clamp(30px, 4vw, 56px); }
.teamHero .innerHeroTitle { color: var(--ink); }
.teamHero .innerHeroSub { color: #45554e; }
.teamHero .innerHeroKicker { color: #427c5d; }
.teamHero .innerCrumbs a { color: #2d7752; }
.teamHero .innerCrumbs span[aria-hidden] { color: #9bb0a6; }
.teamHero .innerCrumbs .isCurrent { color: var(--ink); }
.teamHero .innerHeroChips li { background: #eaf3ec; border-color: rgba(75,159,112,.22); color: #2c5a44; }
.teamHero .teamHeroCreds { color: var(--green); }
.teamHero .innerHeroGhost { border-color: rgba(16,35,29,.2); color: var(--ink); }
.teamHero .innerHeroGhost:hover { border-color: rgba(16,35,29,.4); background: rgba(16,35,29,.04); }
.teamHero .teamPortrait { border-color: rgba(16,35,29,.1); background: linear-gradient(160deg, #eef5f0, #dcebe2); }
.innerHeroGlow {
  position: absolute; width: 860px; height: 640px; max-width: 130vw;
  left: 50%; margin-left: -430px; top: -300px;
  background: radial-gradient(circle, rgba(123,211,157,.24), rgba(123,211,157,0) 66%);
  filter: blur(8px); pointer-events: none;
}
.innerHeroInner { position: relative; }
.innerCrumbs {
  display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-bottom: 22px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: .08em; text-transform: uppercase;
}
.innerCrumbs a { color: #9bd1ae; text-decoration: none; transition: color .2s; }
.innerCrumbs a:hover { color: #dcf7e5; }
.innerCrumbs span[aria-hidden] { color: #4f7a68; }
.innerCrumbs .isCurrent { color: #cfe7d8; }
.innerHeroKicker {
  display: inline-block; margin-bottom: 16px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: #7fd3a0;
}
.innerHeroTitle {
  margin: 0; max-width: 20ch; letter-spacing: -.02em; line-height: 1.04; color: #f4faf6;
  font-weight: 560; font-size: clamp(38px, 5.4vw, 74px);
}
.innerHeroSub {
  margin: 22px 0 0; max-width: 60ch; color: #bcd6c8; line-height: 1.6;
  font-size: clamp(15px, 1.5vw, 19px);
}

/* Superpower-inspired: centered composition, member orbs, grain, layered depth. */
.innerHeroGrain {
  position: absolute; inset: 0; pointer-events: none; opacity: .05; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.innerHeroInner.isCentered { max-width: 920px; margin-inline: auto; text-align: center; }
.innerHeroInner.isCentered .innerCrumbs { justify-content: center; }
.innerHeroInner.isCentered .innerHeroTitle { max-width: 17ch; margin-inline: auto; font-size: clamp(40px, 5.8vw, 82px); }
.innerHeroInner.isCentered .innerHeroSub { margin-left: auto; margin-right: auto; }
.innerHeroInner.isCentered .innerHeroChips,
.innerHeroInner.isCentered .innerHeroActions { justify-content: center; }
.innerHeroInner.isCentered .innerHeroChips { margin-top: 26px; }

/* Social-proof cluster (overlapping member orbs + trust line). */
.innerHeroTrust { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 22px; color: #c3ddce; font-size: 14px; font-weight: 500; }
.heroOrbs { display: inline-flex; }
.heroOrbs i { width: 30px; height: 30px; border-radius: 50%; border: 2px solid #0a2c22; margin-left: -10px; box-shadow: 0 4px 12px rgba(0,0,0,.35); }
.heroOrbs i:first-child { margin-left: 0; background: linear-gradient(150deg, #b7e4c5, #78ba93); }
.heroOrbs i:nth-child(2) { background: linear-gradient(150deg, #9bd1ae, #4b9f70); }
.heroOrbs i:nth-child(3) { background: linear-gradient(150deg, #dcf7e5, #9bd1ae); }

/* Cinematic hero background image (heavily overlaid so text stays legible). */
.innerHeroBg { position: absolute; inset: 0; background: center / cover no-repeat; z-index: 0; }
.innerHeroBg::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(160deg, rgba(11,48,38,.80) 0%, rgba(8,40,32,.90) 48%, rgba(6,31,25,.95) 100%),
    radial-gradient(120% 120% at 50% -10%, rgba(22,70,54,.45), rgba(6,31,25,0) 60%);
}
/* Decorative concentric orbit rings behind the title (depth, "out of world"). */
.innerHeroOrbits { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.innerHeroOrbits i { position: absolute; left: 50%; top: 42%; border-radius: 50%; border: 1px solid rgba(155,209,174,.14); }
.innerHeroOrbits i:nth-child(1) { width: 540px; height: 540px; margin: -270px 0 0 -270px; animation: orbitSpin 40s linear infinite; }
.innerHeroOrbits i:nth-child(2) { width: 800px; height: 800px; margin: -400px 0 0 -400px; border-color: rgba(155,209,174,.09); animation: orbitSpin 64s linear infinite reverse; }
.innerHeroOrbits i:nth-child(3) { width: 1080px; height: 1080px; margin: -540px 0 0 -540px; border-color: rgba(155,209,174,.055); }
@keyframes orbitSpin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .innerHeroOrbits i { animation: none !important; } }

/* ---------- Content shell & two-column layout ---------------------------- */
.innerWrap { padding-block: clamp(56px, 7vw, 104px); }
.innerLayout {
  display: grid; grid-template-columns: minmax(0, 1fr) 340px;
  gap: clamp(36px, 5vw, 76px); align-items: start;
}
.innerLayout.isNarrow { grid-template-columns: minmax(0, 760px); justify-content: center; }
.innerMainCol { min-width: 0; }

/* ---------- Prose (the_content) ----------------------------------------- */
.innerProse { color: #35443d; font-size: 17px; line-height: 1.72; }
.innerProse > *:first-child { margin-top: 0; }
.innerProse p { margin: 0 0 1.25em; }
.innerProse h2 {
  margin: 1.9em 0 .55em; color: var(--ink); letter-spacing: -.015em; line-height: 1.15;
  font-weight: 560; font-size: clamp(24px, 2.6vw, 33px);
}
.innerProse h3 {
  margin: 1.6em 0 .5em; color: var(--ink); letter-spacing: -.01em;
  font-weight: 600; font-size: clamp(19px, 2vw, 23px);
}
.innerProse h4 { margin: 1.4em 0 .4em; color: var(--ink); font-weight: 600; font-size: 17px; }
.innerProse a { color: #1f6b47; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.innerProse a:hover { color: #145034; }
.innerProse strong { color: #1c2b25; font-weight: 640; }
.innerProse ul, .innerProse ol { margin: 0 0 1.35em; padding-left: 0; list-style: none; }
.innerProse ol { counter-reset: pr; }
.innerProse ul li, .innerProse ol li { position: relative; padding-left: 30px; margin-bottom: .6em; }
.innerProse ul li::before {
  content: ""; position: absolute; left: 4px; top: .62em; width: 8px; height: 8px; border-radius: 50%;
  background: var(--green); box-shadow: 0 0 0 4px rgba(75,159,112,.16);
}
.innerProse ol li::before {
  counter-increment: pr; content: counter(pr); position: absolute; left: 0; top: .05em;
  width: 22px; height: 22px; border-radius: 50%; background: #e3f1e8; color: #1f6b47;
  font-size: 12px; font-weight: 700; display: grid; place-items: center;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.innerProse blockquote {
  margin: 1.6em 0; padding: 4px 0 4px 26px; border-left: 3px solid var(--green);
  color: var(--ink); font-size: clamp(19px, 2vw, 24px); line-height: 1.45; letter-spacing: -.01em;
}
.innerProse img, .innerProse figure { max-width: 100%; height: auto; border-radius: 18px; }
.innerProse figure { margin: 1.8em 0; }
.innerProse figcaption { margin-top: 10px; font-size: 13px; color: var(--muted); }
.innerProse hr { border: 0; border-top: 1px solid var(--line); margin: 2.4em 0; }

.innerLede {
  font-size: clamp(19px, 2.1vw, 24px); line-height: 1.5; color: #22322c; letter-spacing: -.01em;
  margin: 0 0 1.6em;
}

/* ---------- Feature / points list --------------------------------------- */
.innerBlock { margin-top: clamp(34px, 4vw, 54px); }
.innerBlockLabel {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #427c5d;
  display: block; margin-bottom: 14px;
}
.pointList { display: grid; gap: 12px; list-style: none; margin: 0; padding: 0; }
.pointList li {
  position: relative; padding: 16px 18px 16px 50px; border: 1px solid var(--line); border-radius: 16px;
  background: #fff; color: #33433c; line-height: 1.55; box-shadow: 0 14px 30px -26px rgba(6,31,25,.5);
}
.pointList li::before {
  content: ""; position: absolute; left: 18px; top: 20px; width: 18px; height: 18px; border-radius: 50%;
  background: var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* ---------- Native FAQ accordion (single treatment) --------------------- */
.innerFaq { display: grid; gap: 12px; }
.innerFaq details {
  border: 1px solid var(--line); border-radius: 16px; background: #fff; overflow: hidden;
  transition: box-shadow .25s;
}
.innerFaq details[open] { box-shadow: 0 20px 44px -30px rgba(6,31,25,.5); }
.innerFaq summary {
  list-style: none; cursor: pointer; padding: 18px 22px; display: flex; align-items: center;
  justify-content: space-between; gap: 16px; color: var(--ink); font-weight: 560; font-size: 17px;
}
.innerFaq summary::-webkit-details-marker { display: none; }
.innerFaq summary::after {
  content: "+"; font-size: 22px; color: var(--green); font-weight: 400; line-height: 1; transition: transform .25s;
}
.innerFaq details[open] summary::after { transform: rotate(45deg); }
.innerFaq .faqBody { padding: 0 22px 20px; color: #45554e; line-height: 1.65; }

/* ---------- Bespoke archive heroes (split panel: copy | composition) ------ */
.heroPanelSplit {
  position: relative; z-index: 2; width: 100%;
  display: grid; grid-template-columns: 1.05fr .95fr; align-items: center;
  gap: clamp(20px, 3vw, 56px);
}
.heroPanelMedia { position: relative; min-height: 100%; padding-right: clamp(20px, 3vw, 56px); }
@media (max-width: 900px) { .heroPanelSplit { grid-template-columns: 1fr; } .heroPanelMedia { display: none; } }

/* -- Treatments: floating mosaic of real treatment photos ----------------- */
.heroTxMosaic { position: relative; height: clamp(380px, 52vh, 520px); }
.heroTxMosaic .m1, .heroTxMosaic .m2 {
  position: absolute; overflow: hidden;
  filter: drop-shadow(0 34px 54px rgba(0, 10, 7, .45));
}
.heroTxMosaic .m1 { top: 6%; right: 4%; width: 74%; clip-path: url(#txcutR); animation: heroDrift 9s ease-in-out infinite alternate; }
.heroTxMosaic .m2 { bottom: 4%; left: 0; width: 52%; clip-path: url(#txcutL); animation: heroDrift 11s ease-in-out infinite alternate-reverse; }
.heroTxMosaic img { width: 100%; display: block; aspect-ratio: 4 / 3; object-fit: cover; object-position: center 30%; }
.heroTxMosaic .mDots {
  position: absolute; top: 0; left: 10%; width: 84px; height: 58px; opacity: .6;
  background-image: radial-gradient(rgba(155,209,174,.6) 1.3px, transparent 1.5px);
  background-size: 14px 14px;
}
.heroTxChip {
  position: absolute; bottom: 16%; right: 4%; z-index: 2; max-width: 92%;
  display: inline-flex; align-items: center; gap: 10px;
  background: rgba(251,250,246,.94); color: var(--ink);
  border-radius: 999px; padding: 11px 18px; font-size: 13px; font-weight: 600;
  box-shadow: 0 18px 40px -18px rgba(0,10,7,.55);
  animation: heroDrift 8s ease-in-out infinite alternate;
}
.heroTxChip i { width: 9px; height: 9px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(75,159,112,.22); }
@keyframes heroDrift { from { transform: translateY(-8px); } to { transform: translateY(10px); } }
@media (prefers-reduced-motion: reduce) { .heroTxMosaic .m1, .heroTxMosaic .m2, .heroTxChip { animation: none !important; } }

/* -- Locations: dot-matrix Florida map + glowing pins + glass stat chip --- */
.heroLocMap { position: relative; height: clamp(400px, 56vh, 540px); }
.heroLocMap svg {
  position: absolute; inset: 0; width: 100%; height: 100%;
  filter: drop-shadow(0 0 34px rgba(127,211,160,.14));
}
.heroLocPins { position: absolute; inset: 0; pointer-events: none; }
.heroLocPins i {
  position: absolute; width: 8px; height: 8px; border-radius: 50%;
  background: #aef0c8; box-shadow: 0 0 0 4px rgba(127,211,160,.2), 0 0 18px rgba(127,211,160,.8);
}
.heroLocPins i::after {
  content: ""; position: absolute; inset: -7px; border-radius: 50%;
  border: 1px solid rgba(174,240,200,.55);
  animation: pinRing 2.8s cubic-bezier(.16,1,.3,1) infinite;
}
.heroLocPins i:nth-child(2)::after { animation-delay: .6s; }
.heroLocPins i:nth-child(3)::after { animation-delay: 1.1s; }
.heroLocPins i:nth-child(4)::after { animation-delay: 1.7s; }
.heroLocPins i:nth-child(5)::after { animation-delay: 2.2s; }
@keyframes pinRing { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(2.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .heroLocPins i::after { animation: none; opacity: .4; } }
/* Glass stat chip anchored to the map's empty gulf corner. */
.heroLocChip {
  position: absolute; left: 0; bottom: 10%;
  display: inline-flex; align-items: center; gap: 14px;
  background: rgba(251,250,246,.94); color: var(--ink);
  border-radius: 20px; padding: 14px 20px;
  box-shadow: 0 24px 54px -20px rgba(0,10,7,.6);
}
.heroLocChip strong {
  font-size: clamp(40px, 4.6vw, 62px); line-height: .9; font-weight: 620; letter-spacing: -.04em;
  color: #1f6b47;
}
.heroLocChip span {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  color: #427c5d; line-height: 1.7;
}

/* County ticker pinned to the panel's bottom edge. */
.heroPanelFoot {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 3;
  border-top: 1px solid rgba(194,234,208,.14);
  background: rgba(3,24,18,.35); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  overflow: hidden; padding-block: 13px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.heroTicker { display: flex; width: max-content; gap: 0; animation: tickerRun 60s linear infinite; }
.heroTicker ul { display: flex; list-style: none; margin: 0; padding: 0; }
.heroTicker li {
  display: inline-flex; align-items: center; gap: 22px; padding-right: 22px; white-space: nowrap;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: #9bd1ae;
}
.heroTicker li::after { content: "·"; color: rgba(155,209,174,.5); }
@keyframes tickerRun { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .heroTicker { animation: none; } }

/* ---------- Treatments archive — editorial index (no card grid) ---------- */
.txArchive { padding-block: clamp(36px, 5vh, 72px); background: var(--paper); }
.txArchiveShell { width: min(1376px, 100% - 64px); margin-inline: auto; }

/* Featured treatment — the one focal point. */
.txFeature {
  position: relative; overflow: hidden;
  display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(28px, 4vw, 72px); align-items: center;
  background: linear-gradient(160deg, #f3f8f4 0%, #eaf3ec 100%);
  border: 1px solid rgba(16,35,29,.07); border-radius: 34px;
  padding: clamp(28px, 4vw, 60px);
}
.txFeature::before { /* dot-grid accent */
  content: ""; position: absolute; top: 26px; right: 30px; width: 84px; height: 58px;
  background-image: radial-gradient(rgba(75,159,112,.45) 1.3px, transparent 1.5px);
  background-size: 14px 14px; opacity: .6; pointer-events: none;
}
.txFeatureTitle { margin: 0 0 16px; font-size: clamp(26px, 3vw, 44px); line-height: 1.08; letter-spacing: -.024em; font-weight: 620; text-wrap: balance; }
.txFeatureTitle a { color: var(--ink); text-decoration: none; }
.txFeatureTitle a:hover { color: #1f6b47; }
.txFeatureDesc { margin: 0; color: #4a5a52; line-height: 1.7; font-size: clamp(15px, 1.1vw, 16.5px); max-width: 52ch; }
.txFeatureActions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 26px; }
.txFeatureActions .txFaqCall { margin-top: 0; }
.txFeatureMedia { margin: 0; filter: drop-shadow(0 30px 48px rgba(6, 31, 25, .22)); }
.txFeatureMedia .txChapterPhoto { clip-path: url(#txcutR); }
.txFeatureMedia img { width: 100%; display: block; aspect-ratio: 3 / 2; object-fit: cover; object-position: center 32%; }

/* Numbered ledger of the remaining conditions. */
.txIndexHead { margin: clamp(34px, 5vh, 56px) 0 6px; }
.txIndex { border-top: 1px solid rgba(16,35,29,.1); }
.txIndexRow {
  display: grid; grid-template-columns: 64px 1fr 210px 52px;
  gap: clamp(18px, 2.6vw, 44px); align-items: center;
  padding-block: clamp(20px, 3vh, 30px);
  border-bottom: 1px solid rgba(16,35,29,.1);
}
.txIndexNum {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 15px; font-weight: 700; letter-spacing: .12em; color: #4b9f70;
}
.txIndexTitle { margin: 0 0 6px; font-size: clamp(18px, 1.7vw, 24px); letter-spacing: -.016em; font-weight: 620; line-height: 1.2; }
.txIndexTitle a { color: var(--ink); text-decoration: none; transition: color .2s; }
.txIndexRow:hover .txIndexTitle a { color: #1f6b47; }
.txIndexDesc { margin: 0; color: #4a5a52; line-height: 1.6; font-size: 15px; max-width: 56ch; }
.txIndexMedia {
  display: block; overflow: hidden; border-radius: 14px 34px 14px 14px;
}
.txIndexMedia img {
  width: 100%; display: block; aspect-ratio: 16 / 9; object-fit: cover; object-position: center 30%;
  transition: transform .5s cubic-bezier(.16,1,.3,1);
}
.txIndexRow:hover .txIndexMedia img { transform: scale(1.05); }
.txIndexGo {
  width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(16,35,29,.16);
  display: grid; place-items: center; color: #2d7752; text-decoration: none; font-size: 18px;
  transition: background .25s, color .25s, border-color .25s, transform .3s cubic-bezier(.16,1,.3,1);
}
.txIndexRow:hover .txIndexGo { background: #2d7752; border-color: #2d7752; color: #fff; transform: translateX(4px); }

@media (max-width: 900px) {
  .txFeature { grid-template-columns: 1fr; }
  .txFeatureMedia { order: -1; }
  .txIndexRow { grid-template-columns: 44px 1fr 52px; }
  .txIndexMedia { display: none; }
}
@media (max-width: 560px) {
  .txIndexRow { grid-template-columns: 36px 1fr 46px; gap: 14px; }
}

/* ---------- County plates — "living signal": zero-cost ANIMATED media for
   location chapters. Breathing glow + orbiting particles + a self-drawing EKG
   care-signal + giant outlined county monogram. Four deterministic variants;
   all text pinned to the bottom-left SAFE zone (never near the cut corner). */
/* Each plate variant carries its own BRAND palette via custom properties:
   V1 teal (signature) · V2 ember/coral · V3 gold · V4 ocean ink. The hero
   care-signal card (.heroLocSig) shares the teal defaults. */
.txChapterPlate, .heroLocSig {
  --plGlow: rgba(34, 112, 79, .75);
  --plRing: rgba(155, 209, 174, .16);
  --plRingSoft: rgba(155, 209, 174, .09);
  --plLine: #7fd3a0;
  --plLineGlow: rgba(127, 211, 160, .65);
  --plDot: #aef0c8;
  --plDotGlow: rgba(174, 240, 200, .9);
  --plHalo: rgba(127, 211, 160, .18);
  --plStroke: rgba(155, 209, 174, .3);
  --plStrokeDim: rgba(155, 209, 174, .18);
  --plText: #cfe7d8;
  --plSub: #7fa892;
}
.txChapterPlate {
  position: relative; display: block; overflow: hidden; aspect-ratio: 3 / 2;
  background: linear-gradient(152deg, #0c352a 0%, #092b21 55%, #071f19 100%);
}
.txChapterPlate.isV2 {
  background: linear-gradient(200deg, #3c1e14 0%, #2c1610 60%, #1f0f0a 100%);
  --plGlow: rgba(178, 84, 52, .6);
  --plRing: rgba(255, 164, 133, .18); --plRingSoft: rgba(255, 164, 133, .1);
  --plLine: #ff9d7e; --plLineGlow: rgba(255, 157, 126, .55);
  --plDot: #ffc9b3; --plDotGlow: rgba(255, 201, 179, .9);
  --plHalo: rgba(255, 157, 126, .16);
  --plStroke: rgba(255, 179, 152, .28); --plStrokeDim: rgba(255, 179, 152, .16);
  --plText: #f7ded2; --plSub: #c68e77;
}
.txChapterPlate.isV3 {
  background: linear-gradient(120deg, #34290e 0%, #2a210b 55%, #1c1607 100%);
  --plGlow: rgba(166, 128, 38, .55);
  --plRing: rgba(232, 197, 106, .18); --plRingSoft: rgba(232, 197, 106, .1);
  --plLine: #e8c15c; --plLineGlow: rgba(232, 193, 92, .5);
  --plDot: #f6dfa0; --plDotGlow: rgba(246, 223, 160, .9);
  --plHalo: rgba(232, 193, 92, .16);
  --plStroke: rgba(236, 206, 128, .28); --plStrokeDim: rgba(236, 206, 128, .16);
  --plText: #f2e7c9; --plSub: #b5a173;
}
.txChapterPlate.isV4 {
  background: linear-gradient(170deg, #132831 0%, #0e1f27 60%, #09161c 100%);
  --plGlow: rgba(52, 106, 126, .6);
  --plRing: rgba(139, 199, 214, .16); --plRingSoft: rgba(139, 199, 214, .09);
  --plLine: #7fc4d3; --plLineGlow: rgba(127, 196, 211, .55);
  --plDot: #b5e5ef; --plDotGlow: rgba(181, 229, 239, .9);
  --plHalo: rgba(127, 196, 211, .16);
  --plStroke: rgba(158, 208, 221, .28); --plStrokeDim: rgba(158, 208, 221, .16);
  --plText: #d9eaef; --plSub: #83a0aa;
}

/* Slow "breathing" halo — a calm inhale/exhale rhythm. */
.plateBreath {
  position: absolute; width: 78%; aspect-ratio: 1; border-radius: 50%;
  top: -22%; right: -14%; pointer-events: none;
  background: radial-gradient(circle, var(--plGlow) 0%, transparent 62%);
  animation: plateBreath 7s ease-in-out infinite;
}
.txChapterPlate.isV2 .plateBreath { top: auto; bottom: -26%; right: auto; left: -12%; animation-duration: 8.5s; }
.txChapterPlate.isV3 .plateBreath { top: 30%; right: -24%; animation-duration: 7.8s; }
.txChapterPlate.isV4 .plateBreath { top: -18%; left: 22%; right: auto; animation-duration: 9s; }
@keyframes plateBreath { 0%, 100% { transform: scale(1); opacity: .55; } 50% { transform: scale(1.18); opacity: .95; } }

/* Dotted Florida (variant 1 only) — fully contained, never clipped. */
.plateFlWrap { position: absolute; right: 6%; bottom: 8%; width: 46%; aspect-ratio: 1; opacity: .75; }
.plateFlWrap svg { width: 100%; height: 100%; filter: drop-shadow(0 0 18px rgba(127,211,160,.14)); }

/* Orbiting particles — two rings, each carrying a glowing dot. */
.plateOrbit { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; }
.plateOrbit i {
  position: absolute; border-radius: 50%;
  border: 1px solid var(--plRing);
}
.plateOrbit i::after {
  content: ""; position: absolute; top: -3.5px; left: 50%; width: 7px; height: 7px; border-radius: 50%;
  background: var(--plDot); box-shadow: 0 0 12px var(--plDotGlow), 0 0 0 3px var(--plHalo);
}
.plateOrbit .o1 { width: 54%; aspect-ratio: 1; animation: plateSpin 16s linear infinite; }
.plateOrbit .o2 { width: 86%; aspect-ratio: 1; border-color: var(--plRingSoft); animation: plateSpin 26s linear infinite reverse; }
.txChapterPlate.isV2 .plateOrbit .o1 { animation-duration: 20s; }
.txChapterPlate.isV3 .plateOrbit { place-items: start end; }
.txChapterPlate.isV3 .plateOrbit i { margin: -12% -10% 0 0; }
@keyframes plateSpin { to { transform: rotate(360deg); } }

/* The care signal — an EKG line that draws itself, pauses, and loops.
   Emitted on V4 only (the appointment plate); kept in the upper half so it
   never crosses the instrument/tag safe zone below. */
.plateEkg { position: absolute; left: 0; right: 0; top: 26%; width: 100%; height: 32%; overflow: visible; }
.txChapterPlate.isV4 .plateEkg { top: 14%; }
.plateEkg path {
  fill: none; stroke: var(--plLine); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  filter: drop-shadow(0 0 8px var(--plLineGlow));
  stroke-dasharray: 42 58; stroke-dashoffset: 100;
  animation: plateEkg 4.6s linear infinite;
}
@keyframes plateEkg { to { stroke-dashoffset: 0; } }

/* Giant OUTLINED county monogram — typographic anchor, never clipped. */
.plateMono {
  position: absolute; left: 4%; bottom: -7%; z-index: 1;
  font-size: clamp(150px, 17vw, 250px); line-height: .9; font-weight: 620; letter-spacing: -.04em;
  color: transparent; -webkit-text-stroke: 1.5px var(--plStroke);
  user-select: none;
}
.txChapterPlate.isV2 .plateMono { left: auto; right: 6%; }
.txChapterPlate.isV4 .plateMono { -webkit-text-stroke: 1.5px var(--plStrokeDim); color: rgba(234,246,238,.05); }

/* Useful instruments — each plate answers a real visitor question in the
   bottom-left safe zone (replaces the old rotating "Did you know" facts):
   V1 where (count + community chips) · V2 when (session timetable) ·
   V3 cost (coverage checklist) · V4 next (tappable appointment card). */
.plateModule { position: absolute; left: 7%; right: 9%; bottom: 21%; z-index: 2; color: var(--plText); }
.plateKick {
  display: block; margin-bottom: 12px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px; font-weight: 600; letter-spacing: .26em; text-transform: uppercase;
  color: var(--plSub);
}
.plateKick::after {
  content: ""; display: block; width: 30px; height: 1px; margin-top: 8px;
  background: var(--plLine); opacity: .55;
}
/* Fallback fact line (V1 when a county has no cities data yet). */
.plateLine {
  display: block; max-width: min(30ch, 82%);
  font-family: "Fraunces", Georgia, serif;
  font-size: clamp(15px, 1.35vw, 18px); font-weight: 480; line-height: 1.5;
  letter-spacing: .002em; text-wrap: pretty;
}

/* V1 — communities counter + chips (real ACF data). */
.plateCount { display: flex; align-items: baseline; gap: 12px; }
.plateCount strong {
  font-size: clamp(40px, 4.4vw, 58px); font-weight: 620; letter-spacing: -.03em;
  line-height: 1; font-variant-numeric: tabular-nums;
}
.plateCount span { max-width: 15ch; font-size: 13px; line-height: 1.4; color: var(--plSub); }
.plateChips { display: flex; flex-wrap: wrap; gap: 7px; margin: 14px 0 0; padding: 0; list-style: none; }
.plateChips li {
  border-radius: 999px; font-size: 11.5px; letter-spacing: .02em;
  border: 1px solid var(--plStrokeDim); background: rgba(255, 255, 255, .04);
  transition: border-color .25s, background .25s, transform .3s cubic-bezier(.22, 1, .36, 1);
}
.plateChips li:hover { border-color: var(--plStroke); background: rgba(255, 255, 255, .09); transform: translateY(-1px); }
.plateChips a { display: inline-block; padding: 5px 11px; border-radius: 999px; color: inherit; text-decoration: none; }
.plateChips a:focus-visible { outline: 2px solid var(--plLine); outline-offset: 2px; }
.plateChips li.isMore { color: var(--plSub); border-style: dashed; }
/* Anchored jumps land clear of the fixed header. */
.txFaq { scroll-margin-top: 96px; }

/* V2 timetable + V3 checklist — hairline rows with a mono lead column. */
.plateRows { margin: 0; padding: 0; list-style: none; max-width: 34ch; }
.plateRows li { display: flex; align-items: baseline; gap: 12px; padding: 8px 0; border-top: 1px solid var(--plStrokeDim); }
.plateRows li:first-child { border-top: 0; padding-top: 0; }
.plateRows .t {
  flex: none; min-width: 56px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; font-weight: 700; letter-spacing: .08em; color: var(--plLine);
}
.plateRows .l { font-size: 13.5px; line-height: 1.45; }
.plateRows.isChecks .t { min-width: 18px; font-size: 12px; }

/* V4 — appointment card: the plate's one real action (underline draws in). */
.plateNext { display: inline-flex; flex-direction: column; gap: 5px; text-decoration: none; color: var(--plText); }
.plateNext strong {
  width: max-content; padding-bottom: 4px;
  font-size: clamp(23px, 2.2vw, 30px); font-weight: 620; letter-spacing: -.015em; line-height: 1.1;
  background: linear-gradient(var(--plLine), var(--plLine)) left bottom / 0 2px no-repeat;
  transition: background-size .35s cubic-bezier(.22, 1, .36, 1);
}
.plateNext:hover strong, .plateNext:focus-visible strong { background-size: 100% 2px; }
.plateNext:focus-visible { outline: 2px solid var(--plLine); outline-offset: 4px; border-radius: 6px; }
.plateNext span { font-size: 12px; letter-spacing: .04em; color: var(--plSub); }

/* Plate delights (CSS-only, gated below): a radar sweep circles the dotted
   Florida — the care signal scanning the state — and the county tag's status
   dot emits a sonar ping (transform-based ring, so nothing can clip it). */
.plateFlWrap .flSweep {
  fill: var(--plLine); opacity: .2;
  transform-box: view-box; transform-origin: 50% 50%;
  animation: flSweep 8s linear infinite;
}
@keyframes flSweep { to { transform: rotate(360deg); } }
.plateTag i::after {
  content: ""; position: absolute; inset: 0; border-radius: 50%;
  background: var(--plLine); opacity: 0;
  animation: platePing 3.2s cubic-bezier(.22, 1, .36, 1) infinite;
}
@keyframes platePing {
  0% { transform: scale(1); opacity: .5; }
  70%, 100% { transform: scale(3.4); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .plateFlWrap .flSweep, .plateTag i::after { animation: none; }
  .plateTag i::after { opacity: 0; }
}

/* Staged instrument entrance — refsite.js flags <html>.tmsePlates and adds
   .isLive per plate as it scrolls into view (local IO, no CDN dependency).
   Hidden states exist ONLY under that flag, so no-JS visitors always see the
   finished layout. Checkmarks stamp in with an overshoot; rows/chips cascade. */
.tmsePlates .txChapterPlate .plateKick,
.tmsePlates .txChapterPlate .plateCount,
.tmsePlates .txChapterPlate .plateLine,
.tmsePlates .txChapterPlate .plateNext,
.tmsePlates .txChapterPlate .plateChips li,
.tmsePlates .txChapterPlate .plateRows li {
  opacity: 0; transform: translateY(16px);
  transition: opacity .55s ease, transform .65s cubic-bezier(.22, 1, .36, 1);
}
.tmsePlates .txChapterPlate.isLive .plateKick,
.tmsePlates .txChapterPlate.isLive .plateCount,
.tmsePlates .txChapterPlate.isLive .plateLine,
.tmsePlates .txChapterPlate.isLive .plateNext,
.tmsePlates .txChapterPlate.isLive .plateChips li,
.tmsePlates .txChapterPlate.isLive .plateRows li { opacity: 1; transform: none; }
.tmsePlates .txChapterPlate.isLive .plateCount,
.tmsePlates .txChapterPlate.isLive .plateLine,
.tmsePlates .txChapterPlate.isLive .plateNext { transition-delay: .16s; }
.tmsePlates .txChapterPlate.isLive .plateChips li,
.tmsePlates .txChapterPlate.isLive .plateRows li { transition-delay: .3s; }
.tmsePlates .txChapterPlate.isLive .plateChips li:nth-child(2),
.tmsePlates .txChapterPlate.isLive .plateRows li:nth-child(2) { transition-delay: .4s; }
.tmsePlates .txChapterPlate.isLive .plateChips li:nth-child(3),
.tmsePlates .txChapterPlate.isLive .plateRows li:nth-child(3) { transition-delay: .5s; }
.tmsePlates .txChapterPlate.isLive .plateChips li:nth-child(4),
.tmsePlates .txChapterPlate.isLive .plateRows li:nth-child(4) { transition-delay: .6s; }
.tmsePlates .txChapterPlate .plateRows.isChecks .t {
  display: inline-block; transform: scale(0) rotate(-30deg);
  transition: transform .5s cubic-bezier(.34, 1.56, .64, 1);
}
.tmsePlates .txChapterPlate.isLive .plateRows.isChecks .t { transform: none; }
.tmsePlates .txChapterPlate.isLive .plateRows.isChecks li:nth-child(1) .t { transition-delay: .45s; }
.tmsePlates .txChapterPlate.isLive .plateRows.isChecks li:nth-child(2) .t { transition-delay: .6s; }
.tmsePlates .txChapterPlate.isLive .plateRows.isChecks li:nth-child(3) .t { transition-delay: .75s; }
@media (prefers-reduced-motion: reduce) {
  .tmsePlates .txChapterPlate .plateKick,
  .tmsePlates .txChapterPlate .plateCount,
  .tmsePlates .txChapterPlate .plateLine,
  .tmsePlates .txChapterPlate .plateNext,
  .tmsePlates .txChapterPlate .plateChips li,
  .tmsePlates .txChapterPlate .plateRows li,
  .tmsePlates .txChapterPlate .plateRows.isChecks .t { opacity: 1; transform: none; transition: none; }
}

/* County tag — ALWAYS the bottom-left safe zone (cut corners live at the top).
   overflow stays visible so the status dot's ping ring is never clipped. */
.plateTag {
  position: absolute; left: 7%; bottom: 9%; z-index: 2;
  display: inline-flex; align-items: center; gap: 9px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--plText);
  white-space: nowrap; max-width: 86%;
}
.plateTag i { position: relative; width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--plLine); box-shadow: 0 0 0 4px var(--plHalo); }
.plateTag em { font-style: normal; color: var(--plSub); }
.txChapterPlate.isV2 .plateTag { left: 7%; }

@media (prefers-reduced-motion: reduce) {
  .plateBreath, .plateOrbit i, .plateEkg path { animation: none; }
  .plateEkg path { stroke-dasharray: none; stroke-dashoffset: 0; }
}

/* Learn-more pill — the homepage styles this as `.treatmentBody a.signalTextLink`
   only, so on inner pages the link was unstyled and the arrow (a flex box)
   dropped to its own line. Define the pill globally here. */
.signalTextLink {
  --signal-bg: linear-gradient(145deg, #225f46 0%, #0f3f2f 55%, #082b21 100%);
  --signal-ink: #ddf7e5;
  display: inline-flex; align-items: center; gap: 12px; white-space: nowrap;
  color: #2d704f; font-weight: 600; font-size: 14.5px; text-decoration: none;
  background: linear-gradient(135deg, rgba(220,239,226,.65), rgba(255,255,255,.8));
  border: 1px solid rgba(61,126,87,.16); border-radius: 12px;
  min-height: 40px; padding: 5px 5px 5px 14px;
  box-shadow: 0 8px 19px rgba(14,56,40,.055), inset 0 1px rgba(255,255,255,.75);
  transition: transform .22s, border-color .22s, box-shadow .22s;
}
.signalTextLink:hover { transform: translateY(-1px); border-color: rgba(61,126,87,.34); box-shadow: 0 12px 26px rgba(14,56,40,.12), inset 0 1px rgba(255,255,255,.75); }
.signalTextLink .ctaArrow { flex: none; width: 29px; height: 29px; border-radius: 50%; margin: 0; }
.signalTextLink .ctaArrow svg { width: 20px; height: 20px; }

/* -- Single location hero: "care signal monitor" over the living signal. -- */
.heroLocSig { position: relative; height: clamp(380px, 52vh, 520px); display: grid; place-items: center; }
.heroLocSig .plateBreath { top: -14%; right: -6%; width: 86%; }
.heroLocSig .plateOrbit i { border-color: rgba(155,209,174,.13); }
.sigMono {
  position: absolute; right: 0; bottom: -10%; z-index: 0;
  font-size: clamp(200px, 24vw, 340px); line-height: .9; font-weight: 620; letter-spacing: -.04em;
  color: transparent; -webkit-text-stroke: 1.5px rgba(155, 209, 174, .22);
  user-select: none; pointer-events: none;
}
.sigCard {
  position: relative; z-index: 2; width: min(400px, 92%);
  background: rgba(6, 30, 23, .58); color: #eaf6ee;
  border: 1px solid rgba(194, 234, 208, .16); border-radius: 22px;
  padding: 22px 24px 10px;
  -webkit-backdrop-filter: blur(18px) saturate(1.1); backdrop-filter: blur(18px) saturate(1.1);
  box-shadow: 0 34px 80px -30px rgba(0, 10, 7, .7), inset 0 1px rgba(255,255,255,.07);
  animation: heroDrift 9s ease-in-out infinite alternate;
}
@media (prefers-reduced-motion: reduce) { .sigCard { animation: none; } }
.sigHead {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10.5px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: #9bd1ae;
}
.sigHead i { width: 8px; height: 8px; border-radius: 50%; background: #7fd3a0; box-shadow: 0 0 0 4px rgba(127,211,160,.18); animation: pinBlinkSig 2.2s ease-in-out infinite; }
@keyframes pinBlinkSig { 0%, 100% { opacity: .45; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .sigHead i { animation: none; } }
.sigEkg { display: block; width: 100%; height: 56px; margin: 10px 0 4px; overflow: visible; }
.sigEkg path {
  fill: none; stroke: #7fd3a0; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  filter: drop-shadow(0 0 8px rgba(127,211,160,.65));
  stroke-dasharray: 42 58; stroke-dashoffset: 100;
  animation: plateEkg 4.2s linear infinite;
}
@media (prefers-reduced-motion: reduce) { .sigEkg path { animation: none; stroke-dasharray: none; stroke-dashoffset: 0; } }
.sigRows { list-style: none; margin: 0; padding: 0; }
.sigRows li {
  display: flex; align-items: baseline; justify-content: space-between; gap: 18px;
  padding: 11px 0; border-top: 1px solid rgba(194,234,208,.1);
}
.sigRows span {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #7fa892;
}
.sigRows strong { font-size: 14.5px; font-weight: 600; color: #eaf6ee; letter-spacing: -.01em; text-align: right; }

/* City chips inside the "areas we serve" panel (single location). */
.locCityChips { justify-content: flex-start; align-content: flex-start; gap: 9px; }
.locCityChips li {
  background: rgba(251,250,246,.85); border: 1px solid rgba(16,35,29,.1);
  border-radius: 999px; padding: 9px 16px; font-size: 13.5px; color: #33433c;
  transition: background .25s, border-color .25s, color .25s;
}
.locCityChips li:hover { background: #2d7752; border-color: #2d7752; color: #fff; }

/* ---------- Locations archive — county directory (gazetteer, no images) --- */
.locDir {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px; background: rgba(16,35,29,.1);
  border: 1px solid rgba(16,35,29,.1); border-radius: 22px; overflow: hidden;
}
.locCell {
  position: relative; overflow: hidden; display: flex; flex-direction: column;
  background: var(--paper); text-decoration: none;
  padding: clamp(20px, 2.4vw, 30px) clamp(20px, 2.4vw, 32px) clamp(18px, 2.2vw, 26px);
  min-height: 168px; transition: background .3s;
}
.locCell:hover { background: #eef5ef; }
/* Big ghost county initial — the visual, no photo needed. */
.locCellGhost {
  position: absolute; right: 6px; bottom: -26px; z-index: 0;
  font-size: 128px; line-height: 1; font-weight: 620; letter-spacing: -.04em;
  color: rgba(24, 66, 50, .055); user-select: none; pointer-events: none;
  transition: transform .45s cubic-bezier(.16,1,.3,1), color .3s;
}
.locCell:hover .locCellGhost { transform: translateY(-8px); color: rgba(24, 66, 50, .1); }
.locCellNum {
  position: relative; z-index: 1;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; font-weight: 700; letter-spacing: .16em; color: #4b9f70; margin-bottom: 12px;
}
.locCellName {
  position: relative; z-index: 1;
  font-size: clamp(18px, 1.6vw, 22px); font-weight: 620; letter-spacing: -.015em;
  color: var(--ink); line-height: 1.15; transition: color .2s;
}
.locCell:hover .locCellName { color: #1f6b47; }
.locCellState {
  position: relative; z-index: 1; margin-top: 3px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: #6a8478;
}
.locCellSub {
  position: relative; z-index: 1; margin-top: 10px;
  font-size: 13.5px; line-height: 1.55; color: #4a5a52;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.locCellGo {
  position: absolute; right: 18px; top: 18px; z-index: 1;
  width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(16,35,29,.14);
  display: grid; place-items: center; color: #2d7752; font-size: 15px;
  opacity: 0; transform: translateX(-6px);
  transition: opacity .25s, transform .3s cubic-bezier(.16,1,.3,1), background .25s, color .25s, border-color .25s;
}
.locCell:hover .locCellGo { opacity: 1; transform: none; background: #2d7752; border-color: #2d7752; color: #fff; }
@media (max-width: 980px) { .locDir { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 560px) { .locDir { grid-template-columns: 1fr; } .locCell { min-height: 0; } }

/* ---------- Editorial FAQ — split panel on the treatment template -------- */
.txFaq { padding-block: clamp(40px, 6vh, 80px); }
.txFaqShell { width: min(1376px, 100% - 64px); margin-inline: auto; }
.txFaqPanel {
  position: relative; overflow: hidden;
  background: linear-gradient(160deg, #f3f8f4 0%, #eaf3ec 100%);
  border: 1px solid rgba(16,35,29,.07); border-radius: 34px;
  padding: clamp(28px, 4vw, 64px);
}
.txFaqPanel::before { /* dot-grid accent */
  content: ""; position: absolute; top: 26px; right: 30px; width: 84px; height: 58px;
  background-image: radial-gradient(rgba(75,159,112,.45) 1.3px, transparent 1.5px);
  background-size: 14px 14px; opacity: .6; pointer-events: none;
}
.txFaqGrid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(28px, 4vw, 76px); align-items: start; }
@media (max-width: 900px) { .txFaqGrid { grid-template-columns: 1fr; } }
.txFaqIntro { position: sticky; top: clamp(96px, 12vh, 132px); }
@media (max-width: 900px) { .txFaqIntro { position: static; } }
.txFaqKicker {
  display: inline-flex; align-items: center; gap: 10px; margin-bottom: 14px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10.5px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #427c5d;
}
.txFaqKicker i { width: 22px; height: 1px; background: currentColor; display: block; }
.txFaqTitle {
  margin: 0; font-size: clamp(24px, 2.6vw, 38px); line-height: 1.1; letter-spacing: -.022em;
  color: var(--ink); font-weight: 620; text-wrap: balance;
}
.txFaqTitle::after { content: ""; display: block; width: 46px; height: 3px; border-radius: 3px; background: #4b9f70; margin-top: 16px; }
.txFaqBlurb { margin: 18px 0 0; color: #4a5a52; line-height: 1.65; font-size: 15.5px; max-width: 40ch; }
.txFaqCall { display: inline-flex; align-items: center; gap: 8px; margin-top: 22px; color: #1f6b47; font-weight: 600; text-decoration: none; }
.txFaqCall:hover { color: #145034; }

/* Numbered hairline accordion — no boxes, generous type, animated toggle. */
.txFaqList { counter-reset: faq; }
.txFaqList details { border-bottom: 1px solid rgba(16,35,29,.1); }
.txFaqList details:first-of-type { border-top: 1px solid rgba(16,35,29,.1); }
.txFaqList summary {
  list-style: none; cursor: pointer; position: relative;
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(14px, 2vw, 26px);
  padding: clamp(18px, 2.4vh, 26px) 0;
  color: var(--ink); font-weight: 600; font-size: clamp(15.5px, 1.25vw, 18px); letter-spacing: -.01em;
  transition: color .2s;
}
.txFaqList summary::-webkit-details-marker { display: none; }
.txFaqList summary:hover { color: #1f6b47; }
.txFaqList summary .faqNum {
  counter-increment: faq; font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; font-weight: 700; letter-spacing: .14em; color: #4b9f70;
}
.txFaqList summary .faqNum::before { content: "Q." counter(faq, decimal-leading-zero); }
.txFaqList summary .faqToggle {
  width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(16,35,29,.16);
  display: grid; place-items: center; color: #2d7752; background: transparent;
  transition: background .25s, color .25s, transform .3s cubic-bezier(.16,1,.3,1), border-color .25s;
}
.txFaqList summary .faqToggle::before { content: "+"; font-size: 18px; line-height: 1; font-weight: 400; }
.txFaqList details[open] summary { color: #1f6b47; }
.txFaqList details[open] summary .faqToggle {
  background: #2d7752; border-color: #2d7752; color: #fff; transform: rotate(45deg);
}
.txFaqList .faqBody {
  /* aligns under the question column (past the Q.01 gutter) */
  padding: 0 48px clamp(20px, 2.6vh, 26px) clamp(48px, 4.5vw, 62px);
  color: #4a5a52; line-height: 1.7; font-size: 15.5px; max-width: 62ch;
}
@media (max-width: 620px) { .txFaqList .faqBody { padding-left: 0; padding-right: 0; } }

/* ---------- Post bylines (team writers + medical reviewers) -------------- */
.bylineStack { display: flex; margin-bottom: 12px; }
.bylineAvatar {
  width: 46px; height: 46px; border-radius: 50%; object-fit: cover;
  border: 2px solid var(--paper); box-shadow: 0 6px 16px -8px rgba(6,31,25,.4);
}
.bylineAvatar + .bylineAvatar { margin-left: -12px; }
.bylineAvatar.isInitial {
  display: inline-flex; align-items: center; justify-content: center;
  background: #eaf3ec; color: #2d7752; font-weight: 620; font-size: 18px;
}
.bylineName { color: var(--ink); text-decoration: none; }
.bylineName:hover { color: #1f6b47; }
.bylineVerified {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 12px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #2d7752;
}
.bylineVerified i { width: 8px; height: 8px; border-radius: 50%; background: #4b9f70; box-shadow: 0 0 0 4px rgba(75,159,112,.16); }

.postAuthors {
  margin-top: clamp(30px, 4vh, 44px);
  background: linear-gradient(160deg, #f3f8f4 0%, #eaf3ec 100%);
  border: 1px solid rgba(16,35,29,.07); border-radius: 24px;
  padding: clamp(20px, 2.6vw, 30px);
}
.postAuthorsHead {
  display: inline-flex; align-items: center; gap: 10px; margin-bottom: 18px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #427c5d;
}
.postAuthorsHead i { width: 8px; height: 8px; border-radius: 50%; background: #4b9f70; box-shadow: 0 0 0 4px rgba(75,159,112,.16); }
.postAuthorsGrid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(16px, 2.4vw, 28px); }
@media (max-width: 700px) { .postAuthorsGrid { grid-template-columns: 1fr; } }
.postAuthor { display: flex; gap: 14px; align-items: flex-start; min-width: 0; }
.postAuthorImg {
  width: 62px; height: 62px; border-radius: 18px; object-fit: cover; flex: none;
  box-shadow: 0 12px 26px -14px rgba(6,31,25,.45);
}
.postAuthorImg.isInitial {
  display: inline-flex; align-items: center; justify-content: center;
  background: #fff; color: #2d7752; font-weight: 620; font-size: 22px;
}
.postAuthorLabel {
  display: block; font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: #6a8478;
}
.postAuthorName { display: block; margin-top: 3px; color: var(--ink); font-weight: 620; font-size: 16px; letter-spacing: -.01em; }
.postAuthorRole { margin: 4px 0 0; color: #4a5a52; font-size: 13.5px; line-height: 1.5; }

/* ---------- Search form (get_search_form) -------------------------------- */
.tmseSearch {
  display: flex; align-items: center; gap: 8px; max-width: 480px;
  background: #fff; border: 1px solid var(--line); border-radius: 999px;
  padding: 6px 6px 6px 20px; box-shadow: 0 16px 36px -28px rgba(6,31,25,.5);
}
.tmseSearch input {
  flex: 1; min-width: 0; border: 0; outline: none; background: transparent;
  font: inherit; font-size: 15px; color: var(--ink);
}
.tmseSearch input::placeholder { color: var(--muted); }
.tmseSearch button {
  border: 0; cursor: pointer; border-radius: 999px; padding: 11px 20px;
  background: #2d7752; color: #fff; font: inherit; font-size: 13.5px; font-weight: 600;
  transition: background .2s;
}
.tmseSearch button:hover { background: #1f6b47; }

/* ---------- Sidebar ------------------------------------------------------ */
.innerAside { position: sticky; top: 96px; display: grid; gap: 18px; }
@media (max-width: 980px) { .innerAside { position: static; } }
.asideCard {
  border: 1px solid var(--line); border-radius: 22px; background: #fff; padding: 24px;
  box-shadow: 0 24px 55px -38px rgba(6,31,25,.55);
}
.asideCard.isDark {
  background: linear-gradient(160deg, #10402f 0%, #0a2c22 60%, #061f19 100%);
  border-color: rgba(216,247,227,.14); color: #eaf6ee;
}
.asideKicker {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
  color: #7fd3a0; display: inline-flex; align-items: center; gap: 8px; margin-bottom: 12px;
}
.asideCard.isDark h3 { color: #f2fbf5; }
.asideCard h3 { margin: 0 0 8px; font-size: 20px; letter-spacing: -.01em; font-weight: 560; color: var(--ink); }
.asideCard p { margin: 0 0 16px; font-size: 14.5px; line-height: 1.6; color: #cfe4d7; }
.asideCard.isDark .asideCall { color: #fff; }
.asideCall { display: block; font-size: 26px; font-weight: 600; letter-spacing: -.02em; color: var(--ink); margin-bottom: 4px; }
.asideCallLabel { font-size: 12px; text-transform: uppercase; letter-spacing: .14em; color: #8fb7a1; }
.asideCard .signalCta { width: 100%; justify-content: center; margin-top: 8px; }

.asideFacts { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.asideFacts li { display: flex; justify-content: space-between; gap: 14px; padding: 12px 0; border-top: 1px solid var(--line); font-size: 14px; }
.asideFacts li:first-child { border-top: 0; }
.asideFacts .k { color: var(--muted); }
.asideFacts .v { color: var(--ink); font-weight: 560; text-align: right; }
.asideFacts .v a { color: #1f6b47; }

.asideLinks { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.asideLinks a {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0;
  border-top: 1px solid var(--line); color: var(--ink); text-decoration: none; font-size: 15px; transition: color .2s;
}
.asideLinks li:first-child a { border-top: 0; }
.asideLinks a:hover { color: #1f6b47; }
.asideLinks a span { color: var(--green); transition: transform .2s; }
.asideLinks a:hover span { transform: translateX(3px); }

/* ---------- Meta chips --------------------------------------------------- */
.metaChips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 6px; padding: 0; list-style: none; }
.metaChips li, .chip {
  display: inline-flex; align-items: center; gap: 6px; padding: 6px 13px; border-radius: 999px;
  background: #eaf3ec; border: 1px solid rgba(75,159,112,.22); color: #2c5a44; font-size: 13px; font-weight: 500;
}
.metaChips.onDark li, .chip.onDark {
  background: rgba(220,247,227,.1); border-color: rgba(220,247,227,.2); color: #d6ead6;
}

/* ---------- Team single (bio) ------------------------------------------- */
.bioGrid { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: clamp(30px, 4vw, 64px); align-items: start; }
.bioPhotoWrap { position: sticky; top: 96px; }
@media (max-width: 900px) { .bioGrid { grid-template-columns: 1fr; } .bioPhotoWrap { position: static; } }
.bioPhoto {
  aspect-ratio: 4 / 5; border-radius: 24px; overflow: hidden; background: #dcebe2 center/cover no-repeat;
  border: 1px solid var(--line); box-shadow: 0 30px 60px -40px rgba(6,31,25,.6);
}
.bioPhoto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bioPhotoCard { margin-top: 16px; border: 1px solid var(--line); border-radius: 18px; background: #fff; padding: 18px; }
.bioRole { color: #2d7752; font-weight: 600; font-size: 15px; margin: 0 0 14px; }
.bioFacts { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.bioFacts li { font-size: 14px; color: #45554e; }
.bioFacts strong { display: block; color: var(--ink); font-size: 12px; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 2px; font-weight: 700; }

/* ---------- Location single --------------------------------------------- */
.locServices { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 0; padding: 0; list-style: none; }
@media (max-width: 560px) { .locServices { grid-template-columns: 1fr; } }
.locServices li {
  position: relative; padding: 15px 16px 15px 46px; border: 1px solid var(--line); border-radius: 14px;
  background: #fff; color: #33433c; font-weight: 500; font-size: 15px;
}
.locServices li::before {
  content: ""; position: absolute; left: 16px; top: 17px; width: 16px; height: 16px; border-radius: 50%;
  background: var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat;
}

/* ---------- Archive intro + listings ------------------------------------ */
.archiveIntro { max-width: 62ch; }
.archiveIntro p { color: #45554e; font-size: 17px; line-height: 1.65; margin: 0; }

/* Blog / post card grid */
.listGrid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: clamp(18px, 2.4vw, 28px); }
@media (max-width: 900px) { .listGrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .listGrid { grid-template-columns: 1fr; } }
.postCard {
  display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line);
  border-radius: 22px; overflow: hidden; text-decoration: none; color: inherit;
  box-shadow: 0 20px 45px -32px rgba(6,31,25,.5); transition: transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s;
}
.postCard:hover { transform: translateY(-4px); box-shadow: 0 34px 64px -34px rgba(6,31,25,.55); }
.postCardMedia { aspect-ratio: 16/10; background: #dcebe2 center/cover no-repeat; }
.postCardBody { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 9px; flex: 1; }
.postCardTitle { font-size: 19px; letter-spacing: -.01em; color: var(--ink); font-weight: 560; line-height: 1.3; }
.postCard:hover .postCardTitle { color: #1f6b47; }

/* ---------- Blog single -------------------------------------------------- */
.postFeature { border-radius: 24px; overflow: hidden; margin-bottom: clamp(26px, 3.4vw, 44px); border: 1px solid var(--line); }
.postFeature img { width: 100%; display: block; }
.postMeta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-bottom: 26px; color: var(--muted); font-size: 14px; }
.postMeta .dot { width: 4px; height: 4px; border-radius: 50%; background: #b9c7c0; }
.postTags { margin-top: clamp(36px, 4vw, 56px); padding-top: 26px; border-top: 1px solid var(--line); }

/* ---------- Pagination --------------------------------------------------- */
.innerPager { margin-top: clamp(40px, 5vw, 68px); }
.innerPager .nav-links, .innerPager .page-numbers { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: center; }
.innerPager .page-numbers {
  min-width: 42px; height: 42px; padding: 0 14px; border-radius: 12px; border: 1px solid var(--line);
  background: #fff; color: var(--ink); text-decoration: none; display: inline-flex; align-items: center;
  justify-content: center; font-weight: 560; transition: all .2s;
}
.innerPager a.page-numbers:hover { border-color: var(--green); color: #1f6b47; }
.innerPager .page-numbers.current { background: var(--forest-deep); color: #fff; border-color: var(--forest-deep); }
.innerPager .page-numbers.dots { border: 0; background: transparent; }

/* ---------- Closing CTA band -------------------------------------------- */
.innerCta {
  background:
    radial-gradient(110% 130% at 15% 10%, #14432f 0%, rgba(20,67,47,0) 55%),
    linear-gradient(150deg, #0b3026 0%, #082820 50%, #061f19 100%);
  color: #eaf6ee; padding: clamp(52px, 6vw, 88px) 0;
}
.innerCtaInner { display: grid; grid-template-columns: 1.3fr .9fr; gap: clamp(28px, 4vw, 60px); align-items: center; }
@media (max-width: 820px) { .innerCtaInner { grid-template-columns: 1fr; } }
.innerCtaKicker {
  display: inline-flex; align-items: center; gap: 9px; color: #7fd3a0;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; margin-bottom: 16px;
}
.innerCtaKicker i { width: 7px; height: 7px; border-radius: 50%; background: #7fd3a0; box-shadow: 0 0 0 4px rgba(127,211,160,.2); }
.innerCta h2 { margin: 0 0 14px; color: #f4faf6; letter-spacing: -.02em; line-height: 1.08; font-weight: 560; font-size: clamp(28px, 3.4vw, 46px); }
.innerCta p { margin: 0; color: #bcd6c8; line-height: 1.6; max-width: 52ch; font-size: 16px; }
/* Tidy, right-aligned action stack — the button and the call card share one
   width so their edges line up, and the block hugs the section's right edge
   instead of floating at the left of a wide column (that mid-band gap). */
.innerCtaActions { display: flex; flex-direction: column; gap: 16px; align-items: stretch; width: min(340px, 100%); margin-left: auto; }
.innerCtaActions .signalCta { width: 100%; min-width: 0; margin-top: 0; }
@media (max-width: 820px) { .innerCtaActions { width: 100%; margin-left: 0; } }
.innerCtaCall {
  display: flex; flex-direction: column; gap: 2px; text-decoration: none; color: #eaf6ee;
  padding: 14px 20px; border: 1px solid rgba(216,247,227,.18); border-radius: 14px; background: rgba(216,247,227,.05);
}
.innerCtaCall span { font-size: 12px; text-transform: uppercase; letter-spacing: .14em; color: #8fb7a1; }
.innerCtaCall strong { font-size: 24px; font-weight: 600; letter-spacing: -.01em; }
.innerCtaCall:hover { border-color: rgba(216,247,227,.34); }

/* ---------- Empty states (404 / no results) ----------------------------- */
.innerEmpty { text-align: center; max-width: 60ch; margin-inline: auto; }
.innerEmpty p { color: #45554e; font-size: 17px; line-height: 1.65; margin: 0 0 26px; }
.innerEmptyActions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }

/* ---------- Search form -------------------------------------------------- */
.innerSearch { display: flex; gap: 10px; max-width: 520px; margin: 24px auto 0; }
.innerSearch input[type="search"] {
  flex: 1; padding: 14px 18px; border-radius: 12px; border: 1px solid var(--line); background: #fff;
  font-size: 16px; color: var(--ink);
}
.innerSearch input[type="search"]:focus { outline: 2px solid var(--green); outline-offset: 1px; }

/* ---------- Hero chips + actions ---------------------------------------- */
.innerHeroChips { display: flex; flex-wrap: wrap; gap: 9px; margin: 24px 0 0; padding: 0; list-style: none; }
.innerHeroChips li {
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 15px; border-radius: 999px;
  background: rgba(220,247,227,.09); border: 1px solid rgba(220,247,227,.2); color: #dcefe3; font-size: 13.5px; font-weight: 500;
}
.innerHeroChips li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #7fd3a0; box-shadow: 0 0 0 3px rgba(127,211,160,.2); }
.innerHeroActions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.innerHeroGhost {
  display: inline-flex; align-items: center; gap: 12px; padding: 11px 20px; border-radius: 14px;
  border: 1px solid rgba(220,247,227,.28); color: #eaf6ee; text-decoration: none; font-weight: 560; transition: border-color .2s, background .2s;
}
.innerHeroGhost:hover { border-color: rgba(220,247,227,.5); background: rgba(220,247,227,.06); }

/* ---------- Treatment split (sticky image + content) -------------------- */
.txSplit { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.6fr); gap: clamp(28px,4vw,64px); align-items: start; }
@media (max-width: 900px) { .txSplit { grid-template-columns: 1fr; } }
.txSplitMedia { position: sticky; top: 96px; }
@media (max-width: 900px) { .txSplitMedia { position: static; } }
.txStickyMedia {
  aspect-ratio: 3/4; border-radius: 24px; background: #dcebe2 center/cover no-repeat;
  border: 1px solid var(--line); box-shadow: 0 30px 60px -40px rgba(6,31,25,.6);
}
.innerWrap.isTight { padding-top: 0; }

/* ---------- Treatment cards (other_links + points) ---------------------- */
.txCards { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: clamp(18px,2.4vw,28px); margin-top: 16px; }
@media (max-width: 860px) { .txCards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .txCards { grid-template-columns: 1fr; } }

/* Editorial cards — echo the chapter language: one organic swept corner, a
   teal index, a small underline, dot-grid accent, target-dot bullets. */
.txCard {
  position: relative; display: flex; flex-direction: column; overflow: hidden;
  background: linear-gradient(165deg, #ffffff 0%, #f6faf7 70%, #eff6f1 100%);
  border: 1px solid rgba(16,35,29,.08); border-radius: 22px 58px 22px 22px;
  padding: clamp(24px,2.6vw,34px);
  box-shadow: 0 30px 60px -42px rgba(6,31,25,.45);
  transition: transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s;
}
.txCardWrap:nth-child(even) .txCard { border-radius: 58px 22px 22px 22px; }
.txCard:hover { transform: translateY(-4px); box-shadow: 0 42px 74px -44px rgba(6,31,25,.55); }
.txCard::before { /* faint dot-grid, tucked in the swept corner */
  content: ""; position: absolute; top: 16px; right: 18px; width: 58px; height: 44px;
  background-image: radial-gradient(rgba(75,159,112,.45) 1.3px, transparent 1.5px);
  background-size: 13px 13px; opacity: .6; pointer-events: none;
}
.txCardWrap:nth-child(even) .txCard::before { right: auto; left: 18px; }
.txCardNum {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px; font-weight: 700; letter-spacing: .18em; color: #4b9f70; margin-bottom: 12px;
}
.txCardTitle { margin: 0; font-size: clamp(18px,1.9vw,21px); letter-spacing: -.014em; color: var(--ink); font-weight: 620; }
.txCardTitle::after {
  content: ""; display: block; width: 34px; height: 3px; border-radius: 3px;
  background: #4b9f70; margin: 13px 0 6px;
}
.txCard .signalTextLink { align-self: flex-start; margin-top: 18px; }
.pointList.isBare { margin-top: 10px; gap: 0; }
.pointList.isBare li {
  border: 0; background: transparent; box-shadow: none; border-radius: 0;
  padding: 11px 0 11px 30px; font-size: 15px;
}
.pointList.isBare li + li { border-top: 1px solid rgba(16,35,29,.07); }
.pointList.isBare li::before {
  left: 2px; top: 16px; width: 11px; height: 11px; background-image: none;
  background-color: #4b9f70; box-shadow: 0 0 0 4px rgba(75,159,112,.16);
}

/* ---------- Long content split into alternating image+text sections ------ */
/* ---------- Treatment chapters — GSAP + Lenis sticky reveal ---------------
   Clean, light editorial chapters (matches the reference): organic-cornered
   photo on one side, a big teal chapter number + heading + prose on the other,
   sides alternating. Smooth scroll (Lenis) + per-chapter entrance choreography
   and a gentle media parallax live in refsite/anim.js — CSS here is the resting
   look, fully visible with no JS / reduced motion. */
.txSnap { position: relative; background: var(--paper); }

/* Editorial opening statement built from the lead paragraph(s). */
.txOpen { background: var(--paper); padding: clamp(46px, 8vh, 96px) 0 clamp(8px, 2vh, 24px); }
.txOpenInner { max-width: 900px; }
.txOpenProse { color: #2b3a33; }
.txOpenProse p:first-child {
  font-size: clamp(22px, 2.7vw, 34px); line-height: 1.34; letter-spacing: -.015em;
  color: var(--ink); font-weight: 500; margin-bottom: .8em;
}
.txOpenProse p:first-child::first-letter {
  font-size: 3.1em; line-height: .82; float: left; margin: .04em .12em 0 0;
  color: #2d7752; font-weight: 600;
}

/* Flowing chapters — long content just makes the section taller and scrolls,
   never clipped. The photo is position:sticky, so it holds in place while the
   copy scrolls past it (real "sticky scroll", per section). */
.txChapter {
  position: relative;
  padding-block: clamp(56px, 10vh, 132px);
}
/* Faint dot-grid corner accent (like the reference), opposite the photo side.
   Positioned against the contained column, not the full-width viewport. */
.txChapter::before {
  content: ""; position: absolute; z-index: 0; top: clamp(20px, 4vh, 52px);
  right: max(calc((100% - min(1376px, 100% - 64px)) / 2), 24px);
  width: 78px; height: 108px; opacity: .5; pointer-events: none;
  background-image: radial-gradient(rgba(75,159,112,.55) 1.4px, transparent 1.6px);
  background-size: 15px 15px;
}
.txChapter.isReverse::before { right: auto; left: max(calc((100% - min(1376px, 100% - 64px)) / 2), 24px); }

/* Contained column — the sections no longer run the full page width. */
.txChapterGrid {
  position: relative; z-index: 1;
  /* Same width formula as the header shell, so chapters align with the nav. */
  width: min(1376px, 100% - 64px); margin-inline: auto;
  display: grid; grid-template-columns: 1.12fr .88fr; gap: clamp(30px, 4vw, 84px);
  align-items: start;
}
.txChapter.isReverse .txChapterGrid { grid-template-columns: .88fr 1.12fr; }
.txChapter.isReverse .txChapterMedia { order: 2; }
.txChapter.isTextOnly .txChapterGrid { grid-template-columns: minmax(0, 760px); justify-content: center; }

/* Horizontal photo with rounded corners + one diagonal cut facing the copy.
   Shape = an SVG clip-path (rounded corners AND a clean diagonal — a polygon
   can't round). The soft shadow is a drop-shadow on the wrapper so it follows
   the clipped shape (a box-shadow would be clipped away). The wrapper is
   position:sticky so the image holds while the copy scrolls past it. */
.txChapterMedia {
  position: sticky; top: clamp(96px, 12vh, 132px); margin: 0;
  filter: drop-shadow(0 30px 48px rgba(6, 31, 25, .24));
}
.txChapterFrame { display: none; }
.txChapterPhoto { position: relative; display: block; clip-path: url(#txcutR); }
.txChapter.isReverse .txChapterPhoto { clip-path: url(#txcutL); }
.txChapterPhoto img { width: 100%; display: block; aspect-ratio: 3 / 2; object-fit: cover; object-position: center 32%; }

.txChapterBody { position: relative; z-index: 1; max-width: 540px; }
/* Big visible teal chapter number (reference-style). */
.txChapterIndex {
  display: block; font-size: clamp(34px, 3.6vw, 54px); line-height: 1; font-weight: 600;
  letter-spacing: -.03em; color: #4b9f70; margin: 0 0 10px;
}
.txChapterMarker {
  display: inline-flex; align-items: center; gap: 10px; margin-bottom: 14px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10.5px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #6a8478;
}
.txChapterMarker i { width: 22px; height: 1px; background: currentColor; display: block; }
.txChapterTitle {
  font-size: clamp(23px, 2.4vw, 34px); line-height: 1.14; letter-spacing: -.022em;
  color: var(--ink); font-weight: 620; margin: 0 0 18px; text-wrap: balance;
}
.txChapterTitle::after {
  content: ""; display: block; width: 46px; height: 3px; border-radius: 3px;
  background: #4b9f70; margin-top: 15px;
}
.txChapterProse { font-size: clamp(15px, 1.05vw, 16.5px); color: #4a5a52; }
/* Target-style teal bullets to match the reference list. */
.txChapterProse ul { margin-top: 1.1em; }
.txChapterProse ul li { padding-left: 30px; }
.txChapterProse ul li::before {
  content: ""; position: absolute; left: 0; top: .46em; width: 12px; height: 12px; border-radius: 50%;
  background: #4b9f70; box-shadow: 0 0 0 4px rgba(75,159,112,.18); border: 0;
}
.txChapterProse ul li strong { color: var(--ink); }

/* Fixed chapter progress rail. Hidden on touch/compact + no-motion. */
.txRail {
  position: fixed; z-index: 60; top: 50%; right: clamp(14px, 1.8vw, 28px); transform: translateY(-50%);
  display: flex; flex-direction: column; gap: 15px; align-items: flex-end;
}
.txRailDot {
  position: relative; width: 9px; height: 9px; border-radius: 50%;
  background: rgba(24, 66, 50, .22); transition: transform .3s cubic-bezier(.16,1,.3,1), background .3s;
}
.txRailDot:hover { background: rgba(24, 66, 50, .5); }
.txRailDot.isActive { background: var(--green); transform: scale(1.7); }
.txRailLabel {
  position: absolute; right: 20px; top: 50%; transform: translateY(-50%) translateX(6px);
  white-space: nowrap; font-size: 11px; letter-spacing: .02em; color: #2c3a34;
  background: rgba(251,250,246,.96); border: 1px solid var(--line); border-radius: 999px;
  padding: 5px 12px; box-shadow: 0 10px 26px -16px rgba(6,31,25,.4);
  opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s;
}
/* Labels appear on hover only — the always-on active label overlapped photos. */
.txRailDot:hover .txRailLabel { opacity: 1; transform: translateY(-50%) translateX(0); }

@media (max-width: 960px) {
  .txRail { display: none; }
  .txChapterGrid, .txChapter.isReverse .txChapterGrid { grid-template-columns: 1fr; gap: clamp(24px, 6vw, 40px); }
  .txChapter.isReverse .txChapterMedia { order: 0; }
  .txChapter { min-height: 0; padding-block: clamp(44px, 10vw, 72px); }
  .txChapterPhoto img { aspect-ratio: 16 / 11; object-position: center 30%; }
}

/* ---------- Support / helpline band ------------------------------------- */
.txSupport {
  background:
    radial-gradient(100% 130% at 85% 0%, #16513a 0%, rgba(22,81,58,0) 55%),
    linear-gradient(150deg, #0b3026 0%, #082820 55%, #061f19 100%);
  color: #eaf6ee; padding: clamp(48px,6vw,84px) 0;
}
.txSupportInner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: clamp(24px,4vw,52px); }
.txSupportCopy { max-width: 56ch; }
.txSupport h2 { margin: 0 0 12px; color: #f4faf6; letter-spacing: -.02em; line-height: 1.08; font-weight: 560; font-size: clamp(27px,3.2vw,42px); }
.txSupport p { margin: 0; color: #bcd6c8; line-height: 1.6; font-size: 16px; }
.txSupportCall {
  display: flex; flex-direction: column; gap: 3px; text-decoration: none; color: #eaf6ee; flex: none;
  padding: 18px 26px; border: 1px solid rgba(216,247,227,.2); border-radius: 18px; background: rgba(216,247,227,.05); transition: border-color .2s, transform .2s;
}
.txSupportCall:hover { border-color: rgba(216,247,227,.4); transform: translateY(-2px); }
.txSupportCallK { font-size: 12px; text-transform: uppercase; letter-spacing: .12em; color: #8fb7a1; }
.txSupportCallV { font-size: clamp(26px,3vw,34px); font-weight: 600; letter-spacing: -.02em; }

/* ---------- Team hero (portrait + copy) --------------------------------- */
.teamHeroGrid { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(28px,4vw,60px); align-items: center; }
@media (max-width: 860px) { .teamHeroGrid { grid-template-columns: 1fr; } }
.teamPortrait {
  aspect-ratio: 4/5; max-width: 340px; border-radius: 26px; overflow: hidden;
  background: linear-gradient(160deg,#12402f,#0a2c22); border: 1px solid rgba(216,247,227,.16);
  box-shadow: 0 40px 80px -44px rgba(0,0,0,.7);
}
@media (max-width: 860px) { .teamPortrait { max-width: 260px; } }
.teamPortrait img { width: 100%; height: 100%; object-fit: cover; display: block; }
.teamHeroCreds { color: #7fd3a0; font-weight: 600; font-size: .48em; letter-spacing: 0; vertical-align: middle; }

/* ---------- Location feature bands -------------------------------------- */
.locFeature { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(28px,4vw,60px); align-items: center; }
.locFeature.isLeft { grid-template-columns: .9fr 1.1fr; }
.locFeature.isLeft .locFeatureCopy { order: 2; }
.locFeature.isLeft .locFeatureImg { order: 1; }
@media (max-width: 820px) { .locFeature, .locFeature.isLeft { grid-template-columns: 1fr; } .locFeature.isLeft .locFeatureCopy, .locFeature.isLeft .locFeatureImg { order: 0; } }
.locFeatureTitle { margin: 12px 0 12px; color: var(--ink); letter-spacing: -.02em; line-height: 1.12; font-weight: 560; font-size: clamp(26px,3.2vw,42px); }
.locFeatureImg { border-radius: 24px; overflow: hidden; border: 1px solid var(--line); box-shadow: 0 30px 60px -40px rgba(6,31,25,.55); }
.locFeatureImg img { width: 100%; display: block; }

.locBand {
  position: relative; overflow: hidden; border-radius: 30px; text-align: center;
  padding: clamp(40px,5vw,72px) clamp(24px,5vw,72px); color: #eaf6ee;
  background:
    radial-gradient(110% 130% at 20% 0%, #16513a 0%, rgba(22,81,58,0) 55%),
    linear-gradient(150deg, #10402f 0%, #0b3026 55%, #061f19 100%);
  border: 1px solid rgba(216,247,227,.14);
}
.locBand h2 { margin: 0 0 12px; color: #f4faf6; letter-spacing: -.02em; line-height: 1.1; font-weight: 560; font-size: clamp(26px,3.2vw,42px); }
.locBandBody { max-width: 60ch; margin: 0 auto; color: #bcd6c8; line-height: 1.6; }
.locBandBody p { margin: 0 0 .8em; }

/* ---------- Sources list ------------------------------------------------ */
.sourceList { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sourceList li { border-top: 1px solid var(--line); padding-top: 10px; }
.sourceList li:first-child { border-top: 0; padding-top: 0; }
.sourceList a { color: #1f6b47; font-size: 14px; word-break: break-all; text-decoration: underline; text-underline-offset: 2px; }

/* ---------- Scroll choreography ----------------------------------------- */
/* Reveal-on-scroll: JS adds .is-revealed as each block enters the viewport.
   Content is fully visible if JS/animations are off. */
.tmse-reveal {
  opacity: 0; transform: translateY(26px);
  transition: opacity .72s cubic-bezier(.16,1,.3,1), transform .72s cubic-bezier(.16,1,.3,1);
  transition-delay: var(--rvd, 0ms); will-change: opacity, transform;
}
.tmse-reveal.is-revealed { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .tmse-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Subtle scroll-driven parallax on the hero glow (progressive enhancement —
   only where native scroll timelines are supported; ignored elsewhere). */
@supports (animation-timeline: scroll()) {
  @media (prefers-reduced-motion: no-preference) {
    .innerHeroGlow {
      animation: tmseHeroGlow linear both;
      animation-timeline: scroll(root);
      animation-range: 0 70vh;
    }
  }
}
@keyframes tmseHeroGlow { to { transform: translateY(120px) scale(1.12); opacity: .35; } }

/* ---------- Responsive --------------------------------------------------- */
@media (max-width: 980px) {
  .innerLayout { grid-template-columns: 1fr; }
  .innerLayout .innerAside { grid-row: auto; }
}
/* Mobile light header: no floating pill — a translucent paper bar keeps the
   dark-ink chrome readable over any content once scrolled. Selector matches
   the desktop pill rule above so it wins at this width. */
@media (max-width: 900px) {
  .adaptiveHeader.innerHeader.isScrolled {
    background: rgba(251, 250, 246, .92);
    -webkit-backdrop-filter: blur(18px) saturate(1.05);
    backdrop-filter: blur(18px) saturate(1.05);
    box-shadow: 0 16px 34px -26px rgba(6, 31, 25, .35);
  }
  .adaptiveHeader.innerHeader.isScrolled .adaptiveNavCore.adaptiveNavSplit {
    background: transparent; border: 0; box-shadow: none;
    min-height: 0; padding: 0; border-radius: 0;
    -webkit-backdrop-filter: none; backdrop-filter: none;
  }
}
@media (max-width: 600px) {
  .shell { width: auto !important; max-width: 100% !important; padding-inline: 20px; margin-inline: 0; }
  .innerProse { font-size: 16px; }
}
