/* V3: small original helpers and purposeful motion within the established design. */
.reading-progress{position:absolute;bottom:-1px;left:0;right:0;height:3px;pointer-events:none;overflow:hidden;z-index:3}
.reading-progress>span{display:block;height:100%;background:linear-gradient(90deg,#a0d5ff,#1760eb);transform:scaleX(0);transform-origin:left}
.motion-toggle-header{display:grid;place-items:center;width:36px;height:38px;padding:0;border-radius:12px;flex-shrink:0;box-shadow:0 3px 0 #dce8f7}
.motion-toggle-header>span{display:none}
.motion-toggle-header>.icon{width:16px;height:16px}
.hero h1 .blue-word:after{transform-origin:left;animation:underline-arrive .9s cubic-bezier(.18,.75,.25,1) .45s both}
.draw-word{position:relative;display:inline-block;white-space:nowrap}
.draw-word:after{content:'';position:absolute;left:2px;right:-3px;bottom:-8px;height:9px;border-top:3px solid #82bcff;border-radius:50%;transform:scaleX(1) rotate(-2deg);transform-origin:left;pointer-events:none}
.delight-ready .draw-word:after{transform:scaleX(0) rotate(-2deg)}
.delight-ready .draw-word.is-in-view:after{animation:underline-arrive .8s cubic-bezier(.18,.75,.25,1) .12s both}
.service-card:hover .service-icon,.service-card:focus-within .service-icon{animation:icon-hello .58s ease-out both}
.quick-item:hover .quick-icon,.quick-item:focus-visible .quick-icon{animation:icon-hello .58s ease-out both}
.scene-note:hover .scene-note-icon{animation:icon-hello .5s ease-out both}
.visit-section{position:relative;overflow:hidden;background:radial-gradient(ellipse at 89% 22%,#f0f7ff 0,transparent 42%)}
.visit-heading{display:grid;grid-template-columns:1fr 285px;align-items:center;gap:40px;margin-bottom:14px}
.visit-heading-copy>.eyebrow{margin-bottom:16px}
.visit-heading-copy>p{margin-top:23px;color:var(--muted);font-size:1rem;line-height:1.9;max-width:540px}
.visit-heading h2{line-height:1.3}
.visit-heading h2 .draw-word{color:var(--blue)}
.practice-helper{display:block;position:relative;isolation:isolate;text-decoration:none;border-radius:30px;flex-shrink:0}
.practice-helper:focus-visible{outline:3px solid var(--blue);outline-offset:8px}
.helper-art{position:relative;display:block;z-index:2;transform-origin:50% 86%;will-change:transform}
.helper-art>img{display:block;width:100%;height:auto;pointer-events:none;filter:drop-shadow(0 7px 5px #3866a21a)}
.helper-halo{position:absolute;border-radius:50%;background:radial-gradient(circle at 35% 25%,#f2f8ff,#dfedff 75%);border:1px solid #d3e5fc;z-index:-1;box-shadow:inset 0 2px 1px #fff}
.helper-halo:before{content:'';position:absolute;inset:-13px;border:1px dashed #c7def9;border-radius:50%;opacity:.85}
.helper-shadow{position:absolute;bottom:11%;left:28%;right:24%;height:9px;background:#769fd233;border-radius:50%;filter:blur(6px);z-index:0}
.helper-bubble{position:absolute;display:flex;align-items:center;gap:7px;white-space:nowrap;z-index:4;background:#fff;border:1px solid #d0e1f8;border-radius:13px;box-shadow:0 4px 0 #d3e3f8,0 8px 20px #315a8812;padding:9px 13px;font-size:.8125rem;color:#315582;font-weight:700;transform:rotate(var(--bubble-r,-5deg));transform-origin:70% 100%;transition:transform .25s,box-shadow .25s}
.helper-bubble>span{color:var(--blue);font-size:1rem}
.helper-prepare{width:235px;height:220px;margin-left:auto;margin-right:15px}
.helper-prepare .helper-art{width:235px;position:absolute;left:8px;top:-3px;transform:rotate(-5deg)}
.helper-prepare .helper-halo{width:173px;height:173px;left:30px;top:25px}
.helper-prepare .helper-bubble{top:10px;left:-45px;--bubble-r:-6deg}
.helper-prepare .helper-shadow{bottom:9px}
.practice-helper.is-in-view .helper-art{animation:helper-breathe 5.5s ease-in-out infinite}
.helper-wave.is-in-view .helper-art{animation:helper-greet 5s ease-in-out infinite}
.practice-helper:hover .helper-art,.practice-helper:focus-visible .helper-art{animation:helper-hop .65s cubic-bezier(.25,.7,.25,1) both}
.practice-helper:hover .helper-bubble,.practice-helper:focus-visible .helper-bubble{transform:rotate(0) translateY(-4px);box-shadow:0 7px 0 #d3e3f8,0 12px 22px #315a8815}
.practice-helper:active .helper-bubble{transform:translateY(3px);box-shadow:0 1px 0 #d3e3f8}
.visit-steps{position:relative;margin-top:39px;gap:33px;padding-bottom:5px}
.visit-step{border:1px solid #e0eafa;border-radius:23px;background:linear-gradient(145deg,#fff,#f8fbff);padding:25px 24px 29px;box-shadow:0 4px 0 #e4edf9;transition:border-color .3s,transform .3s,box-shadow .3s}
.visit-step:hover{transform:translateY(-4px);border-color:#bdd8fc;box-shadow:0 8px 0 #deebfc}
.visit-step>p{max-width:100%;font-size:1rem}
.visit-step .step-heading{gap:21px;margin-bottom:23px}
.step-line{position:relative;overflow:hidden;height:10px;background-position:center;background-size:auto 2px;background-repeat:repeat-x;border-radius:8px}
.step-line:after{content:'';position:absolute;left:-10px;top:1px;width:8px;height:8px;border-radius:50%;background:#3983f0;opacity:0;box-shadow:0 0 0 3px #dcecff;pointer-events:none}
.visit-step.is-in-view .step-line:after{animation:step-travel 1.3s cubic-bezier(.25,.6,.3,1) .45s 1}
.visit-step:nth-child(2).is-in-view .step-line:after{animation-delay:.8s}
.visit-step.is-in-view .step-number{animation:step-arrive .55s cubic-bezier(.2,.8,.2,1) both}
.visit-step:nth-child(2).is-in-view .step-number{animation-delay:.15s}
.visit-step:nth-child(3).is-in-view .step-number{animation-delay:.3s}
.faq-intro{position:relative}
.helper-wave{width:192px;height:212px;margin-top:18px;margin-left:42px}
.helper-wave .helper-art{position:absolute;top:14px;left:1px;width:198px}
.helper-wave .helper-halo{width:152px;height:152px;left:24px;top:40px}
.helper-wave .helper-bubble{top:17px;left:-45px;--bubble-r:-7deg}
.helper-wave .helper-shadow{bottom:18px}
.faq-list details{transition:background .25s,border-color .25s}
.faq-list details[open]{background:linear-gradient(90deg,#f4f9ff,#fff);border-color:#bfd8fa}
.faq-list details[open] summary{color:#185bbd}
.faq-list details[open] .faq-plus{background:#e4efff}
.faq-answer{padding-left:0}
.button,.card-link,.text-link{position:relative}
.tap-ripple{position:absolute;pointer-events:none;border-radius:50%;border:2px solid #7aaffb;z-index:5;left:50%;top:50%;width:18px;height:18px;margin:-9px;animation:tap-ripple .45s ease-out forwards}
.button-primary .tap-ripple,.button-white .tap-ripple{border-color:#d9eaff}
.motion-paused .helper-art,.motion-paused .draw-word:after,.motion-paused .hero h1 .blue-word:after,.motion-paused .step-number,.motion-paused .step-line:after,.motion-paused .service-icon,.motion-paused .quick-icon,.motion-paused .scene-note-icon{animation:none!important}
.motion-paused .draw-word:after{transform:scaleX(1) rotate(-2deg)!important}
.motion-paused .hero h1 .blue-word:after{transform:scaleX(1) rotate(-3deg)!important}
.page-hidden *{animation-play-state:paused!important}
@keyframes underline-arrive{0%{transform:scaleX(0) rotate(-3deg)}80%{transform:scaleX(1.035) rotate(-3deg)}100%{transform:scaleX(1) rotate(-3deg)}}
@keyframes icon-hello{0%{transform:rotate(-5deg) translateY(0)}38%{transform:rotate(8deg) translateY(-5px)}72%{transform:rotate(-3deg) translateY(-2px)}100%{transform:rotate(2deg) translateY(-1px)}}
@keyframes helper-breathe{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-6px) rotate(1deg)}}
@keyframes helper-greet{0%,70%,100%{transform:rotate(-3deg) translateY(0)}12%{transform:rotate(3deg) translateY(-3px)}24%{transform:rotate(-4deg) translateY(-2px)}36%{transform:rotate(2deg) translateY(-3px)}48%{transform:rotate(-2deg) translateY(0)}}
@keyframes helper-hop{0%{transform:translateY(0) scale(1)}25%{transform:translateY(2px) scale(1.025,.975)}55%{transform:translateY(-13px) rotate(3deg) scale(.985,1.015)}80%{transform:translateY(1px) scale(1.015,.985)}100%{transform:translateY(-3px) rotate(-2deg) scale(1)}}
@keyframes step-arrive{0%{transform:translateY(9px) rotate(-12deg) scale(.92)}65%{transform:translateY(-4px) rotate(3deg) scale(1.025)}100%{transform:translateY(0) rotate(-3deg) scale(1)}}
@keyframes step-travel{0%{left:2%;opacity:0}15%{opacity:1}85%{opacity:1}100%{left:93%;opacity:0}}
@keyframes tap-ripple{0%{transform:scale(.3);opacity:.7}100%{transform:scale(4);opacity:0}}
@media(max-width:1199px){.header-inner{gap:20px}.desktop-nav{gap:22px}.header-actions{gap:10px}.visit-heading{grid-template-columns:1fr 240px;gap:30px}.helper-prepare{width:210px;height:210px;margin-right:0}.helper-prepare .helper-art{width:222px;left:-5px}.helper-prepare .helper-halo{left:16px;width:168px;height:168px}.helper-prepare .helper-bubble{left:-35px}.visit-steps{gap:24px}.visit-step{padding:24px 21px}.helper-wave{margin-left:28px}}
@media(max-width:980px){.visit-heading{grid-template-columns:1fr 210px;gap:22px}.helper-prepare{width:190px;height:195px}.helper-prepare .helper-art{width:207px;left:-5px}.helper-prepare .helper-halo{width:147px;height:147px;left:18px;top:27px}.helper-prepare .helper-bubble{font-size:.75rem;padding:8px 11px;left:-35px;top:5px}.visit-heading-copy>p{font-size:1rem}.visit-steps{gap:17px}.visit-step{padding:22px 17px}.visit-step :is(h2,h3){font-size:1.0625rem}.visit-step>p{font-size:1rem}.visit-step .step-heading{gap:14px}.visit-step .step-number{width:49px;height:51px;font-size:1.25rem;border-radius:17px}.helper-wave{margin-left:20px;width:172px;height:195px}.helper-wave .helper-art{width:178px}.helper-wave .helper-halo{width:135px;height:135px;left:24px}.helper-wave .helper-bubble{font-size:.75rem;left:-30px;top:19px;padding:8px 11px}}
@media(max-width:740px){.header-actions{gap:8px}.motion-toggle-header{width:34px;height:36px;min-height:36px}.header-inner{gap:12px}.header-booking{padding-inline:10px}.visit-heading{grid-template-columns:1fr;gap:4px;margin-bottom:0}.visit-heading-copy>p{margin-top:23px;font-size:1rem;max-width:400px}.visit-heading h2{font-size:2.05rem;line-height:1.35}.helper-prepare{width:180px;height:185px;margin:10px 24px 4px auto}.helper-prepare .helper-art{width:194px;left:-6px;top:0}.helper-prepare .helper-halo{width:138px;height:138px;left:23px;top:25px}.helper-prepare .helper-bubble{top:22px;left:-70px;font-size:.8125rem}.helper-prepare .helper-shadow{bottom:9px}.visit-steps{margin-top:9px;gap:19px}.visit-step{grid-template-columns:47px 1fr;column-gap:18px;padding:23px 19px;border-radius:20px}.visit-step .step-heading{display:block;grid-row:1/3;margin:0}.visit-step .step-number{width:46px;height:48px;border-radius:16px}.visit-step :is(h2,h3){font-size:1.0625rem;margin-top:2px}.visit-step>p{font-size:1rem;line-height:1.8}.visit-step .step-line{display:none}.faq-intro{min-height:180px;padding-right:120px;padding-bottom:10px}.faq-grid .faq-intro h2{font-size:2rem;line-height:1.3;margin-bottom:18px}.faq-intro>p{max-width:245px;font-size:1rem}.helper-wave{position:absolute;right:-3px;bottom:0;margin:0;width:138px;height:163px}.helper-wave .helper-art{width:151px;top:8px;left:-3px}.helper-wave .helper-halo{width:105px;height:105px;top:37px;left:23px}.helper-wave .helper-shadow{bottom:12px}.helper-wave .helper-bubble{top:0;left:-20px;font-size:.75rem;padding:6px 9px;gap:4px;border-radius:10px}.helper-wave .helper-bubble>span{font-size:.875rem}.faq-grid{gap:23px}.draw-word:after{border-top-width:3px;bottom:-7px}.reading-progress{height:2px}}
@media(max-width:440px){.header-booking{display:none}.header-inner{min-height:78px}.faq-intro{padding-right:115px;min-height:207px}.faq-grid .faq-intro h2{font-size:1.8rem}.faq-grid .faq-intro h2 br{display:block}.faq-intro>.eyebrow{font-size:.6875rem}.faq-intro>p{font-size:.9375rem;max-width:190px}.helper-wave{width:126px;height:154px;right:-5px;bottom:3px}.helper-wave .helper-art{width:142px;left:-5px}.helper-wave .helper-halo{width:99px;height:99px;left:19px;top:33px}.helper-wave .helper-bubble{top:0;left:-14px;font-size:.6875rem;padding:6px 8px}.helper-prepare{margin-right:7px}.visit-step{padding-inline:17px;column-gap:15px}.visit-heading h2{font-size:1.85rem}.draw-word:after{right:0}}
@media(prefers-reduced-motion:reduce){.helper-art,.draw-word:after,.step-line:after,.step-number,.service-icon,.quick-icon,.scene-note-icon,.hero h1 .blue-word:after{animation:none!important}.delight-ready .draw-word:after{transform:scaleX(1) rotate(-2deg)!important}.hero h1 .blue-word:after{transform:scaleX(1) rotate(-3deg)!important}.tap-ripple{display:none!important}}
@media print{.practice-helper,.reading-progress{display:none!important}.visit-heading{display:block}.visit-step{box-shadow:none;break-inside:avoid}.faq-intro{padding:0;min-height:0}.draw-word:after{transform:none!important}}

@media(max-width:540px){.header-booking{display:none}}
