/* One contact component; no independent floating buttons. */
:root{--contact-clearance:98px;--hero-accent:#afe2e4}
.contact-dock{position:fixed;left:auto;right:max(20px,env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom));z-index:50;display:flex;flex-direction:column;gap:12px;width:58px}
.contact-icon{position:relative;width:58px;height:58px;flex:0 0 58px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;box-shadow:0 4px 14px #102a3b30;transition:transform .18s,box-shadow .18s;text-decoration:none}
.contact-icon svg{display:block;width:30px;height:30px;fill:currentColor}.contact-whatsapp{background:#25d366}.contact-instagram{background:radial-gradient(circle at 30% 105%,#feda75 0%,#fa7e1e 27%,#d62976 53%,#962fbf 76%,#4f5bd5 100%)}.contact-facebook-f{background:#0866ff}.contact-phone{background:#155761}
.contact-icon:hover{transform:translateY(-2px);box-shadow:0 7px 20px #102a3b40}.contact-icon:focus-visible{outline:3px solid #172e3b;outline-offset:4px}.contact-tooltip{position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%);white-space:nowrap;background:#172e3b;color:#fff;border-radius:7px;padding:6px 10px;font-size:14px;opacity:0;visibility:hidden;pointer-events:none}.contact-icon:focus-visible .contact-tooltip{opacity:1;visibility:visible}
@media(hover:hover){.contact-icon:hover .contact-tooltip{opacity:1;visibility:visible}}
/* Reserve the right page margin so the dock never sits over patient content. */
main .section,.video-hero,body>footer,.topbar{padding-right:max(var(--contact-clearance),7.5%)}
body>header,.video-home .landing-header{padding-right:max(var(--contact-clearance),4%)}
.trust-marquee{margin-right:var(--contact-clearance)}.dental-article{padding-right:var(--contact-clearance)}
main,section,article,aside,.footer-top>div{min-width:0}.contact-links a,.footer-top a{overflow-wrap:anywhere}
/* Live, native lazy-loaded tour: it needs no activation script or click. */
.virtual-tour-inline{display:block;padding:32px;background:#edf7f7;border:1px solid #cddfe2;border-radius:24px}.virtual-tour-inline>h3{font-size:clamp(28px,3vw,40px);line-height:1.2}.virtual-tour-inline>p{margin:16px 0 24px}.virtual-tour-inline .virtual-tour-stage{aspect-ratio:16/9;min-height:420px;width:100%;border-radius:18px;background:#172e3b;position:relative;overflow:hidden}.virtual-tour-inline iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.virtual-tour-inline .tour-fallback{margin-top:20px}
/* Account for the dock margin in tablet navigation and columns. */
@media(max-width:1200px){
 body>header nav{display:none;position:absolute;top:110px;right:var(--contact-clearance);left:4%;padding:22px;border:1px solid #cddfe2;border-radius:16px;background:#fffefa;color:#172e3b;box-shadow:0 12px 30px #102a3b20;max-height:calc(100svh - 140px);overflow:auto}
 body>header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:10px}body>header .menu-toggle{display:block;min-width:44px;min-height:44px}body>header{height:110px}.video-home .landing-header{height:110px}body>header>.button{margin-right:auto}
 .landing-header nav>a:hover{color:#155761}.nav-service-menu{position:static;width:100%;left:auto;box-shadow:none;background:#edf7f7;margin-top:8px;white-space:normal}.nav-services summary{text-shadow:none}.landing-header .current{border-color:#172e3b}
 .no-js body>header{position:relative;flex-wrap:wrap;height:auto}.no-js body>header nav{display:flex;position:static;width:100%;max-height:none;box-shadow:none;flex-wrap:wrap}
}
@media(max-width:900px){.visit,.booking,.faq,.service-body{grid-template-columns:minmax(0,1fr)}.clinic-opening{grid-template-columns:minmax(0,1fr)}.video-home .doctor-profile{grid-template-columns:minmax(0,1fr)}.footer-top{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-top>div:last-child{grid-column:1/-1}.virtual-tour-inline .virtual-tour-stage{min-height:450px}}
@media(max-width:760px){
 :root{--contact-clearance:86px}.contact-dock{right:max(18px,env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom));width:50px;gap:10px}.contact-icon{width:50px;height:50px;flex-basis:50px}.contact-icon svg{width:27px;height:27px}
 main .section,.video-hero,body>footer{padding-right:var(--contact-clearance);padding-left:20px}.trust-marquee{margin-right:var(--contact-clearance)}.dental-article{padding-right:var(--contact-clearance);padding-left:20px}.topbar{padding-left:20px;height:auto}
 .virtual-tour-inline{padding:20px 14px;border-radius:20px}.virtual-tour-inline .virtual-tour-stage{aspect-ratio:3/4;min-height:390px;border-radius:14px}.virtual-tour-inline>h3{font-size:28px}.virtual-tour-inline .tour-fallback{font-size:14px}.welcome-content h1{font-size:clamp(32px,7.8vw,50px);line-height:1.14}.welcome-actions .button{width:100%;min-width:0}.welcome-details>p{font-size:17px}
 .clinic-preview-grid .clinic-photo:last-child{display:block}.clinic-preview-grid .clinic-photo:last-child figcaption{font-size:17px}.clinic-photo-grid{grid-template-columns:1fr}.family-comfort .clinic-sedation{grid-template-columns:1fr}.doctor-profile .doctor-copy h2,.family-care-section h2,.clinic-tour .section-heading h2{font-size:34px}
 .footer-top{grid-template-columns:1fr}.footer-top>div{grid-column:1}.contact-tooltip{display:none}body>footer{padding-bottom:60px}.hours{padding:30px 20px;border-radius:24px}.section h2{overflow-wrap:break-word}form{padding:24px 16px}
}
@media(max-width:640px){
 body>header,.video-home .landing-header{display:grid;grid-template-columns:minmax(0,1fr) 44px;padding:14px var(--contact-clearance) 14px 20px;gap:10px;height:142px}
 body>header>a:first-child{grid-column:1;grid-row:1}body>header .logo,.landing-header .logo{width:165px;max-width:100%}body>header .menu-toggle{grid-column:2;grid-row:1;padding:0}body>header>.button{display:inline-flex;grid-column:1/-1;grid-row:2;justify-self:start;margin:0;min-height:44px;font-size:14px;padding:10px 18px}
 body>header nav,.landing-header nav{top:142px;right:var(--contact-clearance);left:20px;max-height:calc(100svh - 160px)}.nav-service-menu{grid-template-columns:1fr}.nav-service-menu .all-services{grid-column:auto}.video-hero{padding-top:195px}.no-js body>header{display:flex}.no-js body>header nav{width:100%;padding:14px}.no-js .video-hero{padding-top:60px}
 .service-hero h1,.advice-intro h1,.article-heading h1{font-size:34px;line-height:1.14}.section-heading>p{max-width:100%}.review-controls{flex-wrap:wrap}.patient-review{padding:20px;flex-basis:100%}.clinic-credentials h2{font-size:30px}.care-grid{grid-template-columns:1fr}
}
@media(max-height:400px){.contact-dock{gap:8px;bottom:12px}.contact-icon{width:48px;height:48px;flex-basis:48px}.contact-dock{width:48px}}
@media(prefers-reduced-motion:reduce){.contact-icon{transition:none}.contact-icon:hover{transform:none}}
.speciality-card h3 span{color:#155761}.speciality-card p{font-size:16px}.media-actions button{font-size:14px}
@media(max-width:640px){.care-block-grid,.speciality-grid{grid-template-columns:minmax(0,1fr)}.family-comfort .clinic-sedation{padding:18px}.clinic-brand-feature,.clinic-sedation{padding:18px}.button{max-width:100%;white-space:normal;text-align:center}.service-hero .button{font-size:15px}}

/* Approved interior type system, applied explicitly to the homepage hero. */
.welcome-content h1{color:var(--hero-accent);font-family:'Outfit',sans-serif;font-weight:600;letter-spacing:-.045em;line-height:1.12}
.welcome-details>p{font-family:'Outfit',sans-serif;font-weight:400;letter-spacing:normal;line-height:1.7}
.welcome-actions .button,.landing-header .button{font-family:'Outfit',sans-serif;font-weight:650}
.landing-header nav,.nav-services summary{font-family:'Outfit',sans-serif;font-weight:600}
/* The approved logo retains every original pixel and its authentic colours. */
footer .footer-brand{display:inline-block;align-self:flex-start;width:fit-content;max-width:100%;padding:12px;background:#fafafa;border-radius:14px;line-height:0;margin-bottom:12px}
footer .footer-brand .logo{display:block;width:206px;max-width:100%;height:auto;object-fit:contain;mix-blend-mode:normal;filter:none;opacity:1}
@media(max-width:640px){footer .footer-brand{padding:10px}footer .footer-brand .logo{width:190px}}
/* Keep form text readable on phones, including when the native keyboard opens. */
@media(max-width:760px){input:not([type=checkbox]),select,textarea{font-size:16px;min-height:48px}}

/* Clinic-confirmed schedule; use the existing Visit card and footer. */
.clinic-hours-list{margin:0 0 26px}.clinic-hours-list dt{font-weight:600;font-size:18px;margin:20px 0 10px}.clinic-hours-list dd{margin:8px 0;display:flex;flex-wrap:wrap;gap:4px 10px;font-size:16px;line-height:1.65}.clinic-hours-list dd span:last-child{white-space:nowrap}.footer-hours{display:block;line-height:1.8}.footer-hours b{font-weight:600}
