/* Willowbrook S301 — the captured clinic reference translated into a blue/white/mint system.
   The rebrand is deliberately separate from the competitor: a willow/arc mark, Stoke identity,
   preview-safe contact, filterable treatments and one bounded smile-wipe motion grammar. */
:root { --blue:#0071ae; --blue-deep:#00598b; --navy:#001938; --ink:#183149; --mint:#59c7bd; --mint-soft:#e7f8f4; --coral:#ef8f83; --coral-deep:#ca5b51; --paper:#fff; --wash:#f3f8fb; --line:#d9e7ef; --muted:#607487; --display:"New Lincoln Gothic BT Semi Bold","Barlow Semi Condensed","Segoe UI",sans-serif; --body:"Poppins","Segoe UI",sans-serif; --wrap:1280px; --shadow:0 24px 60px rgba(0,25,56,.16); }
*{box-sizing:border-box;margin:0;padding:0} html{scroll-behavior:smooth} body{background:var(--paper);color:var(--ink);font:500 1rem/1.65 var(--body);overflow-x:hidden;-webkit-font-smoothing:antialiased} ::selection{background:var(--mint);color:var(--navy)} h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.06;letter-spacing:-.025em} p{ text-wrap:pretty} a{color:inherit} img{display:block;max-width:100%} button,input,select,textarea{font:inherit} ul{list-style:none}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;z-index:100;top:-4rem;left:1rem;padding:.7rem 1rem;background:var(--mint);color:var(--navy);font-weight:800;text-decoration:none}.skip-link:focus{top:0}:focus-visible{outline:3px solid var(--coral);outline-offset:4px}.shell{width:min(var(--wrap),calc(100% - 3rem));margin-inline:auto}.button{display:inline-flex;align-items:center;justify-content:center;min-height:3.15rem;padding:.85rem 1.45rem;border:1px solid var(--blue);border-radius:999px;background:var(--blue);color:#fff;font-weight:800;text-decoration:none;transition:transform .25s ease,background .25s ease,box-shadow .25s ease}.button:hover{background:var(--blue-deep);transform:translateY(-2px);box-shadow:0 12px 24px rgba(0,113,174,.2)}.button-outline{background:transparent;color:var(--blue)}.button-outline:hover{background:var(--blue);color:#fff}.button-coral{border-color:var(--coral);background:var(--coral);color:var(--navy)}.button-small{min-height:2.35rem;padding:.5rem 1rem;font-size:.78rem}.eyebrow{color:var(--blue);font-size:.7rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.section-kicker{display:flex;align-items:center;gap:.65rem;color:var(--blue);font-size:.7rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.section-kicker::before{width:30px;height:2px;background:currentColor;content:""}.section-kicker.light{color:var(--mint)}

/* The competitor has a recognisable loading plate; Willowbrook's is a restrained one-shot ring. */
.wb-loader{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:linear-gradient(90deg,rgba(0,113,174,.9),rgba(0,25,56,.58)),url("media/s301/modern-dental-clinic-treatment-smile-px6627574.webp") center/cover;color:#fff;transition:opacity .28s ease,visibility .28s ease}.wb-loader.is-lifted{opacity:0;visibility:hidden;pointer-events:none}.wb-loader-inner{position:relative;display:grid;justify-items:center;gap:1rem;min-width:min(22rem,calc(100vw - 3rem));padding:2.4rem 2rem;background:rgba(0,25,56,.36);border:1px solid rgba(89,199,189,.55);box-shadow:0 18px 48px rgba(0,25,56,.28);text-align:center}.wb-loader-inner::after{content:"CLEAR CARE · CLEAR PLANS";color:var(--mint);font-size:.56rem;font-weight:800;letter-spacing:.2em}.wb-loader-mark{width:78px;height:78px;animation:wb-breathe 1.15s ease both}.wb-loader-ring{fill:none;stroke:var(--mint);stroke-width:2;stroke-dasharray:182;stroke-dashoffset:182;animation:wb-ring 1s .12s ease-out both}.wb-loader-label{font-size:clamp(1rem,2vw,1.45rem);font-weight:800;letter-spacing:.18em;text-transform:uppercase}@keyframes wb-breathe{0%{opacity:0;transform:scale(.8)}60%{opacity:1;transform:scale(1)}100%{transform:scale(1.04)}}@keyframes wb-ring{to{stroke-dashoffset:0}}

.utility{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem max(1.5rem,calc((100% - var(--wrap))/2));background:var(--navy);color:#fff;font-size:.72rem}.utility-left,.utility-right{display:flex;align-items:center;gap:1rem}.utility a{text-decoration:none}.utility a:hover{color:var(--mint)}.utility-tag{color:var(--mint);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.utility-social{color:#c3d2dc}.site-header{position:sticky;top:0;z-index:40;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2rem;padding:.9rem max(1.5rem,calc((100% - var(--wrap))/2));background:rgba(255,255,255,.95);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.brand{display:inline-flex;align-items:center;gap:.65rem;color:var(--navy);text-decoration:none}.brand-mark{width:48px;height:48px;flex:0 0 auto}.brand-lockup{display:grid;line-height:.95}.brand-name{font:800 1.35rem/1 var(--display);letter-spacing:.03em}.brand-sub{margin-top:.3rem;color:var(--blue);font-size:.5rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.nav-disclosure{justify-self:center}.nav-disclosure summary{display:none;list-style:none;cursor:pointer}.nav-disclosure summary::-webkit-details-marker{display:none}.nav-disclosure nav{display:flex;align-items:center;justify-content:center;gap:clamp(.25rem,1vw,.9rem)}.nav-disclosure nav a:not(.button){position:relative;padding:.55rem .35rem;color:var(--navy);font-size:.78rem;font-weight:700;text-decoration:none}.nav-disclosure nav a:not(.button)::after{position:absolute;right:.35rem;bottom:.2rem;left:.35rem;height:2px;background:var(--mint);content:"";transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.nav-disclosure nav a:not(.button):hover::after,.nav-disclosure nav a[aria-current="page"]::after{transform:scaleX(1)}.header-call{color:var(--blue);font-size:.8rem;font-weight:800;text-decoration:none;white-space:nowrap}

.hero{position:relative;overflow:hidden;background:var(--blue);color:#fff}.hero::after{position:absolute;right:-15rem;bottom:-21rem;width:45rem;height:45rem;border:1px solid rgba(89,199,189,.45);border-radius:50%;content:""}.hero-grid{display:grid;grid-template-columns:1fr 1.1fr;min-height:min(690px,calc(100vh - 112px))}.hero-copy{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;padding:clamp(4rem,8vw,8rem) clamp(1.5rem,5vw,6rem) clamp(4rem,8vw,7rem) max(1.5rem,calc((100vw - var(--wrap))/2))}.hero .eyebrow{color:var(--mint)}.hero h1{max-width:10ch;margin-top:1rem;font-size:clamp(3.1rem,5.3vw,5.8rem);font-weight:600}.hero h1 .accent{color:var(--mint)}.hero-lede{max-width:39rem;margin-top:1.3rem;color:#e8f5f7;font-size:clamp(1rem,1.2vw,1.13rem)}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.hero .button-outline{border-color:rgba(255,255,255,.65);color:#fff}.hero .button-outline:hover{border-color:#fff;background:#fff;color:var(--blue)}.hero-note{display:flex;align-items:center;gap:.85rem;margin-top:2rem;color:#d5eef1;font-size:.75rem}.hero-seal{display:grid;place-items:center;width:68px;height:68px;border:1px solid var(--mint);border-radius:50%;color:var(--mint);font-size:.55rem;font-weight:900;letter-spacing:.08em;line-height:1.15;text-align:center}.hero-visual{position:relative;min-height:610px;overflow:hidden}.hero-visual::after{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,113,174,.15),transparent 35%),linear-gradient(0deg,rgba(0,25,56,.4),transparent 38%);content:""}.hero-visual img{width:100%;height:100%;min-height:610px;object-fit:cover;object-position:center;filter:saturate(.92);transform:scale(1.04);transition:transform 1.25s cubic-bezier(.2,.7,.2,1)}.hero-visual.is-in img{transform:scale(1)}.price-bubble{position:absolute;right:8%;bottom:9%;z-index:2;display:grid;place-items:center;width:154px;height:154px;border-radius:50%;background:var(--coral);color:var(--navy);font-weight:800;line-height:1.05;text-align:center;transform:rotate(7deg)}.price-bubble strong{display:block;font:800 2.7rem/1 var(--display)}.price-bubble small{display:block;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase}

.mint-rail{display:grid;grid-template-columns:repeat(3,1fr);background:var(--mint);color:var(--navy)}.mint-item{display:grid;grid-template-columns:3.2rem 1fr;gap:1rem;align-items:center;padding:2rem clamp(1rem,3vw,3rem);border-right:1px solid rgba(0,25,56,.18)}.mint-item:last-child{border-right:0}.mint-icon{display:grid;place-items:center;width:3rem;height:3rem;border:1px solid var(--navy);border-radius:50%;font-size:1.35rem}.mint-item h2{font-size:1rem;letter-spacing:0}.mint-item p{margin-top:.25rem;font-size:.75rem}
.white-section{padding:clamp(5rem,9vw,9rem) 0;background:#fff;color:var(--ink)}.section-intro{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:3rem}.section-intro h2,.white-section h2{max-width:11ch;margin-top:.8rem;color:var(--navy);font-size:clamp(2.5rem,4.7vw,5.1rem);font-weight:600}.section-intro>p{max-width:34rem;color:var(--muted)}.help-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.help-card{position:relative;overflow:hidden;min-height:320px;border-radius:4px;background:var(--wash)}.help-card img{width:100%;height:220px;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1)}.help-card:hover img{transform:scale(1.06)}.help-card-body{padding:1.25rem}.help-card-body h3{color:var(--navy);font-size:1.35rem}.help-card-body p{margin-top:.4rem;color:var(--muted);font-size:.8rem}.help-card-tag{display:inline-block;margin-bottom:.55rem;color:var(--blue);font-size:.63rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.help-card.wide{grid-column:span 2}.help-card.wide img{height:260px}.help-card.wide .help-card-body{position:absolute;right:0;bottom:0;left:0;background:linear-gradient(0deg,rgba(0,25,56,.92),transparent);color:#fff}.help-card.wide .help-card-body h3{color:#fff}.help-card.wide .help-card-body p{color:#dcebf1}
.expectation{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;margin-top:clamp(5rem,9vw,9rem);background:var(--wash)}.expectation img{width:100%;height:100%;min-height:450px;object-fit:cover}.expectation-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem,6vw,6rem)}.expectation-copy h3{margin-top:.8rem;color:var(--navy);font-size:clamp(2rem,3.3vw,3.6rem)}.expectation-copy p{margin-top:1rem;color:var(--muted)}.check-list{display:grid;gap:.75rem;margin-top:1.35rem;color:var(--ink)}.check-list li{position:relative;padding-left:1.5rem;font-size:.87rem}.check-list li::before{position:absolute;top:.52rem;left:0;width:8px;height:8px;border-radius:50%;background:var(--mint);content:""}
.team-section{position:relative;overflow:hidden;padding:clamp(5rem,9vw,9rem) 0;background:#fff}.team-section::before{position:absolute;top:12%;right:-8rem;width:37rem;height:37rem;border:52px solid #eef7fb;border-radius:50%;content:""}.team-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.person{overflow:hidden;border:1px solid var(--line);background:#fff}.person img{width:100%;height:310px;object-fit:cover;object-position:center top}.person-body{padding:1.25rem}.person-body h3{color:var(--navy);font-size:1.35rem}.person-body p{margin-top:.25rem;color:var(--blue);font-size:.72rem;font-weight:800}.person-body small{display:block;margin-top:.6rem;color:var(--muted);font-size:.78rem}.team-note{display:grid;grid-template-columns:1fr .8fr;gap:2rem;align-items:end;margin-top:3rem}.team-note h2{max-width:9ch}.team-note p{max-width:34rem;color:var(--muted)}
.filter-section{background:var(--navy);color:#fff}.filter-section h2{color:#fff}.filter-section .section-kicker{color:var(--mint)}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;margin-bottom:2rem;padding:1rem;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.05)}.filter-bar label{font-size:.75rem;font-weight:800}.filter-bar select{min-height:2.8rem;padding:.55rem .75rem;border:1px solid rgba(255,255,255,.3);border-radius:3px;background:#fff;color:var(--navy)}.filter-count{margin-left:auto;color:var(--mint);font-size:.75rem;font-weight:800}.treatment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.2)}.treatment{padding:1.4rem;background:var(--navy)}.treatment[hidden]{display:none}.treatment img{width:100%;height:190px;object-fit:cover}.treatment-body{padding-top:1rem}.treatment-tag{color:var(--mint);font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.treatment h3{margin-top:.45rem;color:#fff;font-size:1.25rem}.treatment p{margin-top:.35rem;color:#bdcbd5;font-size:.78rem}.treatment-price{display:block;margin-top:1rem;color:var(--coral);font:800 1.1rem var(--display)}
.why-section{padding:clamp(5rem,8vw,8rem) 0;background:var(--mint-soft)}.why-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:3rem}.why-column{padding-top:1.1rem;border-top:2px solid var(--blue)}.why-column h3{color:var(--navy);font-size:1.35rem}.why-column p{margin-top:.7rem;color:var(--muted);font-size:.85rem}.why-number{color:var(--blue);font:800 1.2rem var(--display)}
.stories{padding:clamp(5rem,8vw,8rem) 0;background:#fff}.story-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:1rem;margin-top:3rem}.story-card{position:relative;min-height:380px;overflow:hidden;border-radius:4px;background:var(--blue)}.story-card img{width:100%;height:100%;min-height:380px;object-fit:cover;filter:saturate(.84)}.story-card::after{position:absolute;inset:35% 0 0;background:linear-gradient(0deg,rgba(0,25,56,.92),transparent);content:""}.story-copy{position:absolute;right:1.5rem;bottom:1.4rem;left:1.5rem;z-index:1;color:#fff}.story-copy h3{font-size:1.65rem}.story-copy p{margin-top:.45rem;color:#d9edf1;font-size:.82rem}.story-side{display:grid;gap:1rem}.story-side .story-card{min-height:184px}.story-side .story-card img{min-height:184px}.story-side .story-copy h3{font-size:1.2rem}
.coral-band{padding:clamp(4rem,7vw,7rem) 0;background:var(--coral);color:var(--navy)}.coral-band h2{max-width:12ch;margin-top:.8rem;font-size:clamp(2.6rem,5vw,5.6rem)}.coral-band p{max-width:38rem;margin-top:1rem}.coral-band .button{margin-top:1.7rem;border-color:var(--navy);background:var(--navy);color:#fff}.coral-band .button:hover{background:var(--blue)}
.appointment{padding:clamp(5rem,8vw,8rem) 0;background:var(--navy);color:#fff}.appointment-grid{display:grid;grid-template-columns:1fr .9fr;gap:clamp(2rem,7vw,8rem);align-items:center}.appointment h2{max-width:9ch;margin-top:.8rem;color:#fff;font-size:clamp(2.6rem,5vw,5.6rem)}.appointment p{max-width:34rem;margin-top:1rem;color:#c3d2da}.appointment .section-kicker{color:var(--mint)}.appointment-card{padding:2rem;border:1px solid rgba(89,199,189,.4);background:rgba(255,255,255,.06)}.appointment-card h3{color:var(--mint);font-size:1.5rem}.appointment-card p{font-size:.82rem}.appointment-card .button{margin-top:1.3rem}
footer{position:relative;overflow:hidden;padding:4.5rem 0 1.5rem;background:var(--blue);color:#fff}footer::before{position:absolute;right:-12rem;bottom:-20rem;width:40rem;height:40rem;border:1px solid rgba(89,199,189,.55);border-radius:50%;content:""}.footer-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}.footer-grid h2{margin-bottom:.8rem;color:#fff;font-size:1rem}.footer-grid p,.footer-grid a{color:#d8edf1;font-size:.78rem}.footer-grid p{max-width:25rem}.footer-grid a{display:block;margin-top:.4rem;text-decoration:none}.footer-grid a:hover{color:var(--mint)}.footer-brand-copy{margin-top:1rem}.footer-line{position:relative;height:1px;margin:3rem 0 1rem;background:rgba(255,255,255,.3)}.footer-line::after{position:absolute;inset:0 auto 0 0;width:28%;background:var(--mint);content:"";transform:translateX(-120%)}footer.is-in .footer-line::after{animation:wb-trace 1.15s .2s cubic-bezier(.2,.7,.2,1) forwards}@keyframes wb-trace{to{transform:translateX(360%)}}.footer-bottom{position:relative;z-index:1;display:flex;justify-content:space-between;gap:1rem;color:#c5e1e6;font-size:.7rem}.neubor-credit{color:#fff!important;font-weight:800}.cursor-glow{position:fixed;z-index:2;width:340px;height:340px;margin:-170px 0 0 -170px;pointer-events:none;border-radius:50%;background:radial-gradient(circle,rgba(89,199,189,.14),transparent 65%);opacity:0;transition:opacity .3s ease}.has-glow .cursor-glow{opacity:1}@keyframes wb-clinical-reveal{from{opacity:0;clip-path:inset(0 0 15% 0);transform:translateY(24px) scale(.985)}to{opacity:1;clip-path:inset(0);transform:none}}.reveal,[data-reveal]{opacity:0;clip-path:inset(0 0 15% 0);transform:translateY(24px) scale(.985);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1),clip-path .7s ease}.reveal.is-in,[data-reveal].is-in{opacity:1;clip-path:inset(0);transform:none;animation:wb-clinical-reveal .68s cubic-bezier(.2,.7,.2,1) both}.reveal-stagger>*{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease}.reveal-stagger.is-in>*{opacity:1;transform:none}.reveal-stagger.is-in>*:nth-child(2){transition-delay:.08s}.reveal-stagger.is-in>*:nth-child(3){transition-delay:.16s}.reveal-stagger.is-in>*:nth-child(4){transition-delay:.24s}
@media(max-width:1080px){.site-header{grid-template-columns:auto auto}.nav-disclosure{justify-self:end}.header-call{display:none}.nav-disclosure summary{display:inline-flex;padding:.55rem .9rem;border:1px solid var(--blue);border-radius:999px;color:var(--blue);font-size:.75rem;font-weight:800;text-transform:uppercase}.nav-disclosure[open] nav{display:grid;position:absolute;top:calc(100% + 1px);right:1.5rem;left:1.5rem;padding:1rem;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}.nav-disclosure[open] nav a:not(.button){padding:.75rem}.nav-disclosure nav{display:none}.hero-grid{grid-template-columns:1fr 1fr}.hero-copy{padding-left:1.5rem}.hero h1{font-size:clamp(3rem,5vw,4.8rem)}}
@media(max-width:800px){.utility{align-items:flex-start;flex-direction:column;padding:.65rem 1rem}.utility-right{width:100%;justify-content:space-between}.shell{width:min(var(--wrap),calc(100% - 2rem))}.hero-grid,.expectation,.appointment-grid,.story-grid,.team-note{grid-template-columns:1fr}.hero-copy{padding:4.5rem 1rem 3rem}.hero-visual,.hero-visual img{min-height:460px}.hero-visual{order:-1}.mint-rail{grid-template-columns:1fr}.mint-item{border-right:0;border-bottom:1px solid rgba(0,25,56,.18)}.mint-item:last-child{border-bottom:0}.help-grid,.team-grid,.treatment-grid,.why-columns{grid-template-columns:1fr 1fr}.help-card.wide{grid-column:auto}.section-intro{align-items:flex-start;flex-direction:column}.expectation-copy{padding:3rem 1.4rem}.expectation img{min-height:310px}.story-card,.story-card img{min-height:320px}.story-side{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.footer-bottom{flex-direction:column}.filter-count{margin-left:0}}
@media(max-width:520px){.brand-mark{width:40px;height:40px}.brand-name{font-size:1.05rem}.brand-sub{font-size:.4rem}.site-header{padding-inline:1rem;gap:.7rem}.hero h1{font-size:clamp(2.8rem,13vw,4rem)}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .button{width:100%}.price-bubble{width:115px;height:115px;font-size:.75rem}.price-bubble strong{font-size:2rem}.help-grid,.team-grid,.treatment-grid,.why-columns,.story-side,.footer-grid{grid-template-columns:1fr}.help-card,.help-card img,.help-card.wide img{min-height:0;height:auto}.help-card.wide .help-card-body{position:static;background:#fff;color:var(--ink)}.help-card.wide .help-card-body h3{color:var(--navy)}.help-card.wide .help-card-body p{color:var(--muted)}.filter-bar{align-items:stretch;flex-direction:column}.filter-bar select,.filter-bar .button{width:100%}.footer-grid{gap:1.5rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.wb-loader,.wb-loader *,.reveal,.reveal-stagger>*,img,.button{animation:none!important;transition:none!important}.wb-loader{opacity:0;visibility:hidden}.reveal,[data-reveal],.reveal-stagger>*{opacity:1!important;clip-path:none!important;transform:none!important;animation:none!important}.cursor-glow{display:none}}

/* Accessibility palette hooks — the clinic's own blue/mint/coral roles are remapped explicitly. */
html[data-a11y-contrast="high"] {
  --blue: #000; --blue-deep: #000; --navy: #000; --ink: #000; --mint: #000;
  --mint-soft: #fff; --coral: #000; --coral-deep: #000; --paper: #fff; --wash: #fff;
  --line: #000; --muted: #333;
}
html[data-a11y-colour="safe"] {
  --blue: #0072b2; --blue-deep: #005a8d; --navy: #23282a; --mint: #009e73;
  --mint-soft: #e5f3ed; --coral: #e69f00; --coral-deep: #b87f00;
}

/* S301 parity repair: Newcastle's opening uses a visible consultation offer and a compact
   treatment/contact cue over the image. Keep the existing honest price bubble, then add the
   missing bounded label without pretending it is a verified clinic promotion. */
.hero { isolation: isolate; }
.hero::before { position: absolute; top: 1.2rem; right: max(1rem, calc((100vw - var(--wrap)) / 2)); z-index: 2; padding: .55rem .8rem; color: var(--navy); background: rgba(255,255,255,.9); border-left: 3px solid var(--mint); content: "CONSULTATION · IMPLANTS · CARE"; font-size: .62rem; font-weight: 800; letter-spacing: .12em; }
.hero-visual::before { position: absolute; right: 8%; bottom: calc(9% + 9.8rem); z-index: 3; padding: .45rem .65rem; color: #fff; background: var(--navy); content: "NEW PATIENT / PREVIEW OFFER"; font-size: .58rem; font-weight: 800; letter-spacing: .1em; }
@media (max-width: 520px) { .hero::before { top: .8rem; right: 1rem; left: 1rem; text-align: center; font-size: .53rem; } .hero-visual::before { right: 1rem; bottom: 8.3rem; font-size: .5rem; } }
/* S301 parity repair — make the honest consultation offer carry the same visual weight as the source promo. */
.price-bubble { width:190px; height:190px; right:7%; bottom:8%; box-shadow:0 1rem 2.5rem rgba(0,25,56,.25), 0 0 0 9px rgba(255,255,255,.18); }
.price-bubble strong { font-size:3.25rem; }
.price-bubble small { max-width:8rem; font-size:.66rem; line-height:1.3; }
@media (max-width:520px) { .price-bubble { width:138px; height:138px; right:1rem; bottom:8%; } .price-bubble strong { font-size:2.35rem; } .price-bubble small { font-size:.56rem; } }

/* S301 consultation-offer closeout — the reference lets its first-visit promotion lead the
   image. Keep the price explicitly illustrative, but make that decision card unmissable. */
@media (min-width:900px) {
  .price-bubble { width:220px; height:220px; right:5%; bottom:12%; border:8px solid rgba(255,255,255,.24); box-shadow:0 1.2rem 2.8rem rgba(0,25,56,.3), 0 0 0 1px rgba(255,255,255,.35); }
  .price-bubble strong { font-size:3.65rem; }
  .price-bubble small { max-width:10rem; font-size:.72rem; }
}

/* S301 opening-parity closeout — the consultation offer is a visual decision card, not a
   tiny sticker. The copy stays explicitly illustrative and approval-bound. */
.hero-visual { isolation:isolate; }
.hero-visual::after { position:absolute; inset:auto; top:auto; right:auto; left:7%; bottom:8%; z-index:2; width:max-content; max-width:12rem; padding:.55rem .7rem; color:#fff; background:var(--navy); border-left:3px solid var(--mint); content:"NEW PATIENT / PREVIEW CONSULTATION\A\APlan first · costs in writing"; white-space:pre; font-size:.57rem; font-weight:800; line-height:1.35; letter-spacing:.08em; }
@media (max-width:520px) { .hero-visual::after { inset:auto; top:auto; right:auto; left:1rem; bottom:8%; width:max-content; max-width:9rem; font-size:.5rem; } }
/* The reference uses a review/trust widget layered over the patient image. Keep the role,
   but label it as illustrative so the rebrand never invents a rating or patient claim. */
.hero-review-badge { position:absolute; left:7%; top:9%; z-index:3; display:grid; gap:.22rem; max-width:12rem; padding:.65rem .75rem; color:#fff; background:rgba(0,25,56,.9); border-top:3px solid var(--mint); box-shadow:0 .8rem 1.7rem rgba(0,25,56,.24); }
.hero-review-badge strong { color:var(--mint); font-size:.88rem; letter-spacing:.13em; }
.hero-review-badge span { font-size:.58rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.hero-review-badge small { color:#c8e3e8; font-size:.56rem; line-height:1.25; }
@media (max-width:520px) { .hero-review-badge { left:1rem; top:1rem; max-width:10rem; padding:.5rem .6rem; } .hero-review-badge strong { font-size:.75rem; } .hero-review-badge small { font-size:.5rem; } }

/* The source puts a compact review cue over the patient photograph. Keep it as an
   honest CSS treatment because the preview has no approved review source to render. */
.hero-visual::before {
  position:absolute;
  right:1rem;
  top:5rem;
  bottom:auto;
  z-index:3;
  width:max-content;
  height:auto;
  max-width:8.5rem;
  padding:.55rem .65rem;
  color:#fff;
  background:rgba(0,25,56,.92);
  border:1px solid var(--mint);
  content:"★★★★★\A ILLUSTRATIVE REVIEW CUE";
  white-space:pre;
  font-size:.55rem;
  font-weight:900;
  line-height:1.45;
  letter-spacing:.08em;
  text-align:center;
}
@media (max-width:520px) { .hero-visual::before { right:.8rem; top:3.4rem; bottom:auto; width:max-content; height:auto; max-width:7rem; font-size:.48rem; } }
/* The live preview badge is authored by main.js; suppress the earlier pseudo duplicate so
   the photo carries one legible trust cue rather than two competing ratings. */
.hero-visual::before { display:none; }

/* S301 Newcastle opening closeout: the offer is a primary graphic over the patient image,
   while the review cue sits on the outer edge. The mobile split remains intentionally calmer. */
@media (min-width:801px) {
  .hero-visual .price-bubble { right:auto; left:8%; top:12%; bottom:auto; width:190px; height:190px; border:10px solid rgba(194,226,247,.72); box-shadow:0 0 0 1px rgba(0,25,56,.2), 0 1.2rem 2rem rgba(0,25,56,.18); transform:rotate(-5deg); }
  .hero-visual .price-bubble strong { font-size:3.2rem; }
  .hero-visual .hero-review-badge { left:auto; right:2.5%; top:48%; }
}
/* S301 universal parity repair — make the opening proof read as a deliberate stack:
   consultation offer, review-style cue, trust note and a visible contact prompt.
   Every review/credential cue remains explicitly fictional or approval-bound. */
.hero-visual .hero-review-badge { width:min(14rem,38%); max-width:none; padding:.78rem .85rem .82rem; border-top-width:4px; }
.hero-visual .hero-review-badge strong { font-size:1rem; letter-spacing:.16em; }
.hero-visual .hero-review-badge span { font-size:.6rem; }
.hero-visual .hero-review-badge small { font-size:.58rem; line-height:1.35; }
.hero-note { position:relative; }
.hero-note::after { display:block; margin-top:.85rem; padding:.45rem .6rem; border:1px solid rgba(89,199,189,.7); background:rgba(0,25,56,.2); color:var(--mint); content:"QUESTIONS? CHAT TO THE TEAM / PREVIEW ENQUIRY →"; font-size:.56rem; font-weight:900; letter-spacing:.08em; line-height:1.35; }
@media (max-width:520px) {
  .hero-visual .hero-review-badge { top:3.85rem; right:1rem; left:auto; width:min(12rem,calc(100% - 2rem)); }
  .hero-note::after { margin-top:.7rem; font-size:.5rem; }
}
