:root{--ink:#0f172a;--muted:#64748b;--ocean:#087ca7;--sky:#16b8e7;--line:#dfe9f0;--soft:#f4f9fc;--white:#fff;--danger:#c43b3b;--shadow:0 18px 50px rgba(9,94,137,.13);--radius:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;padding-top:68px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fbfdff;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.container{width:min(1120px,calc(100% - 32px));margin:auto}.site-header{position:fixed;top:0;left:0;right:0;z-index:80;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);box-shadow:0 8px 26px rgba(15,23,42,.06)}.nav{height:68px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{display:flex;align-items:center;gap:10px;font-weight:800}.drop-logo{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,var(--ocean),var(--sky));color:white;box-shadow:0 10px 24px rgba(8,124,167,.28)}.droplets-mark{width:23px;height:23px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.nav-links{display:flex;align-items:center;gap:26px;font-size:14px;color:#475569}.nav-links a:hover{color:var(--ocean)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:11px 18px;font-weight:750;cursor:pointer;transition:.18s transform,.18s opacity,.18s box-shadow}.btn:hover{transform:translateY(-1px)}.btn-primary{color:#fff;background:linear-gradient(135deg,var(--ocean),var(--sky));box-shadow:0 12px 28px rgba(8,124,167,.24)}.btn-white{color:var(--ocean);background:white}.btn-outline{background:transparent;border:1px solid rgba(255,255,255,.38);color:white}.btn-soft{background:#eaf7fb;color:#087ca7;border:1px solid #c7e9f4}.btn-danger{background:#fff0f0;color:#a92e2e;border:1px solid #f3c9c9}.hero{position:relative;overflow:hidden;color:white;min-height:565px;background:linear-gradient(118deg,#061b2b 0%,#083d5b 52%,#0a7592 100%);border-bottom:1px solid rgba(255,255,255,.08)}.hero-photo,.hero-photo-shade,.hero-fade{display:none}.hero:before,.hero:after{display:none}.hero-inner{position:relative;z-index:3;padding:88px 0 92px}.eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;letter-spacing:.02em;border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.08);border-radius:999px;padding:6px 10px}.hero h1{font-size:clamp(44px,6vw,72px);line-height:1.02;margin:24px 0 16px;max-width:680px;letter-spacing:-.045em}.hero p{max-width:560px;color:rgba(255,255,255,.84);font-size:18px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.metrics{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}.metric{min-width:126px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.09);backdrop-filter:blur(12px);border-radius:17px;padding:12px 14px;text-align:center}.metric strong{font-size:22px;display:block}.metric span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.68)}section{padding:76px 0;scroll-margin-top:82px}.section-soft{background:var(--soft)}.kicker{font-size:13px;color:var(--ocean);font-weight:800;letter-spacing:.14em;text-transform:uppercase}.section-title{font-size:clamp(32px,4vw,46px);line-height:1.08;letter-spacing:-.035em;margin:8px 0 12px}.section-copy{color:var(--muted);max-width:680px}.grid{display:grid;gap:18px}.services-grid{grid-template-columns:repeat(3,1fr);margin-top:34px}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 14px rgba(2,74,110,.06)}.service-card{padding:24px;display:flex;flex-direction:column}.service-head{display:flex;justify-content:space-between;gap:14px}.emoji{font-size:31px}.pill{font-size:11px;padding:6px 9px;border-radius:999px;color:var(--ocean);background:#edf8fc;font-weight:750;white-space:nowrap}.service-card h3{font-size:21px;margin:16px 0 6px;letter-spacing:-.025em}.service-card p{font-size:14px;color:var(--muted);margin:0}.checks{list-style:none;padding:0;margin:17px 0 0}.checks li{display:flex;gap:9px;font-size:14px;margin:7px 0}.checks li:before{content:"✓";color:var(--sky);font-weight:900}.service-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);margin-top:auto;padding-top:18px}.price{font-size:21px;color:var(--ocean);font-weight:850}.estimator{display:grid;grid-template-columns:1fr 310px;gap:20px;margin-top:28px;padding:24px}.option-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.option-btn{border:1px solid var(--line);background:white;border-radius:13px;padding:12px;text-align:left;cursor:pointer}.option-btn.active{border-color:var(--sky);background:#eefaff;box-shadow:inset 0 0 0 1px var(--sky)}.option-btn strong,.option-btn span{display:block}.option-btn span{color:var(--muted);font-size:12px}.total-box{background:linear-gradient(150deg,#075d94,#0bb5d9);color:white;border-radius:18px;padding:22px;height:max-content;position:sticky;top:90px}.total-box small{color:rgba(255,255,255,.72)}.total-number{font-size:50px;font-weight:900;letter-spacing:-.04em}.total-box p{font-size:13px;color:rgba(255,255,255,.76)}.area-wrap{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}.zip-row{display:flex;gap:10px;margin-top:22px}.input,.select,.textarea{width:100%;border:1px solid #cfdde5;border-radius:12px;background:white;padding:11px 12px;outline:none}.input:focus,.select:focus,.textarea:focus{border-color:var(--sky);box-shadow:0 0 0 3px rgba(22,184,231,.12)}.label{display:block;font-size:13px;font-weight:750;margin-bottom:6px}.result{margin-top:14px;border-radius:12px;padding:12px 14px;font-size:14px}.result.ok{background:#eafff5;border:1px solid #aee9cf;color:#176142}.result.no{background:#fff7e8;border:1px solid #f2d7a5;color:#805b15}.towns{padding:22px}.town-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.town strong{display:block;font-size:14px}.town span{font-size:12px;color:var(--muted)}.gallery-grid{grid-template-columns:repeat(3,1fr);margin-top:28px}.ba-card{overflow:hidden}.ba-image{aspect-ratio:4/3;background:linear-gradient(135deg,#dceef5,#eef8fb);position:relative}.ba-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.ba-foot{padding:14px}.ba-tabs{display:flex;gap:6px;margin-top:8px}.ba-tabs button{border:0;border-radius:8px;padding:6px 10px;cursor:pointer}.ba-tabs button.active{background:#e9f8fc;color:var(--ocean);font-weight:700}.empty{padding:26px;border:1px dashed #bdcfda;border-radius:16px;color:var(--muted);text-align:center}.reviews-grid,.plans-grid{grid-template-columns:repeat(3,1fr);margin-top:26px}.review-card,.plan-card{padding:20px}.stars{color:#0fa7d2;letter-spacing:2px}.review-card p{color:#334155}.plan-price{font-size:28px;font-weight:900;color:var(--ocean);margin:6px 0}.hours-wrap{display:grid;grid-template-columns:1fr 1fr;gap:30px}.hours-card{padding:22px}.hours-line{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}.contact-strip{padding:34px;background:linear-gradient(130deg,#075d94,#0bb5d9);border-radius:28px;color:white;display:flex;align-items:center;justify-content:space-between;gap:20px}.contact-strip h2{font-size:35px;margin:0}.contact-strip p{color:rgba(255,255,255,.78)}footer{margin-top:70px;border-top:1px solid var(--line);background:#f4f9fc;padding:42px 0 28px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}.footer-links{display:flex;flex-direction:column;gap:8px;font-size:14px;color:#526273}.copyright{margin-top:32px;border-top:1px solid var(--line);padding-top:18px;text-align:center;font-size:12px;color:#72808e}.fab{position:fixed;bottom:20px;z-index:55;display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--ocean),var(--sky));color:white;padding:13px 17px;border-radius:999px;box-shadow:0 12px 30px rgba(4,113,154,.32);font-weight:800;transition:transform .18s,box-shadow .18s}.fab:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(4,113,154,.38)}.text-fab{right:20px}.book-fab{left:20px}.fab-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.page-hero{padding:54px 0 26px}.form-card{padding:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.span-2{grid-column:span 2}.hint{font-size:12px;color:var(--muted)}.booking-summary{background:#edf9fd;border:1px solid #cceaf4;border-radius:14px;padding:14px;margin-top:8px}.admin-shell{min-height:100vh;background:#f8fbfd}.admin-top{border-bottom:1px solid var(--line);background:white}.admin-title{padding:28px 0 8px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tab{border:1px solid var(--line);background:white;border-radius:999px;padding:8px 13px;cursor:pointer;font-weight:700;color:#51616e}.tab.active{background:#e9f8fc;color:var(--ocean);border-color:#bfe6f1}.admin-list{display:grid;gap:12px}.admin-item{padding:18px}.admin-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.admin-actions{display:flex;gap:8px;flex-wrap:wrap}.status{font-size:11px;padding:5px 8px;border-radius:999px;font-weight:800;text-transform:capitalize}.status-pending{background:#fff3cf;color:#7a5a00}.status-confirmed{background:#e7f4ff;color:#16609b}.status-completed{background:#e8f9ef;color:#247045}.status-cancelled{background:#ffeaea;color:#973737}.auth-card{width:min(460px,calc(100% - 32px));margin:70px auto;padding:28px}.hidden{display:none!important}.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(15,23,42,.55);display:grid;place-items:center;padding:18px}.modal{width:min(620px,100%);max-height:90vh;overflow:auto;background:white;border-radius:20px;padding:24px;box-shadow:0 30px 80px rgba(0,0,0,.28)}.modal-head{display:flex;align-items:center;justify-content:space-between}.close{border:0;background:#f0f5f8;border-radius:10px;width:36px;height:36px;cursor:pointer}.toast{position:fixed;left:50%;top:86px;transform:translateX(-50%);z-index:200;background:#0f172a;color:white;padding:11px 16px;border-radius:12px;box-shadow:var(--shadow);font-size:14px}.mobile-menu{display:none}.muted{color:var(--muted)}.tiny{font-size:12px}.inline-actions{display:flex;gap:10px;flex-wrap:wrap}.gallery-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.thumb{width:110px;height:80px;object-fit:cover;border-radius:9px;border:1px solid var(--line)}
@media(max-width:900px){.services-grid,.gallery-grid,.reviews-grid,.plans-grid{grid-template-columns:repeat(2,1fr)}.estimator,.area-wrap,.hours-wrap{grid-template-columns:1fr}.total-box{position:static}.footer-grid{grid-template-columns:1fr 1fr}.contact-strip{align-items:flex-start;flex-direction:column}.nav-links{display:none}.mobile-menu{display:block}.hero:after{left:25%}}
@media(max-width:620px){body{padding-top:62px}.container{width:min(100% - 24px,1120px)}section{padding:58px 0;scroll-margin-top:74px}.hero{min-height:600px;background:linear-gradient(145deg,#061b2b 0%,#084c69 62%,#0a7592 100%)}.hero-inner{padding:66px 0 72px}.hero h1{font-size:45px}.hero p{font-size:16px}.hero-actions{flex-direction:column;align-items:stretch}.metrics{display:grid;grid-template-columns:repeat(3,1fr)}.metric{min-width:0;padding:10px 7px}.metric strong{font-size:18px}.services-grid,.gallery-grid,.reviews-grid,.plans-grid{grid-template-columns:1fr}.option-grid{grid-template-columns:1fr}.estimator{padding:16px}.town-grid{grid-template-columns:1fr 1fr}.form-grid,.gallery-upload-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.footer-grid{grid-template-columns:1fr}.contact-strip h2{font-size:30px}.text-fab span{display:none}.fab{padding:12px 14px}.book-fab span{display:inline}.admin-item-head{flex-direction:column}.admin-actions{width:100%}.auth-card{margin:36px auto}.nav{height:62px}}

.map-card{margin-top:22px;padding:12px}.map-card #serviceMap{height:360px;border-radius:16px;overflow:hidden}.leaflet-container{font-family:Inter,system-ui,sans-serif}.leaflet-popup-content-wrapper{border-radius:12px}
@media(max-width:640px){.map-card #serviceMap{height:300px}}
.monthly-callout{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:28px;padding:24px 26px;max-width:920px;background:linear-gradient(115deg,rgba(22,184,231,.22),rgba(255,255,255,.06));border:1px solid rgba(114,225,255,.45);border-left:4px solid #70e1ff;border-radius:16px}.monthly-callout-label{color:#91e9ff;font-size:.875rem;font-weight:800;letter-spacing:.1em}.monthly-callout h2{font-size:clamp(24px,3vw,30px);line-height:1.15;letter-spacing:-.025em;margin:8px 0}.hero .monthly-callout p{font-size:1rem;margin:0;max-width:490px}.monthly-callout .btn{flex-shrink:0;min-height:44px;font-size:1rem}.monthly-callout a:focus-visible{outline:3px solid #91e9ff;outline-offset:5px}@media(max-width:620px){.monthly-callout{align-items:stretch;flex-direction:column;gap:18px;padding:20px;margin-top:24px}.monthly-callout .btn{width:100%;white-space:normal}}

/* Coojah night theme */
:root{color-scheme:dark;--ink:#eef5fb;--muted:#a5b6c7;--ocean:#6dd9f7;--sky:#27bce8;--line:#273b4b;--soft:#0c1721;--white:#111f2b;--shadow:0 18px 50px #0005}
body,.admin-shell{background:#080f16}.site-header{background:#09131de8;transition:box-shadow .3s,background .3s}.site-header.scrolled{background:#09131df5;box-shadow:0 8px 30px #0006}.nav-links,.footer-links{color:#b9cada}.nav-links a:hover{color:#85e2fc}.card,.modal,.admin-top{background:#111e29}.card{box-shadow:0 8px 28px #0002}.hero{background:radial-gradient(ellipse at 85% 25%,#124557 0,transparent 58%),linear-gradient(125deg,#080f16,#0c2534)}.hero h1{max-width:840px;font-size:clamp(44px,6vw,76px)}.hero-inner{padding-top:96px}.hero p{color:#b7cbd9}.btn-primary,.fab,.drop-logo{background:linear-gradient(130deg,#147ca2,#0b648a);color:#fff}.btn-white{background:#a0eaff;color:#082a3c}.btn-soft,.pill,.booking-summary,.tab.active,.ba-tabs button.active{background:#123346;color:#9ce8fc;border-color:#285267}.option-btn,.input,.select,.textarea,.tab,.close,.ba-tabs button{background:#0b1721;color:var(--ink);border-color:var(--line)}.option-btn.active{background:#12374a;color:#dff8ff}.review-card p{color:#c3d2df}footer{background:#0a141e;padding-bottom:90px}.total-box,.contact-strip{background:linear-gradient(135deg,#10354b,#0c5268);border:1px solid #286279}.total-box p,.total-box small,.contact-strip p{color:#d0e2eb}.ba-image{background:#0c1721}.empty{border-color:#314958}.monthly-callout{position:relative;overflow:hidden;background:linear-gradient(115deg,#133b4caa,#0a1826cc);box-shadow:0 14px 50px #0003}.monthly-callout:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,#84dfff0d 50%,transparent 70%);background-size:250% 100%;animation:shine 9s ease-in-out 2}.metric span{font-size:12px;letter-spacing:.07em}.pill,.label{font-size:14px}.service-card p{font-size:16px}.option-btn span{font-size:14px}.btn,.option-btn,.service-card,.plan-card{transition:transform .3s ease,border-color .3s,box-shadow .3s,background .3s}.service-card,.plan-card{min-width:0}.btn:active,.option-btn:active{transform:scale(.98)}:focus-visible{outline:3px solid #83e3ff;outline-offset:4px}.modal{animation:modal-in .25s ease-out}.hero-inner>h1,.hero-inner>p,.hero-actions,.metrics,.monthly-callout{animation:enter .8s both}.hero-inner>p{animation-delay:.08s}.hero-actions{animation-delay:.15s}.metrics{animation-delay:.22s}.monthly-callout{animation-delay:.3s}.motion-reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}.motion-reveal.is-visible{opacity:1;transform:none}.total-number.price-updated{animation:price-pop .3s ease}.nav-links a[aria-current]{color:#9ce8fc}.service-foot{margin-top:20px}.service-card .checks{margin-bottom:auto}.plan-card .btn{margin-top:18px}
@media(hover:hover){.service-card:hover,.plan-card:hover{transform:translateY(-6px);border-color:#478ba4;box-shadow:0 18px 40px #0005}.btn:hover{transform:translateY(-3px);box-shadow:0 10px 24px #0004}.option-btn:hover{border-color:#5097b0}.monthly-callout .btn:hover{box-shadow:0 0 28px #6bdefc30}}
@keyframes enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes shine{0%,100%{background-position:100% 0}50%{background-position:0 0}}@keyframes modal-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes price-pop{50%{transform:translateY(-3px);color:#a0eaff}}
@media(max-width:620px){.hero{background:radial-gradient(ellipse at 90% 10%,#124557,transparent 60%),#080f16}.hero-inner{padding-top:60px}.hero h1{font-size:clamp(36px,10.8vw,45px)}.brand{font-size:14px}.metric span{font-size:12px;letter-spacing:0}.monthly-callout{padding:20px}.service-head{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-reveal{opacity:1;transform:none}}

/* Booking photo uploads + appointment confirmation controls */
.visually-file{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.photo-picker{display:flex;align-items:center;gap:14px;width:100%;border:1px dashed #3f7288;border-radius:14px;padding:16px;background:#0c1b26;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}
.photo-picker:hover{border-color:var(--sky);background:#102735;transform:translateY(-1px)}
.photo-picker-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#12394b;font-size:22px;flex:0 0 auto}
.photo-picker strong,.photo-picker small{display:block}.photo-picker small{margin-top:3px;color:var(--muted);font-size:12px}
.booking-photo-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}
.booking-photo-chip{position:relative;aspect-ratio:4/3;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#0b1721}
.booking-photo-chip img{width:100%;height:100%;object-fit:cover;display:block}
.booking-photo-chip button{position:absolute;top:6px;right:6px;width:28px;height:28px;border:0;border-radius:999px;background:#09131de8;color:white;font-size:20px;line-height:1;cursor:pointer}
.admin-confirm-box{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.admin-confirm-grid{display:grid;grid-template-columns:1.1fr 1fr .8fr auto;gap:10px;align-items:end}
.confirm-button-wrap{display:flex;align-items:end}
.admin-appt-main{min-width:0;flex:1}
.booking-photo-admin{margin-top:12px}
.admin-booking-photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:8px}
.admin-booking-photos a{display:block;aspect-ratio:4/3;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#0b1721}
.admin-booking-photos img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:900px){.admin-confirm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.confirm-button-wrap{align-items:stretch}.confirm-button-wrap .btn{width:100%}.booking-photo-preview,.admin-booking-photos{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.booking-photo-preview,.admin-booking-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-confirm-grid{grid-template-columns:1fr}.photo-picker{padding:14px}.photo-picker-icon{width:40px;height:40px}}
