:root{--primary:#2f6b5a;--on-primary:#fff;--primary-container:#c2ebd9;--on-primary-container:#002117;--secondary-container:#d6e8de;--on-secondary-container:#122019;--tertiary:#9c4a32;--tertiary-container:#ffdbcf;--on-tertiary-container:#3a0b00;--inverse:#143d33;--on-inverse:#e8f3ee;--surface:#f7fbf7;--surface-container:#ebf2ed;--surface-container-low:#e1e9e3;--on-surface:#191c1a;--on-surface-variant:#404943;--outline:#717973;--ink:var(--on-surface);--accent:var(--primary);--accent-soft:var(--secondary-container);--bg:var(--surface);--bg-alt:var(--surface-container);--text:var(--on-surface);--muted:var(--on-surface-variant);--line:#c9d2cb;--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.15rem, 1.05rem + .4vw, 1.25rem);--step-2:clamp(1.35rem, 1.2rem + .6vw, 1.5rem);--step-3:clamp(2rem, 1.5rem + 2vw, 3rem);--step-4:clamp(2.5rem, 1.7rem + 3.4vw, 4.25rem);--radius-xs:8px;--radius-sm:16px;--radius:24px;--radius-lg:32px;--radius-xl:48px;--shadow-sm:0 1px 2px #191c1a14, 0 1px 3px 1px #191c1a0d;--shadow:0 12px 24px -6px #191c1a24, 0 4px 8px #191c1a0d;--container:1200px;--gutter:clamp(1rem, 4vw, 2.5rem);--section:clamp(4rem, 9vw, 6.5rem);--ease:cubic-bezier(.2, 0, 0, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--surface);color:var(--on-surface);font-family:var(--font-body);font-size:var(--step-0);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6;overflow-x:hidden}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:500;line-height:1.2}h2{font-size:var(--step-3);font-variation-settings:"wdth" 110, "opsz" 48}h3{font-size:var(--step-2)}h2 em,h1 em{color:var(--primary);font-style:normal}p{margin:0}img,svg,video{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}ul{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:999px}.skip{z-index:100;background:var(--primary);color:var(--on-primary);border-radius:999px;padding:.6rem 1rem;position:absolute;top:-4rem;left:1rem}.skip:focus{top:1rem}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section)}.section-tonal{background:var(--surface-container);border-radius:var(--radius-xl);margin-inline:clamp(.5rem,1.5vw,1.25rem)}.reveal-mask,.word-mask{vertical-align:bottom;display:inline-block;overflow:hidden}.word-mask{margin-right:.25em;padding-bottom:.06em}.btn{height:40px;font-size:var(--step--1);letter-spacing:.01em;white-space:nowrap;cursor:pointer;isolation:isolate;transition:box-shadow .3s var(--ease);border:0;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding-inline:1.5rem;font-weight:500;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:.1}.btn:active:after{opacity:.16}.btn:hover{box-shadow:var(--shadow-sm)}.btn-lg{height:52px;font-size:var(--step-0);padding-inline:1.75rem}.btn-filled{background:var(--primary);color:var(--on-primary)}.btn-tonal{background:var(--secondary-container);color:var(--on-secondary-container)}.btn-on-primary{background:var(--on-inverse);color:var(--inverse)}.nav{z-index:40;-webkit-backdrop-filter:blur(14px);transition:border-color .3s var(--ease);background:#f7fbf7d1;border-bottom:1px solid #0000;position:sticky;top:0}.nav.is-scrolled{border-bottom-color:var(--line)}.nav-inner{align-items:center;gap:1.5rem;display:flex}.brand{align-items:center;gap:.7rem;margin-right:auto;display:flex}.brand-mark{background:var(--primary);width:42px;height:42px;color:var(--on-primary);border-radius:14px;place-items:center;display:grid}.brand-name{font-family:var(--font-display);font-size:1.1rem;font-weight:700;line-height:1.1;display:grid}.brand-name small{color:var(--on-surface-variant);letter-spacing:.02em;font-size:.78rem;font-weight:400}.nav-links{gap:.25rem;display:flex}.nav-links a{font-size:var(--step--1);color:var(--on-surface-variant);transition:background-color .2s var(--ease), color .2s var(--ease);border-radius:999px;padding:.5rem .9rem;font-weight:500}.nav-links a:hover{color:var(--primary);background:#2f6b5a1a}.nav-toggle{background:var(--secondary-container);cursor:pointer;border:0;border-radius:999px;place-items:center;width:44px;height:44px;display:none}.drawer-backdrop{z-index:60;background:#191c1a66;position:fixed;inset:0}.drawer{z-index:61;background:var(--surface-container);border-radius:var(--radius-lg) 0 0 var(--radius-lg);width:min(84vw,360px);box-shadow:var(--shadow);flex-direction:column;gap:1rem;padding:1.25rem 1.5rem 2rem;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer-close{background:var(--surface);cursor:pointer;border:0;border-radius:999px;align-self:flex-end;place-items:center;width:44px;height:44px;display:grid}.drawer ul{gap:.25rem;display:grid}.drawer li a{font-family:var(--font-display);border-radius:999px;padding:.85rem 1rem;font-size:1.35rem;font-weight:500;display:block}.drawer li a:hover{background:#2f6b5a1a}.drawer-call{height:52px;margin-top:auto}.hero-wrap{padding-top:clamp(.5rem,2vw,1.25rem)}.hero{border-radius:var(--radius-xl);background:var(--surface-container);isolation:isolate;grid-template-columns:1.15fr .85fr;align-items:center;gap:clamp(2rem,5vw,4rem);padding:clamp(1.75rem,5vw,4.5rem);display:grid;position:relative;overflow:hidden}.blob{z-index:-1;filter:blur(56px);mix-blend-mode:multiply;animation:8s ease-in-out infinite alternate blob-morph;position:absolute}.blob-a{background:var(--primary-container);opacity:.9;width:460px;height:460px;top:-22%;right:-8%}.blob-b{background:var(--tertiary-container);opacity:.8;width:360px;height:360px;animation-delay:-3s;bottom:-30%;left:18%}.blob-c{background:var(--secondary-container);opacity:.9;width:260px;height:260px;animation-delay:-5s;top:8%;left:-8%}@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)}}.chip{background:var(--secondary-container);color:var(--on-secondary-container);letter-spacing:.01em;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .9rem;font-size:.8rem;font-weight:500;display:inline-flex}.hero-title{font-size:var(--step-4);letter-spacing:-.02em;font-variation-settings:"wdth" 115, "opsz" 96;margin-top:1.25rem;font-weight:600;line-height:1.08}.hero-intro{max-width:50ch;font-size:var(--step-1);color:var(--on-surface-variant);margin-top:1.25rem;line-height:1.55}.hero-ctas{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.hero-media{position:relative}.hero-media img{aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) 120px;width:100%;box-shadow:var(--shadow)}.rating-chip{background:var(--surface);box-shadow:var(--shadow);transition:transform .3s var(--ease);border-radius:999px;align-items:center;gap:.75rem;padding:.75rem 1.1rem .75rem .8rem;display:flex;position:absolute;bottom:2rem;left:-1.5rem}.rating-chip:hover{transform:translateY(-2px)}.rating-num{background:var(--tertiary);color:#fff;border-radius:999px;place-items:center;width:46px;height:46px;font-weight:700;display:grid}.rating-chip small{color:var(--on-surface-variant);font-size:.78rem;display:block}.stars{color:#c98a1b;letter-spacing:.1em;font-size:.95rem}.trust{grid-template-columns:repeat(4,1fr);gap:.75rem;margin-top:.75rem;display:grid}.trust li{border-radius:var(--radius);background:var(--surface-container);align-items:center;gap:.8rem;padding:1rem 1.1rem;display:flex}.trust strong{font-weight:500;line-height:1.3;display:block}.trust small{color:var(--on-surface-variant);font-size:.82rem}.trust-icon{background:var(--primary-container);width:44px;height:44px;color:var(--on-primary-container);border-radius:14px;flex:none;place-items:center;display:grid}.section-head{max-width:44rem;margin-bottom:clamp(2rem,4vw,3rem)}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--tertiary);margin-bottom:.75rem;font-size:.8rem;font-weight:500}.section-lead{font-size:var(--step-1);color:var(--on-surface-variant);margin-top:1rem}.cards{grid-template-columns:repeat(3,1fr);gap:1.25rem;display:grid}.card{border-radius:var(--radius);background:var(--surface-container);transition:transform .25s ease-out, box-shadow .25s ease-out, background-color .3s var(--ease);padding:1.75rem;box-shadow:0 1px 3px #00000014}.card:hover{transform:translateY(-6px);box-shadow:0 12px 24px #0000001f}.card h3{margin-top:1.25rem;font-size:1.3rem}.card p{color:var(--on-surface-variant);margin-top:.5rem}.card-icon{background:var(--primary-container);width:52px;height:52px;color:var(--on-primary-container);transition:border-radius .3s var(--ease), background-color .3s var(--ease);border-radius:18px;place-items:center;display:grid}.card:hover .card-icon{background:var(--primary);color:var(--on-primary)}.steps{grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);display:grid}.steps-visual{align-self:start;height:64vh;position:sticky;top:18vh}.steps-visual>div{height:100%}.step-photo{object-fit:cover;border-radius:var(--radius-lg);width:100%;height:100%;box-shadow:var(--shadow)}.step-card{border-radius:var(--radius-lg);background:var(--primary);height:100%;min-height:280px;color:var(--on-primary);isolation:isolate;place-content:center;justify-items:center;gap:1.25rem;display:grid;position:relative;overflow:hidden}.step-card:before{content:"";z-index:-1;aspect-ratio:1;background:var(--tertiary);opacity:.35;filter:blur(60px);border-radius:50%;width:70%;position:absolute}.step-card-icon{background:#ffffff1f;border:1px solid #fff3;border-radius:40px;place-items:center;width:120px;height:120px;display:grid}.step-card p{font-family:var(--font-display);font-size:var(--step-2);font-weight:500}.step{opacity:.4;min-height:60vh;transition:opacity .4s var(--ease);flex-direction:column;justify-content:center;display:flex}.step.is-active{opacity:1}.step-num{background:var(--secondary-container);width:48px;height:48px;color:var(--on-secondary-container);transition:background-color .3s var(--ease), color .3s var(--ease), box-shadow .3s var(--ease);border-radius:999px;place-items:center;margin-bottom:1rem;font-weight:700;display:grid}.step.is-active .step-num{background:var(--primary);color:var(--on-primary);box-shadow:0 0 0 8px #2f6b5a24}.step h3{font-size:var(--step-3)}.step p{max-width:40ch;font-size:var(--step-1);color:var(--on-surface-variant);margin-top:.75rem}.step-inline-visual{display:none}.about{grid-template-columns:.8fr 1.2fr;align-items:center;gap:clamp(2rem,6vw,5rem);display:grid}.about-media img{aspect-ratio:4/5;object-fit:cover;border-radius:140px var(--radius-lg) var(--radius-lg) var(--radius-lg);width:100%;box-shadow:var(--shadow)}.about-p{font-size:var(--step-1);color:var(--on-surface-variant);max-width:56ch;margin-top:1.25rem}.about-quote{border-radius:var(--radius);background:var(--tertiary-container);color:var(--on-tertiary-container);margin:2rem 0 0;padding:1.5rem 1.75rem}.about-quote p{font-family:var(--font-display);font-size:var(--step-2);line-height:1.35}.about-quote footer{font-size:var(--step--1);opacity:.8;margin-top:.75rem}.reviews{grid-template-columns:repeat(3,1fr);gap:1.25rem;display:grid}.review{background:var(--surface);flex-direction:column;gap:1rem;display:flex}.review blockquote{flex:1;margin:0;line-height:1.6}.review-by strong{font-weight:500;display:block}.review-by small{color:var(--on-surface-variant);font-size:.82rem}.review-google a{border-radius:var(--radius);background:var(--inverse);height:100%;min-height:260px;color:var(--on-inverse);isolation:isolate;transition:transform .3s var(--ease), box-shadow .3s var(--ease);flex-direction:column;justify-content:flex-end;gap:.4rem;padding:1.75rem;display:flex;position:relative;overflow:hidden}.review-google a:before{content:"";z-index:-1;aspect-ratio:1;background:var(--primary);filter:blur(50px);opacity:.8;border-radius:50%;width:70%;position:absolute;top:-30%;right:-20%}.review-google a:hover{box-shadow:var(--shadow);transform:translateY(-6px)}.review-google-num{font-family:var(--font-display);font-size:4rem;font-weight:600;line-height:1}.review-google-count{font-size:var(--step-1)}.review-google-link{background:var(--on-inverse);color:var(--inverse);font-weight:500;font-size:var(--step--1);border-radius:999px;align-self:flex-start;align-items:center;gap:.35rem;margin-top:.75rem;padding:.55rem 1.1rem;display:inline-flex}.review-google-link svg{transition:transform .2s var(--ease)}.review-google a:hover .review-google-link svg{transform:translate(2px,-2px)}.contact-grid{grid-template-columns:.9fr 1.1fr;gap:1.25rem;display:grid}.contact-card{border-radius:var(--radius-lg);background:var(--surface-container);align-content:start;gap:.75rem;padding:clamp(1.25rem,3vw,2rem);display:grid}.contact-line{border-radius:var(--radius-sm);transition:background-color .2s var(--ease);align-items:center;gap:.9rem;padding:.75rem;display:flex}.contact-line:hover{background:#2f6b5a14}.contact-line small{color:var(--on-surface-variant);font-size:.8rem;display:block}.contact-line strong{font-weight:500}.hours{border-collapse:collapse;width:100%;margin-top:.5rem}.hours caption{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--tertiary);padding:0 .75rem .5rem;font-size:.8rem;font-weight:500}.hours th,.hours td{text-align:left;padding:.55rem .75rem;font-weight:400}.hours td{text-align:right}.hours tr+tr th,.hours tr+tr td{border-top:1px solid var(--line)}.hours tr.is-today th,.hours tr.is-today td{color:var(--primary);font-weight:700}.map-frame{border-radius:var(--radius-lg);border:1px solid var(--line);min-height:420px;overflow:hidden}.map-frame iframe{border:0;width:100%;height:100%;min-height:420px;display:block}.enquiry-wrap{border-radius:var(--radius-lg);background:var(--surface-container);grid-template-columns:.8fr 1.2fr;gap:clamp(1.5rem,4vw,3rem);margin-top:1.25rem;padding:clamp(1.5rem,4vw,3rem);display:grid}.enquiry-intro h3{font-size:var(--step-3)}.enquiry-intro p:last-child{color:var(--on-surface-variant);margin-top:.75rem}.footer{margin:var(--section) clamp(.5rem, 1.5vw, 1.25rem) clamp(.5rem, 1.5vw, 1.25rem);border-radius:var(--radius-xl);background:var(--inverse);color:var(--on-inverse);padding-block:clamp(3rem,7vw,5rem) 2rem;overflow:hidden}.footer-cta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.footer-cta h2{font-size:var(--step-3)}.footer-meta{font-size:var(--step--1);opacity:.85;border-top:1px solid #ffffff24;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.5rem;display:flex}.fab{z-index:30;background:var(--tertiary);color:#fff;width:56px;height:56px;box-shadow:var(--shadow);border-radius:18px;place-items:center;display:none;position:fixed;bottom:1rem;right:1rem}.enquiry{gap:1rem;display:grid}.enquiry-field{gap:.35rem;display:grid}.enquiry-field label{font-size:var(--step--1);color:var(--on-surface-variant);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(--on-surface);font:inherit;transition:border-color .2s var(--ease), background-color .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);background:#d9e3dc;outline:none}.enquiry textarea{resize:vertical}.enquiry :disabled{opacity:.6}.enquiry-submit{background:var(--primary);height:52px;color:var(--on-primary);cursor:pointer;transition:opacity .2s var(--ease), transform .15s var(--ease);border:0;border-radius:999px;justify-self:start;padding-inline:1.75rem;font-weight:500}.enquiry-submit:hover{opacity:.9}.enquiry-submit:active{transform:scale(.96)}.enquiry-submit:disabled{cursor:default}.enquiry-status:empty{display:none}.enquiry-status{font-size:var(--step--1);color:var(--on-surface-variant)}.enquiry-status a{color:var(--primary);font-weight:500;text-decoration:underline}.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(--on-surface-variant);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}@media (width<=1000px){.nav-links{display:none}.nav-toggle{display:grid}.trust,.cards,.reviews{grid-template-columns:repeat(2,1fr)}}@media (width<=820px){:root{--radius-xl:28px;--radius-lg:24px}.hero,.about,.contact-grid,.enquiry-wrap{grid-template-columns:1fr}.hero-media{max-width:420px}.rating-chip{bottom:.75rem;left:.75rem}.nav-call{display:none}.fab{display:grid}.steps{grid-template-columns:1fr}.steps-visual{display:none}.step{opacity:1;min-height:0;padding-block:1.5rem}.step-inline-visual{margin-top:1.25rem;display:block}.step-inline-visual .step-photo{aspect-ratio:4/3;height:auto}.step-inline-visual .step-card{min-height:200px}.about-media{max-width:420px}}@media (width<=560px){.trust,.cards,.reviews{grid-template-columns:1fr}.hero-ctas .btn{width:100%}.brand-name small{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.card:hover,.review-google a:hover{transform:none}}
