/* ==========================================================
 * Shared inner-page styles: contact, typography spec, patient info
 * ======================================================== */

/* ================= Contact page ================= */
.ct-hero{position:relative;background:var(--sky);padding:calc(84px + clamp(2rem,6vh,4rem)) 0 clamp(2.5rem,7vh,5rem);overflow:clip}
.ct-hero::before{content:"";position:absolute;left:-12%;bottom:-40%;width:60vw;aspect-ratio:1;border-radius:50%;border:1px solid rgba(10,107,136,.12);box-shadow:0 0 0 70px rgba(10,107,136,.03),0 0 0 140px rgba(10,107,136,.02);pointer-events:none}
.ct-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.ct-status{background:#fff;border:1px solid rgba(10,107,136,.16);border-radius:999px;padding:.55rem 1rem;display:inline-flex}
.ct-hero h1{margin-top:1.1rem;font-size:clamp(2.4rem,4.6vw,4.3rem);line-height:1.04;color:var(--basalt)}
.ct-hero h1 .rot{color:var(--deep)}
.ct-lede{margin-top:1rem;max-width:46ch;color:#45555B;font-size:1.05rem}
.ct-clock{margin-top:1rem;display:flex;align-items:center;gap:.55rem;font-size:.95rem;color:#45555B}
.ct-clock b{color:var(--basalt);font-variant-numeric:tabular-nums}
.ct-clock-dot{width:9px;height:9px;border-radius:50%;background:var(--cyan);animation:crBlink 1.6s ease-in-out infinite}
.ct-tiles{margin-top:clamp(1.4rem,3vh,2rem);display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.ct-tile{position:relative;display:flex;align-items:center;gap:.85rem;padding:1rem 1rem;border-radius:20px;background:#fff;border:1px solid rgba(10,107,136,.14);text-decoration:none;color:var(--basalt);overflow:hidden;opacity:0;transform:translateY(16px);animation:ctIn .7s var(--ease) forwards;animation-delay:calc(.35s + var(--n) * 90ms);transition:border-color .3s, box-shadow .45s var(--ease)}
.ct-tile::after{content:"";position:absolute;inset:0;background:radial-gradient(180px circle at var(--mx,50%) var(--my,50%), rgba(10,107,136,.14), transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none}
.ct-tile:hover{border-color:var(--cyan);box-shadow:0 20px 36px -24px rgba(10,107,136,.6)}
.ct-tile:hover::after{opacity:1}
@keyframes ctIn{to{opacity:1;transform:none}}
.ct-ti{width:46px;height:46px;border-radius:14px;background:#D3EEF7;color:var(--deep);display:grid;place-items:center;flex:none;transition:background .3s, color .3s, transform .45s var(--ease)}
.ct-tile:hover .ct-ti{background:var(--deep);color:#fff;transform:rotate(-8deg)}
.ct-ti svg{width:22px;height:22px}
.ct-tt{display:grid;min-width:0;flex:1}
.ct-tt b{font:600 1.02rem/1.2 var(--display);letter-spacing:-.01em}
.ct-tt span{font-size:.84rem;color:#5B6B71;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ct-ta{width:18px;height:18px;color:#4F646B;flex:none;transition:transform .4s var(--ease), color .3s}
.ct-tile:hover .ct-ta{transform:translateX(4px);color:var(--deep)}
.ct-tile:focus-visible{outline:3px solid var(--canola);outline-offset:3px}
.ct-visual{position:relative;height:min(68svh,600px);min-height:420px}
.ctv-main{position:absolute;inset:0 0 9% 8%;margin:0;border-radius:30px;overflow:hidden;box-shadow:0 50px 90px -50px rgba(10,60,80,.6);clip-path:inset(0 0 100% 0 round 30px);animation:ctReveal 1.3s var(--ease) .15s forwards}
@keyframes ctReveal{to{clip-path:inset(0 0 0 0 round 30px)}}
.ctv-main img{width:100%;height:100%;object-fit:cover;object-position:40% 50%;transform:scale(1.12);animation:ctZoom 2.2s var(--ease) .15s forwards}
@keyframes ctZoom{to{transform:scale(1)}}
.ctv-card{position:absolute;left:0;bottom:0;width:clamp(150px,15vw,210px);aspect-ratio:4/5;margin:0;border-radius:22px;overflow:hidden;border:6px solid #fff;box-shadow:0 26px 50px -24px rgba(10,60,80,.55);opacity:0;animation:ctPop .9s var(--ease) .9s forwards}
.ctv-card img{width:100%;height:100%;object-fit:cover;border-radius:16px}
.ctv-card figcaption{position:absolute;left:.5rem;right:.5rem;bottom:.5rem;background:rgba(255,255,255,.95);border-radius:10px;padding:.4rem .55rem;font:600 .74rem var(--display);color:var(--basalt)}
.ctv-pin{position:absolute;right:-2%;top:10%;display:flex;gap:.7rem;align-items:center;background:#fff;border-radius:18px;padding:.8rem 1rem;box-shadow:0 24px 44px -24px rgba(10,60,80,.55);font-size:.8rem;color:#5B6B71;max-width:270px;opacity:0;animation:ctPop .9s var(--ease) 1.1s forwards}
.ctv-pin b{display:block;color:var(--basalt);font:600 .92rem/1.25 var(--display)}
.ctv-drop{width:42px;height:42px;border-radius:50%;background:#EA4335;color:#fff;display:grid;place-items:center;flex:none;animation:ctDrop 1.2s cubic-bezier(.3,1.5,.5,1) 1.3s both}
.ctv-drop svg{width:22px;height:22px}
@keyframes ctDrop{from{transform:translateY(-26px) scale(.6);opacity:0}to{transform:none;opacity:1}}
.ctv-bb{position:absolute;right:6%;bottom:2%;background:var(--deep);color:#CFEAEA;border-radius:16px;padding:.75rem 1rem;font-size:.8rem;display:grid;box-shadow:0 20px 40px -20px rgba(10,60,80,.6);opacity:0;animation:ctPop .9s var(--ease) 1.3s forwards}
.ctv-bb b{color:#fff;font:600 1.05rem/1.2 var(--display)}
@keyframes ctPop{from{opacity:0;transform:translateY(22px) scale(.94)}to{opacity:1;transform:none}}
.ct-visual [data-d]{translate:var(--px,0) var(--py,0);transition:translate .6s var(--ease)}

/* message form */
.ct-msg{background:#fff;padding:clamp(3.5rem,8vh,6rem) 0}
.ct-msg-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.ct-msg h2,.ct-faq h2{font-size:clamp(2rem,3.4vw,3.1rem);line-height:1.04}
.ct-msg-copy > p{margin-top:.9rem;color:#45555B;max-width:44ch}
.ct-urgent{margin-top:1.4rem;display:flex;gap:.8rem;padding:1rem 1.1rem;border-radius:16px;background:#FFF4E5;border:1px solid #F6D9A8;color:#6B4A12;font-size:.92rem}
.ct-urgent svg{width:22px;height:22px;flex:none;color:#C27A00;margin-top:.1rem}
.ct-urgent a{color:#6B4A12;font-weight:700}
.ct-steps{list-style:none;margin:1.6rem 0 0;padding:0;display:grid;gap:.8rem}
.ct-steps li{display:flex;align-items:center;gap:.8rem;font-weight:600;color:var(--basalt)}
.ct-steps span{width:34px;height:34px;border-radius:50%;background:var(--sky);color:var(--deep);display:grid;place-items:center;font:600 .9rem var(--display)}
.ct-form{position:relative;background:var(--sky);border-radius:28px;padding:clamp(1.25rem,3vw,2.2rem);display:grid;gap:.9rem}
.ct-form fieldset{border:0;margin:0;padding:0}
.ct-form legend{font:600 .95rem var(--display);color:var(--basalt);margin-bottom:.6rem}
.ct-chips{display:flex;flex-wrap:wrap;gap:.45rem}
.ct-chip input,.ct-toggle input{position:absolute;opacity:0;pointer-events:none}
.ct-chip span{display:inline-block;padding:.5rem .9rem;border-radius:999px;background:#fff;border:1.5px solid var(--sky-line);font-size:.88rem;font-weight:600;color:var(--basalt);cursor:pointer;transition:background .3s, color .3s, border-color .3s, transform .3s var(--ease)}
.ct-chip span:hover{border-color:var(--cyan);transform:translateY(-2px)}
.ct-chip input:checked + span{background:var(--deep);border-color:var(--deep);color:#fff}
.ct-chip input:focus-visible + span{outline:3px solid var(--canola);outline-offset:2px}
.ct-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.ff{position:relative;display:block}
.ff input,.ff textarea{width:100%;border:1.5px solid var(--sky-line);background:#fff;border-radius:14px;padding:1.35rem 1rem .55rem;font:500 1rem var(--body);color:var(--basalt);outline:none;transition:border-color .3s, box-shadow .3s;resize:vertical}
.ff textarea{min-height:120px}
.ff span{position:absolute;left:1rem;top:1rem;font-size:1rem;color:#4E6870;pointer-events:none;transform-origin:left top;transition:transform .3s var(--ease), color .3s}
.ff input:focus,.ff textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 4px rgba(10,107,136,.14)}
.ff input:focus + span,.ff input:not(:placeholder-shown) + span,.ff textarea:focus + span,.ff textarea:not(:placeholder-shown) + span{transform:translateY(-.62rem) scale(.78);color:var(--deep)}
.ff-ok{position:absolute;right:1rem;top:50%;width:20px;height:20px;margin-top:-10px;border-radius:50%;background:#18A86B;transform:scale(0);transition:transform .4s cubic-bezier(.3,1.6,.5,1)}
.ff-ok::after{content:"";position:absolute;left:7px;top:4px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.ff.valid .ff-ok{transform:scale(1)}
.ff.invalid input,.ff.invalid textarea{border-color:#D93025}
.ff-count{position:absolute;right:1rem;bottom:.6rem;font-style:normal;font-size:.75rem;color:#4F646B}
.ct-toggle{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;background:#fff;border:1.5px solid var(--sky-line);border-radius:999px;padding:4px;width:min(100%,260px)}
.ct-toggle label{position:relative;z-index:1;cursor:pointer;text-align:center}
.ct-toggle span{display:block;padding:.5rem 1rem;font-weight:700;font-size:.9rem;color:#5B6B71;transition:color .3s}
.ct-toggle input:checked + span{color:#fff}
.ct-knob{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:var(--deep);transition:transform .45s var(--ease)}
.ct-toggle.right .ct-knob{transform:translateX(100%)}
.ct-err{color:#B3261E;font-weight:600;font-size:.92rem}
.ct-send{justify-self:start;background:var(--deep);color:#fff;min-height:56px;padding:0 1.6rem;gap:.6rem;font:600 1.02rem var(--display)}
.ct-send:hover{background:var(--deep-2)}
.ct-send svg{width:20px;height:20px;transition:transform .5s var(--ease)}
.ct-send:hover svg{transform:translate(4px,-4px)}
.ct-send.sending svg{transform:translate(60px,-40px);opacity:0}
.ct-privacy{font-size:.82rem;color:#5B6B71}
.ct-privacy a{color:var(--deep);font-weight:600}
.ct-done{position:absolute;inset:0;z-index:5;border-radius:28px;background:var(--sky);display:grid;place-content:center;justify-items:center;text-align:center;gap:.8rem;padding:2rem;animation:ctIn .6s var(--ease) both;opacity:0}
.ct-done[hidden]{display:none}
.ct-done-mk{width:96px;height:96px}
.ct-done-mk .mk{width:100%;height:100%}
.ct-done h3{font-size:clamp(1.5rem,2.4vw,2rem);letter-spacing:-.01em}
.ct-done p{max-width:40ch;color:#45555B}

/* FAQ */
.ct-faq{background:#fff;padding:clamp(3rem,7vh,5rem) 0}
.ct-faq-grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.ct-faq-copy p{margin-top:.8rem;color:#45555B;max-width:36ch}
.ct-faq-copy .btn{margin-top:1.4rem;gap:.55rem}
.ct-faq-copy .btn svg{width:18px;height:18px}
.fq-list{border-top:1px solid #E3E9EA}
.fq{border-bottom:1px solid #E3E9EA;opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease), transform .6s var(--ease);transition-delay:calc(var(--n) * 70ms)}
.ct-faq.in .fq{opacity:1;transform:none}
.fq-q{all:unset;box-sizing:border-box;width:100%;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 0;font:600 clamp(1.02rem,1.5vw,1.2rem)/1.3 var(--display);letter-spacing:-.01em;color:var(--basalt)}
.fq-q:focus-visible{outline:3px solid var(--canola);outline-offset:4px;border-radius:6px}
.fq-q i{position:relative;width:32px;height:32px;border-radius:50%;background:var(--sky);flex:none;transition:background .3s, transform .5s var(--ease)}
.fq-q i::before,.fq-q i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;background:var(--deep);border-radius:2px;transition:transform .4s var(--ease), background .3s}
.fq-q i::after{transform:rotate(90deg)}
.fq.open .fq-q i{background:var(--deep);transform:rotate(180deg)}
.fq.open .fq-q i::before,.fq.open .fq-q i::after{background:#fff}
.fq.open .fq-q i::after{transform:rotate(0)}
.fq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.fq.open .fq-a{grid-template-rows:1fr}
.fq-a > div{overflow:hidden}
.fq-a p{padding:0 3rem 1.2rem 0;color:#45555B;line-height:1.7}

@media (max-width: 960px){
  .ct-grid,.ct-msg-grid,.ct-faq-grid{grid-template-columns:1fr}
  .ct-visual{height:min(110vw,460px);min-height:0}
  .ctv-pin{right:0;top:4%;max-width:230px}
}
@media (max-width: 560px){ .ct-tiles,.ct-row{grid-template-columns:1fr} .fq-a p{padding-right:0} }
@media (prefers-reduced-motion: reduce){ .ct-tile,.ctv-main,.ctv-card,.ctv-pin,.ctv-bb,.fq{opacity:1!important;transform:none!important;animation:none!important;clip-path:none!important} .ctv-main img{animation:none;transform:none} }

/* ================= Client typography spec ================= */
body{font-family:var(--body);font-size:1.0625rem;line-height:1.55;color:#3A474C}
@media (min-width: 1200px){ body{font-size:1.125rem} }
h1,h2,h3,h4{font-family:var(--display);font-weight:800;letter-spacing:-.03em}
.hero h1,.ct-hero h1,h2{letter-spacing:-.035em}
.svc-name,.cf-cap b,.pf-body h2,.fq-q,.ct-tt b,.sr-t b,.nr-item b,.fc-b h4,.cap-name,.fb-t b,.v-t b,.v-act b,.aw h3,.gp-body h3{font-weight:800!important;letter-spacing:-.025em!important}
/* normal text 17-18px, line spacing 1.5-1.6 */
.lede,.ct-lede,.svc-in p,.aw p,.nr-lede,.cr-lede,.follow-lede,.family .intro,.panel p,.bb-copy p,.pf-about p,.fq-a p,.ct-msg-copy > p,.ct-faq-copy p,.svc-top p,.aware-head p,.inside .intro p,.west p,.cf-cap span:last-child,.fee-a,.svc-all p{font-size:inherit!important;line-height:1.55!important}
/* buttons 16-17px SemiBold */
.btn,.gp-view,.gp-book,.cap-book,.fc-link,.ct-send,.cr-btn,.svc-view,.pf-book,.pf-call,.v-copy,.gp-clear,.svc-more,.aw-link{font-family:var(--body)!important;font-weight:600!important;font-size:1rem!important;letter-spacing:0!important}
@media (min-width: 1200px){ .btn,.ct-send,.cr-btn,.pf-book{font-size:1.0625rem!important} }
.nav .link{font-family:var(--body)!important;font-weight:600!important;font-size:1rem!important}
@media (max-width: 1240px){ .nav .link{font-size:.95rem!important} }
/* small supporting text stays readable */
.gp-bio,.gp-lang,.fc-b p,.sr-t span,.ct-tt span,.v-act span,.nr-item > span:last-child span,.cap-meta,.hr-row,.foot,.fb-legal{font-size:max(.9rem, 15px)!important}
.fb-note{font-size:max(.85rem, 14px)!important}

/* ================= Contact page v2 ================= */
.ct-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,46ch);gap:1rem 2rem;align-items:end}
.ct-head h2{font-size:clamp(2rem,min(3.3vw,5.6vh),3.25rem);line-height:1.04}
.ct-head p{color:#45555B}
@media (max-width: 960px){ .ct-head{grid-template-columns:1fr} }
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease), transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}
/* reach bento */
.ct-reach{background:#fff;padding:clamp(3.5rem,8vh,6rem) 0}
.rb{margin-top:clamp(1.5rem,3vw,2.4rem);display:grid;grid-template-columns:1.25fr 1fr 1fr;grid-auto-rows:minmax(200px,auto);gap:clamp(.8rem,1.4vw,1.1rem)}
.rb-photo{grid-row:span 2;margin:0;position:relative;border-radius:26px;overflow:hidden;min-height:440px}
.rb-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:30% 50%;transform:scale(1.06);transition:transform 1.6s var(--ease)}
.rb-photo.in img{transform:scale(1)}
.rb-photo figcaption{position:absolute;left:1rem;right:1rem;bottom:1rem;background:rgba(255,255,255,.95);border-radius:18px;padding:1rem 1.1rem;display:grid;gap:.3rem;color:#45555B;font-size:.95rem}
.rb-photo figcaption b{font:800 1.2rem/1.2 var(--display);color:var(--basalt);letter-spacing:-.02em}
.rb-call{margin-top:.5rem;justify-self:start;background:var(--deep);color:#fff;gap:.5rem}
.rb-call svg{width:18px;height:18px}
.rb-card{background:var(--sky);border:1px solid var(--sky-line);border-radius:22px;padding:1.3rem 1.3rem 1.2rem;display:flex;flex-direction:column;gap:.45rem;transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .3s}
.rb-card:hover{transform:translateY(-4px);border-color:var(--cyan);box-shadow:0 22px 40px -28px rgba(10,107,136,.6)}
.rb-ic{width:46px;height:46px;border-radius:14px;background:#fff;color:var(--deep);display:grid;place-items:center;transition:transform .45s var(--ease), background .3s, color .3s}
.rb-card:hover .rb-ic{background:var(--deep);color:#fff;transform:rotate(-8deg)}
.rb-ic svg{width:22px;height:22px}
.rb-card h3{margin-top:.3rem;font-size:1.05rem;letter-spacing:-.02em}
.rb-big{display:flex;align-items:center;gap:.5rem;font:800 1.25rem/1.25 var(--display);color:var(--deep);letter-spacing:-.02em;overflow-wrap:anywhere}
.rb-big a{color:inherit;text-decoration:none;border-bottom:2px solid rgba(10,107,136,.35)}
.rb-big a:hover{border-color:var(--cyan)}
.rb-big span{font:600 .9rem var(--body);color:#45555B}
.rb-card > p:last-child{font-size:.95rem;color:#45555B;line-height:1.55}
.rb-copy{width:34px;height:34px;flex:none;border-radius:10px;border:1px solid var(--sky-line);background:#fff;color:var(--deep);display:grid;place-items:center;cursor:pointer;position:relative}
.rb-copy svg{width:16px;height:16px}
.rb-copy.done::after{content:"Copied";position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--basalt);color:#fff;font:600 .75rem var(--body);padding:.3rem .55rem;border-radius:8px;white-space:nowrap}
.rb-urgent{background:#FFF4E5;border-color:#F6D9A8}
.rb-urgent .rb-ic{color:#B36B00}
.rb-urgent .rb-big{color:#8A4B00}
.rb-urgent:hover{border-color:#E9A23B}
.rb-card.rv:nth-of-type(2){transition-delay:.06s}.rb-card.rv:nth-of-type(3){transition-delay:.12s}.rb-card.rv:nth-of-type(4){transition-delay:.18s}.rb-card.rv:nth-of-type(5){transition-delay:.24s}.rb-card.rv:nth-of-type(6){transition-delay:.3s}
/* journey */
.ct-journey{background:var(--sky);padding:clamp(3.5rem,8vh,6rem) 0;overflow:clip}
.jy{position:relative;list-style:none;margin:clamp(2rem,4vw,3rem) 0 0;padding:0;display:grid;gap:clamp(2rem,5vw,3.5rem)}
.jy-line{position:absolute;left:50%;top:0;bottom:0;width:3px;margin-left:-1.5px;background:var(--sky-line);border-radius:3px}
.jy-line i{position:absolute;inset:0;background:var(--deep);border-radius:3px;transform-origin:top;transform:scaleY(var(--p,0))}
.jy-step{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,7vw,6rem);align-items:center}
.jy-step.flip .jy-img{order:2}
.jy-img{margin:0;border-radius:24px;overflow:hidden;aspect-ratio:3/2;box-shadow:0 30px 60px -36px rgba(10,60,80,.55);clip-path:inset(0 0 0 100% round 24px);transition:clip-path 1.1s var(--ease)}
.jy-step.flip .jy-img{clip-path:inset(0 100% 0 0 round 24px)}
.jy-step.in .jy-img{clip-path:inset(0 0 0 0 round 24px)}
.jy-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.1);transition:transform 1.6s var(--ease)}
.jy-step.in .jy-img img{transform:scale(1)}
.jy-txt{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease) .2s, transform .8s var(--ease) .2s;max-width:44ch}
.jy-step.in .jy-txt{opacity:1;transform:none}
.jy-n{position:absolute;left:50%;top:50%;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;background:#fff;border:3px solid var(--sky-line);display:grid;place-items:center;font:800 1.15rem var(--display);color:var(--deep);z-index:2;transition:background .5s, color .5s, border-color .5s, transform .6s cubic-bezier(.3,1.6,.5,1);transform:scale(.7)}
.jy-step.in .jy-n{background:var(--deep);color:#fff;border-color:#fff;transform:scale(1)}
.jy-txt h3{font-size:clamp(1.35rem,2.2vw,1.9rem);letter-spacing:-.025em}
.jy-txt p{margin-top:.5rem;color:#45555B}
.jy-cta{margin-top:clamp(2rem,4vw,3rem)}
/* gallery */
.ct-gallery{background:#fff;padding:clamp(3.5rem,8vh,6rem) 0;overflow:clip}
.gl-row{margin-top:1rem;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.ct-gallery .wrap + .gl-row{margin-top:clamp(1.5rem,3vw,2.4rem)}
.gl-track{display:flex;gap:1rem;width:max-content;animation:glL 60s linear infinite}
.gl-row.right .gl-track{animation-name:glR}
.gl-row:hover .gl-track{animation-play-state:paused}
@keyframes glL{to{transform:translateX(-50%)}}
@keyframes glR{from{transform:translateX(-50%)}to{transform:none}}
.gl-item{flex:none;width:clamp(240px,24vw,340px);aspect-ratio:3/2;padding:0;border:0;border-radius:18px;overflow:hidden;cursor:zoom-in;background:var(--mist)}
.gl-item img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease), filter .5s}
.gl-item:hover img{transform:scale(1.06)}
.gl-item:focus-visible{outline:3px solid var(--canola);outline-offset:3px}
.gl-box{border:0;padding:0;background:transparent;width:min(1100px,94vw);max-width:none;overflow:visible}
.gl-box::backdrop{background:rgba(16,26,31,.85);backdrop-filter:blur(6px)}
.gl-box[open]{animation:lbIn .45s var(--ease)}
.gl-box img{width:100%;max-height:80svh;object-fit:contain;border-radius:18px;background:#0f191d}
.gl-box p{margin-top:.8rem;color:#fff;font-weight:600}
.gl-x{position:absolute;top:-14px;right:-14px;width:46px;height:46px;border-radius:50%;border:0;background:#fff;color:var(--basalt);display:grid;place-items:center;cursor:pointer}
.gl-x svg{width:20px;height:20px}
/* first visit */
.ct-first{background:var(--sky);padding:clamp(3.5rem,8vh,6rem) 0}
.fv{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.fv-img{position:relative;margin:0 0 3rem 0}
.fv-img > img:first-child{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:45% 40%;border-radius:28px;box-shadow:0 40px 70px -40px rgba(10,60,80,.55)}
.fv-img2{position:absolute;right:-6%;bottom:-3rem;width:48%;aspect-ratio:3/2;object-fit:cover;border-radius:20px;border:6px solid #fff;box-shadow:0 26px 50px -24px rgba(10,60,80,.5);transform:rotate(-3deg)}
.fv-body h2{font-size:clamp(2rem,min(3.3vw,5.6vh),3.25rem);line-height:1.04}
.fv-body > p{margin-top:.8rem;color:#45555B}
.fv-body h3{margin-top:1.6rem;font-size:1.15rem;letter-spacing:-.02em}
.fv-bring{list-style:none;margin:.8rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.fv-bring li{display:grid;grid-template-columns:auto 1fr;column-gap:.75rem;align-items:start;background:#fff;border:1px solid var(--sky-line);border-radius:16px;padding:.85rem .95rem}
.fv-bring li span{grid-row:span 2;width:40px;height:40px;border-radius:12px;background:#D3EEF7;color:var(--deep);display:grid;place-items:center}
.fv-bring li span svg{width:21px;height:21px}
.fv-bring b{font:800 1rem/1.25 var(--display);color:var(--basalt);letter-spacing:-.02em}
.fv-bring em{font-style:normal;font-size:.9rem;color:#45555B;line-height:1.45}
.fv-bring li:nth-child(2){transition-delay:.08s}.fv-bring li:nth-child(3){transition-delay:.16s}.fv-bring li:nth-child(4){transition-delay:.24s}
.fv-langs{list-style:none;margin:.8rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}
.fv-langs li{padding:.45rem .9rem;border-radius:999px;background:#fff;border:1px solid var(--sky-line);font-weight:600;font-size:.92rem;color:var(--deep);opacity:0;transform:scale(.85);transition:opacity .5s var(--ease), transform .5s cubic-bezier(.3,1.6,.5,1)}
.ct-first.in .fv-langs li{opacity:1;transform:none}
.fv-note{margin-top:1rem;display:flex;gap:.6rem;align-items:flex-start;color:#45555B;font-size:.95rem}
.fv-note svg{width:22px;height:22px;flex:none;color:var(--deep);margin-top:.1rem}
.fv-cta{margin-top:1.4rem;display:flex;flex-wrap:wrap;gap:.7rem}
/* contact page uses the map only in "Come and see us" */
.ct-page .v-steps{display:none}
.ct-page .v-stage{min-height:clamp(360px,42vw,560px)}
@media (max-width: 960px){
  .rb{grid-template-columns:1fr 1fr}
  .rb-photo{grid-column:1 / -1;grid-row:auto;min-height:480px}
  .rb-photo img{object-position:18% 22%}
  .jy-line{left:26px}
  .jy-step,.jy-step.flip{grid-template-columns:1fr;padding-left:70px;gap:1rem}
  .jy-step.flip .jy-img{order:0}
  .jy-n{left:26px;top:2rem}
  .fv{grid-template-columns:1fr}
  .fv-img{max-width:520px}
}
@media (max-width: 560px){ .rb{grid-template-columns:1fr} .fv-bring{grid-template-columns:1fr} .fv-img2{right:-2%} }
@media (prefers-reduced-motion: reduce){ .rv,.jy-txt,.fv-langs li{opacity:1!important;transform:none!important} .jy-img{clip-path:none!important} .gl-track{animation:none} .gl-row{overflow-x:auto} }

/* ================= Patient info and fees ================= */
.pi-hero{background:var(--sky);padding:calc(84px + clamp(1.8rem,5vh,3.5rem)) 0 clamp(2rem,5vh,3.5rem);overflow:clip}
.pi-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.pi-hero h1{margin-top:1rem;font-size:clamp(2.6rem,4.6vw,4.4rem);line-height:1.02}
.pi-lede{margin-top:.9rem;max-width:48ch;color:#45555B}
.pi-quick{margin-top:1.6rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
.pi-q{display:flex;gap:.7rem;align-items:center;padding:.9rem;border-radius:18px;background:#fff;border:1px solid var(--sky-line);text-decoration:none;color:var(--basalt);opacity:0;transform:translateY(14px);animation:ctIn .7s var(--ease) forwards;transition:border-color .3s, box-shadow .4s var(--ease)}
.pi-q:nth-child(2){animation-delay:.1s}.pi-q:nth-child(3){animation-delay:.2s}
.pi-q:hover{border-color:var(--cyan);box-shadow:0 18px 32px -22px rgba(10,107,136,.6)}
.pi-q svg{width:24px;height:24px;color:var(--deep);flex:none}
.pi-q span{display:grid;font-size:.86rem;color:#45555B}
.pi-q b{font:800 .98rem/1.2 var(--display);color:var(--basalt);letter-spacing:-.02em}
.pi-hero-img{position:relative;margin:0;border-radius:28px;overflow:hidden;aspect-ratio:4/3.4;box-shadow:0 40px 80px -45px rgba(10,60,80,.6);clip-path:inset(0 0 100% 0 round 28px);animation:ctReveal 1.2s var(--ease) .1s forwards}
.pi-hero-img > img{width:100%;height:100%;object-fit:cover;transform:scale(1.1);animation:ctZoom 2s var(--ease) .1s forwards}
.pi-hero-img figcaption{position:absolute;left:1rem;bottom:1rem;display:flex;align-items:center;gap:.7rem;background:#fff;border-radius:16px;padding:.55rem .9rem .55rem .55rem;font:800 .92rem var(--display);color:var(--basalt);opacity:0;animation:ctPop .8s var(--ease) .9s forwards}
.pi-hero-img figcaption img{width:84px;border-radius:6px}
/* sticky in-page nav */
.pi-sub{position:sticky;top:84px;z-index:30;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid #E3E9EA}
.pi-sub-in{position:relative;width:var(--wrap);margin:0 auto;display:flex;gap:.3rem;overflow-x:auto;scrollbar-width:none;padding:.55rem 0}
.pi-sub-in::-webkit-scrollbar{display:none}
.pi-sub a{position:relative;z-index:1;flex:none;padding:.5rem .9rem;border-radius:999px;font-weight:600;font-size:.92rem;color:#45555B;text-decoration:none;transition:color .3s}
.pi-sub a:hover{color:var(--deep)}
.pi-sub a.on{color:#fff}
.pi-ind{position:absolute;top:.55rem;height:calc(100% - 1.1rem);border-radius:999px;background:var(--deep);transition:left .45s var(--ease), width .45s var(--ease);left:0;width:0}
.pi-sec{padding:clamp(3rem,7vh,5rem) 0;scroll-margin-top:150px;background:#fff}
.pi-tint{background:var(--sky)}
.pi-sec h2{font-size:clamp(2rem,min(3.3vw,5.6vh),3.25rem);line-height:1.04}
.pi-sec h3{font-size:1.2rem;letter-spacing:-.02em;margin-top:1.5rem}
.pi-sec p{color:#45555B}
.pi-sec .wrap > div > p,.pi-two > div > p{margin-top:.8rem;max-width:58ch}
.pi-two{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.pi-bring{list-style:none;margin:.8rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.pi-bring li{display:grid;grid-template-columns:auto 1fr;column-gap:.75rem;align-items:start;background:var(--sky);border:1px solid var(--sky-line);border-radius:16px;padding:.85rem .95rem}
.pi-bring li:last-child{grid-column:1 / -1}
.pi-bring span{grid-row:span 2;width:40px;height:40px;border-radius:12px;background:#fff;color:var(--deep);display:grid;place-items:center}
.pi-bring span svg{width:21px;height:21px}
.pi-bring b{font:800 1rem/1.3 var(--display);letter-spacing:-.02em;color:var(--basalt)}
.pi-bring em{font-style:normal;font-size:.92rem;color:#45555B;line-height:1.45}
.pi-tip{margin-top:1.2rem!important;display:flex;gap:.6rem;align-items:flex-start;padding:.9rem 1rem;border-radius:14px;background:#FFF8EA;border:1px solid #F3DDB0;color:#6B4A12!important}
.pi-tip svg{width:22px;height:22px;flex:none;color:#B36B00;margin-top:.1rem}
.pi-cta{margin-top:1.4rem;display:flex;flex-wrap:wrap;gap:.7rem}
.pi-photo{margin:0;position:sticky;top:160px;border-radius:26px;overflow:hidden;box-shadow:0 40px 70px -40px rgba(10,60,80,.5)}
.pi-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:35% 40%}
.pi-photo figcaption{position:absolute;left:1rem;right:1rem;bottom:1rem;background:rgba(255,255,255,.95);border-radius:14px;padding:.7rem .9rem;font-weight:600;color:var(--basalt);font-size:.92rem}
/* cost finder */
.cf2{margin-top:clamp(1.5rem,3vw,2.2rem);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:1.2rem;align-items:start}
.cf2-opts{display:grid;gap:.5rem}
.cf2-o{all:unset;box-sizing:border-box;cursor:pointer;padding:1rem 1.1rem;border-radius:16px;background:#fff;border:1.5px solid var(--sky-line);font-weight:600;color:var(--basalt);display:flex;justify-content:space-between;align-items:center;gap:1rem;transition:border-color .3s, background .3s, color .3s, transform .35s var(--ease)}
.cf2-o::after{content:"";width:9px;height:9px;border-right:2.2px solid currentColor;border-top:2.2px solid currentColor;transform:rotate(45deg);opacity:.5;transition:transform .35s var(--ease), opacity .3s}
.cf2-o:hover{border-color:var(--cyan);transform:translateX(4px)}
.cf2-o[aria-selected="true"]{background:var(--deep);border-color:var(--deep);color:#fff}
.cf2-o[aria-selected="true"]::after{opacity:1;transform:translateX(3px) rotate(45deg)}
.cf2-o:focus-visible{outline:3px solid var(--canola);outline-offset:3px}
.cf2-res{position:sticky;top:160px}
.cf2-p{background:#fff;border-radius:24px;padding:clamp(1.4rem,3vw,2.2rem);border:1px solid var(--sky-line);box-shadow:0 30px 60px -40px rgba(10,60,80,.45);animation:cfIn .5s var(--ease)}
@keyframes cfIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.cf2-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .85rem;border-radius:999px;font-weight:700;font-size:.9rem}
.cf2-badge svg{width:18px;height:18px}
.cf2-ok .cf2-badge{background:#E3F6EC;color:#14724A}
.cf2-fee .cf2-badge{background:#FFF4E5;color:#8A4B00}
.cf2-info .cf2-badge{background:#E3F4F4;color:var(--deep)}
.cf2-p h3{margin-top:1rem;font-size:clamp(1.6rem,2.6vw,2.2rem);letter-spacing:-.03em}
.cf2-p p{margin-top:.6rem;line-height:1.6}
/* fees */
.fz{margin-top:clamp(1.5rem,3vw,2.2rem);display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.fz-col{border-radius:24px;padding:1.4rem 1.5rem;border:1px solid var(--sky-line)}
.fz-ok{background:#F2FBF6;border-color:#CDEBDB}
.fz-fee{background:#FFFBF2;border-color:#F3E2BC}
.fz-col h3{margin:0;display:flex;align-items:center;gap:.6rem;font-size:1.2rem}
.fz-col h3 svg{width:26px;height:26px;padding:4px;border-radius:50%;flex:none}
.fz-ok h3 svg{background:#14724A;color:#fff}
.fz-fee h3 svg{background:#B36B00;color:#fff}
.fz-col ul{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.1rem}
.fz-col li{padding:.6rem 0;border-bottom:1px dashed rgba(30,46,53,.14);display:grid}
.fz-col li b{font-weight:600;color:var(--basalt)}
.fz-col li span{font-size:.92rem;color:#45555B}
.fz-note{margin-top:.9rem;font-size:.92rem}
.fz-table{margin-top:1rem;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:1.5rem;align-items:center;background:var(--deep);color:#fff;border-radius:24px;padding:1.4rem 1.6rem}
.fz-table h3{margin:0;color:#fff}
.fz-table p{color:#CFEAEA!important;margin-top:.3rem}
.fz-cells{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}
.fz-cell{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:.9rem 1rem;display:grid;gap:.2rem}
.fz-cell span{font-size:.9rem;color:#CFEAEA}
.fz-cell b{font:800 2rem/1 var(--display);letter-spacing:-.03em}
.fz-cell i{font-style:normal}
/* workcover */
.wc{list-style:none;margin:clamp(1.5rem,3vw,2.2rem) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;position:relative}
.wc li{background:#fff;border-radius:22px;padding:1.4rem;border:1px solid var(--sky-line);position:relative}
.wc li:nth-child(2){transition-delay:.12s}.wc li:nth-child(3){transition-delay:.24s}
.wc-n{width:46px;height:46px;border-radius:50%;background:var(--deep);color:#fff;display:grid;place-items:center;font:800 1.15rem var(--display)}
.wc h3{margin-top:.9rem!important}
.wc p{margin-top:.4rem;font-size:.97rem;line-height:1.55}
/* appointments */
.ap-ways{margin-top:1.3rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.ap-w{display:grid;gap:.15rem;padding:1rem;border-radius:18px;background:var(--sky);border:1px solid var(--sky-line);text-decoration:none;color:var(--basalt);transition:transform .4s var(--ease), border-color .3s}
.ap-w:hover{transform:translateY(-3px);border-color:var(--cyan)}
.ap-w svg{width:26px;height:26px;color:var(--deep);margin-bottom:.4rem}
.ap-w b{font:800 1rem var(--display);letter-spacing:-.02em}
.ap-w span{font-size:.88rem;color:#45555B}
.pi-hours{position:sticky;top:160px;background:var(--sky);border:1px solid var(--sky-line);border-radius:24px;padding:1.4rem}
.pi-hours h3{margin:0;display:flex;gap:.55rem;align-items:center}
.pi-hours h3 svg{width:24px;height:24px;color:var(--deep)}
.pi-hours ul{list-style:none;margin:1rem 0 1.2rem;padding:0}
.pi-hours li{display:flex;justify-content:space-between;gap:1rem;padding:.65rem .7rem;border-radius:12px;font-size:.97rem}
.pi-hours li b{font-weight:600;color:var(--basalt);white-space:nowrap}
.pi-hours li.today{background:#fff;box-shadow:inset 3px 0 0 var(--cyan)}
.pi-hours li.today span::after{content:" (today)";color:var(--deep);font-weight:600}
/* cards */
.pi-cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.pc{background:#fff;border:1px solid var(--sky-line);border-radius:24px;padding:1.5rem;scroll-margin-top:150px}
.pi-cards3 .pc:nth-child(2){transition-delay:.1s}.pi-cards3 .pc:nth-child(3){transition-delay:.2s}
.pc-ic{width:50px;height:50px;border-radius:15px;background:#D3EEF7;color:var(--deep);display:grid;place-items:center}
.pc-ic svg{width:24px;height:24px}
.pc h2{margin-top:1rem;font-size:clamp(1.4rem,2vw,1.75rem)!important}
.pc p{margin-top:.6rem;font-size:.98rem;line-height:1.6}
.pc a{color:var(--deep);font-weight:600}
.pi-stack{display:grid;gap:1rem}
.pi-stack .pc{background:var(--sky)}
.pi-langs li{opacity:1;transform:none}
/* after hours */
.pi-night{background:var(--deep)}
.pi-night .ct-head h2{color:#fff}
.pi-night .ct-head p{color:#CFEAEA!important}
.ah{margin-top:clamp(1.5rem,3vw,2.2rem);display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
.ah-c{display:grid;gap:.35rem;align-content:start;padding:1.3rem;border-radius:22px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);text-decoration:none;color:#fff;transition:transform .4s var(--ease), background .3s}
.ah-c:hover{transform:translateY(-4px);background:rgba(255,255,255,.14)}
.ah-c .ah-num{font:800 clamp(1.5rem,2.2vw,2rem)/1.1 var(--display);letter-spacing:-.03em}
.ah-c b{font-weight:700;color:#fff}
.ah-c span:last-child{font-size:.93rem;color:#DDF1F1;line-height:1.5}
.ah-em{background:#FFF4E5;border-color:#F6D9A8;color:#8A1F11}
.ah-em .ah-num{color:#B3261E}
.ah-em b{color:#8A1F11}
.ah-em span:last-child{color:#6B2A1F}
.ah-em:hover{background:#FFEBD0}
.ah-c:nth-child(2){transition-delay:.08s}.ah-c:nth-child(3){transition-delay:.16s}.ah-c:nth-child(4){transition-delay:.24s}
/* mymedicare */
.mm{margin-top:clamp(1.5rem,3vw,2.2rem);display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
.mm-c{background:#fff;border:1px solid var(--sky-line);border-radius:22px;padding:1.3rem}
.mm-c span{width:46px;height:46px;border-radius:14px;background:var(--deep);color:#fff;display:grid;place-items:center}
.mm-c span svg{width:22px;height:22px}
.mm-c h3{margin-top:.9rem!important;font-size:1.1rem}
.mm-c p{margin-top:.35rem;font-size:.95rem;line-height:1.55}
/* policies */
.pol{list-style:none;margin:clamp(1.5rem,3vw,2.2rem) 0 0;padding:0;display:grid;gap:.6rem}
.pol li{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;padding:1rem 1.2rem;border-radius:18px;border:1px solid var(--sky-line);background:#fff;transition:border-color .3s, transform .4s var(--ease)}
.pol li:hover{border-color:var(--cyan);transform:translateX(4px)}
.pol svg{width:26px;height:26px;color:var(--deep)}
.pol div{display:grid}
.pol b{font:800 1.02rem var(--display);letter-spacing:-.02em;color:var(--basalt)}
.pol span{font-size:.93rem;color:#45555B}
.pol em{font-style:normal;font-size:.85rem;font-weight:600;color:var(--deep);background:var(--sky);padding:.35rem .7rem;border-radius:999px;white-space:nowrap}
/* resources */
.rs{margin-top:clamp(1.5rem,3vw,2.2rem);display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
.rs-g{background:#fff;border:1px solid var(--sky-line);border-radius:20px;padding:1.2rem}
.rs-g h3{margin:0;font-size:1.05rem}
.rs-g ul{list-style:none;margin:.7rem 0 0;padding:0;display:grid;gap:.45rem}
.rs-g a{display:flex;gap:.45rem;align-items:center;color:var(--deep);font-weight:600;font-size:.95rem;text-decoration:none}
.rs-g a:hover{text-decoration:underline}
.rs-g a svg{width:15px;height:15px;flex:none}
.rs-g:nth-child(4n+2){transition-delay:.06s}.rs-g:nth-child(4n+3){transition-delay:.12s}.rs-g:nth-child(4n){transition-delay:.18s}
@media (max-width: 1100px){ .ah,.mm,.rs{grid-template-columns:1fr 1fr} }
@media (max-width: 960px){
  .pi-hero-grid,.pi-two,.cf2,.fz,.fz-table{grid-template-columns:1fr}
  .pi-photo,.cf2-res,.pi-hours{position:static}
  .pi-quick{grid-template-columns:1fr}
  .wc,.pi-cards3{grid-template-columns:1fr}
  .pi-sub{top:72px}
}
@media (max-width: 560px){ .pi-bring,.ap-ways,.ah,.mm,.rs,.fz-cells{grid-template-columns:1fr} .pol li{grid-template-columns:auto 1fr} .pol em{grid-column:2;justify-self:start} }

.xlink{display:inline-flex;align-items:center;gap:.4rem;margin-top:.8rem;font-weight:600;color:var(--deep);text-decoration:none;border-bottom:2px solid rgba(10,107,136,.35)}
.xlink:hover{border-color:var(--cyan)}
.xlink svg{width:16px;height:16px;transition:transform .35s var(--ease)}
.xlink:hover svg{transform:translateX(3px)}

/* ================= Patient info hero: the $0 receipt ================= */
.pi-hero2{position:relative;overflow:clip;background:var(--deep);color:#fff;padding:calc(84px + clamp(1.5rem,5vh,3.5rem)) 0 clamp(2.5rem,6vh,4rem);isolation:isolate}
.pi-hero2::before{content:"";position:absolute;inset:0;z-index:-1;background:
  radial-gradient(60% 70% at 85% 30%, rgba(10,107,136,.35), transparent 60%),
  radial-gradient(50% 60% at 10% 100%, rgba(255,255,255,.08), transparent 60%)}
.pi-hero2::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.08;background-image:linear-gradient(rgba(255,255,255,.6) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.6) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(70% 80% at 70% 40%,#000,transparent);mask-image:radial-gradient(70% 80% at 70% 40%,#000,transparent)}
body:not(.scrolled).pi-page .site-head{color:#fff}
body:not(.scrolled).pi-page .site-head .nav .link{color:#fff!important}
body:not(.scrolled).pi-page .brand .on-light{display:none}
body:not(.scrolled).pi-page .brand .on-dark{display:block}
body:not(.scrolled).pi-page .menu-btn{color:#fff}
.ph-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.ph-status{display:inline-flex;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:.5rem 1rem;color:#fff!important}
.ph-status .dot{background:#C9E7E7}
.pi-hero2 h1{margin-top:1.1rem;font-size:clamp(2.7rem,5.6vw,5.4rem);line-height:.98;color:#fff;letter-spacing:-.04em}
.ph-l{display:block;overflow:hidden;padding-bottom:.06em}
.ph-l > span{display:block;transform:translateY(105%);animation:phUp 1.1s var(--ease) forwards}
.ph-l:nth-child(2) > span{animation-delay:.12s;color:#8FDCF5}
@keyframes phUp{to{transform:none}}
.ph-lede{margin-top:1.1rem;max-width:44ch;color:#DDF1F1;opacity:0;animation:ctIn .9s var(--ease) .4s forwards}
.ph-chips{margin-top:1.4rem;display:flex;flex-wrap:wrap;gap:.5rem}
.ph-chips a{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem .95rem;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);color:#fff;text-decoration:none;font-weight:600;font-size:.95rem;opacity:0;transform:translateY(12px);animation:ctIn .7s var(--ease) forwards;animation-delay:calc(.55s + var(--n) * 70ms);transition:background .3s, border-color .3s, transform .35s var(--ease)}
.ph-chips a:hover{background:#fff;color:var(--deep);border-color:#fff;transform:translateY(-2px)}
.ph-chips svg{width:18px;height:18px}
.ph-cta{margin-top:1.6rem;display:flex;flex-wrap:wrap;gap:.7rem;opacity:0;animation:ctIn .8s var(--ease) .9s forwards}
.ph-book{background:#fff!important;color:var(--deep)!important}
.ph-book:hover{background:#EAF8FD!important}
.ph-call{border:1.5px solid rgba(255,255,255,.5);color:#fff;background:transparent}
.ph-call:hover{border-color:#fff}
/* receipt stage */
.ph-stage{position:relative;height:min(74svh,640px);min-height:520px;display:grid;justify-items:center;align-content:start;perspective:1400px}
.ph-glow{position:absolute;left:50%;top:40%;width:420px;height:420px;margin:-210px 0 0 -210px;border-radius:50%;background:radial-gradient(circle, rgba(159,230,250,.45), transparent 65%);filter:blur(10px);animation:phPulse 5s ease-in-out infinite}
@keyframes phPulse{50%{transform:scale(1.12);opacity:.7}}
.ph-tilt{position:relative;width:min(460px,96%);transform-style:preserve-3d;transform:rotateX(var(--rx,6deg)) rotateY(var(--ry,-10deg));transition:transform .6s var(--ease)}
.ph-printer{position:relative;z-index:3;height:74px;border-radius:22px;background:linear-gradient(180deg,#FFFFFF,#E3EEF2);box-shadow:0 30px 50px -24px rgba(0,0,0,.5), inset 0 -3px 0 rgba(10,60,80,.12);display:flex;align-items:center;justify-content:space-between;padding:0 1.2rem}
.ph-led{width:10px;height:10px;border-radius:50%;background:#18A86B;box-shadow:0 0 0 0 rgba(24,168,107,.6);animation:pulse 2s infinite}
.ph-slot{position:absolute;left:8%;right:8%;bottom:10px;height:8px;border-radius:6px;background:#263238;box-shadow:inset 0 2px 3px rgba(0,0,0,.6)}
.ph-label{font:700 .8rem var(--display);color:#5B6B71}
.ph-paper-wrap{position:relative;z-index:2;margin:-14px 6% 0;overflow:hidden;padding-bottom:40px}
.ph-paper{position:relative;background:#fff;color:var(--basalt);padding:1.4rem 1.3rem 1.6rem;border-radius:0 0 6px 6px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6);transform:translateY(-102%);transition:transform 2.2s cubic-bezier(.45,.05,.25,1)}
.ph-stage.go .ph-paper{transform:none}
.rc{list-style:none;margin:0;padding:0;font-family:"Courier New",ui-monospace,monospace;font-size:.88rem;display:grid;gap:.5rem}
.rc-l{display:flex;justify-content:space-between;gap:1rem;opacity:0;transition:opacity .35s ease;transition-delay:calc(.6s + var(--i) * .17s)}
.ph-stage.go .rc-l{opacity:1}
.rc-l b{font-weight:700;white-space:nowrap;text-align:right}
.rc-brand{font:800 1.05rem var(--display)!important;justify-content:center;color:var(--deep)}
.rc-sub{justify-content:center;font-size:.8rem;color:#5B6B71}
.rc-dash{flex:1;border-top:2px dashed #C9D6DA;margin:.2rem 0}
.rc-total{font-size:1.15rem;align-items:baseline}
.rc-total b{font:800 2rem/1 var(--display);color:#14724A;letter-spacing:-.02em}
.rc-stamp{position:relative;width:max-content;margin:1.1rem auto 0;display:grid;justify-items:center;padding:.45rem .9rem;border:3px solid #14724A;border-radius:12px;color:#14724A;transform:rotate(-12deg) scale(2.4);opacity:0;font-family:var(--display);mix-blend-mode:multiply}
.rc-stamp b{font-weight:800;font-size:1.25rem;letter-spacing:.02em}
.rc-stamp span{font-size:.7rem;font-weight:700}
.ph-stage.stamped .rc-stamp{animation:stamp .55s cubic-bezier(.3,1.4,.5,1) forwards}
@keyframes stamp{0%{opacity:0;transform:rotate(-12deg) scale(2.4)}60%{opacity:1;transform:rotate(-12deg) scale(.92)}100%{opacity:.92;transform:rotate(-12deg) scale(1)}}
.ph-stage.stamped .ph-tilt{animation:thud .35s ease-out}
@keyframes thud{40%{translate:0 3px}}
.rc-foot{margin-top:1rem;font-size:.74rem!important;line-height:1.4;color:#5B6B71!important;opacity:0;transition:opacity .5s ease 2.4s}
.ph-stage.go .rc-foot{opacity:1}
.rc-zig{position:absolute;left:0;right:0;bottom:-10px;height:12px;background:linear-gradient(-45deg,transparent 33%,#fff 33%,#fff 66%,transparent 66%),linear-gradient(45deg,transparent 33%,#fff 33%,#fff 66%,transparent 66%);background-size:16px 24px;background-position:0 -12px}
/* floating facts */
.ph-float{position:absolute;z-index:4;display:grid;gap:.1rem;padding:.7rem .95rem;border-radius:16px;background:rgba(255,255,255,.96);color:#45555B;text-decoration:none;font-size:.8rem;line-height:1.3;max-width:180px;box-shadow:0 22px 40px -20px rgba(0,0,0,.55);opacity:0;transform:translateZ(60px) scale(.85);transition:opacity .6s var(--ease), transform .6s cubic-bezier(.3,1.5,.5,1)}
.ph-float b{font:800 1.1rem/1.15 var(--display);color:var(--deep);letter-spacing:-.02em}
.ph-stage.stamped .ph-float{opacity:1;transform:translateZ(60px) scale(1)}
.ph-stage.stamped .ph-float.f2{transition-delay:.15s}.ph-stage.stamped .ph-float.f3{transition-delay:.3s}
.ph-float.f1{left:-30%;top:120px;animation:bob 6s ease-in-out infinite}
.ph-float.f2{right:-28%;top:220px;animation:bob 7s ease-in-out .8s infinite}
.ph-float.f3{left:-22%;bottom:40px;animation:bob 6.5s ease-in-out .4s infinite}
.ph-replay{position:absolute;right:0;bottom:0;display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .9rem;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;font:600 .88rem var(--body);cursor:pointer;opacity:0;transition:opacity .4s, background .3s}
.ph-replay svg{width:16px;height:16px}
.ph-stage.stamped .ph-replay{opacity:1}
.ph-replay:hover{background:rgba(255,255,255,.12)}
@media (max-width: 1100px){ .ph-float.f1{left:-12%} .ph-float.f2{right:-10%} .ph-float.f3{left:-6%} }
@media (max-width: 960px){
  .ph-grid{grid-template-columns:1fr}
  .ph-stage{height:auto;min-height:0;padding-bottom:3.5rem}
  .ph-float{display:none}
  .ph-replay{left:50%;right:auto;transform:translateX(-50%)}
}
@media (prefers-reduced-motion: reduce){
  .ph-l > span,.ph-lede,.ph-chips a,.ph-cta{animation:none;opacity:1;transform:none}
  .ph-paper{transform:none;transition:none} .rc-l,.rc-foot{opacity:1;transition:none} .rc-stamp{opacity:.92;transform:rotate(-12deg)} .ph-float{opacity:1;transform:none;animation:none} .ph-glow{animation:none}
}

body:not(.scrolled).pi-page .site-head .btn-book{background:#fff!important;color:var(--deep)!important}
body:not(.scrolled).pi-page .call-dot{background:#fff;color:var(--deep)}
@media (max-width: 560px){ .rc{font-size:.8rem} .rc-total b{font-size:1.6rem} }

/* ================= Patient info: fit each section to one screen ================= */
@media (min-width: 961px){
  body:not(.ct-page) .pi-sec,body:not(.ct-page) .ct-faq{padding-top:clamp(2rem,5vh,4rem);padding-bottom:clamp(2rem,5vh,4rem)}

  body:not(.ct-page) .pi-sec h2,body:not(.ct-page) .ct-head h2{font-size:clamp(2rem,min(3.2vw,5.4vh),3.1rem)}

  body:not(.ct-page) .pi-sec h3{margin-top:1rem}

  body:not(.ct-page) .pi-sec .wrap > div > p,body:not(.ct-page) .pi-two > div > p{margin-top:.55rem}

  body:not(.ct-page) .ct-head{align-items:end}

  /* new patients */
  body:not(.ct-page) .pi-two{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr)}

  body:not(.ct-page) .pi-bring{gap:.45rem}

  body:not(.ct-page) .pi-bring li{padding:.6rem .75rem}

  body:not(.ct-page) .pi-bring span{width:34px;height:34px}

  body:not(.ct-page) .pi-bring em{font-size:.86rem!important}

  body:not(.ct-page) .pi-tip{margin-top:.8rem!important;padding:.7rem .9rem}

  body:not(.ct-page) .pi-cta{margin-top:1rem}

  body:not(.ct-page) .pi-photo img{aspect-ratio:auto;height:min(64vh,560px)}

  /* cost finder */
  body:not(.ct-page) .cf2{margin-top:clamp(1rem,2.5vh,1.8rem)}

  body:not(.ct-page) .cf2-opts{gap:.4rem}

  body:not(.ct-page) .cf2-o{padding:.75rem 1rem}

  /* fees */
  body:not(.ct-page) .fz{margin-top:clamp(1rem,2.5vh,1.8rem)}

  body:not(.ct-page) .fz-col{padding:1.1rem 1.25rem}

  body:not(.ct-page) .fz-col ul{margin-top:.6rem}

  body:not(.ct-page) .fz-ok li{display:block;padding:.45rem 0}

  body:not(.ct-page) .fz-ok li span{display:inline}

  body:not(.ct-page) .fz-ok li span::before{content:", "}

  body:not(.ct-page) .fz-fee ul{grid-template-columns:1fr 1fr;column-gap:1rem}

  body:not(.ct-page) .fz-fee li{padding:.45rem 0}

  body:not(.ct-page) .fz-note{margin-top:.5rem}

  body:not(.ct-page) .fz-table{margin-top:.8rem;padding:1rem 1.3rem}

  body:not(.ct-page) .fz-cell{padding:.7rem .9rem}

  body:not(.ct-page) .fz-cell b{font-size:1.7rem}

  /* appointments, communication, FAQ */
  body:not(.ct-page) .ap-ways{margin-top:.9rem}

  body:not(.ct-page) .ap-w{padding:.8rem}

  body:not(.ct-page) .pi-hours{padding:1.1rem}

  body:not(.ct-page) .pi-hours li{padding:.5rem .6rem}

  body:not(.ct-page) .pc{padding:1.2rem}

  body:not(.ct-page) .pc p{font-size:.95rem!important;line-height:1.55!important}

  body:not(.ct-page) .pi-stack{gap:.8rem}

  body:not(.ct-page) .wc{margin-top:clamp(1rem,2.5vh,1.8rem)}

  body:not(.ct-page) .mm,body:not(.ct-page) .rs,body:not(.ct-page) .ah,body:not(.ct-page) .pol{margin-top:clamp(1rem,2.5vh,1.8rem)}

  body:not(.ct-page) .pol li{padding:.75rem 1.1rem}

  body:not(.ct-page) .fq-q{padding:.85rem 0}}

@media (min-width: 961px) and (max-height: 820px){
  body:not(.ct-page) .pi-bring em{display:none}

  body:not(.ct-page) .ap-ways{display:none}

  body:not(.ct-page) .fz-ok li span{display:none}

  body:not(.ct-page) .pi-stack .pc p{font-size:.9rem!important}}


@media (min-width: 961px) and (max-height: 820px){
  body:not(.ct-page) #new .pi-tip{display:none}

  body:not(.ct-page) #new .pi-two > div > p + p{display:none}

  body:not(.ct-page) .fz-note{display:none}

  body:not(.ct-page) .fz-table{padding:.8rem 1.2rem}

  body:not(.ct-page) .fz-table p{display:none}

  body:not(.ct-page) .fz-col li{padding:.35rem 0!important}

  body:not(.ct-page) #communication .pi-two > div > p:nth-of-type(2){font-size:.95rem}

  body:not(.ct-page) #communication .pi-tip{display:none}

  body:not(.ct-page) .pi-stack .pc{padding:1rem}

  body:not(.ct-page) .pc-ic{width:42px;height:42px}

  body:not(.ct-page) .pc h2{margin-top:.6rem}}
