:root,[data-theme=light]{--background: 45 25% 98%;--foreground: 158 27% 18%;--card: 0 0% 100%;--card-border: 110 12% 84%;--border: 115 10% 84%;--input: 120 7% 64%;--ring: 154 30% 29%;--primary: 154 30% 27%;--primary-foreground: 45 20% 98%;--secondary: 110 17% 91%;--muted: 110 14% 93%;--muted-foreground: 135 5% 39%;--accent: 110 20% 92%;--destructive: 0 57% 38%;--warning: 36 80% 38%;--info: 205 55% 38%;--sage: #e7ede3;--cream: #f3f2ec;--green-text: #496748;--font-body: "Satoshi", "Arial", sans-serif;--font-display: "Zodiak", Georgia, serif;--text-xs: clamp(.75rem, .72rem + .13vw, .8125rem);--text-sm: clamp(.875rem, .83rem + .15vw, .9375rem);--text-base: clamp(1rem, .97rem + .13vw, 1.0625rem);--text-lg: clamp(1.125rem, 1rem + .65vw, 1.375rem);--text-xl: clamp(1.5rem, 1.2rem + 1.1vw, 2.125rem);--text-2xl: clamp(2.45rem, 1.35rem + 2.8vw, 3.5rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--radius-sm: .375rem;--radius-lg: .75rem;--shadow: 0 1px 2px hsl(158 27% 18% / .05), 0 8px 24px hsl(158 27% 18% / .06);--transition: .18s ease;color-scheme:light}[data-theme=dark]{--background: 154 17% 10%;--foreground: 80 14% 90%;--card: 151 13% 14%;--card-border: 143 10% 28%;--border: 143 10% 28%;--input: 140 8% 44%;--ring: 108 25% 65%;--primary: 106 21% 72%;--primary-foreground: 154 27% 13%;--secondary: 146 14% 20%;--muted: 146 12% 17%;--muted-foreground: 105 8% 69%;--accent: 143 16% 22%;--destructive: 8 71% 73%;--warning: 38 75% 65%;--info: 205 60% 70%;--sage: #253329;--cream: #1b241f;--green-text: #afc4a7;--shadow: 0 1px 2px rgb(0 0 0 / .3);color-scheme:dark}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;color:hsl(var(--foreground));background:hsl(var(--background));-webkit-font-smoothing:antialiased;min-height:100vh}img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0}a{color:inherit}h1,h2,h3,h4{line-height:1.2;font-weight:600;text-wrap:balance}p{text-wrap:pretty}:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px;border-radius:4px}::selection{background:var(--sage)}.skip-link{position:absolute;left:16px;top:-60px;z-index:100;background:hsl(var(--primary));color:hsl(var(--primary-foreground));padding:10px 16px;border-radius:var(--radius-sm)}.skip-link:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.wrap{max-width:1264px;margin-inline:auto;padding-inline:var(--space-8)}.display{font-family:var(--font-display);font-weight:400;letter-spacing:-.055em;line-height:1.15}.eyebrow{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green-text)}.muted{color:hsl(var(--muted-foreground))}.small{font-size:var(--text-sm)}.xsmall{font-size:var(--text-xs)}.tnum{font-variant-numeric:tabular-nums}.stack{display:grid;gap:var(--space-4)}.stack-sm{display:grid;gap:var(--space-2)}.row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.grow{flex:1}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-5);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500;text-decoration:none;white-space:nowrap;border:1px solid transparent;transition:background var(--transition),border-color var(--transition),color var(--transition)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.btn-primary:hover:not(:disabled){background:hsl(var(--primary) / .9)}.btn-outline{border-color:hsl(var(--foreground) / .24);background:hsl(var(--card))}.btn-outline:hover:not(:disabled){border-color:hsl(var(--foreground) / .5)}.btn-ghost:hover:not(:disabled){background:hsl(var(--muted))}.btn-danger{background:hsl(var(--destructive));color:#fff}.btn-danger-outline{border-color:hsl(var(--destructive) / .4);color:hsl(var(--destructive));background:transparent}.btn-sm{min-height:36px;padding:0 var(--space-3);font-size:var(--text-xs)}.btn-lg{min-height:52px;padding:0 var(--space-6);font-size:var(--text-base)}.btn-block{width:100%}.btn-icon{width:40px;min-height:40px;padding:0}.link{color:var(--green-text);text-decoration:underline;text-underline-offset:3px}.link:hover{color:hsl(var(--foreground))}.field{display:grid;gap:var(--space-2);align-content:start}.field>label,.label{font-size:var(--text-sm);font-weight:500}.input,.select,.textarea{width:100%;min-height:46px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);border:1px solid hsl(var(--input));background:hsl(var(--background));font-size:var(--text-sm);transition:border-color var(--transition),box-shadow var(--transition)}.textarea{min-height:110px;padding-block:var(--space-3);resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .18)}.input[aria-invalid=true]{border-color:hsl(var(--destructive))}.hint{font-size:var(--text-xs);color:hsl(var(--muted-foreground));line-height:1.6}.error-text{font-size:var(--text-xs);color:hsl(var(--destructive))}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}.check{display:flex;gap:var(--space-3);align-items:flex-start;font-size:var(--text-sm);line-height:1.6;cursor:pointer}.check input{margin-top:4px;min-width:18px;min-height:18px;accent-color:hsl(var(--primary))}.card{background:hsl(var(--card));border:1px solid hsl(var(--card-border));border-radius:var(--radius-lg);padding:var(--space-6)}.card-sage{background:var(--sage);border-radius:var(--radius-lg);padding:var(--space-6)}.card h2,.card h3{font-size:var(--text-base)}.divider{border:0;border-top:1px solid hsl(var(--border));margin-block:var(--space-4)}.alert{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);line-height:1.6;background:var(--sage)}.alert svg{flex-shrink:0;margin-top:3px}.alert-error{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}.alert-warn{background:hsl(var(--warning) / .12);color:hsl(var(--warning))}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap;background:hsl(var(--muted));color:hsl(var(--muted-foreground));line-height:1.7}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge-green{background:hsl(var(--primary) / .12);color:hsl(var(--primary))}.badge-blue{background:hsl(var(--info) / .12);color:hsl(var(--info))}.badge-amber{background:hsl(var(--warning) / .14);color:hsl(var(--warning))}.badge-red{background:hsl(var(--destructive) / .12);color:hsl(var(--destructive))}.badge-plain:before{display:none}.spinner{width:20px;height:20px;border:2px solid hsl(var(--foreground) / .15);border-top-color:hsl(var(--primary));border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-block{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-12);color:hsl(var(--muted-foreground));font-size:var(--text-sm)}.empty{text-align:center;padding:var(--space-10) var(--space-6);color:hsl(var(--muted-foreground));font-size:var(--text-sm)}.empty svg{margin:0 auto var(--space-3);color:var(--green-text)}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#141e1973;display:grid;place-items:center;padding:var(--space-4);animation:fade .15s ease}.modal{width:min(560px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;background:hsl(var(--background));border-radius:var(--radius-lg);border:1px solid hsl(var(--border));box-shadow:0 20px 60px #0003}.modal-wide{width:min(820px,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid hsl(var(--border))}.modal-head h2{font-size:var(--text-base)}.modal-body{padding:var(--space-6);display:grid;gap:var(--space-4)}.modal-foot{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid hsl(var(--border))}@keyframes fade{0%{opacity:0}}.toasts{position:fixed;bottom:20px;right:20px;z-index:60;display:grid;gap:8px}.toast{background:hsl(var(--foreground));color:hsl(var(--background));padding:12px 16px;border-radius:var(--radius-sm);font-size:var(--text-sm);box-shadow:var(--shadow);max-width:360px;animation:fade .2s ease}.toast-error{background:hsl(var(--destructive));color:#fff}.table-wrap{overflow-x:auto;border:1px solid hsl(var(--card-border));border-radius:var(--radius-lg);background:hsl(var(--card))}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table th{text-align:left;font-weight:500;font-size:var(--text-xs);color:hsl(var(--muted-foreground));padding:var(--space-3) var(--space-4);border-bottom:1px solid hsl(var(--border));white-space:nowrap;background:hsl(var(--muted) / .5)}.table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid hsl(var(--border));vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:hsl(var(--muted) / .6)}.table .num{text-align:right;font-variant-numeric:tabular-nums}@media(max-width:700px){.wrap{padding-inline:var(--space-5)}.grid-2,.grid-3{grid-template-columns:1fr}}.seg{display:inline-flex;padding:4px;gap:4px;border-radius:var(--radius-sm);background:hsl(var(--muted))}.seg-btn{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border-radius:4px;font-size:var(--text-sm);color:hsl(var(--muted-foreground))}.seg-btn[aria-checked=true]{background:hsl(var(--card));color:hsl(var(--foreground));font-weight:600;box-shadow:0 1px 2px #00000014}.seg-btn:disabled{opacity:.4;cursor:not-allowed}.code-box{display:grid;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-sm);background:var(--sage)}.code-input{max-width:200px;font-size:22px;letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums;background:hsl(var(--card))}.verified{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);color:var(--green-text);font-weight:600}.announcement{display:flex;justify-content:center;align-items:center;gap:var(--space-2);background:var(--sage);text-align:center;padding:var(--space-2) var(--space-4);font-size:var(--text-xs);letter-spacing:.035em}.site-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);height:88px}.brand{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xl);font-weight:700;letter-spacing:-.06em;line-height:1;white-space:nowrap}.brand-dot{color:var(--green-text)}.brand-home{text-decoration:none;display:flex}.site-nav{display:flex;align-items:center;gap:var(--space-6);margin-left:var(--space-6)}.site-nav a,.mobile-menu a{font-size:var(--text-sm);text-decoration:none}.site-nav a:hover,.site-nav a.active{color:var(--green-text)}.site-nav a.active{text-decoration:underline;text-underline-offset:6px}.header-actions{display:flex;align-items:center;gap:var(--space-2)}.menu-toggle,.mobile-menu,.mobile-cta{display:none}.footer{background:var(--cream);margin-top:var(--space-16)}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--space-10);padding-block:var(--space-16) var(--space-10)}.footer h3{font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--green-text);margin-bottom:var(--space-4)}.footer ul{list-style:none;display:grid;gap:var(--space-2);font-size:var(--text-sm)}.footer a{text-decoration:none}.footer a:hover{color:var(--green-text);text-decoration:underline}.footer-contact{margin-top:var(--space-5)}.footer-contact li{display:flex;align-items:center;gap:var(--space-2)}.footer-bottom{display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding-block:var(--space-6);border-top:1px solid hsl(var(--border));font-size:var(--text-xs);color:hsl(var(--muted-foreground))}.footer-legal{display:flex;gap:var(--space-5);flex-wrap:wrap}.hero{display:grid;grid-template-columns:.94fr 1.06fr;gap:var(--space-12);align-items:center;padding-block:var(--space-6) var(--space-16)}.hero h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;letter-spacing:-.06em;line-height:1.12;margin-block:var(--space-6)}.hero h1 span{display:block;color:var(--green-text)}.hero-description{color:hsl(var(--muted-foreground));max-width:44ch;margin-bottom:var(--space-8)}.hero-visual{height:440px;position:relative;border-radius:8px 80px 8px 8px;overflow:hidden;background:var(--sage)}.hero-visual img{width:100%;height:100%;object-fit:cover}.hero-tag{position:absolute;top:18px;left:18px;background:hsl(var(--background) / .9);font-size:var(--text-xs);letter-spacing:.1em;padding:4px 10px;border-radius:4px;text-transform:uppercase}.hero-note-card{position:absolute;left:18px;bottom:18px;right:18px;max-width:320px;display:flex;gap:var(--space-3);background:hsl(var(--background) / .94);padding:var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-xs)}.hero-note-card strong{display:block;font-size:var(--text-sm)}.postcode-form{display:flex;gap:var(--space-2);max-width:460px;padding:6px;background:hsl(var(--card));border:1px solid hsl(var(--card-border));border-radius:var(--radius-lg);box-shadow:var(--shadow)}.postcode-form .input{border:0;min-height:48px;background:transparent;text-transform:uppercase;flex:1 1 auto;min-width:0}.postcode-form>.btn:not(.btn-icon){white-space:nowrap;flex:0 0 auto}.postcode-form .input::placeholder{text-transform:none}.postcode-form .input:focus{box-shadow:none}.postcode-result{font-size:var(--text-sm);margin-top:var(--space-3);display:flex;align-items:center;gap:var(--space-2)}.trust-row{display:flex;flex-wrap:wrap;gap:var(--space-5);margin-top:var(--space-6);font-size:var(--text-xs);color:hsl(var(--muted-foreground))}.trust-row span{display:inline-flex;align-items:center;gap:6px}.trust-row svg{color:var(--green-text)}.section{padding-block:var(--space-16)}.section-cream{background:var(--cream)}.section-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-8);margin-bottom:var(--space-8)}.section-intro h2,.section-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;letter-spacing:-.055em;margin-top:var(--space-3)}.section-intro>p{font-size:var(--text-sm);color:hsl(var(--muted-foreground));max-width:40ch}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}.service-card{display:flex;flex-direction:column;background:hsl(var(--card));border:1px solid hsl(var(--card-border));border-radius:var(--radius-lg);padding:var(--space-6);transition:border-color var(--transition),transform var(--transition)}.service-card:hover{border-color:hsl(var(--primary) / .5)}.service-card.featured{background:var(--sage);border-color:transparent}.service-card-top{display:flex;justify-content:space-between;align-items:center;color:var(--green-text);margin-bottom:var(--space-6)}.service-card-top span{font-size:var(--text-sm);color:hsl(var(--muted-foreground))}.service-card h3{font-size:var(--text-lg);margin-top:var(--space-2)}.service-card>p{color:hsl(var(--muted-foreground));font-size:var(--text-sm);margin-top:var(--space-3)}.includes{list-style:none;display:grid;gap:var(--space-3);margin-block:var(--space-6);font-size:var(--text-sm)}.includes li{display:flex;gap:var(--space-3);align-items:flex-start}.includes svg{flex-shrink:0;margin-top:4px;color:var(--green-text)}.service-card-foot{margin-top:auto;padding-top:var(--space-5);border-top:1px solid hsl(var(--border));display:grid;gap:var(--space-4)}.price-from{font-size:var(--text-sm);color:hsl(var(--muted-foreground))}.price-from strong{font-size:var(--text-lg);color:hsl(var(--foreground));font-variant-numeric:tabular-nums}.split{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--space-20)}.process-list{list-style:none}.process-list li{display:flex;gap:var(--space-6);padding-block:var(--space-5);border-bottom:1px solid hsl(var(--border))}.process-list li:first-child{padding-top:0}.process-list li:last-child{border:0}.process-list li>span{font-size:var(--text-sm);color:var(--green-text);font-weight:600;padding-top:2px}.process-list h3{font-size:var(--text-base)}.process-list p{color:hsl(var(--muted-foreground));font-size:var(--text-sm);margin-top:var(--space-2)}.stats-band{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6)}.stat-big strong{display:block;font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;letter-spacing:-.04em}.stat-big span{font-size:var(--text-sm);color:hsl(var(--muted-foreground))}.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}.review{background:hsl(var(--card));border:1px solid hsl(var(--card-border));border-radius:var(--radius-lg);padding:var(--space-6);display:grid;gap:var(--space-4);align-content:start}.stars{display:inline-flex;gap:2px;color:#c58a1b}.review blockquote{font-size:var(--text-sm);line-height:1.75}.review cite{font-style:normal;font-size:var(--text-xs);color:hsl(var(--muted-foreground))}.faq-list{border-top:1px solid hsl(var(--border))}.faq-list details{border-bottom:1px solid hsl(var(--border))}.faq-list summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);min-height:64px;padding-block:var(--space-4);list-style:none;font-size:var(--text-sm);font-weight:500}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary svg{flex-shrink:0;transition:transform var(--transition)}.faq-list details[open] summary svg{transform:rotate(45deg)}.faq-list details p{font-size:var(--text-sm);line-height:1.75;color:hsl(var(--muted-foreground));padding-bottom:var(--space-5);max-width:70ch}.cta-band{background:var(--sage)}.cta-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:var(--space-6);padding-block:var(--space-10);flex-wrap:wrap}.cta-band h2{font-family:var(--font-display);font-weight:400;font-size:var(--text-lg);letter-spacing:-.04em;margin-top:var(--space-2)}.page-head{padding-block:var(--space-10) var(--space-8)}.page-head h1{font-family:var(--font-display);font-weight:400;font-size:var(--text-2xl);letter-spacing:-.06em;margin-top:var(--space-3)}.page-head p.lead{color:hsl(var(--muted-foreground));max-width:60ch;margin-top:var(--space-4)}.prose{max-width:72ch;font-size:var(--text-sm);line-height:1.8}.prose h2{font-size:var(--text-lg);margin-top:var(--space-8);margin-bottom:var(--space-3)}.prose p,.prose ul{margin-bottom:var(--space-4)}.prose ul{padding-left:var(--space-5)}.price-table td:first-child{font-weight:500}.area-group{padding-block:var(--space-6);border-top:1px solid hsl(var(--border));scroll-margin-top:var(--space-6)}.area-group h2{font-size:var(--text-lg);margin-bottom:var(--space-4)}.area-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{display:inline-flex;gap:6px;align-items:center;padding:6px 12px;border-radius:999px;background:hsl(var(--card));border:1px solid hsl(var(--card-border));font-size:var(--text-xs)}.chip strong{font-weight:600}.auth-page{min-height:calc(100vh - 200px);display:grid;place-items:center;padding:var(--space-10) var(--space-5);background:var(--cream)}.auth-card{width:min(440px,100%)}.auth-card h1{font-size:var(--text-lg)}.booking-page{background:var(--cream);min-height:100vh}.booking-top{display:flex;align-items:center;justify-content:space-between;height:76px}.booking-shell{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--space-8);padding-block:var(--space-4) var(--space-16);align-items:start}.progress{display:flex;gap:var(--space-2);margin-bottom:var(--space-6)}.progress-step{flex:1}.progress-bar{height:4px;border-radius:4px;background:hsl(var(--foreground) / .12)}.progress-step.done .progress-bar,.progress-step.current .progress-bar{background:hsl(var(--primary))}.progress-label{font-size:var(--text-xs);color:hsl(var(--muted-foreground));margin-top:var(--space-2)}.progress-step.current .progress-label{color:hsl(var(--foreground));font-weight:600}.wizard-card{background:hsl(var(--card));border:1px solid hsl(var(--card-border));border-radius:var(--radius-lg)}.wizard-body{padding:var(--space-8);display:grid;gap:var(--space-8)}.wizard-body h2{font-family:var(--font-display);font-weight:400;font-size:var(--text-xl);letter-spacing:-.05em}.wizard-section{display:grid;gap:var(--space-4)}.wizard-section>h3{font-size:var(--text-base)}.wizard-foot{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-8);border-top:1px solid hsl(var(--border))}.choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--space-3)}.choice{position:relative;display:grid;gap:4px;text-align:left;padding:var(--space-4) var(--space-5);border:1px solid hsl(var(--card-border));border-radius:var(--radius-sm);background:hsl(var(--background));transition:border-color var(--transition),background var(--transition)}.choice:hover{border-color:hsl(var(--primary) / .5)}.choice[aria-pressed=true],.choice[aria-checked=true]{border-color:hsl(var(--primary));background:var(--sage);box-shadow:inset 0 0 0 1px hsl(var(--primary))}.choice-title{font-weight:600;font-size:var(--text-sm)}.choice-sub{font-size:var(--text-xs);color:hsl(var(--muted-foreground));line-height:1.5}.choice-price{font-size:var(--text-sm);font-weight:600;font-variant-numeric:tabular-nums}.choice-tag{position:absolute;top:-9px;right:10px;font-size:11px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));padding:1px 8px;border-radius:999px}.counter-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-3);border-bottom:1px solid hsl(var(--border))}.counter-row:last-child{border-bottom:0}.stepper{display:inline-flex;align-items:center;border:1px solid hsl(var(--input));border-radius:var(--radius-sm)}.stepper-btn{width:40px;height:40px;font-size:18px}.stepper-btn:disabled{opacity:.3;cursor:not-allowed}.stepper-btn:hover:not(:disabled){background:hsl(var(--muted))}.stepper-value{min-width:32px;text-align:center;font-weight:600}.extras-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-3)}.extra-tile{display:grid;justify-items:center;text-align:center;gap:6px;padding:var(--space-4) var(--space-3);border:1px solid hsl(var(--card-border));border-radius:var(--radius-sm);background:hsl(var(--background));font-size:var(--text-xs);position:relative}.extra-tile[aria-pressed=true]{border-color:hsl(var(--primary));background:var(--sage);box-shadow:inset 0 0 0 1px hsl(var(--primary))}.extra-tile svg{color:var(--green-text)}.extra-tile .extra-name{font-weight:600;font-size:var(--text-xs);line-height:1.35}.extra-tile .stepper{margin-top:4px}.extra-tile .stepper-btn{width:30px;height:30px}.date-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-2)}.date-btn{display:grid;justify-items:center;gap:2px;padding:var(--space-3) 0;border:1px solid hsl(var(--card-border));border-radius:var(--radius-sm);background:hsl(var(--background));font-size:var(--text-xs)}.date-btn strong{font-size:var(--text-lg);font-weight:600;line-height:1.2}.date-btn:disabled{opacity:.35;cursor:not-allowed;text-decoration:line-through}.date-btn[aria-pressed=true]{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:var(--space-2)}.slot-btn{padding:var(--space-3);border:1px solid hsl(var(--card-border));border-radius:var(--radius-sm);background:hsl(var(--background));font-size:var(--text-sm);font-weight:500}.slot-btn small{display:block;font-size:11px;font-weight:400;color:hsl(var(--muted-foreground))}.slot-btn:disabled{opacity:.35;cursor:not-allowed}.slot-btn[aria-pressed=true]{background:var(--sage);border-color:hsl(var(--primary));box-shadow:inset 0 0 0 1px hsl(var(--primary))}.summary{position:sticky;top:var(--space-6);display:grid;gap:var(--space-4)}.summary-card{background:hsl(var(--card));border:1px solid hsl(var(--card-border));border-radius:var(--radius-lg);padding:var(--space-6);display:grid;gap:var(--space-3);font-size:var(--text-sm)}.summary-card h2{font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--green-text)}.line{display:flex;justify-content:space-between;gap:var(--space-4)}.line span:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}.line.discount span:last-child{color:var(--green-text)}.line.total{border-top:1px solid hsl(var(--border));padding-top:var(--space-3);font-size:var(--text-base);font-weight:600}.line.total span:last-child{font-size:var(--text-lg)}.mobile-total{display:none}.confirm-hero{text-align:center;padding-block:var(--space-12) var(--space-6)}.confirm-hero svg{margin:0 auto var(--space-4);color:var(--green-text)}@media(max-width:1080px){.site-nav{gap:var(--space-4);margin-left:0}.header-account{display:none}.service-grid,.reviews{grid-template-columns:repeat(2,1fr)}.booking-shell{grid-template-columns:minmax(0,1fr) 300px}}@media(max-width:860px){.site-nav,.header-cta{display:none}.menu-toggle{display:inline-flex}.mobile-menu{display:grid;gap:var(--space-1);padding-bottom:var(--space-4);border-bottom:1px solid hsl(var(--border))}.mobile-menu a{padding:var(--space-3) 0;font-size:var(--text-base)}.mobile-cta{display:inline-flex;position:fixed;left:16px;right:16px;bottom:16px;z-index:30;box-shadow:0 8px 24px #0000002e}.footer{padding-bottom:80px}.hero,.split{grid-template-columns:1fr;gap:var(--space-8)}.hero-visual{height:300px;border-top-right-radius:60px}.section-intro{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.stats-band{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr;gap:var(--space-8)}.booking-shell{grid-template-columns:1fr;padding-bottom:120px}.summary{position:static}.summary .summary-card.desktop-only{display:none}.mobile-total{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-5);background:hsl(var(--card));border-top:1px solid hsl(var(--border));box-shadow:0 -6px 20px #0000000f}}@media(max-width:600px){.site-header{height:72px}.service-grid,.reviews{grid-template-columns:1fr}.wizard-body{padding:var(--space-5)}.wizard-foot{padding:var(--space-4) var(--space-5)}.date-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.postcode-form{flex-direction:column}.footer-grid{grid-template-columns:1fr}}.brand-logo{border-radius:8px;object-fit:contain;flex-shrink:0;display:block}.input[data-valid=true]{border-color:var(--green-text)}.ok-text{font-size:var(--text-xs);color:var(--green-text);display:inline-flex;gap:6px;align-items:center}.error-text.row-icon{display:inline-flex;gap:6px;align-items:center}.phone-input{display:flex;align-items:stretch}.phone-input .phone-prefix{display:inline-flex;align-items:center;padding:0 var(--space-3);border:1px solid hsl(var(--input));border-right:0;border-radius:var(--radius-sm) 0 0 var(--radius-sm);background:hsl(var(--muted));font-size:var(--text-sm);font-variant-numeric:tabular-nums}.phone-input .input{border-top-left-radius:0;border-bottom-left-radius:0;min-width:0;flex:1}.same-day-card{display:flex;gap:var(--space-3);align-items:flex-start}.app-header{background:hsl(var(--background));border-bottom:1px solid hsl(var(--border));position:sticky;top:0;z-index:20}.app-header-inner{display:flex;align-items:center;gap:var(--space-6);max-width:1320px;margin-inline:auto;min-height:72px;padding:var(--space-3) var(--space-8)}.app-header-label{display:flex;align-items:center;gap:var(--space-2);color:hsl(var(--muted-foreground));font-size:var(--text-sm);border-left:1px solid hsl(var(--border));padding-left:var(--space-6)}.app-header-actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-2)}.app-header .brand{font-size:var(--text-lg)}.app-layout{max-width:1320px;margin-inline:auto;padding:var(--space-8) var(--space-8) var(--space-16);display:grid;grid-template-columns:250px minmax(0,1fr);gap:var(--space-8);align-items:start}.app-sidebar{position:sticky;top:96px;display:grid;gap:var(--space-5)}.side-card{background:var(--sage);border-radius:var(--radius-lg);padding:var(--space-5)}.side-card .who{font-weight:600}.side-nav{display:grid;gap:2px}.side-nav a{display:flex;align-items:center;gap:var(--space-3);min-height:42px;padding:0 var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);text-decoration:none;color:hsl(var(--foreground) / .85)}.side-nav a:hover{background:hsl(var(--muted))}.side-nav a.active{background:hsl(var(--card));color:hsl(var(--foreground));font-weight:600;box-shadow:inset 0 0 0 1px hsl(var(--card-border))}.side-nav a svg{flex-shrink:0;color:var(--green-text)}.side-nav .count{margin-left:auto;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:11px;font-weight:600;min-width:20px;height:20px;border-radius:10px;display:grid;place-items:center;padding:0 6px}.side-nav-group{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:hsl(var(--muted-foreground));padding:var(--space-4) var(--space-3) var(--space-1)}.app-main{min-width:0;display:grid;gap:var(--space-6);align-content:start}.page-title{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap}.page-title h1{font-family:var(--font-display);font-weight:400;font-size:var(--text-xl);letter-spacing:-.05em}.page-title .eyebrow{margin-bottom:var(--space-2)}.back-link{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);color:hsl(var(--muted-foreground));text-decoration:none}.back-link:hover{color:hsl(var(--foreground))}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:var(--space-4)}.stat{background:hsl(var(--card));border:1px solid hsl(var(--card-border));border-radius:var(--radius-lg);padding:var(--space-5);display:grid;gap:4px;text-decoration:none}a.stat:hover{border-color:hsl(var(--primary) / .5)}.stat-label{font-size:var(--text-xs);color:hsl(var(--muted-foreground));display:flex;align-items:center;gap:6px}.stat-value{font-size:var(--text-xl);font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.2}.stat-note{font-size:var(--text-xs);color:hsl(var(--muted-foreground))}.stat.warn .stat-value{color:hsl(var(--warning))}.next-card{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-5);align-items:center}.date-tile{width:72px;text-align:center;background:hsl(var(--card));border-radius:var(--radius-sm);padding:var(--space-2);border:1px solid hsl(var(--card-border))}.date-tile .m{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--green-text)}.date-tile .d{font-size:28px;font-weight:600;line-height:1.1}.date-tile .w{font-size:11px;color:hsl(var(--muted-foreground))}.booking-list{display:grid;gap:var(--space-3)}.booking-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-4);align-items:center;padding:var(--space-4) var(--space-5);background:hsl(var(--card));border:1px solid hsl(var(--card-border));border-radius:var(--radius-lg);text-decoration:none}.booking-item:hover{border-color:hsl(var(--primary) / .5)}.booking-item .title{font-weight:600;font-size:var(--text-sm)}.booking-item .meta{font-size:var(--text-xs);color:hsl(var(--muted-foreground))}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--space-6);align-items:start}.kv{display:grid;grid-template-columns:140px 1fr;gap:var(--space-2) var(--space-4);font-size:var(--text-sm)}.kv dt{color:hsl(var(--muted-foreground))}.kv dd{overflow-wrap:anywhere}.timeline{list-style:none;display:grid;gap:var(--space-4);font-size:var(--text-sm)}.timeline li{display:grid;grid-template-columns:12px 1fr;gap:var(--space-3)}.timeline li:before{content:"";width:8px;height:8px;margin-top:7px;border-radius:50%;background:var(--green-text)}.timeline time{display:block;font-size:var(--text-xs);color:hsl(var(--muted-foreground))}.chat{display:grid;gap:var(--space-3);max-height:520px;overflow-y:auto;padding:var(--space-2)}.bubble{max-width:78%;padding:var(--space-3) var(--space-4);border-radius:14px;font-size:var(--text-sm);line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.bubble time{display:block;font-size:11px;opacity:.7;margin-top:4px}.bubble.me{justify-self:end;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-bottom-right-radius:4px}.bubble.them{justify-self:start;background:var(--sage);border-bottom-left-radius:4px}.chat-form{display:flex;gap:var(--space-2);align-items:flex-end}.chat-form .textarea{min-height:52px}.tabs{display:flex;gap:var(--space-1);border-bottom:1px solid hsl(var(--border));overflow-x:auto}.tab{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;color:hsl(var(--muted-foreground));display:inline-flex;gap:8px;align-items:center}.tab-active{border-bottom-color:hsl(var(--primary));color:hsl(var(--foreground));font-weight:600}.tab-count{font-size:11px;background:hsl(var(--muted));padding:0 7px;border-radius:10px}.toolbar{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center}.toolbar .input,.toolbar .select{min-height:40px;width:auto}.toolbar .search{flex:1;min-width:220px;position:relative}.toolbar .search .input{width:100%;padding-left:38px}.toolbar .search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:hsl(var(--muted-foreground))}.rating-pick{display:flex;gap:var(--space-2)}.rating-pick button{color:#c58a1b}.cal{display:grid;border:1px solid hsl(var(--card-border));border-radius:var(--radius-lg);overflow:auto;background:hsl(var(--card))}.cal-grid{display:grid;min-width:900px}.cal-head{position:sticky;top:0;background:hsl(var(--muted));font-size:var(--text-xs);font-weight:600;padding:var(--space-2) var(--space-3);border-bottom:1px solid hsl(var(--border));border-right:1px solid hsl(var(--border))}.cal-head.today{color:var(--green-text)}.cal-rowhead{font-size:var(--text-xs);padding:var(--space-3);border-bottom:1px solid hsl(var(--border));border-right:1px solid hsl(var(--border));font-weight:600;background:hsl(var(--muted) / .4)}.cal-cell{min-height:72px;padding:4px;border-bottom:1px solid hsl(var(--border));border-right:1px solid hsl(var(--border));display:grid;gap:4px;align-content:start}.cal-cell.off{background:repeating-linear-gradient(45deg,transparent,transparent 6px,hsl(var(--muted) / .6) 6px,hsl(var(--muted) / .6) 12px)}.cal-job{display:block;text-align:left;width:100%;font-size:11px;line-height:1.35;padding:4px 6px;border-radius:4px;background:hsl(var(--primary) / .12);border-left:3px solid hsl(var(--primary));text-decoration:none}.cal-job.unassigned{background:hsl(var(--warning) / .14);border-left-color:hsl(var(--warning))}.cal-job.completed{opacity:.6}.cal-job strong{display:block;font-size:11px}.bars{display:grid;gap:var(--space-2)}.bar-row{display:grid;grid-template-columns:120px 1fr 90px;gap:var(--space-3);align-items:center;font-size:var(--text-xs)}.bar-track{height:10px;background:hsl(var(--muted));border-radius:5px;overflow:hidden}.bar-fill{height:100%;background:hsl(var(--primary));border-radius:5px}.col-chart{display:flex;align-items:flex-end;gap:var(--space-2);height:180px;padding-top:var(--space-4)}.col{flex:1;display:grid;gap:4px;justify-items:center;align-content:end;height:100%;font-size:11px;color:hsl(var(--muted-foreground))}.col-bar{width:100%;max-width:48px;background:hsl(var(--primary));border-radius:4px 4px 0 0;min-height:2px}.col-val{color:hsl(var(--foreground));font-variant-numeric:tabular-nums}.split-login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:var(--space-12);max-width:1100px;margin-inline:auto;padding:var(--space-8)}.split-login h1{font-size:var(--text-2xl);letter-spacing:-.05em;line-height:1.15;margin-top:var(--space-4)}.invoice{max-width:760px;margin:0 auto;background:#fff;color:#22392f;padding:48px;border:1px solid #d6dfd2;border-radius:12px}.invoice table{width:100%;border-collapse:collapse;font-size:14px;margin-top:24px}.invoice th,.invoice td{text-align:left;padding:10px 0;border-bottom:1px solid #e3e8e0}.invoice td:last-child,.invoice th:last-child{text-align:right}@media print{.app-header,.app-sidebar,.no-print,.toasts{display:none!important}.app-layout{display:block;padding:0}.invoice{border:0;padding:0}body{background:#fff}}@media(max-width:960px){.app-layout{grid-template-columns:1fr;padding:var(--space-5) var(--space-5) var(--space-12)}.app-sidebar{position:static}.side-nav{grid-auto-flow:column;grid-auto-columns:max-content;overflow-x:auto;padding-bottom:4px}.side-nav-group,.app-sidebar .side-card.hide-mobile{display:none}.detail-grid{grid-template-columns:1fr}.app-header-inner{padding:var(--space-3) var(--space-5);gap:var(--space-3)}.app-header-label{display:none}.split-login{grid-template-columns:1fr}}@media(max-width:600px){.booking-item{grid-template-columns:1fr}.next-card{grid-template-columns:auto 1fr}.next-card>:last-child{grid-column:1 / -1}.kv{grid-template-columns:1fr;gap:2px}.kv dd{margin-bottom:var(--space-2)}.bar-row{grid-template-columns:80px 1fr 70px}.invoice{padding:24px}}@media(max-width:960px){.hide-mobile{display:none!important}}@media(max-width:600px){.hide-sm{display:none}}.cropper{display:grid;gap:var(--space-3);justify-items:start}.cropper-stage{position:relative;border-radius:var(--radius-lg);overflow:hidden;touch-action:none;cursor:grab;background:repeating-conic-gradient(hsl(var(--muted)) 0% 25%,hsl(var(--card)) 0% 50%) 50% / 20px 20px;border:1px solid hsl(var(--border))}.cropper-stage:active{cursor:grabbing}.cropper-stage canvas{display:block}.cropper-empty{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:6px;cursor:pointer;text-align:center;padding:16px;background:hsl(var(--card));color:var(--green-text);font-size:var(--text-sm);font-weight:600}.logo-preview{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-4);border-radius:var(--radius-sm);background:hsl(var(--background));border:1px solid hsl(var(--border))}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr))}.stat{container-type:inline-size;min-width:0;overflow:hidden}.stat-label,.stat-note{min-width:0;overflow-wrap:anywhere}.stat-value{font-size:clamp(1.05rem,15cqi,var(--text-xl));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@supports not (container-type: inline-size){.stat-value{font-size:var(--text-lg);white-space:normal;overflow-wrap:anywhere}}.grid-2>*,.grid-3>*,.detail-grid>*,.split>*,.booking-shell>*,.app-main>*,.service-grid>*,.reviews>*,.choice-grid>*,.extras-grid>*,.stats-band>*,.footer-grid>*{min-width:0}.card,.card-sage,.summary-card,.choice,.service-card,.review,.side-card{min-width:0;overflow-wrap:anywhere}.line{min-width:0;align-items:baseline}.line>span:first-child{min-width:0;overflow-wrap:anywhere}.line>span:last-child{flex-shrink:0;text-align:right}.page-title h1,.page-head h1,.hero h1{overflow-wrap:anywhere}.page-title>div:first-child{min-width:0}.booking-item>div{min-width:0}.booking-item .title,.booking-item .meta{overflow-wrap:anywhere}.row-between>*{min-width:0}.bar-row>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-row>span:last-child{white-space:nowrap}.col{min-width:0}.col-val{font-size:10.5px;white-space:nowrap}.col-label{white-space:nowrap}.table td{overflow-wrap:anywhere}.table td.num,.table th.num,.table td .badge{overflow-wrap:normal;white-space:nowrap}.chip{max-width:100%;overflow-wrap:anywhere}.badge{max-width:100%;overflow:hidden;text-overflow:ellipsis}.btn{max-width:100%}.btn:not(.btn-icon){white-space:normal;text-align:center;line-height:1.25}.kv dd,.kv dt,.app-header-inner{min-width:0}.app-header .brand>span{min-width:0}.toolbar>*{min-width:0;max-width:100%}@media(max-width:600px){.toolbar .input,.toolbar .select{width:100%;flex:1 1 140px}.page-title>div:last-child{width:100%}}.stack>*,.stack-sm>*{min-width:0}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,max(220px,calc(50% - var(--space-4)))),1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,max(160px,calc(33.333% - var(--space-4)))),1fr))}.bar-row>span:first-child{white-space:normal;overflow-wrap:anywhere;line-height:1.3}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.inbox-grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:var(--space-6);align-items:start}@media(max-width:960px){.inbox-grid{grid-template-columns:1fr}}
