/* Design tokens and foundational layout */
:root{--primary:#3a6ea5;--primary-dark:#28577f;--primary-soft:#eaf3fb;--accent:#d8759a;--accent-dark:#8f3e61;--text:#213547;--text-muted:#526a80;--surface:#fff;--surface-soft:#f5f9fc;--border:#d8e3ec;--focus:#b54370;--footer-text:#fff;--footer-muted:#f4e8ee;--footer-accent:#f3a6c3;--footer-divider:rgba(255,255,255,.24);--shadow:0 1rem 2.5rem rgba(33,53,71,.09);--radius:16px;--radius-lg:24px;--content-width:1160px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:6rem}
body{margin:0;color:var(--text);background:var(--surface);font-family:"Nunito Sans",system-ui,sans-serif;font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.2em}
button,input,textarea{font:inherit}
button,.btn,a{touch-action:manipulation}
.container{width:min(var(--content-width),calc(100% - 2rem));margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:1rem;left:1rem;z-index:100;padding:.7rem 1rem;border-radius:8px;color:#fff;background:var(--accent-dark);transform:translateY(-180%);transition:transform .2s ease}
.skip-link:focus{transform:translateY(0)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{color:var(--primary-dark);line-height:1.15;letter-spacing:-.025em;text-wrap:balance}
h1{max-width:14ch;margin-bottom:1.25rem;font-size:clamp(2.35rem,5vw,4.6rem)}
h2{font-size:clamp(1.8rem,3vw,2.75rem)}
h3{font-size:1.25rem}
p{max-width:72ch}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:.85rem;color:var(--accent-dark);font-size:.8rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.lead{max-width:60ch;color:var(--text-muted);font-size:clamp(1.05rem,1.7vw,1.25rem)}
.section{padding-block:var(--section-space)}
.section-light{background:var(--surface-soft)}
.section-title{margin-bottom:var(--section-content-gap)}
.section-title h1,.section-title h2{margin-bottom:1rem}.section-title h1{max-width:24ch}
.section-title p{color:var(--text-muted);font-size:1.1rem}
.btn-group{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;margin-top:1.75rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:3rem;padding:.75rem 1.2rem;border:2px solid transparent;border-radius:999px;font-weight:900;text-align:center;text-decoration:none;cursor:pointer;transition:transform .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}
.btn:hover{transform:translateY(-2px)}
.btn-primary{color:#fff;background:var(--primary);box-shadow:0 .65rem 1.25rem rgba(58,110,165,.2)}
.btn-primary:hover,.btn-primary:focus-visible{background:var(--primary-dark)}
.btn-outline{color:var(--primary-dark);border-color:var(--primary);background:transparent}
.btn-outline:hover,.btn-outline:focus-visible{color:#fff;background:var(--primary)}
.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(216,227,236,.85);background:rgba(255,255,255,.94);backdrop-filter:blur(14px)}
.nav-wrap{display:flex;align-items:center;gap:1.25rem;min-height:5.5rem}
.brand{display:inline-flex;align-items:center;flex:0 0 auto}.brand:focus-visible{border-radius:10px;outline:3px solid var(--focus);outline-offset:4px}
.brand-logo{width:clamp(9rem,16vw,12.2rem);height:auto;aspect-ratio:488/150;object-fit:contain}
.nav-links{display:flex;align-items:center;justify-content:center;gap:clamp(.7rem,1.8vw,1.35rem);margin-inline:auto}
.header-socials{display:flex;align-items:center;gap:.35rem;margin-left:.5rem}
.header-socials a,.footer-social-links a{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;color:var(--primary-dark);text-decoration:none;transition:color .2s ease,background-color .2s ease,transform .2s ease}
.header-socials a:hover,.header-socials a:focus-visible{color:#fff;background:var(--accent-dark);transform:translateY(-2px)}
.header-socials a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.site-navigation-link{padding:.7rem .1rem;border-bottom:2px solid transparent;color:var(--text-muted);font-size:.92rem;font-weight:800;text-decoration:none}
.site-navigation-link:hover,.site-navigation-link:focus-visible,.site-navigation-link.is-active{color:var(--primary-dark);border-color:currentColor}
.nav-toggle{display:none;width:2.75rem;height:2.75rem;padding:.55rem;border:1px solid var(--border);border-radius:10px;color:var(--primary-dark);background:#fff;cursor:pointer}
.nav-toggle>span:not(.sr-only){display:block;width:1.5rem;height:2px;margin:.25rem auto;background:currentColor}
.mobile-drawer-close,.mobile-drawer-content{display:none}
body.drawer-open{overflow:hidden}
.hero-badges{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.75rem}
.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .7rem;border:1px solid rgba(58,110,165,.17);border-radius:999px;color:var(--primary-dark);background:rgba(255,255,255,.76);font-size:.85rem;font-weight:800}
.trust-section{padding-block:var(--section-space-compact);color:#fff;background:var(--accent-dark)}
.trust-cta-head h2{margin-bottom:.75rem;color:#fff}.trust-section .eyebrow{color:#ffd9e6}
.about-grid{align-items:start}.about-media{display:grid;gap:.85rem}.about-media .eyebrow{margin-bottom:0}
.trust-cta-head p{margin-bottom:1rem}
.trust-section + .section{padding-top:var(--section-space-compact)}
.trust-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.trust-item{display:flex;align-items:center;gap:.75rem;font-weight:800}
.icon-circle{display:grid;place-items:center;flex:0 0 2.8rem;width:2.8rem;height:2.8rem;border-radius:50%;color:var(--primary-dark);background:var(--primary-soft)}
.trust-section .icon-circle{color:#fff;background:rgba(255,255,255,.16)}
.split-grid,.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,6vw,5rem);align-items:center}
.image-stack{--carousel-inset:1rem;position:relative;min-height:28rem;border-radius:var(--radius-lg);background:linear-gradient(135deg,#e8b9d0,#d8eafb);box-shadow:var(--shadow)}
.image-stack::after{display:none}
.main-image{position:absolute;inset:var(--carousel-inset);display:grid;place-items:center;color:var(--primary-dark);font-size:4rem;background:rgba(255,255,255,.55);border-radius:var(--radius)}
.glass-panel{border:1px solid rgba(255,255,255,.7);background:rgba(255,255,255,.82);box-shadow:var(--shadow);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.photo-carousel-caption{position:absolute;right:var(--carousel-inset);bottom:var(--carousel-inset);left:var(--carousel-inset);z-index:1;padding:.8rem 1rem;border-radius:12px;color:var(--primary-dark);font-size:1rem;line-height:1.65;font-weight:900}
.check-list{display:grid;gap:.75rem;padding:0;margin:1.5rem 0 0;list-style:none}
.check-list li{display:flex;gap:.65rem;align-items:flex-start}
.check-list i{margin-top:.35rem;color:var(--accent-dark)}
.services-grid,.why-grid,.reviews-grid,.faq-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.service-card,.why-card,.review-card,.contact-card,.notice-box{padding:clamp(1.35rem,3vw,2rem);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}
.service-card h3,.why-card h3{margin:1rem 0 .55rem}
.service-card p,.why-card p,.review-card p,.contact-card p{color:var(--text-muted)}
.inline-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem;margin-top:2rem;text-align:center}.inline-cta p{margin:0}
.faq-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(1rem,2vw,1.5rem)}
.faq-item{border:1px solid var(--primary);border-radius:var(--radius);background:var(--primary);transition:border-color .2s ease,background-color .2s ease}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4rem;padding:1rem 1.25rem;border-radius:calc(var(--radius) - 1px);color:#fff;font-weight:900;cursor:pointer;list-style:none;transition:color .2s ease,background-color .2s ease}
.faq-item summary::-webkit-details-marker{display:none}
.faq-indicator{display:grid;place-items:center;flex:0 0 1.75rem;width:1.75rem;height:1.75rem;border-radius:50%;color:var(--primary-dark);background:#fff;font-size:1.25rem;line-height:1;transition:color .2s ease,background-color .2s ease}
.faq-indicator::before{content:"+"}
.faq-item summary:hover{background:var(--primary-dark);color:#fff}
.faq-item summary:focus-visible{border-radius:calc(var(--radius) - 1px);outline:3px solid var(--focus);outline-offset:3px}
.faq-item[open]{border-color:var(--primary-dark);background:var(--primary-dark)}
.faq-item[open] summary{border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0}
.faq-item[open] .faq-indicator{color:var(--primary-dark);background:#fff}
.faq-item[open] .faq-indicator::before{content:"−"}
.faq-item>p{padding:0 1.25rem 1.25rem;color:rgba(255,255,255,.92)}
.contact-grid{align-items:start}
.contact-list{display:grid;gap:.8rem;margin-top:1.5rem}
.contact-list a,.contact-list>div{display:flex;align-items:flex-start;gap:.75rem;color:var(--primary-dark);font-weight:800;text-decoration:none}
.contact-list i{width:1.2rem;margin-top:.3rem;color:var(--accent-dark);text-align:center}
.form-grid{display:grid;gap:1rem}
.form-field{display:grid;gap:.4rem}
.form-field label{color:var(--primary-dark);font-weight:800}
.optional{color:var(--text-muted);font-size:.9em;font-weight:600}
.form-field input,.form-field textarea{width:100%;padding:.8rem .9rem;border:1px solid var(--border);border-radius:10px;color:var(--text);background:#fff}
.form-field textarea{min-height:8rem;resize:vertical}
.form-field input:focus,.form-field textarea:focus{border-color:var(--primary);outline:3px solid rgba(58,110,165,.18)}
.notice-box{border-color:rgba(216,117,154,.25);background:#fff8fb}.contact-check-list{margin-top:1.25rem}.contact-check-list-outro{margin:1.25rem 0 0;color:var(--text-muted)}
.cta-section{padding-block:var(--section-space-compact);color:#fff;background:linear-gradient(135deg,var(--primary-dark),var(--primary))}
.cta-box{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,.8fr);gap:2rem;align-items:center;padding:0;border-radius:0;color:#fff;background:transparent;box-shadow:none}
.cta-box h2,.cta-box p{color:#fff}.cta-box p{opacity:.88}.cta-box .eyebrow{color:#ffd9e6}
.cta-panel{padding:1.25rem;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius);background:rgba(255,255,255,.1)}
.cta-panel h3{color:#fff}.cta-panel p{font-size:.95rem}.cta-box .btn-primary{color:var(--primary-dark);background:#fff}.cta-box .btn-primary:hover{background:#f5f9fc}.cta-box .btn-outline{color:#fff;border-color:rgba(255,255,255,.7)}
.flash-message{width:min(var(--content-width),calc(100% - 2rem));margin:1rem auto;padding:1rem;border-radius:10px;font-weight:700}.flash-success{color:#155d3a;background:#e9f8f0}.flash-error{color:#8b2d42;background:#fff0f3}
.reveal{animation:reveal-in .55s ease-out both}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}@keyframes reveal-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:900px){.site-header{backdrop-filter:none;-webkit-backdrop-filter:none}.nav-wrap{flex-wrap:nowrap}.nav-toggle{display:block;margin-left:auto}.mobile-drawer{position:fixed;top:0;right:0;bottom:0;z-index:60;display:flex;align-items:stretch;flex-direction:column;justify-content:flex-start;gap:0;width:min(22rem,88vw);max-width:100%;padding:1rem 1.25rem 2rem;margin:0;overflow-y:auto;overscroll-behavior:contain;background:var(--surface);box-shadow:-1rem 0 2.5rem rgba(25,71,102,.2);transform:translate3d(105%,0,0);transition:transform .35s cubic-bezier(.16,1,.3,1),visibility 0s linear .35s;visibility:hidden}.mobile-drawer.is-open{transform:translate3d(0,0,0);visibility:visible;transition-delay:0s}.mobile-drawer .site-navigation-link{display:flex;align-items:center;min-height:2.75rem;padding:.8rem .25rem;border-bottom:1px solid var(--border)}.mobile-drawer-close{display:grid;place-items:center;align-self:flex-start;width:2.75rem;height:2.75rem;margin-bottom:1rem;border:1px solid var(--border);border-radius:10px;color:var(--primary-dark);background:var(--surface);font-size:1.5rem;cursor:pointer}.mobile-drawer-content{display:grid;gap:1.25rem;margin-top:0;padding-top:1.25rem}.mobile-menu-cta{display:flex;margin:0}.mobile-drawer-section{padding-top:1rem;border-top:1px solid var(--border)}.mobile-drawer-section + .mobile-drawer-section{margin-top:0}.mobile-drawer-section h2{margin:0 0 .5rem;color:var(--primary-dark);font-size:1rem}.mobile-drawer-section a{display:flex;align-items:center;gap:.65rem;min-height:2.75rem;padding:.8rem .25rem;border:0;color:var(--text-muted);font-size:.95rem;font-weight:700;text-decoration:none}.mobile-drawer-section a i{width:1.1rem;color:var(--primary)}.mobile-drawer-socials{display:flex;flex-wrap:wrap;gap:.75rem}.mobile-drawer-socials a{width:auto;min-height:2.75rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:999px;color:var(--primary-dark)}.mobile-drawer-backdrop{position:fixed;inset:0;overscroll-behavior:none;z-index:55;background:rgba(25,71,102,.38);opacity:0;transition:opacity .3s ease}.mobile-drawer-backdrop.is-visible{opacity:1}.trust-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-main{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.container{width:min(var(--content-width),calc(100% - 1.5rem))}.nav-wrap{min-height:4.6rem}.brand-logo{width:9.5rem}.trust-grid,.split-grid,.contact-grid,.services-grid,.why-grid,.reviews-grid,.faq-grid,.cta-box{grid-template-columns:1fr}.trust-item{font-size:.9rem}.btn-group{align-items:stretch;flex-direction:column}.btn{width:100%}.image-stack{min-height:18rem}.cta-box{padding:1.5rem}.footer-main{grid-template-columns:1fr}.inline-cta{flex-direction:column}.inline-cta .btn{width:min(100%,22rem)}}
@media(max-width:380px){.nav-wrap{gap:.5rem}.brand-logo{width:8rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.skip-link{transition:none}.reveal{animation:none}}

.site-navigation-link.is-active{color:var(--primary-dark);border-color:currentColor}

.process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem}.process-step{position:relative;padding:1.6rem;border:1px solid rgba(40,97,142,.08);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.process-number{display:grid;place-items:center;width:42px;height:42px;margin-bottom:1rem;border-radius:50%;color:#fff;background:var(--accent);font-size:1.1rem;font-weight:900}.process-step p{margin-top:.6rem;color:var(--text-muted)}.section-action{margin-top:2rem;text-align:center}.review-card blockquote{margin:0;color:var(--text-muted);font-size:1.05rem}.scroll-to-top{position:fixed;right:1.25rem;bottom:5.5rem;z-index:19;display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--border);border-radius:50%;color:var(--accent-dark);background:var(--surface);box-shadow:0 10px 25px rgba(25,71,102,.16);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .2s ease,visibility .2s ease,transform .2s ease;cursor:pointer}.scroll-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}@media(max-width:640px){.process-grid{grid-template-columns:1fr}.scroll-to-top{right:auto;left:1rem;bottom:max(1rem,env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){.scroll-to-top{transition:none}}
.review-mark{margin-bottom:.25rem;color:var(--primary);font-size:3rem;font-weight:900;line-height:.8}

.footer-socials{margin-top:1.25rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.2)}
.footer-socials h3{margin:0 0 .5rem;color:var(--footer-text);font-size:.95rem}
.footer-social-links{display:flex;flex-wrap:wrap;gap:.35rem}
.footer-social-links a{color:var(--footer-text);background:rgba(255,255,255,.12)}
.footer-social-links a:hover,.footer-social-links a:focus-visible{color:var(--accent-dark);background:#fff;transform:translateY(-2px)}
.footer-social-links a:focus-visible{outline:3px solid #ffd9e6;outline-offset:3px}
@media(max-width:900px){.header-socials{display:none}}
.location-hero{position:relative;isolation:isolate;overflow:hidden;text-align:center;background:linear-gradient(135deg,#fff 0%,var(--primary-soft) 100%)}.location-hero-content{position:relative;z-index:2;display:flex;align-items:center;flex-direction:column}.location-hero h1{max-width:none;margin-bottom:1rem;font-size:clamp(2rem,4.6vw,4.1rem)}.location-hero p{max-width:68ch;color:var(--text-muted);font-size:clamp(1rem,1.7vw,1.15rem)}.location-actions{justify-content:center;margin-top:1.5rem}.location-hero-image,.location-hero-overlay{position:absolute;inset:0;width:100%;height:100%}.location-hero-image{z-index:-2;object-fit:cover;object-position:center 52%;filter:saturate(.72) contrast(.88)}.location-hero-overlay{z-index:-1;background:linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(245,249,252,.84) 52%,rgba(234,243,251,.88) 100%)}.location-hero.has-location-image{min-height:clamp(28rem,48vw,38rem);display:flex;align-items:center}.location-hero-credit{position:absolute;right:1rem;bottom:.65rem;z-index:3;color:var(--primary-dark);font-size:.72rem;opacity:.78}.location-hero-credit a{color:inherit;text-decoration:none}.location-hero-credit a:hover,.location-hero-credit a:focus-visible{opacity:1;text-decoration:underline}.location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,4vw,3rem);align-items:stretch}.location-note{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border);color:var(--text-muted)}.text-link{display:inline-flex;gap:.5rem;align-items:center;margin-top:1.25rem;color:var(--primary-dark);font-weight:800}.location-faq{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:640px){.location-hero{padding-block:clamp(3.5rem,14vw,5rem)}.location-hero.has-location-image{min-height:32rem}.location-hero h1{font-size:clamp(2.1rem,10vw,3.2rem)}.location-hero-overlay{background:rgba(245,249,252,.9)}.location-hero-credit{right:.75rem;bottom:.45rem;font-size:.65rem}.location-grid,.location-faq{grid-template-columns:1fr}}
.footer-locations{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin-bottom:1rem}.footer-locations strong{width:100%}.footer-locations a{text-decoration:underline;text-underline-offset:.2em}.footer-locations a:hover,.footer-locations a:focus-visible{color:var(--primary-soft)}
.footer-location-details{margin-top:.75rem}.footer-location-details summary{display:inline-flex;align-items:center;gap:.5rem;min-height:2.75rem;width:max-content;padding:.35rem 0;border:0;border-radius:0;color:var(--footer-text);font-weight:800;cursor:pointer;text-decoration:none;transition:color .2s ease,transform .2s ease}.footer-location-details summary:hover,.footer-location-details summary:focus-visible{color:var(--footer-text);background:transparent;transform:translateX(.15rem)}.footer-location-details summary:focus-visible{outline:3px solid rgba(255,217,230,.85);outline-offset:4px}
.footer-location-featured,.footer-location-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem 1.5rem}.footer-location-featured a,.footer-location-columns a{display:inline-flex;align-items:center;min-height:2.5rem;color:var(--footer-text);text-decoration:none;transition:color .2s ease,transform .2s ease}.footer-location-featured a:hover,.footer-location-featured a:focus-visible,.footer-location-columns a:hover,.footer-location-columns a:focus-visible{color:var(--footer-text);transform:translateX(.15rem)}.footer-location-featured a:focus-visible,.footer-location-columns a:focus-visible{outline:3px solid rgba(255,217,230,.85);outline-offset:3px}
.footer-location-mobile-extra{display:none!important}
.footer-location-summary-collapse{display:none}.footer-location-details[open] .footer-location-summary-expand{display:none}.footer-location-details[open] .footer-location-summary-collapse{display:inline}
.site-footer{padding:clamp(3rem,7vw,5rem) 0 1.25rem;color:var(--footer-muted);background:var(--accent-dark)}.footer-main{display:grid;grid-template-columns:minmax(15rem,1fr) minmax(11rem,.7fr) minmax(0,1.5fr);gap:clamp(2rem,5vw,4rem);padding-bottom:3rem}.footer-brand-name{display:inline-block;color:var(--footer-text);font-size:1.35rem;font-weight:900;letter-spacing:-.02em}.footer-brand p{max-width:28rem;margin:.8rem 0 1.3rem;color:var(--footer-muted)}.footer-contact-link{display:flex;align-items:center;gap:.65rem;min-height:2.75rem;width:max-content;margin-top:.35rem;color:var(--footer-text);font-weight:800;text-decoration:none;transition:color .2s ease,transform .2s ease}.footer-contact-link i{width:1rem;color:var(--footer-text)}.footer-contact-link:hover,.footer-contact-link:focus-visible{color:var(--footer-text);transform:translateX(.15rem)}.footer-nav,.footer-location-column{display:grid;align-content:start;gap:.5rem}.footer-nav h2,.footer-location-group h2{margin:0 0 .7rem;color:var(--footer-text);font-size:1rem;letter-spacing:.01em}.footer-nav a,.footer-location-column a{display:inline-flex;align-items:center;min-height:2.5rem;color:var(--footer-text);text-decoration:none;transition:color .2s ease,transform .2s ease}.footer-nav a:hover,.footer-nav a:focus-visible,.footer-location-column a:hover,.footer-location-column a:focus-visible{color:var(--footer-text);transform:translateX(.15rem)}.footer-nav a:focus-visible,.footer-location-column a:focus-visible,.footer-contact-link:focus-visible{outline:3px solid rgba(255,217,230,.85);outline-offset:3px}.footer-location-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.footer-location-column{gap:.35rem}.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;padding-top:1.25rem;border-top:1px solid var(--footer-divider);color:var(--footer-muted);font-size:.9rem}.footer-bottom a{color:var(--footer-text);text-decoration:none;transition:color .2s ease}.footer-bottom a:hover,.footer-bottom a:focus-visible{color:var(--footer-text)}.footer-privacy{margin-left:auto}@media(max-width:900px){.footer-main{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-brand{grid-column:1/-1}}@media(max-width:640px){.footer-main{grid-template-columns:1fr;padding-bottom:2rem}.footer-location-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.footer-bottom{display:grid;gap:.55rem}.footer-privacy{margin-left:0}}

/* Homepage hero art */
.hero{position:relative;display:flex;align-items:center;min-height:min(760px,100svh);padding:clamp(4rem,7vw,6rem) 0 clamp(3rem,6vw,5rem);overflow:hidden;background:radial-gradient(circle at 18% 18%,rgba(245,143,176,.2),transparent 31%),radial-gradient(circle at 84% 12%,rgba(111,177,255,.2),transparent 34%),linear-gradient(135deg,rgba(255,255,255,.72) 0%,rgba(245,249,255,.72) 100%),url('/assets/images/hero-poster.webp') center/cover no-repeat}
.hero-video{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;opacity:.35;filter:blur(1.5px) saturate(.75);transform:scale(1.03);pointer-events:none}
.hero-video-fallback .hero-video{display:none}
.hero::before{position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.8) 43%,rgba(245,249,255,.72) 100%);content:"";pointer-events:none}
.hero::after{position:absolute;right:-9rem;bottom:-11rem;width:24rem;height:24rem;border-radius:50%;background:rgba(143,150,124,.13);filter:blur(4px);content:""}
.hero .container{position:relative;z-index:1;width:min(1160px,calc(100% - 2rem));margin-inline:auto}
.hero-grid{display:grid;grid-template-columns:1fr;gap:clamp(2.5rem,6vw,4.5rem);align-items:center}
.hero h1{max-width:22ch;margin-bottom:1rem;font-size:clamp(1.65rem,3vw,2.85rem)}
.hero-copy .lead{color:#111827;font-weight:600}
.hero .btn{min-height:2.7rem;padding:.625rem 1rem;font-size:.95rem}
.hero-message{transition:opacity .35s ease,transform .35s cubic-bezier(.16,1,.3,1)}
@media(min-width:700px){.hero-copy h1,.hero-copy .lead,.hero-copy .eyebrow{text-shadow:0 1px 0 rgba(255,255,255,.7),0 2px 6px rgba(33,53,71,.14)}}
.hero-message.is-changing{opacity:0;transform:translateY(.45rem)}
.hero-card{position:relative;isolation:isolate;min-height:clamp(23rem,62vw,35rem);overflow:hidden;border-radius:clamp(1.5rem,4vw,2.25rem);background:transparent}
.hero-card.glass-panel{background:linear-gradient(135deg,rgba(227,175,208,.58) 0%,rgba(233,210,226,.5) 48%,rgba(215,234,250,.58) 100%),rgba(255,255,255,.12)}
.hero-card::before{position:absolute;inset:0;background:radial-gradient(circle at 22% 20%,rgba(255,255,255,.22),transparent 23%),radial-gradient(circle at 78% 72%,rgba(255,255,255,.12),transparent 30%);content:"";pointer-events:none}
.hero-art{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-words{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero-word{position:absolute;color:rgba(143,62,97,.2);font-size:clamp(1rem,2.2vw,1.45rem);font-weight:900;letter-spacing:.08em;line-height:1;text-transform:lowercase;white-space:nowrap}
.hero-word-1{top:18%;left:17%;transform:rotate(-12deg)}.hero-word-2{top:31%;right:19%;transform:rotate(8deg)}.hero-word-3{top:53%;left:14%;transform:rotate(6deg)}.hero-word-4{top:68%;left:42%;transform:rotate(-8deg)}.hero-word-5{top:17%;left:61%;transform:rotate(11deg)}.hero-word-6{top:49%;right:13%;transform:rotate(-10deg)}
.hero-art-core{position:absolute;top:39%;left:50%;z-index:3;display:grid;place-items:center;width:clamp(4.25rem,11vw,6.5rem);aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.78);border-radius:42% 58% 55% 45%;color:var(--accent-dark,#28618e);background:rgba(255,255,255,.42);box-shadow:0 1.25rem 2.5rem rgba(58,110,165,.13);font-size:clamp(1.5rem,4vw,2.25rem);backdrop-filter:blur(8px)}
.hero-orbit{position:absolute;top:39%;left:50%;z-index:1;border:1px solid rgba(255,255,255,.34);border-radius:50%;transform:translate(-50%,-50%) rotate(-14deg);pointer-events:none}
.orbit-one{width:clamp(12rem,32vw,19rem);height:clamp(8rem,21vw,12rem)}
.orbit-two{width:clamp(17rem,45vw,27rem);height:clamp(13rem,34vw,20rem);transform:translate(-50%,-50%) rotate(24deg);opacity:.65}
.kid-bubble{position:absolute;z-index:2;display:grid;place-items:center;width:clamp(3.25rem,7vw,4.6rem);aspect-ratio:1;border:1px solid rgba(255,255,255,.84);border-radius:50% 50% 46% 54%;color:var(--accent-dark,#28618e);background:rgba(255,255,255,.72);box-shadow:0 .75rem 2rem rgba(58,110,165,.15);font-size:clamp(1.15rem,2.5vw,1.6rem);backdrop-filter:blur(10px);animation:heroBubbleFloat 6s ease-in-out infinite;will-change:transform}
.bubble-1{top:9%;right:14%;animation-delay:-.7s}.bubble-2{top:27%;left:10%;animation-delay:-2.1s}.bubble-3{top:48%;right:8%;animation-delay:-3.8s}.bubble-4{bottom:22%;left:17%;animation-delay:-1.5s}.bubble-5{top:12%;left:40%;animation-delay:-4.8s}.bubble-6{right:34%;bottom:12%;animation-delay:-2.9s}
.hero-info-card{position:absolute;right:clamp(1rem,4vw,2rem);bottom:clamp(1rem,4vw,2rem);left:clamp(1rem,4vw,2rem);z-index:2;width:auto;padding:clamp(1.15rem,3vw,1.5rem);border-radius:1.25rem;color:var(--text-muted,#526a80)}
.hero-info-card strong{display:block;margin-bottom:.35rem;color:var(--accent-dark,#28618e);font-size:clamp(1rem,2.5vw,1.15rem)}
.hero-info-card p{margin:0;line-height:1.65}
@keyframes heroBubbleFloat{0%,100%{transform:translate3d(0,0,0) rotate(-3deg)}50%{transform:translate3d(0,-.75rem,0) rotate(4deg)}}
@media(min-width:700px){.hero .container{width:min(1160px,calc(100% - 2.5rem))}.hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(22rem,.95fr)}.hero-card{min-height:clamp(30rem,48vw,35rem)}}
@media(max-width:699px){.hero-card{min-height:23rem}.hero-info-card p{font-size:.94rem}.hero-orbit{top:36%}.hero-art-core{top:36%}.hero-word{font-size:.82rem;letter-spacing:.05em}.hero-word-1{top:18%;left:12%}.hero-word-2{top:29%;right:11%}.hero-word-3{top:52%;left:8%}.hero-word-4{display:none}.hero-word-5{top:16%;left:55%}.hero-word-6{top:48%;right:7%}}
@media(prefers-reduced-motion:reduce){.kid-bubble{animation:none}.hero-orbit,.hero-art-core{transition:none}}
@media(prefers-reduced-motion:reduce){.hero-message{transition:none}}
@media(max-width:900px) and (prefers-reduced-motion:reduce){.mobile-drawer,.mobile-drawer-backdrop{transition:none}}
@media(prefers-reduced-motion:reduce){.hero-video{display:none}}

/* WhatsApp actions */
:root{--whatsapp:#25d366;--whatsapp-dark:#128c7e;--whatsapp-deep:#075e54}
.btn-whatsapp{color:#fff;border-color:var(--whatsapp-dark);background:var(--whatsapp-dark);box-shadow:0 .65rem 1.25rem rgba(18,140,126,.22)}
.btn-whatsapp:hover,.btn-whatsapp:focus-visible{color:#fff;border-color:var(--whatsapp-deep);background:var(--whatsapp-deep);box-shadow:0 .8rem 1.5rem rgba(7,94,84,.28)}
.contact-list-whatsapp i{color:var(--whatsapp-dark)}
.cta-box .btn-whatsapp{color:var(--whatsapp-deep);border-color:var(--whatsapp);background:var(--whatsapp)}
.cta-box .btn-whatsapp:hover,.cta-box .btn-whatsapp:focus-visible{color:var(--whatsapp-deep);border-color:var(--whatsapp);background:var(--whatsapp)}
.sticky-whatsapp-wrap{position:fixed;right:1.25rem;bottom:1.25rem;z-index:20;display:flex;align-items:flex-end;gap:.75rem;pointer-events:none}
.sticky-whatsapp-wrap .sticky-whatsapp,.sticky-whatsapp-wrap .whatsapp-chat-bubble{pointer-events:auto}
.sticky-whatsapp{display:grid;place-items:center;width:3.5rem;height:3.5rem;border:2px solid #fff;border-radius:50%;color:#fff;background:var(--whatsapp-dark);box-shadow:0 .75rem 1.5rem rgba(7,94,84,.3);font-size:1.55rem;text-decoration:none;transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease}
.sticky-whatsapp:hover,.sticky-whatsapp:focus-visible{color:#fff;background:var(--whatsapp-deep);box-shadow:0 1rem 1.75rem rgba(7,94,84,.38);transform:translateY(-2px)}
.whatsapp-chat-bubble{position:relative;width:min(20rem,calc(100vw - 6rem));padding:1rem 2.75rem 1rem 1.1rem;border:1px solid rgba(255,255,255,.7);border-radius:16px;color:var(--text);background:rgba(255,255,255,.82);box-shadow:var(--shadow);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:whatsapp-bubble-in .35s cubic-bezier(.16,1,.3,1) both}
.whatsapp-chat-bubble::after{position:absolute;right:-.45rem;bottom:1rem;width:.8rem;height:.8rem;border-top:1px solid rgba(255,255,255,.7);border-right:1px solid rgba(255,255,255,.7);background:rgba(255,255,255,.82);content:"";transform:rotate(45deg)}
.whatsapp-chat-bubble strong{display:block;margin-bottom:.25rem;color:var(--whatsapp-deep);font-size:1rem}
.whatsapp-chat-bubble p{margin:0;color:var(--text-muted);font-size:.9rem;line-height:1.45}
.whatsapp-chat-bubble a{display:inline-flex;margin-top:.65rem;color:var(--whatsapp-deep);font-size:.9rem;font-weight:900;text-underline-offset:.2em}
.whatsapp-chat-dismiss{position:absolute;top:.45rem;right:.45rem;display:grid;place-items:center;width:2rem;height:2rem;padding:0;border:0;border-radius:50%;color:var(--text-muted);background:transparent;cursor:pointer}
.whatsapp-chat-dismiss:hover,.whatsapp-chat-dismiss:focus-visible{color:var(--whatsapp-deep);background:var(--primary-soft)}
@keyframes whatsapp-bubble-in{from{opacity:0;transform:translateY(.5rem) scale(.96)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.sticky-whatsapp{transition:none}}
@media(prefers-reduced-motion:reduce){.whatsapp-chat-bubble{animation:none}}
@media(max-width:640px){.sticky-whatsapp-wrap{right:1rem;bottom:max(1rem,env(safe-area-inset-bottom));gap:0}.whatsapp-chat-bubble{position:absolute;right:0;bottom:calc(100% + .75rem);width:min(17rem,calc(100vw - 2rem));padding:.9rem 2.5rem .9rem 1rem}.whatsapp-chat-bubble::after{right:1.15rem;bottom:-.45rem;border-top:0;border-right:1px solid rgba(255,255,255,.7);border-bottom:1px solid rgba(255,255,255,.7)}}

/* Footer brand logo */
.footer-brand-logo{display:inline-flex;align-items:center;padding:.65rem 1rem;border-radius:14px;background:#fff;box-shadow:0 .5rem 1.25rem rgba(33,53,71,.12)}
.footer-brand-logo img{display:block;width:clamp(9rem,16vw,12.2rem);height:auto}
.footer-brand-logo:focus-visible{outline:3px solid #ffd9e6;outline-offset:4px}

/* Unified section rhythm */
:root{--section-space:clamp(4rem,8vw,7rem);--section-space-compact:clamp(2.5rem,4vw,3.5rem);--section-content-gap:clamp(1.5rem,3vw,2.25rem)}
@media(max-width:640px){:root{--section-space:clamp(3rem,10vw,4rem);--section-space-compact:clamp(2rem,7vw,3rem);--section-content-gap:1.5rem}}

/* Photo and partner logo carousels */
.photo-carousel{display:block;overflow:hidden;padding:0;background:var(--surface-soft)}
.photo-carousel-slides,.logo-carousel-slides{position:absolute;inset:0}
.photo-carousel-slide,.logo-carousel-slide,.review-carousel-slide{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;margin:0;opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s ease}
.photo-carousel-slide.is-active,.logo-carousel-slide.is-active,.review-carousel-slide.is-active{opacity:1;visibility:visible}
.photo-carousel-slide img{width:100%;height:100%;object-fit:cover}
.carousel-control{position:absolute;top:50%;z-index:4;display:grid;place-items:center;width:2.35rem;height:2.35rem;padding:0;border:1px solid rgba(255,255,255,.8);border-radius:50%;color:var(--primary-dark);background:rgba(255,255,255,.9);box-shadow:0 .4rem 1rem rgba(33,53,71,.18);cursor:pointer;transform:translateY(-50%);transition:background-color .2s ease,color .2s ease,transform .2s ease}
.carousel-control:hover,.carousel-control:focus-visible{color:#fff;background:var(--accent-dark);transform:translateY(-50%) scale(1.05)}
.carousel-control-prev{left:.85rem}.carousel-control-next{right:.85rem}
.carousel-dots{position:absolute;right:0;bottom:.85rem;left:0;z-index:4;display:flex;justify-content:center;gap:.45rem}
.carousel-dots button{width:.55rem;height:.55rem;padding:0;border:1px solid #fff;border-radius:50%;background:rgba(255,255,255,.55);box-shadow:0 .15rem .4rem rgba(33,53,71,.18);cursor:pointer}
.carousel-dots button[aria-selected="true"]{background:var(--accent-dark);transform:scale(1.15)}
.footer-partners{grid-column:1/-1;padding-top:1.5rem;border-top:1px solid rgba(234,243,248,.2);text-align:center}
.footer-partners-title{width:100%;max-width:none;margin:0 0 .75rem;color:#fff;font-size:.9rem;font-weight:800;text-align:center}
.logo-carousel{position:relative;min-height:8rem;padding-inline:3rem}
.logo-carousel-slide{padding:.35rem 1rem}
.logo-carousel-slide img{display:block;width:min(18rem,100%);height:6rem;padding:.75rem 1.25rem;border-radius:14px;background:#fff;box-shadow:0 .35rem 1rem rgba(33,53,71,.12);object-fit:contain;filter:none;opacity:1;transition:transform .2s ease,box-shadow .2s ease}
.logo-carousel-slide:hover img,.logo-carousel-slide:focus-visible img{filter:none;opacity:1;transform:scale(1.03)}
.logo-carousel .carousel-control{color:var(--accent-dark);background:#fff}
@media(max-width:640px){.logo-carousel{min-height:7rem;padding-inline:2.5rem}.logo-carousel-slide img{width:min(17rem,100%);height:5.25rem}.logo-carousel .carousel-control{width:2rem;height:2rem}.footer-partners{padding-top:1.25rem}}
@media (hover:hover) and (pointer:fine){.logo-carousel .carousel-control{opacity:0;pointer-events:none;transition:opacity .2s ease,background-color .2s ease,color .2s ease,transform .2s ease}.logo-carousel:hover .carousel-control,.logo-carousel .carousel-control:focus-visible{opacity:1;pointer-events:auto}}
@media (hover:none), (pointer:coarse){.logo-carousel .carousel-control{opacity:1}}
@media(prefers-reduced-motion:reduce){.photo-carousel-slide,.logo-carousel-slide,.review-carousel-slide,.carousel-control,.carousel-dots button,.logo-carousel-slide img{transition:none}}
.carousel-control{width:2.75rem;height:2.75rem}
.carousel-control i{font-size:.85rem;line-height:1}
.review-carousel{position:relative;max-width:54rem;padding-inline:3.5rem;margin-inline:auto}
.review-carousel-slides{position:relative;min-height:17rem}
.review-carousel-slide{display:block;padding:clamp(1.35rem,3vw,2rem);text-align:left}
.review-rating{display:flex;gap:.2rem;margin:.65rem 0 .9rem;color:#f4c542;font-size:.95rem}
.review-author{display:block;margin-top:.85rem;color:var(--primary-dark);font-weight:800}
.review-source{display:block;margin-top:.25rem;color:var(--text-muted);font-size:.82rem;font-weight:600}
.review-source-link{display:inline-flex;align-items:center;gap:.45rem;color:var(--primary-dark);font-weight:800;text-decoration:underline;text-underline-offset:.2em}
.review-carousel .carousel-control{color:var(--accent-dark);background:#fff}
@media (hover:hover) and (pointer:fine){.review-carousel .carousel-control{opacity:0;pointer-events:none;transition:opacity .2s ease,background-color .2s ease,color .2s ease,transform .2s ease}.review-carousel:hover .carousel-control,.review-carousel .carousel-control:focus-visible{opacity:1;pointer-events:auto}}
@media (hover:none), (pointer:coarse){.review-carousel .carousel-control{opacity:1}}
@media(max-width:640px){.carousel-control{width:2.5rem;height:2.5rem}.carousel-control i{font-size:.8rem}}
@media(max-width:640px){.review-carousel{padding-inline:2.5rem}.review-carousel-slides{min-height:20rem}}
@media(min-width:901px){.review-carousel{max-width:70rem;padding-inline:0}.review-carousel-slides{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;min-height:0}.review-carousel-slide{position:relative;inset:auto;display:block;opacity:1;visibility:visible}.review-carousel-slide:not(.is-active){display:none}.review-carousel .carousel-control{display:none}.inline-cta{column-gap:1rem;row-gap:.75rem}.review-source-link{flex-basis:100%;justify-content:center}}
@media(max-width:640px){.footer-location-featured,.footer-location-columns{grid-template-columns:1fr;gap:.35rem 1rem}.footer-location-featured-extra{display:none!important}.footer-location-mobile-extra{display:inline-flex!important}}
@media(max-width:640px){.image-stack{min-height:22rem}}
.cta-section .cta-box{padding:0}

/* Fixed testimonial cards keep long reviews inside a predictable layout. */
.review-card{display:flex;flex-direction:column;height:18.25rem;box-sizing:border-box;overflow:hidden}
.review-excerpt{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:4}
.review-read-more{align-self:flex-start;margin-top:.65rem;padding:0;border:0;color:var(--primary-dark);background:transparent;font:inherit;font-weight:800;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}
.review-read-more:hover,.review-read-more:focus-visible{color:var(--accent-dark)}
.review-card .review-author{margin-top:auto}
.review-dialog{width:min(36rem,calc(100% - 2rem));padding:0;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:var(--surface);box-shadow:0 1.5rem 4rem rgba(25,71,102,.25)}
.review-dialog::backdrop{background:rgba(25,71,102,.45)}
.review-dialog-content{padding:clamp(1.35rem,4vw,2rem)}
.review-dialog h3{margin:0;color:var(--primary-dark);font-size:1.25rem}
.review-dialog blockquote{margin:0;color:var(--text-muted);line-height:1.7}
.review-dialog-source{margin:.85rem 0 1.25rem;color:var(--text-muted);font-size:.85rem;font-weight:700}
.review-dialog form{margin-top:1.5rem}
@media(max-width:640px){.review-card{height:20rem}}

@media(min-width:901px){
    .review-carousel{max-width:76rem;padding-inline:3.5rem}
    .review-carousel-slides{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-height:18.25rem}
    .review-carousel-slide,.review-carousel-slide:not(.is-active){display:flex;position:relative;inset:auto;grid-row:1;margin:0;opacity:0;visibility:hidden;transform:translateY(.35rem) scale(.98);transition:opacity .45s ease,transform .45s ease,visibility .45s ease}
    figure.review-carousel-slide:nth-of-type(3n+1){grid-column:1}
    figure.review-carousel-slide:nth-of-type(3n+2){grid-column:2}
    figure.review-carousel-slide:nth-of-type(3n){grid-column:3}
    .review-carousel-slide.is-active{z-index:1;opacity:1;visibility:visible;transform:translateY(0) scale(1)}
    .review-carousel .carousel-control{display:grid;opacity:.78;pointer-events:auto}
    .review-carousel .carousel-control:hover,.review-carousel .carousel-control:focus-visible{opacity:1}
}

/* Mobile drawer motion */
@media(max-width:900px){
    .mobile-drawer{pointer-events:none}
    .mobile-drawer.is-open{pointer-events:auto}
    .mobile-drawer-backdrop{pointer-events:none}
    .mobile-drawer-backdrop.is-visible{pointer-events:auto}
}
@media(max-width:900px) and (prefers-reduced-motion:reduce){
    .mobile-drawer,.mobile-drawer-backdrop{transition:none}
}

/* Keep keyboard focus visible without the previous pink/red treatment. */
:root{--focus:#3a6ea5;--footer-focus:#b9dcff}
.footer-social-links a:focus-visible,
.footer-location-details summary:focus-visible,
.footer-location-featured a:focus-visible,
.footer-location-columns a:focus-visible,
.footer-nav a:focus-visible,
.footer-location-column a:focus-visible,
.footer-contact-link:focus-visible,
.footer-brand-logo:focus-visible{outline-color:var(--footer-focus)}
