:root{--primary:#6750a4;--on-primary:#fff;--secondary-container:#e8def8;--on-secondary-container:#1d192b;--tertiary:#7d5260;--tertiary-container:#ffd8e4;--bg:#fffbfe;--surface-container:#f3edf7;--surface-container-low:#e7e0ec;--text:#1c1b1f;--muted:#49454f;--outline:#79747e;--line:#cac4d0;--ink:var(--text);--accent:var(--primary);--accent-soft:var(--secondary-container);--bg-alt:var(--surface-container);--font-display:"Roboto Flex", "Roboto", system-ui, sans-serif;--font-body:"Roboto", system-ui, sans-serif;--step--1:.875rem;--step-0:1rem;--step-1:clamp(1.125rem, 1rem + .4vw, 1.25rem);--step-2:1.5rem;--step-3:clamp(2rem, 1.5rem + 2vw, 3rem);--step-4:clamp(2.5rem, 1.6rem + 3.6vw, 4.25rem);--radius-xl:clamp(28px, 4vw, 48px);--radius:24px;--radius-sm:12px;--shadow-sm:0 1px 2px #1c1b1f0f, 0 1px 3px #1c1b1f14;--shadow:0 4px 8px #1c1b1f0f, 0 12px 24px #1c1b1f1a;--shadow-lg:0 10px 20px #1c1b1f14, 0 24px 48px #1c1b1f1f;--container:1200px;--gutter:clamp(1rem, 4vw, 2.5rem);--section:clamp(4rem, 8vw, 6rem);--ease:cubic-bezier(.2, 0, 0, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:88px}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--step-0);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6;overflow-x:clip}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:500;line-height:1.2}p,figure,blockquote{margin:0}img,svg,video,iframe{max-width:100%;display:block}a{color:inherit}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section);position:relative}.section-tonal{background:var(--surface-container);border-radius:var(--radius-xl);margin-inline:clamp(.5rem,1.5vw,1.25rem)}.reveal-mask{vertical-align:bottom;display:inline-block;overflow:hidden}.display{font-size:var(--step-4);letter-spacing:-.02em;font-weight:500;line-height:1.1}.headline{font-size:var(--step-3)}.lead{font-size:var(--step-1);color:var(--muted);max-width:56ch}.eyebrow{font-size:var(--step--1);letter-spacing:.01em;color:var(--primary);margin-bottom:.75rem;font-weight:500}.section-head{max-width:44rem;margin-bottom:clamp(2rem,5vw,3.5rem)}.section-head .lead{margin-top:1rem}.chip{background:var(--secondary-container);color:var(--on-secondary-container);font-size:var(--step--1);letter-spacing:.01em;border-radius:999px;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.4rem 1rem;font-weight:500;display:inline-flex}.stars{color:#f4b400;gap:2px;display:inline-flex}.btn{isolation:isolate;min-height:44px;font-size:var(--step--1);letter-spacing:.01em;cursor:pointer;white-space:nowrap;transition:box-shadow .3s var(--ease), background-color .2s var(--ease);border:0;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:0 1.5rem;font-weight:500;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";z-index:-1;opacity:0;transition:opacity .2s var(--ease);background:currentColor;position:absolute;inset:0}.btn:hover:after{opacity:.08}.btn:active:after{opacity:.12}.btn-lg{min-height:52px;font-size:var(--step-0);padding:0 1.75rem}.btn-filled{background:var(--primary);color:var(--on-primary)}.btn-filled:hover{box-shadow:var(--shadow)}.btn-tonal{background:var(--secondary-container);color:var(--on-secondary-container)}.btn-outlined{color:var(--primary);box-shadow:inset 0 0 0 1px var(--outline);background:0 0}.actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.nav{z-index:40;-webkit-backdrop-filter:blur(12px);transition:border-color .3s var(--ease);background:#fffbfecc;border-bottom:1px solid #0000;position:sticky;top:0}.nav-scrolled{border-bottom-color:var(--line)}.nav-inner{align-items:center;gap:1.5rem;display:flex}.brand{align-items:center;gap:.75rem;margin-right:auto;text-decoration:none;display:flex}.brand-mark{background:var(--primary);width:44px;height:44px;color:var(--on-primary);font-family:var(--font-display);letter-spacing:.02em;border-radius:14px;place-items:center;font-size:.95rem;font-weight:700;display:grid}.brand-text{line-height:1.2;display:grid}.brand-text strong{font-family:var(--font-display);font-size:1.05rem;font-weight:500}.brand-text small{color:var(--muted);font-size:.75rem}.nav-links{gap:.25rem;display:flex}.nav-links a{font-size:var(--step--1);color:var(--muted);transition:background-color .2s var(--ease), color .2s var(--ease);border-radius:999px;padding:.5rem 1rem;font-weight:500;text-decoration:none}.nav-links a:hover{color:var(--primary);background:#6750a41a}.nav-toggle{background:var(--secondary-container);cursor:pointer;border:0;border-radius:999px;place-content:center;gap:6px;width:44px;height:44px;display:none}.nav-toggle span{background:var(--on-secondary-container);border-radius:2px;width:18px;height:2px;display:block}.drawer-backdrop{z-index:50;background:#1c1b1f52;position:fixed;inset:0}.drawer{z-index:51;background:var(--surface-container);width:min(86vw,360px);box-shadow:var(--shadow-lg);border-radius:28px 0 0 28px;flex-direction:column;gap:2rem;padding:5rem 1.5rem 2rem;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer ul{gap:.25rem;margin:0;padding:0;list-style:none;display:grid}.drawer a:not(.btn){border-radius:999px;padding:.9rem 1.25rem;font-size:1.15rem;font-weight:500;text-decoration:none;display:block}.drawer a:not(.btn):hover{background:#6750a41a}.drawer-close{cursor:pointer;background:0 0;border:0;border-radius:999px;width:44px;height:44px;font-size:1.75rem;line-height:1;position:absolute;top:1rem;right:1rem}.hero{padding-block:clamp(2rem,5vw,4rem) clamp(2.5rem,5vw,4rem)}.hero-grid{grid-template-columns:1.05fr 1fr;align-items:center;gap:clamp(2rem,5vw,4rem);display:grid}.hero-copy .lead{margin-top:1.5rem}.hero-stage{isolation:isolate;border-radius:var(--radius-xl);background:radial-gradient(circle at top right, var(--secondary-container) 0%, transparent 55%), var(--surface-container);align-content:center;gap:1rem;min-height:520px;padding:clamp(1.5rem,3vw,2.5rem);display:grid;position:relative;overflow:hidden;box-shadow:inset 0 2px 8px #1c1b1f0d}.stage-card{z-index:1;-webkit-backdrop-filter:blur(10px);border-radius:var(--radius);box-shadow:var(--shadow);background:#fffbfeb8;border:1px solid #fff9;padding:1.5rem;position:relative}.stage-rating{width:min(100%,300px)}.stage-big{font-family:var(--font-display);color:var(--primary);margin-bottom:.5rem;font-size:4rem;font-weight:500;line-height:1}.stage-meta{color:var(--muted);font-size:var(--step--1);margin-top:.5rem}.stage-quote{background:var(--primary);width:min(100%,360px);color:var(--on-primary);border-color:#ffffff26;justify-self:end}.stage-quote blockquote{font-family:var(--font-display);font-size:1.35rem;line-height:1.35}.stage-quote figcaption{font-size:var(--step--1);opacity:.85;margin-top:.75rem}.stage-hours{width:max-content;max-width:100%;color:var(--on-secondary-container);border-radius:999px;align-items:center;gap:.75rem;padding:.85rem 1.25rem;display:inline-flex}.stage-hours svg{color:var(--tertiary);flex:none}.blobs{z-index:0;pointer-events:none;position:absolute;inset:0}.blob{filter:blur(48px);mix-blend-mode:multiply;animation:8s ease-in-out infinite alternate blob-morph;display:block;position:absolute}.blob-a{aspect-ratio:1;background:#6750a473;width:60%;top:-18%;right:-14%}.blob-b{aspect-ratio:1;background:#ffd8e4f2;width:50%;animation-duration:10s;animation-delay:-3s;bottom:-16%;left:-12%}.blob-c{aspect-ratio:1;background:#e8def8e6;width:34%;animation-duration:12s;animation-delay:-5s;top:40%;left:38%}@keyframes blob-morph{0%{border-radius:42% 58% 65% 35%/45% 45% 55% 55%;transform:translate(0)}50%{border-radius:60% 40% 30% 70%/60% 30% 70% 40%;transform:translate(20px,-15px)}to{border-radius:35% 65% 45% 55%/55% 65% 35% 45%;transform:translate(-10px,10px)}}.trust{padding-bottom:clamp(1rem,3vw,2rem)}.trust-grid{grid-template-columns:repeat(4,1fr);gap:.75rem;display:grid}.trust-item{border-radius:var(--radius);background:var(--surface-container);align-items:center;gap:.9rem;padding:1.1rem 1.25rem;display:flex}.trust-icon{background:var(--secondary-container);width:44px;height:44px;color:var(--primary);border-radius:999px;flex:none;place-items:center;display:grid}.trust-big{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:500;line-height:1.3}.trust-label{font-size:var(--step--1);color:var(--muted)}.card{background:var(--surface-container);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:clamp(1.5rem,3vw,2rem)}.card-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.service{transition:transform .25s ease-out,box-shadow .25s ease-out}.service:hover{transform:translateY(-6px);box-shadow:0 12px 24px #1c1b1f1f}.service-icon{background:var(--secondary-container);width:56px;height:56px;color:var(--primary);transition:background-color .3s var(--ease), color .3s var(--ease);border-radius:18px;place-items:center;margin-bottom:1.5rem;display:grid}.service:hover .service-icon{background:var(--primary);color:var(--on-primary)}.service h3,.step h3,.glass h3{font-size:var(--step-2);margin-bottom:.6rem}.service p,.step p{color:var(--muted)}.steps{grid-template-columns:repeat(4,1fr);gap:1.5rem;margin:0;padding:0;list-style:none;display:grid}.step{background:var(--bg);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:2rem 1.5rem}.step-badge{background:var(--primary);width:56px;height:56px;color:var(--on-primary);font-family:var(--font-display);border-radius:999px;place-items:center;margin-bottom:1.25rem;font-size:1.25rem;font-weight:700;display:grid;position:relative}.step-glow{z-index:-1;background:var(--primary);filter:blur(16px);opacity:0;transition:opacity .3s var(--ease);border-radius:999px;position:absolute;inset:-12px}.step:hover .step-glow{opacity:.35}.family{isolation:isolate;border-radius:var(--radius-xl);background:radial-gradient(circle at 90% 10%, #ffd8e459, transparent 45%), var(--primary);color:var(--on-primary);box-shadow:var(--shadow-lg);grid-template-columns:.9fr 1.1fr;align-items:center;gap:clamp(2rem,5vw,4rem);padding:clamp(2rem,6vw,4.5rem);display:grid;position:relative;overflow:hidden}.family-copy p:last-child{font-size:var(--step-1);opacity:.9;margin-top:1.25rem}.eyebrow-on{color:var(--tertiary-container)}.family-grid{gap:1rem;display:grid}.glass{border-radius:var(--radius);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff1a;border:1px solid #ffffff2e;padding:1.5rem}.glass h3{margin-bottom:.35rem;font-size:1.25rem}.glass p{opacity:.88}.about{grid-template-columns:.8fr 1.2fr;align-items:center;gap:clamp(2rem,6vw,5rem);display:grid}.about-mark{aspect-ratio:1;background:radial-gradient(circle at 30% 25%, var(--tertiary-container), transparent 60%), var(--secondary-container);box-shadow:var(--shadow);border-radius:100px 100px 100px 24px;place-items:center;display:grid}.about-mark span{font-family:var(--font-display);color:var(--primary);letter-spacing:-.03em;font-size:clamp(4rem,12vw,9rem);font-weight:700}.about-copy>p:not(.eyebrow){color:var(--muted);max-width:60ch;margin-top:1.25rem;font-size:1.075rem}.about-copy .btn{margin-top:2rem}.review-grid{grid-template-columns:repeat(3,1fr);align-items:stretch;gap:1.5rem;display:grid}.review{flex-direction:column;gap:1rem;display:flex}.review blockquote{color:var(--text);flex:1;font-size:.975rem;line-height:1.65}.review figcaption{gap:.1rem;display:grid}.review figcaption span{font-size:var(--step--1);color:var(--muted)}.review-google a{border-radius:var(--radius);background:var(--on-secondary-container);height:100%;color:var(--bg);box-shadow:var(--shadow);flex-direction:column;justify-content:center;gap:.75rem;padding:2rem;text-decoration:none;transition:transform .25s ease-out,box-shadow .25s ease-out;display:flex}.review-google a:hover{box-shadow:var(--shadow-lg);transform:translateY(-6px)}.review-google-rating{font-family:var(--font-display);font-size:4rem;font-weight:500;line-height:1}.review-google-link{color:var(--secondary-container);align-items:center;gap:.5rem;margin-top:.5rem;font-weight:500;display:inline-flex}.visit-grid{grid-template-columns:1fr 1.1fr;gap:1.5rem;display:grid}.visit-info{background:var(--bg)}.visit-list{gap:1rem;margin:0 0 1.5rem;padding:0;list-style:none;display:grid}.visit-list li{align-items:flex-start;gap:.9rem;display:flex}.visit-list svg{color:var(--primary);flex:none;margin-top:2px}.visit-list a{font-weight:500}.hours{border-collapse:collapse;width:100%;font-size:.95rem}.hours caption{text-align:left;font-family:var(--font-display);margin-bottom:.5rem;font-size:1.1rem;font-weight:500}.hours th,.hours td{text-align:left;padding:.5rem .75rem;font-weight:400}.hours td{text-align:right;font-variant-numeric:tabular-nums}.hours tr:nth-child(odd){background:var(--surface-container)}.hours tr th{border-radius:10px 0 0 10px}.hours tr td{border-radius:0 10px 10px 0}.hours tr.is-today{background:var(--secondary-container);font-weight:500}.hours tr.is-today th,.hours tr.is-today td{font-weight:500}.map{border-radius:var(--radius);border:1px solid var(--line);min-height:420px;box-shadow:var(--shadow-sm);overflow:hidden}.map iframe{border:0;width:100%;height:100%;min-height:420px}.contact{isolation:isolate;overflow:hidden}.blobs-cta .blob-a{width:40%;top:0;right:-10%}.blobs-cta .blob-b{width:36%;bottom:-10%;left:-8%}.blobs-cta .blob-c{display:none}.contact-grid{z-index:1;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(2rem,5vw,4rem);display:grid;position:relative}.contact-copy .lead{margin-top:1.25rem}.contact-card{box-shadow:var(--shadow-lg);background:#f3edf7e6}.enquiry{gap:1rem;display:grid}.enquiry-field{gap:.35rem;display:grid}.enquiry-field label{color:var(--muted);letter-spacing:.01em;font-size:.8rem;font-weight:500}.enquiry input,.enquiry select,.enquiry textarea{border:0;border-bottom:2px solid var(--outline);background:var(--surface-container-low);width:100%;min-height:56px;color:var(--text);font:inherit;transition:border-color .2s var(--ease), box-shadow .2s var(--ease);border-radius:12px 12px 0 0;padding:.9rem 1rem}.enquiry input:focus,.enquiry select:focus,.enquiry textarea:focus{border-bottom-color:var(--primary);outline:none;box-shadow:0 0 0 2px #6750a440}.enquiry textarea{resize:vertical}.enquiry :disabled{opacity:.5}.enquiry-submit{background:var(--primary);min-height:48px;color:var(--on-primary);cursor:pointer;transition:box-shadow .3s var(--ease), transform .2s var(--ease);border:0;border-radius:999px;justify-self:start;padding:0 2rem;font-weight:500}.enquiry-submit:hover{box-shadow:var(--shadow)}.enquiry-submit:active{transform:scale(.96)}.enquiry-status:empty{display:none}.enquiry-status{font-size:var(--step--1);color:var(--muted)}.enquiry-status a{color:var(--primary);font-weight:500}.enquiry-trap{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.enquiry-done-title{font-family:var(--font-display);font-size:var(--step-2)}.enquiry-done-body{color:var(--muted);margin-top:.4rem}.enquiry-again{color:var(--primary);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;margin-top:1.2rem;padding:0;text-decoration:underline}.footer{background:var(--surface-container);margin-top:var(--section);padding-block:3rem}.footer-inner{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:1.5rem;font-size:.95rem;display:flex}.footer strong{color:var(--text);font-weight:500}.footer-small{align-self:flex-end;font-size:.8rem}@media (width<=1000px){.nav-links,.nav-cta{display:none}.nav-toggle{display:grid}.hero-grid,.family,.about,.visit-grid,.contact-grid{grid-template-columns:1fr}.hero-stage{min-height:0}.card-grid,.review-grid,.steps,.trust-grid{grid-template-columns:repeat(2,1fr)}.about-mark{max-width:280px}}@media (width<=620px){.card-grid,.review-grid,.steps,.trust-grid{grid-template-columns:1fr}.brand-text small{display:none}.stage-quote{justify-self:stretch}.actions .btn{flex:100%}.section-tonal{border-radius:28px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
