/* =============================================================================
   WSDC Treatment detail  ·  v0.8.2
   Faithful section library built from the Dental Implants Figma frame.
   Each block is a reusable pattern (rendered by inc/treatment-sections.php) and
   maps onto an ACF flexible-content layout later.
   ============================================================================= */

/* ---- shared primitives ---- */
.td-eyebrow{font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--barley);margin:0 0 .6rem}
.td-eyebrow--light{color:rgba(255,255,255,.75)}
.td-head{text-align:center;max-width:46ch;margin:0 auto var(--s-7)}
.td-head .td-eyebrow{color:var(--barley-dark)}
.td-head h2{font-size:var(--fs-h1);margin-bottom:var(--s-3)}
.td-head p{color:var(--ink-muted);font-size:var(--fs-body)}
.td-link{font-weight:600;font-size:.9rem;display:inline-flex;align-items:center;gap:.4rem;color:var(--barley-dark)}
.td-link span{transition:transform .25s var(--ease)}
.td-link:hover span{transform:translateX(3px)}
.td-actions{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;margin-top:var(--s-4)}

/* Breadcrumb styles live in main.css so search, legal and archive pages get them too. */

/* ---- 1 · dark hero ---- */
.td-hero{position:relative;min-height:clamp(440px,52vw,600px);display:flex;align-items:center;text-align:left;color:#fff;overflow:hidden}
.td-hero__bg{position:absolute;inset:0}
/* Faces sit in the top third of most clinic photos, so crop from higher than centre. A hero can override with --hero-pos. */
.td-hero__bg img{width:100%;height:100%;object-fit:cover;object-position:var(--hero-pos,center 25%)}
@media (max-width:767px){.td-hero__bg img{object-position:var(--hero-pos-m,var(--hero-pos,center 25%))}}
.td-hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,42,58,.62),rgba(28,42,58,.82))}
.td-hero__inner .wsdc-crumbs{margin:0 0 var(--s-3)}
.td-hero__inner .wsdc-crumbs ol{justify-content:flex-start}
.td-hero__inner{position:relative;z-index:2;width:100%;max-width:var(--content-max);margin-inline:auto;padding:var(--s-7) var(--gutter);box-sizing:border-box}

/* form variant: copy left, enquiry card right */
.td-hero--form{min-height:clamp(520px,56vw,700px);align-items:center}
.td-hero--form .td-hero__inner{display:grid;grid-template-columns:1fr;gap:var(--s-5)}
.td-hero--form .td-hero__title{max-width:16ch}
.td-hero--form .td-hero__lead{max-width:52ch}
.td-hero--form .td-hero__usps{max-width:52ch}
@media (min-width:1020px){
	.td-hero--form .td-hero__inner{grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);gap:var(--s-7);align-items:center}
}
.td-hero__title{font-family:var(--font-display);font-weight:500;font-size:clamp(2.4rem,1.6rem + 3.2vw,3.9rem);line-height:1.08;margin:0 0 var(--s-3);max-width:20ch}
.td-hero__lead{font-size:var(--fs-lead);color:rgba(255,255,255,.88);max-width:60ch;margin:0 0 var(--s-5)}
.td-hero__actions{display:flex;gap:var(--s-3);justify-content:flex-start;flex-wrap:wrap}
/* ---- hero anchor pills ---- */
.td-hero__anchors{display:flex;gap:.6rem;justify-content:flex-start;flex-wrap:wrap;margin-top:var(--s-5)}
.td-hero__anchors a{font-size:.82rem;font-weight:600;color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:.5rem 1.05rem;text-decoration:none;transition:background .2s var(--ease),border-color .2s var(--ease)}
.td-hero__anchors a:hover{background:rgba(255,255,255,.14);border-color:#fff}
.td-iml,.td-dentists,.td-ba-sec,.td-pricing{scroll-margin-top:120px}



/* ---- authorship row (single line, small avatar, subtle band) ---- */
.td-author-sec{padding-block:var(--s-4);background:rgba(164,134,98,.07);border-block:1px solid var(--hairline)}
.td-authorline{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.45rem .85rem;font-size:.85rem;color:var(--ink-muted);text-align:center;margin:0}
.td-authorline__avatar{width:30px;height:30px;border-radius:50%;overflow:hidden;flex:none;background:var(--mirage)}
.td-authorline__avatar img{width:100%;height:100%;object-fit:cover;object-position:center 18%}
.td-authorline b{color:var(--ink);font-weight:600}
.td-authorline__sep{opacity:.4}
.td-authorline a{color:var(--barley-dark);font-weight:600;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s var(--ease)}
.td-authorline a:hover{border-bottom-color:currentColor}

/* ---- page history (bottom of page, scroll target) ---- */
html{scroll-behavior:smooth}
.td-pagehistory{padding-block:var(--section-y);scroll-margin-top:120px;background:var(--cream)}
.td-pagehistory .td-head{margin-bottom:var(--s-5)}
.td-pagehistory .td-head h2{font-size:var(--fs-h2)}
.td-pagehistory__list{list-style:none;margin:0 auto;padding:0;max-width:560px;display:grid;gap:0}
.td-pagehistory__list li{display:flex;gap:var(--s-4);align-items:baseline;font-size:var(--fs-body);color:var(--ink-muted);padding:var(--s-3) 0;border-bottom:1px solid var(--hairline)}
.td-pagehistory__list li:last-child{border-bottom:0}
.td-pagehistory__list b{color:var(--ink);font-weight:600;flex:none;min-width:130px}

/* ---- 2 · intro + media list (the signature pattern) ---- */
.td-iml{padding-block:var(--section-y)}
.td-iml>.wrap>.td-head{text-align:left;max-width:none;margin-left:0;margin-right:0}
.td-iml__grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:var(--s-7)}
.td-iml__intro{position:sticky;top:100px;align-self:start;padding-top:var(--s-3)}
.td-iml__intro h2{font-family:var(--font-display);font-size:var(--fs-h1);line-height:1.1;margin:0 0 var(--s-3)}
.td-iml__intro p{color:var(--ink-muted)}
.td-iml__list{display:grid;gap:var(--s-7)}
.td-iml__media{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--mirage)}
.td-iml__media::before{content:"";display:block;padding-top:62%}
.td-iml__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.td-iml__item h3{font-family:var(--font-display);font-size:var(--fs-h3);margin:var(--s-4) 0 .4rem}
.td-iml__item p{color:var(--ink-muted);font-size:var(--fs-body);margin:0;max-width:52ch}

/* ---- 3 · team strip (3:4 portrait, consistent with team and about pages) ---- */
.td-team{padding-block:var(--section-y);background:var(--cream)}
.td-team__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-5) var(--s-4)}
/* One to three people: keep the four-up card width and centre the row. */
.td-team__grid--few{grid-template-columns:repeat(auto-fit,calc((100% - 3 * var(--s-4)) / 4));justify-content:center}
.td-tcard__media{display:block;position:relative;overflow:hidden;border-radius:var(--radius);margin-bottom:var(--s-4);background:var(--mirage)}
.td-tcard__media::before{content:"";display:block;padding-top:134.6%}
.td-tcard__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 18%}
.td-tcard__play{position:absolute;right:.8rem;bottom:.8rem;width:46px;height:46px;border-radius:50%;border:2px solid var(--barley);background:rgba(28,42,58,.35);display:grid;place-items:center}
.td-tcard__play::after{content:"";border-left:12px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent;margin-left:3px}
.td-tcard__name{font-family:var(--font-display);font-size:1.2rem;margin:0}
.td-tcard__role{font-size:.82rem;color:var(--barley-dark);font-weight:600;margin:.1rem 0 .4rem}
.td-tcard__bio{font-size:.85rem;color:var(--ink-muted);margin:0 0 .6rem}
.td-social{display:flex;gap:.6rem;color:var(--ink-muted)}
.td-social svg{width:16px;height:16px}
.td-social a:hover{color:var(--mirage)}

/* ---- 4 · patient story (one cohesive navy section) ---- */
.ba-split{position:absolute;top:0;bottom:0;left:50%;width:2px;background:rgba(255,255,255,.6);transform:translateX(-1px);z-index:1;pointer-events:none}
.ba-tag{position:absolute;bottom:.55rem;z-index:2;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(28,42,58,.65);padding:.18rem .5rem;border-radius:5px;pointer-events:none}
.ba-tag--before{left:.55rem}
.ba-tag--after{right:.55rem}
.td-story{background:var(--mirage);color:#fff;padding-block:var(--section-y)}
.td-story__head{max-width:62ch;margin:0 0 var(--s-6)}
.td-story__eyebrow{font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--barley);margin:0 0 .5rem}
.td-story__title{font-family:var(--font-display);font-size:var(--fs-h1);line-height:1.1;color:#fff;margin:0 0 var(--s-3)}
.td-story__byline{display:flex;align-items:center;gap:.5rem .9rem;flex-wrap:wrap;font-size:.85rem;color:rgba(255,255,255,.7)}
.td-story__byline b{color:#fff;font-weight:600}
.td-story__byline .td-social{color:rgba(255,255,255,.6)}
.td-story__byline .td-social a:hover{color:#fff}
.td-story__sep{opacity:.4}
.td-story__grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:var(--s-7);align-items:start}
.td-story__media{position:sticky;top:100px}
.td-story__ba{position:relative;border-radius:var(--radius);overflow:hidden;background:#000}
.td-story__ba::before{content:"";display:block;padding-top:29%}
.td-story__ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.td-story__caption{font-size:.78rem;color:rgba(255,255,255,.6);margin:.7rem 0 0}
.td-story__body h3{font-family:var(--font-display);font-size:var(--fs-h3);color:#fff;margin:0 0 .5rem}
.td-story__body h3 + p + h3,.td-story__body blockquote + h3{margin-top:var(--s-5)}
.td-story__body p{color:rgba(255,255,255,.85);margin:0 0 var(--s-3)}
.td-story__quote{border-left:3px solid var(--barley);padding-left:var(--s-4);margin:var(--s-5) 0;font-family:var(--font-display);font-style:italic;font-size:1.3rem;line-height:1.4;color:#fff}
.td-story__body .btn{margin-top:var(--s-3)}
/* ---- 5 · alternating feature rows (optional tinted section for separation) ---- */
.td-frows{padding-block:var(--section-y)}
.td-frows--tint{background:var(--mirage)}
.td-frows--tint .td-head h2,.td-frows--tint .td-frow__title{color:#fff}
.td-frows--tint .td-head p,.td-frows--tint .td-frow__body{color:rgba(255,255,255,.82)}
.td-frows--tint .td-eyebrow{color:var(--barley-light)}
.td-frow{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-7);align-items:center;margin-bottom:var(--s-7)}
.td-frow:last-child{margin-bottom:0}
.td-frow__media{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--mirage)}
.td-frow__media::before{content:"";display:block;padding-top:72%}
.td-frow__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.td-frow__title{font-family:var(--font-display);font-size:var(--fs-h2);line-height:1.15;margin:0 0 .6rem}
.td-frow__body{color:var(--ink-muted);margin:0 0 var(--s-3)}
.td-frow--reverse .td-frow__media{order:2}

/* ---- 6 · journey: steps around a tall central image, distinct icons ---- */
.td-journey{padding-block:var(--section-y)}
.td-journey__layout{display:grid;grid-template-columns:1fr 1.04fr 1fr;gap:var(--s-6);align-items:stretch}
.td-journey__col{display:flex;flex-direction:column;justify-content:space-between;gap:var(--s-6);padding-block:var(--s-4)}
.td-journey__centre{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--mirage);min-height:100%}
.td-journey__centre::before{content:"";display:block;padding-top:128%}
.td-journey__centre img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.td-jstep{text-align:center;max-width:30ch;margin-inline:auto}
.td-jstep__icon{width:40px;height:40px;margin:0 auto var(--s-3);color:var(--barley);display:grid;place-items:center;border:1px solid var(--hairline);border-radius:50%;padding:8px}
.td-jstep__icon svg{width:100%;height:100%}
.td-jstep h3{font-family:var(--font-display);font-size:var(--fs-h3);margin:0 0 .35rem}
.td-jstep p{color:var(--ink-muted);font-size:var(--fs-body);margin:0}
.td-journey__foot{text-align:center;margin-top:var(--s-6)}

/* ---- 7 · gallery (premium, captioned, hover zoom, click to expand) ---- */
.td-gallery-sec{background:var(--barley);color:#fff;padding-block:var(--section-y)}
.td-gallery-sec .td-head h2{color:#fff}
.td-gallery-sec .td-head p{color:rgba(255,255,255,.85)}
.td-gallery-nav{display:flex;justify-content:flex-end;gap:.6rem;margin-bottom:var(--s-4)}
.td-gallery-nav button{width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:transparent;color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .25s var(--ease)}
.td-gallery-nav button:hover{background:rgba(255,255,255,.14)}
.td-gallery-nav svg{width:18px;height:18px}
.td-gallery-strip{display:flex;gap:var(--s-3);overflow-x:auto;scroll-snap-type:x mandatory;cursor:grab;
	margin-inline:calc(50% - 50vw);padding-inline:calc(50vw - 50%);scroll-padding-inline:calc(50vw - 50%);
	-ms-overflow-style:none;scrollbar-width:none}
.td-gallery-strip::-webkit-scrollbar{display:none}
.td-gallery-strip.is-dragging{cursor:grabbing;scroll-snap-type:none}
.td-gtile{flex:0 0 clamp(280px,40vw,520px);scroll-snap-align:start;position:relative;overflow:hidden;border-radius:var(--radius);background:var(--mirage);cursor:pointer}
.td-gtile::before{content:"";display:block;padding-top:66.6%}
.td-gtile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.td-gtile:hover img{transform:scale(1.05)}
/* lightbox */
.wsdc-lightbox{position:fixed;inset:0;z-index:1000;background:rgba(20,23,26,.92);display:none;place-items:center;padding:var(--s-5);cursor:zoom-out}
.wsdc-lightbox.is-open{display:grid}
.wsdc-lightbox img{max-width:92vw;max-height:88vh;border-radius:var(--radius);box-shadow:0 30px 80px -20px rgba(0,0,0,.6)}
.wsdc-lightbox__cap{position:absolute;bottom:var(--s-5);left:0;right:0;text-align:center;color:rgba(255,255,255,.85);font-size:.9rem}
.wsdc-lightbox__close{position:absolute;top:var(--s-4);right:var(--s-5);width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:1.4rem;cursor:pointer}

/* ---- 8 · pricing (gold) ---- */
.td-pricing{background:var(--barley);color:#fff;padding-block:var(--section-y)}
.td-pricing .td-head h2{color:#fff}
.td-pricing .td-head p{color:rgba(255,255,255,.85)}
.td-price{max-width:560px;margin:0 auto;border:1px solid rgba(255,255,255,.35);border-radius:var(--radius);padding:var(--s-6);text-align:center;background:rgba(28,42,58,.14)}
.td-price__label{font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.td-price__figure{font-family:var(--font-display);font-size:3.4rem;line-height:1;margin:.4rem 0 var(--s-4)}
.td-price__list{list-style:none;margin:0 0 var(--s-4);padding:0;display:grid;gap:.6rem;text-align:left;max-width:300px;margin-inline:auto}
.td-price__list li{display:flex;align-items:flex-start;gap:.55rem;font-size:var(--fs-body);color:#fff}
.td-price__list svg{width:15px;height:15px;flex:none;margin-top:.2rem;color:#fff}
.td-price__note{font-size:.82rem;color:rgba(255,255,255,.75);margin-top:var(--s-3)}

/* price table variant, used when the treatment has several line items */
.td-pricetable{max-width:760px;margin:0 auto;border:1px solid rgba(255,255,255,.35);border-radius:var(--radius);background:rgba(28,42,58,.14);padding:var(--s-5) var(--s-6) var(--s-6)}
.td-pricetable__list{list-style:none;margin:0;padding:0}
.td-pricerow{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-4);padding-block:var(--s-4);border-bottom:1px solid rgba(255,255,255,.22)}
.td-pricerow:last-child{border-bottom:0}
.td-pricerow__label{display:flex;flex-direction:column;gap:.2rem;font-size:1.02rem;font-weight:600;color:#fff}
.td-pricerow__qual{font-size:.78rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.td-pricerow__figure{font-family:var(--font-display);font-size:1.7rem;line-height:1;white-space:nowrap;color:#fff}
.td-pricetable__includes{max-width:none;margin:var(--s-5) 0 0;padding-top:var(--s-5);border-top:1px solid rgba(255,255,255,.22);grid-template-columns:1fr;column-gap:var(--s-5)}
@media (min-width:700px){.td-pricetable__includes{grid-template-columns:repeat(2,minmax(0,1fr))}}
.td-pricetable__foot{margin-top:var(--s-5);text-align:center}
.td-pricetable__foot .td-price__note{max-width:60ch;margin-inline:auto}

@media (max-width:600px){
	.td-pricetable{padding:var(--s-4)}
	.td-pricerow{flex-direction:column;align-items:flex-start;gap:.35rem}
	.td-pricerow__figure{font-size:1.5rem}
}

/* ---- 9 · FAQ (full width: head above, accordion spans the wrap) ---- */
.td-faq{padding-block:var(--section-y)}
.td-faq__head{text-align:center;max-width:62ch;margin:0 auto var(--s-6)}
.td-faq__head h2{font-size:var(--fs-h1);margin-bottom:var(--s-3)}
.td-faq__head p{color:var(--ink-muted);margin-bottom:var(--s-4)}
.td-faq__list{display:grid;gap:var(--s-3)}
.td-faqitem{border:1px solid var(--hairline);border-radius:var(--radius);background:#fff}
.td-faqitem summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-4);font-weight:600;font-size:1.02rem}
.td-faqitem summary::-webkit-details-marker{display:none}
.td-faqitem summary::after{content:"+";font-size:1.4rem;font-weight:400;color:var(--barley);line-height:1}
.td-faqitem[open] summary::after{content:"\00d7"}
.td-faqitem__a{padding:0 var(--s-4) var(--s-4);color:var(--ink-muted);max-width:90ch}

/* ---- 10 · closing band (dark photo) ---- */
.td-closing{position:relative;min-height:clamp(360px,40vw,460px);display:grid;place-items:center;text-align:center;color:#fff;overflow:hidden;background:var(--mirage)}
.td-closing__bg{position:absolute;inset:0}
.td-closing__bg img{width:100%;height:100%;object-fit:cover;object-position:center top}
.td-closing__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,42,58,.55),rgba(28,42,58,.7))}
.td-closing__inner{position:relative;z-index:2;max-width:620px;padding:var(--s-6) var(--s-4)}
.td-closing__inner h2{font-family:var(--font-display);font-size:var(--fs-h1);color:#fff;margin:0 0 var(--s-3)}
.td-closing__inner p{color:rgba(255,255,255,.85);margin:0 0 var(--s-5)}
.td-closing__actions{display:flex;gap:var(--s-3);justify-content:center;flex-wrap:wrap}


/* ---- our dentists: an equal tile per treating clinician (lead first) ---- */
.td-dentists{padding-block:var(--section-y);background:var(--cream)}
/* The shared .td-head caps at 46ch, which crams the eyebrow, heading and intro
   in this section. Widen here only, leaving every other section head alone. */
.td-dentists .td-head{max-width:64ch}
.td-dentists .td-head p{max-width:60ch;margin-inline:auto}

.td-docs{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-4);margin-top:var(--s-6)}
/* Fill the width when the team is small: two clinicians share the row 50/50,
   one sits in a single sensible column rather than a lone third. */
.td-docs[data-count="2"]{grid-template-columns:repeat(2,1fr)}
.td-docs[data-count="1"]{grid-template-columns:minmax(0,360px);justify-content:center}
/* A lone card on the last row of three sits in the middle column, not hard left. */
@media (min-width:981px){.td-docs>.td-doc-card:last-child:nth-child(3n+1):not(:first-child){grid-column:2}}
.td-doc-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden}
/* Portrait matches the theme's existing dentist crop (1 / 1.346) so the real
   headshots drop in without re-cropping. aspect-ratio holds the height reliably;
   the padding fallback only kicks in where aspect-ratio is unsupported. */
.td-doc-card__photo{position:relative;width:100%;aspect-ratio:1 / 1.346;background:var(--mirage);overflow:hidden}
@supports not (aspect-ratio: 1 / 1){
	.td-doc-card__photo::before{content:"";display:block;padding-top:134.6%}
}
.td-doc-card__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.td-doc-card__play{position:absolute;right:.75rem;bottom:.75rem;z-index:2;width:48px;height:48px;border-radius:50%;border:2px solid var(--barley);background:rgba(28,42,58,.4);display:grid;place-items:center;cursor:pointer;padding:0;transition:transform .25s var(--ease),background .25s var(--ease)}
.td-doc-card__play:hover,.td-doc-card__play:focus-visible{transform:scale(1.08);background:var(--barley)}
.td-doc-card__play::after{content:"";border-left:13px solid #fff;border-top:8px solid transparent;border-bottom:8px solid transparent;margin-left:3px}
.td-doc-card__body{display:flex;flex-direction:column;flex:1;padding:var(--s-4)}
.td-doc-card__name{font-family:var(--font-display);font-size:1.28rem;line-height:1.12;margin:0 0 .15rem;color:var(--mirage)}
.td-doc-card__role{font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--barley-dark);margin:0 0 var(--s-2)}
/* Bio is capped at 7 lines so cards stay compact whatever the source text length. */
.td-doc-card__bio{color:var(--ink-muted);font-size:.9rem;line-height:1.5;margin:0 0 var(--s-3);display:-webkit-box;-webkit-line-clamp:7;line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.td-doc-card__quals{list-style:none;margin:0 0 var(--s-3);padding:0;display:grid;gap:.4rem}
.td-doc-card__quals li{display:flex;align-items:flex-start;gap:.5rem;font-size:.85rem;color:var(--ink)}
.td-doc-card__quals svg{width:16px;height:16px;flex:none;margin-top:.15rem;color:var(--barley)}
.td-doc-card__links{margin-top:auto;padding-top:.2rem}
.td-doc-card__profile{font-weight:600;font-size:.92rem;color:var(--mirage);text-decoration:none;display:inline-flex;align-items:center;gap:.4rem}
.td-doc-card__profile::after{content:"\2192";color:var(--barley)}
.td-doc-card__profile:hover{color:var(--barley-dark)}

/* ---- before and after: grid of case studies ---- */
.td-ba-sec{padding-block:var(--section-y);background:var(--cream)}
/* Flex rather than grid so a part-filled last row (one or two cases) sits in
   the centre instead of hanging off to the left (Sean, 9 Oct 2026). */
.td-ba-grid{--ba-cols:3;--ba-gap:var(--s-4);display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-6) var(--ba-gap)}
.td-ba-grid>*{flex:0 0 calc((100% - (var(--ba-cols) - 1) * var(--ba-gap)) / var(--ba-cols));min-width:0}
/* The homepage cases row is a swipeable scroller on phones (home.css): keep it one row. */
@media (max-width:760px){.td-ba-grid.wsdc-hscroll{flex-wrap:nowrap;justify-content:flex-start}.td-ba-grid.wsdc-hscroll>*{flex:0 0 82%}}
.td-ba-card{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.td-ba-card__media{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--mirage);margin-bottom:var(--s-3)}
.td-ba-card__media::before{content:"";display:block;padding-top:29%}
.td-ba-card__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.td-ba-card:hover .td-ba-card__media img,.td-ba-card:focus-visible .td-ba-card__media img{transform:scale(1.04)}
.td-ba-card__eyebrow{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--barley-dark);font-weight:600;margin:0 0 .25rem}
.td-ba-card__title{font-family:var(--font-display);font-size:1.3rem;line-height:1.2;margin:0 0 var(--s-3);color:var(--ink);transition:color .2s var(--ease)}
.td-ba-card:hover .td-ba-card__title{color:var(--barley-dark)}
.td-ba-card__author{display:flex;align-items:center;gap:.55rem;margin-top:auto}
.td-ba-card__avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;flex:none;background:var(--mirage)}
.td-ba-card__avatar img{width:100%;height:100%;object-fit:cover;object-position:center 16%}
.td-ba-card__by{font-size:.8rem;color:var(--ink-muted);line-height:1.25}
.td-ba-card__by b{color:var(--ink);font-weight:600;display:block}
.td-ba-foot{text-align:center;margin-top:var(--s-7)}

/* ---- responsive ---- */
@media (max-width:980px){
	.td-iml__grid,.td-story__grid,.td-frow{grid-template-columns:1fr}
	.td-iml__intro,.td-story__media{position:static;padding-top:0}
	.td-team__grid{grid-template-columns:1fr 1fr}
	.td-team__grid--few{grid-template-columns:repeat(auto-fit,calc((100% - var(--s-4)) / 2))}
	.td-ba-grid{--ba-cols:2}
	.td-docs{grid-template-columns:1fr 1fr}
	.td-docs[data-count="1"]{grid-template-columns:minmax(0,360px)}
	.td-frow--reverse .td-frow__media{order:0}
	.td-journey__layout{grid-template-columns:1fr 1fr}
	.td-journey__centre{grid-column:1 / -1;order:-1;max-width:460px;margin:0 auto var(--s-4)}
	.td-journey__centre::before{padding-top:64%}
	.td-journey__col{padding-block:0}
}
@media (max-width:600px){
	.td-team__grid{grid-template-columns:1fr}
	.td-team__grid--few{grid-template-columns:1fr}
	.td-ba-grid{--ba-cols:1}
	.td-journey__layout{grid-template-columns:1fr}
	/* Our dentists on mobile: a compact media-object row. The photo sits beside
	   the text and stretches to the card's height (rather than forcing a tall
	   fixed-ratio block), so the layout stays neat whatever the text length.
	   The bio is hidden here to keep each row short and scannable; the full bio
	   remains on the clinician's profile. Photo and video control stay visible. */
	.td-docs{grid-template-columns:1fr;gap:var(--s-4)}
	.td-doc-card{flex-direction:row;align-items:stretch;min-height:168px}
	.td-doc-card__photo{flex:0 0 34%;max-width:128px;width:auto;aspect-ratio:auto;align-self:stretch}
	@supports not (aspect-ratio: 1 / 1){.td-doc-card__photo::before{content:none;padding-top:0}}
	.td-doc-card__bio{display:none}
	.td-doc-card__lead{font-size:.75rem;padding:.28rem .5rem;top:.5rem;left:.5rem}
	.td-doc-card__play{width:38px;height:38px;right:.5rem;bottom:.5rem}
	.td-doc-card__play::after{border-left-width:10px;border-top-width:6px;border-bottom-width:6px}
	.td-doc-card__body{padding:var(--s-4);justify-content:center}
	.td-doc-card__name{font-size:1.2rem}
	.td-doc-card__role{margin-bottom:var(--s-2)}
	.td-doc-card__quals{margin-bottom:var(--s-3)}
	.td-doc-card__quals li{font-size:.82rem}
	.td-doc-card__links{margin-top:0}
	/* Our clinic gallery: arrows centred over the strip, next image peeking */
	.td-gallery-viewport{position:relative}
	.td-gallery-nav{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);justify-content:space-between;margin:0;padding:0 .3rem;z-index:5;pointer-events:none}
	.td-gallery-nav button{pointer-events:auto;width:42px;height:42px;background:rgba(28,42,58,.55);border-color:rgba(255,255,255,.75)}
	.td-gtile{flex-basis:80vw}
}

/* =============================================================================
   Treatment CATEGORY blocks (cosmetic-dentistry style hub)
   Reuses hero, feature rows, patient story, FAQ from above; adds the blocks
   below. Shared stylesheet enqueued on both detail and category templates.
   ============================================================================= */

/* ---- bento card grid (benefits / treatments-with-child-links) ---- */
.td-bento{padding-block:var(--section-y)}
.td-bento__grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:var(--s-4)}
.td-bento__card{border:1px solid var(--hairline);border-radius:var(--radius);padding:var(--s-6);background:#fff;display:flex;flex-direction:column;text-decoration:none;color:inherit}
.td-bento__icon{width:34px;height:34px;color:var(--barley);margin-bottom:var(--s-5)}
.td-bento__icon svg{width:100%;height:100%}
.td-bento__card h3,.td-bento__feature h3{font-family:var(--font-display);font-size:var(--fs-h3);line-height:1.15;margin:0 0 .6rem}
.td-bento__card p,.td-bento__feature p{color:var(--ink-muted);margin:0 0 var(--s-4);font-size:var(--fs-body)}
.td-bento__card .td-link,.td-bento__feature .td-link{margin-top:auto}
.td-bento__card:hover h3,.td-bento__feature:hover h3{color:var(--barley-dark)}
.td-bento__feature{border:1px solid var(--hairline);border-radius:var(--radius);background:#fff;overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit;grid-row:span 2}
.td-bento__feature .td-bento__body{padding:var(--s-6);display:flex;flex-direction:column;flex:1}
.td-bento__feature .td-eyebrow{margin-bottom:.5rem}
.td-bento__media{position:relative;background:var(--mirage);overflow:hidden}
.td-bento__media::before{content:"";display:block;padding-top:64%}
.td-bento__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.td-bento__feature:hover .td-bento__media img{transform:scale(1.04)}
.td-bento--feature-right .td-bento__feature{grid-column:2;grid-row:1 / span 2}
.td-bento--feature-right .td-bento__card:nth-of-type(1){grid-column:1;grid-row:1}
.td-bento--feature-right .td-bento__card:nth-of-type(2){grid-column:1;grid-row:2}
.td-bento--feature-left .td-bento__feature{grid-column:1;grid-row:1 / span 2}
.td-bento--feature-left .td-bento__card:nth-of-type(1){grid-column:2;grid-row:1}
.td-bento--feature-left .td-bento__card:nth-of-type(2){grid-column:2;grid-row:2}
.td-bento--img-top .td-bento__media{order:0}
.td-bento--img-top .td-bento__body{order:1}
.td-bento--img-bottom .td-bento__media{order:1}
.td-bento--img-bottom .td-bento__body{order:0}

/* bento: link-card treatment (clear signpost to treatment pages) + tint */
.td-bento--tint{background:var(--cream)}
.td-bento--links .td-bento__card,.td-bento--links .td-bento__feature{position:relative;transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease)}
.td-bento--links .td-bento__card:hover,.td-bento--links .td-bento__feature:hover{transform:translateY(-4px);box-shadow:0 18px 40px -24px rgba(28,42,58,.5);border-color:var(--barley)}
.td-bento__arrow{position:absolute;top:var(--s-4);right:var(--s-4);z-index:2;width:36px;height:36px;border-radius:50%;border:1px solid var(--hairline);background:rgba(255,255,255,.92);display:grid;place-items:center;color:var(--barley-dark);transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}
.td-bento__arrow svg{width:16px;height:16px}
.td-bento--links .td-bento__card:hover .td-bento__arrow,.td-bento--links .td-bento__feature:hover .td-bento__arrow{background:var(--barley);color:#fff;border-color:var(--barley)}
.td-bento__cta{color:var(--barley-dark);font-weight:600}


/* ---- trust band (gold, text + checklist + image) ---- */
.td-trust{background:var(--barley);color:#fff;padding-block:var(--section-y)}
.td-trust__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-7);align-items:center}
.td-trust__eyebrow{font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.75);margin:0 0 .5rem}
.td-trust h2{font-family:var(--font-display);font-size:var(--fs-h1);line-height:1.1;color:#fff;margin:0 0 var(--s-3)}
.td-trust p{color:rgba(255,255,255,.85);margin:0 0 var(--s-4);max-width:48ch}
.td-trust__list{list-style:none;margin:0 0 var(--s-5);padding:0;display:grid;gap:.7rem}
.td-trust__list li{display:flex;gap:.6rem;align-items:flex-start;color:#fff;font-size:var(--fs-body)}
.td-trust__list svg{width:16px;height:16px;flex:none;margin-top:.2rem;color:#fff;opacity:.9}
.td-trust__media{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--mirage)}
.td-trust__media::before{content:"";display:block;padding-top:84%}
.td-trust__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ---- step cards (process as image cards) ---- */
.td-stepcards{padding-block:var(--section-y)}
.td-stepcards__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-4)}
.td-stepcard{border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden;background:#fff;display:flex;flex-direction:column}
.td-stepcard__media{position:relative;background:var(--mirage)}
.td-stepcard__media::before{content:"";display:block;padding-top:72%}
.td-stepcard__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.td-stepcard__body{padding:var(--s-5);display:flex;flex-direction:column;flex:1}
.td-stepcard h3{font-family:var(--font-display);font-size:1.25rem;line-height:1.2;margin:0 0 .4rem;color:var(--barley-dark)}
.td-stepcard p{color:var(--ink-muted);font-size:.88rem;margin:0 0 var(--s-3)}
.td-stepcard .td-link{margin-top:auto}

/* ---- testimonial (gold, video + quote) ---- */
.td-testimonial{background:var(--barley);color:#fff;padding-block:var(--section-y)}
.td-testimonial__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--s-7);align-items:center}
.td-testimonial__media{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--mirage)}
.td-testimonial__media::before{content:"";display:block;padding-top:100%}
.td-testimonial__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.td-testimonial__play{position:absolute;inset:0;margin:auto;width:64px;height:64px;border-radius:50%;border:2px solid #fff;background:rgba(28,42,58,.35);display:grid;place-items:center}
.td-testimonial__play::after{content:"";border-left:18px solid #fff;border-top:11px solid transparent;border-bottom:11px solid transparent;margin-left:4px}
.td-testimonial__stars{letter-spacing:.25em;font-size:1rem;margin:0 0 var(--s-4)}
.td-testimonial__quote{font-family:var(--font-display);font-size:clamp(1.4rem,1rem + 1.4vw,2rem);line-height:1.35;color:#fff;margin:0 0 var(--s-5)}
.td-testimonial__by{display:flex;align-items:center;gap:var(--s-4);font-size:.9rem;color:rgba(255,255,255,.8)}
.td-testimonial__by b{color:#fff;display:block;font-weight:600}
.td-testimonial__logo{padding-left:var(--s-4);border-left:1px solid rgba(255,255,255,.35);font-weight:600;color:#fff}

/* ---- closing, gold variant (no photo) ---- */
.td-closing--gold{min-height:0}
.td-closing--gold .td-closing__bg{display:none}
.td-closing--gold{background:var(--barley)}
.td-closing--gold.td-closing--navy{background:var(--mirage)}

/* ---- category responsive ---- */
@media (max-width:980px){
	.td-trust__grid,.td-testimonial__grid{grid-template-columns:1fr}
	.td-stepcards__grid{grid-template-columns:1fr 1fr}
	.td-bento__grid{grid-template-columns:1fr;grid-auto-rows:auto}
	.td-bento--feature-right .td-bento__feature,.td-bento--feature-left .td-bento__feature,
	.td-bento--feature-right .td-bento__card,.td-bento--feature-left .td-bento__card{grid-column:1 !important;grid-row:auto !important}
	.td-bento--feature-left .td-bento__feature{order:-1}
}
@media (max-width:600px){
	.td-stepcards__grid{grid-template-columns:1fr}
}

/* Video embed (treatment pages) */
.td-video{padding-block:var(--section-y)}
.td-video__frame{position:relative;max-width:900px;margin:0 auto;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;background:var(--mirage);box-shadow:0 20px 50px rgba(28,42,58,.16)}
.td-video__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Reviews (Trustindex) */
.td-reviews{padding-block:var(--section-y);background:#fbfaf8;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}
.td-reviews__widget{max-width:var(--content-max);margin:0 auto}

/* Quick facts strip (treatment pages) */
.td-facts{padding:var(--s-5) 0;border-bottom:1px solid var(--hairline)}
.td-facts__row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s-4)}
.td-facts__item{display:flex;flex-direction:column;gap:.35rem;text-align:center;padding:0 var(--s-2)}
.td-facts__item+.td-facts__item{border-left:1px solid var(--hairline)}
.td-facts__label{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--barley-dark)}
.td-facts__value{font-family:var(--font-display);font-size:1.5rem;line-height:1.1;color:var(--ink)}
@media (max-width:820px){
	.td-facts__row{grid-template-columns:repeat(2,1fr);gap:var(--s-3) var(--s-4);text-align:left}
	.td-facts__item{text-align:left;padding:0}
	.td-facts__item+.td-facts__item{border-left:0}
}

/* Highlights list */
.td-highlights{padding-block:var(--section-y);background:var(--cream)}
.td-highlights__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2rem,1rem + 3vw,4.5rem);align-items:center}
.td-highlights__grid--single{grid-template-columns:minmax(0,820px);justify-content:start}
.td-highlights__media{margin:0;border-radius:var(--radius);overflow:hidden;aspect-ratio:41/52;box-shadow:0 20px 50px rgba(28,42,58,.16)}
.td-highlights__media img{width:100%;height:100%;object-fit:cover;display:block}
.td-highlights__heading{font-family:var(--font-display);font-size:var(--fs-h1);line-height:1.1;margin:var(--s-2) 0 var(--s-5);max-width:24ch}
.td-highlights .td-eyebrow{margin-bottom:var(--s-2)}
.td-highlights__list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-3)}
.td-highlights__list li{display:flex;align-items:flex-start;gap:.75rem;font-size:var(--fs-body);color:var(--ink);line-height:1.5}
.td-highlights__list svg{width:20px;height:20px;flex:none;margin-top:.2rem;color:var(--barley);stroke-width:2.2}
/* Why choose us: each point is its own white card with a gold badge, so the
   list reads as a set of reasons rather than a flat run of ticks (Sean, 9 Oct 2026). */
.td-highlights .td-highlights__list{gap:.75rem}
.td-highlights .td-highlights__list li{align-items:center;gap:1rem;background:#fff;border:1px solid var(--hairline);border-left:3px solid var(--barley);border-radius:var(--radius-sm,10px);padding:.95rem 1.25rem;box-shadow:0 8px 22px rgba(28,42,58,.06);transition:transform .25s ease,box-shadow .25s ease}
.td-highlights .td-highlights__list li:hover{transform:translateX(4px);box-shadow:0 12px 28px rgba(28,42,58,.1)}
.td-highlights__icon{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--barley);color:#fff}
.td-highlights .td-highlights__icon svg{width:18px;height:18px;margin:0;color:#fff;stroke-width:2.4}
.td-highlights__text{font-weight:500;line-height:1.45}
@media (prefers-reduced-motion:reduce){.td-highlights .td-highlights__list li{transition:none}.td-highlights .td-highlights__list li:hover{transform:none}}

/* Body content article + table of contents */
.td-body{padding-block:var(--section-y)}
.td-body__grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--s-7);align-items:start;max-width:var(--content-max);margin:0 auto}
.td-body__grid--single{grid-template-columns:minmax(0,760px);justify-content:center}
.td-body__toc{position:sticky;top:110px;font-size:.9rem}
.td-body__toc-title{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--barley-dark);margin:0 0 var(--s-3)}
.td-body__toc ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem;border-left:1px solid var(--hairline)}
.td-body__toc li{padding-left:var(--s-3)}
.td-body__toc a{color:var(--ink-muted);text-decoration:none;line-height:1.35;display:inline-block;transition:color .2s var(--ease)}
.td-body__toc a:hover{color:var(--ink)}
.td-rte{color:var(--ink);font-size:var(--fs-body);line-height:1.7}
.td-rte h2{font-family:var(--font-display);font-weight:500;font-size:var(--fs-h2);line-height:1.15;margin:var(--s-6) 0 var(--s-3);scroll-margin-top:110px}
.td-rte h2:first-child{margin-top:0}
.td-rte h3{font-family:var(--font-display);font-weight:500;font-size:var(--fs-h3);margin:var(--s-5) 0 var(--s-2);color:var(--barley-dark)}
.td-rte h4,.td-rte h5,.td-rte h6{font-weight:600;color:var(--barley-dark);margin:var(--s-4) 0 var(--s-2)}
.td-rte p{margin:0 0 var(--s-3);color:var(--ink-muted)}
.td-rte a{color:var(--barley-dark);text-decoration:underline;text-underline-offset:2px}
.td-rte a:hover{color:var(--ink)}
.td-rte ul,.td-rte ol{margin:0 0 var(--s-3);padding-left:0;list-style:none}
.td-rte ul li{position:relative;padding-left:1.4rem;margin-bottom:var(--s-2);color:var(--ink-muted)}
.td-rte ul li::before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--barley)}
.td-rte ol{counter-reset:li;padding-left:0}
.td-rte ol li{position:relative;padding-left:1.8rem;margin-bottom:var(--s-2);counter-increment:li;color:var(--ink-muted)}
.td-rte ol li::before{content:counter(li);position:absolute;left:0;top:0;color:var(--barley-dark);font-weight:600}
@media (max-width:820px){
	.td-body__grid{grid-template-columns:1fr}
	.td-body__toc{position:static;border:1px solid var(--hairline);border-radius:var(--radius-sm);padding:var(--s-3)}
	.td-body__toc ul{border-left:0}
	.td-body__toc li{padding-left:0}
}

/* Hero USP bullets */
.td-hero__usps{list-style:none;margin:var(--s-4) 0 var(--s-4);padding:0;display:grid;gap:.65rem;max-width:60ch}
.td-hero__usps li{display:flex;align-items:flex-start;gap:.6rem;color:rgba(255,255,255,.92);font-size:var(--fs-body);line-height:1.5;font-weight:400}
.td-hero__usps li strong{font-weight:600;color:#fff}
.td-hero__usps svg{width:18px;height:18px;flex:none;margin-top:.2rem;color:var(--barley-light)}

/* Smile gallery intro: allow a wider measure */
.td-ba-sec .td-head{max-width:none}
.td-ba-sec .td-head p{max-width:92ch;margin-left:auto;margin-right:auto}

/* Video sitting inside the body column */
.td-body__content .td-video__frame{margin:0 0 var(--s-5);max-width:none;box-shadow:0 14px 36px rgba(28,42,58,.14)}

/* Related articles */
.td-related{padding-block:var(--section-y)}
.td-related__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-4);margin-top:var(--s-5)}
.td-related__card{display:flex;flex-direction:column;text-decoration:none;color:inherit;border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden;background:#fff;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.td-related__card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(28,42,58,.12)}
.td-related__media{display:block;aspect-ratio:16/10;overflow:hidden}
.td-related__media img{width:100%;height:100%;object-fit:cover;display:block}
.td-related__meta{padding:var(--s-3) var(--s-3) 0;font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--barley-dark)}
.td-related__title{padding:.4rem var(--s-3) 0;font-family:var(--font-display);font-size:1.25rem;line-height:1.25;color:var(--ink)}
.td-related__excerpt{padding:.5rem var(--s-3) 0;font-size:var(--fs-body);color:var(--ink-muted);line-height:1.6;flex:1}
.td-related__link{padding:var(--s-3);font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--barley-dark)}
.td-related__link span{color:var(--barley)}
@media (max-width:900px){.td-related__grid{grid-template-columns:1fr}}
/* Related treatments: a horizontal swipe strip on phones (cards peek at the edge). */
@media (max-width:640px){
	.td-related--treatments .td-related__grid{display:flex;grid-template-columns:none;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:var(--s-3);margin-inline:calc(var(--gutter) * -1);padding:0 var(--gutter) .5rem;scroll-padding-left:var(--gutter);scrollbar-width:none}
	.td-related--treatments .td-related__grid::-webkit-scrollbar{display:none}
	.td-related--treatments .td-related__card{flex:0 0 78%;scroll-snap-align:start}
}

/* Sticky booking bar, phones only */
.td-stickybar{display:none}
@media (max-width:768px){
	.td-stickybar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;gap:.625rem;padding:.625rem var(--gutter) calc(.625rem + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--hairline);box-shadow:0 -6px 20px rgba(28,42,58,.1)}
	.td-stickybar__book,.td-stickybar__book:hover,.td-stickybar__book:visited{flex:1 1 0;justify-content:center;text-align:center;color:#fff;background:var(--green);border:1.5px solid var(--green)}
	.td-stickybar__book:hover{background:var(--green-dark);border-color:var(--green-dark)}
	.td-stickybar__call{flex:1 1 0;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1rem;border:1.5px solid var(--mirage);border-radius:999px;font-family:var(--font-body);font-size:.9375rem;font-weight:600;line-height:1;color:var(--mirage);text-decoration:none}
	.td-stickybar__call svg{width:18px;height:18px;flex:none;color:var(--barley)}
	.td-stickybar__call span{white-space:nowrap;font-variant-numeric:tabular-nums}
	/* Reserve clearance for the fixed bar on the navy footer, not on the white body,
	   so nothing shows a white strip below the footer when scrolled to the bottom. */
	.site-footer{padding-bottom:calc(var(--s-5) + 72px)}
}

/* Map and location row */
.td-map{padding-block:var(--section-y);background:var(--mirage);color:#fff}
.td-map .td-eyebrow{color:var(--barley-light)}
.td-map .gold-rule{background:var(--barley-light)}
.td-map .btn--secondary{border-color:rgba(255,255,255,.5);color:#fff;background:transparent}
.td-map .btn--secondary:hover{background:rgba(255,255,255,.12);border-color:#fff}
.td-map__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(2rem, 1rem + 3vw, 4rem);align-items:center}
.td-map__heading{font-family:var(--font-display);font-weight:500;font-size:var(--fs-h2);line-height:1.15;margin:var(--s-2) 0 var(--s-3);color:#fff}
.td-map__sub{color:rgba(255,255,255,.82);font-size:var(--fs-body);margin:0 0 var(--s-4);max-width:48ch}
.td-map__facts{margin:0 0 var(--s-4);display:grid;gap:var(--s-3)}
.td-map__facts div{display:grid;gap:.2rem}
.td-map__facts dt{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--barley-light)}
.td-map__facts dd{margin:0;color:rgba(255,255,255,.9);font-size:var(--fs-body);line-height:1.6}
.td-map__facts dd a{color:#fff;text-decoration:none}
.td-map__facts dd a:hover{color:var(--barley-light)}
.td-map__actions{display:flex;gap:var(--s-3);flex-wrap:wrap}
.td-map__embed{position:relative;aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.td-map__embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media (max-width:900px){
	.td-map__grid{grid-template-columns:1fr}
	.td-map__embed{aspect-ratio:16/11}
}
/* On a phone the two buttons overflow the row by a couple of pixels and wrap
   awkwardly. Stack them full width, matching the hero and the sticky bar. */
@media (max-width:520px){
	.td-map__actions{flex-direction:column;align-items:stretch}
	.td-map__actions .btn{width:100%;justify-content:center}
}

@media (max-width:900px){
	.td-highlights__grid{grid-template-columns:1fr}
	.td-highlights__media{order:-1;max-width:340px;margin:0 auto var(--s-4)}
}

/* ==========================================================================
   Hero enquiry form (Gravity Forms)
   Desktop: a card in the right column of the hero.
   Mobile: collapsed behind the "Request a call back" button, revealed below it.
   ========================================================================== */

.td-hero__formtoggle{display:flex;width:100%;align-items:center;justify-content:center;gap:.55rem;margin-top:var(--s-5);background:var(--green);color:#fff;border:1.5px solid var(--green);cursor:pointer;font:inherit;font-weight:600;text-align:center}
.td-hero__formtoggle:hover{background:var(--green-dark);border-color:var(--green-dark)}
.td-hero__formtoggle svg{width:16px;height:16px;flex:none;transition:transform .25s var(--ease)}
.td-hero__formtoggle.is-open svg{transform:rotate(180deg)}

.td-hero__aside{display:none}
.td-hero__aside{scroll-margin-top:100px}
.td-hero__aside.is-open,
.td-hero__aside:target{display:block;animation:tdHeroFormIn .28s var(--ease) both}

@keyframes tdHeroFormIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
	.td-hero__aside.is-open{animation:none}
	.td-hero__formtoggle svg{transition:none}
}

@media (min-width:1020px){
	.td-hero__formtoggle{display:none}
	.td-hero__aside{display:block}
}

.td-hero__form{background:#fff;color:var(--mirage);border-radius:var(--radius);border-top:3px solid var(--barley);padding:var(--s-4) var(--s-5) var(--s-5);box-shadow:0 24px 60px rgba(12,20,29,.32)}
@media (min-width:1020px){.td-hero__form{padding:var(--s-5) var(--s-6) var(--s-6)}}

/* --- Gravity Forms, scoped to the hero card ------------------------------- */

.td-hero__form .gform_wrapper{margin:0}
.td-hero__form .gform_wrapper form{margin:0}
.td-hero__form .gform_heading,
.td-hero__form .gform_required_legend{display:none}

.td-hero__form .gform_fields{display:grid;grid-template-columns:1fr;gap:.7rem;margin:0;padding:0;list-style:none}
.td-hero__form .gfield{margin:0;padding:0}
.td-hero__form .gfield--width-half{grid-column:span 1}
@media (min-width:520px){
	.td-hero__form .gform_fields{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:.7rem}
	.td-hero__form .gfield{grid-column:1 / -1}
	.td-hero__form .gfield--width-half{grid-column:span 1}
}

.td-hero__form .gfield_label{display:block;font-size:.75rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 .28rem}
.td-hero__form .gfield_required{color:var(--barley);margin-left:.15rem}

.td-hero__form input[type=text],
.td-hero__form input[type=email],
.td-hero__form input[type=tel],
.td-hero__form input[type=url],
.td-hero__form input[type=number],
.td-hero__form input[type=date],
.td-hero__form select,
.td-hero__form textarea{
	width:100%;box-sizing:border-box;font:inherit;font-size:var(--fs-body);color:var(--mirage);
	background:#fff;border:1px solid var(--mirage-12);border-radius:6px;padding:.72rem .85rem;
	transition:border-color .18s var(--ease),box-shadow .18s var(--ease)
}
.td-hero__form textarea{min-height:84px;resize:vertical}
.td-hero__form select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231C2A3A' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;background-size:15px;padding-right:2.4rem}
.td-hero__form input:focus,
.td-hero__form select:focus,
.td-hero__form textarea:focus{outline:0;border-color:var(--barley);box-shadow:0 0 0 3px rgba(164,134,98,.18)}
.td-hero__form ::placeholder{color:rgba(28,42,58,.45)}

.td-hero__form .gfield_description{font-size:.76rem;color:var(--ink-muted);margin-top:.25rem;padding:0}
.td-hero__form .gfield_consent_label,
.td-hero__form .gchoice label{font-size:.85rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink-muted)}
.td-hero__form .gchoice{display:flex;align-items:flex-start;gap:.5rem}
.td-hero__form .gchoice input{margin-top:.2rem;accent-color:var(--barley)}

.td-hero__form .gform_footer{margin:var(--s-3) 0 0;padding:0}
.td-hero__form .gform_footer input[type=submit],
.td-hero__form .gform_footer button,
.td-hero__form .gform_button{
	width:100%;display:inline-block;font:inherit;font-weight:600;font-size:.95rem;cursor:pointer;
	background:var(--green);color:#fff;border:0;border-radius:6px;padding:.9rem 1.4rem;
	transition:background .18s var(--ease),transform .18s var(--ease)
}
.td-hero__form .gform_footer input[type=submit]:hover,
.td-hero__form .gform_footer button:hover,
.td-hero__form .gform_button:hover{background:var(--green-dark);transform:translateY(-1px)}
.td-hero__form .gform_footer input[type=submit]:focus-visible{outline:2px solid var(--mirage);outline-offset:2px}

/* validation and confirmation */
.td-hero__form .gform_validation_errors{background:#FDF3F2;border:1px solid #E4B4AE;border-radius:6px;padding:.8rem 1rem;margin:0 0 var(--s-4);box-shadow:none}
.td-hero__form .gform_validation_errors h2,
.td-hero__form .gform_validation_errors ol,
.td-hero__form .gform_submission_error{font-size:.88rem;color:#8A2B21;margin:0;font-family:inherit;font-weight:600}
.td-hero__form .gfield_error input,
.td-hero__form .gfield_error select,
.td-hero__form .gfield_error textarea{border-color:#C9584B}
.td-hero__form .validation_message{font-size:.78rem;color:#8A2B21;margin-top:.3rem;background:none;border:0;padding:0}
.td-hero__form .gform_confirmation_message{font-size:var(--fs-body);color:var(--mirage);line-height:1.6}
.td-hero__form .gform_ajax_spinner{margin-left:.6rem;vertical-align:middle}

/* Gravity's own theme adds generous padding we do not want inside the card */
.td-hero__form .gform_wrapper.gravity-theme .gform_fields{grid-row-gap:.7rem;grid-column-gap:.7rem}
.td-hero__form .gform_wrapper.gravity-theme .gfield{padding:0}
.td-hero__form .gform_wrapper.gravity-theme .gform_footer{padding:0}


/* --------------------------------------------------------------------------
   Gravity Forms overrides, hero card only.

   Gravity ships two style systems. The 2.5 "gravity-theme" stylesheet, and the
   2.7+ theme framework (Orbital), which paints the submit button from its own
   CSS custom properties rather than from plain declarations. That is why the
   button stayed Gravity blue while our background rule looked correct: the
   framework rule is more specific and reads --gf-ctrl-btn-bg-color-primary.

   So we do both. Set the custom properties for the framework, and keep a blunt
   !important fallback for the older markup. Everything is scoped to
   .td-hero__form, so forms elsewhere on the site are untouched.
   -------------------------------------------------------------------------- */

.td-hero__form .gform_wrapper,
.td-hero__form .gform-theme,
.td-hero__form .gform-theme--framework,
.td-hero__form .gform-theme--foundation,
.td-hero__form .gform-theme--orbital{
	/* brand colours */
	--gf-color-primary:var(--green);
	--gf-color-primary-rgb:46,107,79;
	--gf-color-primary-contrast:#fff;
	--gf-color-primary-contrast-rgb:255,255,255;
	--gf-color-primary-darker:var(--green-dark);
	--gf-color-primary-lighter:#3a8462;

	/* primary button */
	--gf-ctrl-btn-bg-color-primary:var(--green);
	--gf-ctrl-btn-bg-color-hover-primary:var(--green-dark);
	--gf-ctrl-btn-bg-color-focus-primary:var(--green-dark);
	--gf-ctrl-btn-bg-color-active-primary:var(--green-dark);
	--gf-ctrl-btn-border-color-primary:var(--green);
	--gf-ctrl-btn-border-color-hover-primary:var(--green-dark);
	--gf-ctrl-btn-border-color-focus-primary:var(--green-dark);
	--gf-ctrl-btn-color-primary:#fff;
	--gf-ctrl-btn-color-hover-primary:#fff;
	--gf-ctrl-btn-color-focus-primary:#fff;
	--gf-ctrl-btn-size-primary:auto;

	/* field rhythm */
	--gf-form-gap-y:.55rem;
	--gf-form-gap-x:.55rem;
	--gf-field-gap-y:.2rem;
	--gform-theme-field-row-gap:.55rem;
	--gform-theme-field-column-gap:.55rem;
	--gf-label-space-y-secondary:.2rem;
}

/* Submit, every markup variant Gravity has shipped. */
.td-hero__form .gform_wrapper .gform_footer input[type=submit],
.td-hero__form .gform_wrapper .gform_footer button,
.td-hero__form .gform_wrapper .gform-footer input[type=submit],
.td-hero__form .gform_wrapper .gform-footer button,
.td-hero__form .gform_wrapper input.gform_button,
.td-hero__form .gform_wrapper button.gform_button{
	width:100%;
	background:var(--green) !important;
	background-image:none !important;
	border:1.5px solid var(--green) !important;
	color:#fff !important;
	box-shadow:none !important;
	border-radius:999px !important;
	padding:.9rem 1.4rem !important;
	font-family:var(--font-body) !important;
	font-weight:600 !important;
	font-size:.9375rem !important;
	line-height:1 !important;
	cursor:pointer;
}
.td-hero__form .gform_wrapper .gform_footer input[type=submit]:hover,
.td-hero__form .gform_wrapper .gform_footer button:hover,
.td-hero__form .gform_wrapper .gform-footer input[type=submit]:hover,
.td-hero__form .gform_wrapper .gform-footer button:hover,
.td-hero__form .gform_wrapper input.gform_button:hover,
.td-hero__form .gform_wrapper button.gform_button:hover{
	background:var(--green-dark) !important;
	border-color:var(--green-dark) !important;
}

/* Field rhythm, both grid systems. */
.td-hero__form .gform_wrapper .gform_fields{
	row-gap:.55rem !important;
	column-gap:.55rem !important;
	grid-row-gap:.55rem !important;
	grid-column-gap:.55rem !important;
}
.td-hero__form .gform_wrapper .gfield{margin-bottom:0 !important;padding-bottom:0 !important}

/* Column layout. Gravity's framework lays fields on a 12-column grid; ours is a
   simple two-column card, so we take the grid outright rather than rely on
   source order beating a more specific framework selector. */
.td-hero__form .gform_wrapper .gform_fields{grid-template-columns:1fr !important}
@media (min-width:520px){
	.td-hero__form .gform_wrapper .gform_fields{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
	.td-hero__form .gform_wrapper .gfield{grid-column:1 / -1 !important}
	.td-hero__form .gform_wrapper .gfield--width-half{grid-column:span 1 !important}
}
.td-hero__form .gform_wrapper .gfield_label{margin-bottom:.24rem !important}
.td-hero__form .gform_wrapper .gform_footer,
.td-hero__form .gform_wrapper .gform-footer{margin:.75rem 0 0 !important;padding:0 !important}
.td-hero__form .gform_wrapper .ginput_container{margin-top:0 !important}


/* ==========================================================================
   Click-to-load embeds
   ========================================================================== */

.td-video__facade{position:relative;cursor:pointer;background:var(--mirage);overflow:hidden;border-radius:var(--radius)}
.td-video__poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease),opacity .3s var(--ease)}
.td-video__facade::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,42,58,.15),rgba(28,42,58,.45))}
.td-video__facade:hover .td-video__poster{transform:scale(1.03)}
.td-video__play{position:absolute;left:50%;top:50%;translate:-50% -50%;z-index:2;width:76px;height:76px;border-radius:50%;border:2px solid var(--barley);background:rgba(28,42,58,.55);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .2s var(--ease),transform .2s var(--ease)}
.td-video__play svg{width:30px;height:30px;margin-left:3px}
.td-video__play:hover{background:var(--barley);transform:scale(1.06)}
.td-video__play:focus-visible{outline:3px solid #fff;outline-offset:3px}

.td-map__facade{display:grid;place-items:center;background:linear-gradient(160deg,#22344a,var(--mirage))}
.td-map__placeholder{text-align:center;color:#fff;padding:var(--s-5);max-width:34ch}
.td-map__placeholder svg{width:44px;height:44px;color:var(--barley-light);margin-bottom:var(--s-3)}
.td-map__placeholder-addr{font-size:var(--fs-body);color:rgba(255,255,255,.9);margin:0 0 var(--s-4)}
.td-map__placeholder-note{font-size:.75rem;color:rgba(255,255,255,.6);margin:var(--s-3) 0 0}
.td-map__load{cursor:pointer;border:0}

@media (prefers-reduced-motion:reduce){
	.td-video__facade:hover .td-video__poster{transform:none}
	.td-video__play:hover{transform:none}
}

/* Below-fold sections: let the browser skip layout until they approach the
   viewport. contain-intrinsic-size keeps the scrollbar honest so there is no
   layout shift when they come into range. */
.td-reviews,.td-related,.td-map{content-visibility:auto;contain-intrinsic-size:auto 600px}

/* Related treatments reuses the article card; only the portrait crop differs. */
.td-related--treatments .td-related__media{aspect-ratio:4/3}
.td-related--conditions .td-related__title{padding-top:var(--s-4)}
.td-related--conditions .td-related__card{justify-content:space-between}
.td-related--treatments{background:var(--cream)}
.td-related--treatments .td-related__card{background:#fff}

/* Case study: contextual link back to the treatment page. */
.bacase-txlink{margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--hairline);font-size:var(--fs-body);color:var(--ink-muted)}
.bacase-txlink a{color:var(--barley-dark);text-decoration:underline;text-underline-offset:3px}


/* --------------------------------------------------------------------------
   Structural rules Gravity's stylesheet used to supply.

   v0.40.0 dequeued Gravity's CSS on treatment pages, which was right for page
   weight but threw out more than the paint. Gravity hides its honeypot, its
   hidden fields and its admin-only fields purely through CSS. Without those
   rules they render as empty grid rows, which is the blank block that appeared
   between the phone field and the captcha.

   So the visual overrides above stay, and these come back.
   -------------------------------------------------------------------------- */

.td-hero__form .gform_wrapper .gform_hidden,
.td-hero__form .gform_wrapper .gfield--type-hidden,
.td-hero__form .gform_wrapper .gfield_visibility_hidden,
.td-hero__form .gform_wrapper .gfield--type-honeypot,
.td-hero__form .gform_wrapper .gform_validation_container,
.td-hero__form .gform_wrapper .gfield.gform_validation_container,
.td-hero__form .gform_wrapper .gform_fields .gform_validation_container{
	display:none !important;
	position:absolute !important;
	left:-9999px !important;
}
.td-hero__form .gform_wrapper input[type=hidden]{display:none !important}

/* Screen-reader-only text, not visually-hidden text. */
.td-hero__form .gform_wrapper .screen-reader-text,
.td-hero__form .gform_wrapper .gform_hidden_label,
.td-hero__form .gform_wrapper .hidden_label > .gfield_label{
	position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
	clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* Invisible reCAPTCHA has no visible widget, so the "CAPTCHA" label is noise.
   A v2 checkbox widget still renders, it just loses the redundant label. */
.td-hero__form .gform_wrapper .gfield--type-captcha .gfield_label{display:none}
.td-hero__form .gform_wrapper .ginput_recaptcha:empty{display:none}
.td-hero__form .gform_wrapper .gfield--type-captcha:has(.ginput_recaptcha[data-size=invisible]){display:none}
.td-hero__form .grecaptcha-badge{visibility:hidden}

/* Required marker, in brand rather than Gravity's red. */
.td-hero__form .gform_wrapper .gfield_required{
	color:var(--barley-dark);font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
}

/* Validation. Gravity's CSS carried all of this. */
.td-hero__form .gform_wrapper .gform_validation_errors{
	margin:0 0 var(--s-4);padding:.7rem .9rem;border-radius:var(--radius-sm);
	background:#fdecea;border:1px solid #e5b4ae;color:#8c2016;font-size:.85rem;
}
.td-hero__form .gform_wrapper .gform_validation_errors h2{
	font-family:var(--font-body);font-size:.85rem;font-weight:600;margin:0;color:inherit;
}
.td-hero__form .gform_wrapper .gfield_error .gfield_label{color:#8c2016}
.td-hero__form .gform_wrapper .gfield_error input,
.td-hero__form .gform_wrapper .gfield_error select,
.td-hero__form .gform_wrapper .gfield_error textarea{border-color:#c0392b}
.td-hero__form .gform_wrapper .validation_message{
	margin-top:.3rem;font-size:.78rem;line-height:1.4;color:#8c2016;
}

/* Confirmation, after an AJAX submit replaces the form. */
.td-hero__form .gform_confirmation_wrapper,
.td-hero__form .gform_confirmation_message{
	font-size:var(--fs-body);line-height:1.6;color:var(--mirage);text-align:center;padding:var(--s-4) 0;
}

/* AJAX spinner, sat next to the submit. */
.td-hero__form .gform_wrapper .gform_ajax_spinner{
	width:20px;height:20px;margin-left:.65rem;vertical-align:middle;
	border:2px solid var(--barley-light);border-top-color:var(--barley-dark);border-radius:50%;
	animation:wsdcSpin .7s linear infinite;
}
@keyframes wsdcSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
	.td-hero__form .gform_wrapper .gform_ajax_spinner{animation-duration:2s}
}

/* Patient story feature row (auto-injected on treatment pages) -------------- */
/* Presented as inline content, not a boxed card: image beside the quote and
   the treating dentist, with a text link through to the full story. */
.td-pstory-feature{padding-block:var(--section-y);background:#f7f4ef}
.td-pstory-feature__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.75rem,1rem + 3vw,4rem);align-items:center;margin-top:var(--s-5)}
.td-pstory-feature__media{display:block;border-radius:var(--radius);overflow:hidden;background:rgba(28,42,58,.05);box-shadow:0 18px 40px -28px rgba(28,42,58,.45)}
/* The image keeps its own aspect ratio (before/after side-by-sides are wide). */
.td-pstory-feature__media img{width:100%;height:auto;display:block;transition:transform .4s var(--ease)}
.td-pstory-feature__media:hover img{transform:scale(1.02)}
.td-pstory-feature__body{max-width:46ch}
.td-pstory-feature__badge{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;letter-spacing:.02em;color:var(--barley-dark);background:rgba(164,134,98,.14);border-radius:999px;padding:.35rem .85rem;margin-bottom:var(--s-3)}
.td-pstory-feature__badge svg{width:15px;height:15px;color:var(--barley)}
.td-pstory-feature__quote{font-family:var(--font-display);font-size:clamp(1.4rem,1.1rem + 1.3vw,2rem);line-height:1.32;color:var(--mirage);margin:0 0 var(--s-4)}
.td-pstory-feature__quote::before{content:"\201C";color:var(--barley)}
.td-pstory-feature__quote::after{content:"\201D";color:var(--barley)}
.td-pstory-feature__by{display:flex;align-items:center;gap:.7rem;margin-bottom:var(--s-4)}
.td-pstory-feature__avatar{width:46px;height:46px;border-radius:50%;overflow:hidden;flex:none;background:rgba(28,42,58,.06)}
.td-pstory-feature__avatar img{width:100%;height:100%;object-fit:cover;display:block}
.td-pstory-feature__who{display:flex;flex-direction:column;line-height:1.3}
.td-pstory-feature__who b{color:var(--mirage);font-weight:600;font-size:.98rem}
.td-pstory-feature__who span{color:var(--ink-muted);font-size:.85rem}
.td-pstory-feature__link{font-size:.95rem;font-weight:600;color:var(--barley-dark)}
.td-pstory-feature__link:hover{color:var(--mirage)}
@media (max-width:820px){
	.td-pstory-feature__row{grid-template-columns:1fr;gap:var(--s-5)}
	.td-pstory-feature__body{max-width:none}
}
