@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url('../fonts/inter-latin.woff2') format('woff2')}
@font-face{font-family:'Sora';font-style:normal;font-weight:500 800;font-display:swap;src:url('../fonts/sora-latin.woff2') format('woff2')}
:root{
  --ink:#0a0a0a;--ink-2:#262626;--ink-3:#737373;--paper:#fff;--paper-2:#f7f7f7;
  --line:#e4e4e4;--line-2:#d0d0d0;--ok:#0e7a4f;--ok-bg:#eef8f2;
  --warn:#8a6d1a;--warn-bg:#faf5e6;--danger:#c0362c;--danger-bg:#fbf0ef;
  --info:#35546f;--info-bg:#eef3f6;--f-head:'Sora',ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --f-body:'Inter',ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--f-mono:ui-monospace,'SFMono-Regular',Consolas,'Liberation Mono',monospace;
  --r-sm:8px;--r:14px;--r-lg:20px;--shadow-1:0 1px 2px rgba(0,0,0,.04),0 4px 12px rgba(0,0,0,.05);
  --shadow-2:0 2px 4px rgba(0,0,0,.05),0 12px 32px rgba(0,0,0,.10);--wrap:1180px;--gutter:18px;--header-h:64px;
}
*,*::before,*::after{box-sizing:border-box;min-width:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--f-body);-webkit-font-smoothing:antialiased;overflow-x:clip}
body.nav-open{overflow:hidden}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}h1,h2,h3,h4,h5,p{margin:0}h1,h2,h3,h4,h5{font-family:var(--f-head);line-height:1.1;letter-spacing:-.025em;overflow-wrap:anywhere}
::selection{background:var(--ink);color:#fff}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}
.wrap{width:100%;max-width:var(--wrap);margin:auto;padding-inline:var(--gutter)}.section{padding-block:64px}.section-tight{padding-block:44px}
.h-xl{font-size:clamp(2.15rem,7vw,4.25rem);font-weight:800;letter-spacing:-.045em;line-height:1.02}.h-lg{font-size:clamp(1.7rem,4.5vw,2.65rem);font-weight:750}.h-md{font-size:clamp(1.15rem,2.5vw,1.45rem)}
.lead{font-size:clamp(1rem,1.8vw,1.17rem);line-height:1.65;color:var(--ink-3)}.muted{color:var(--ink-3)}.mono{font-family:var(--f-mono)}.center{text-align:center}
.eyebrow,.eq-cat{font:600 .72rem/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.row{display:flex;align-items:center}.stack{display:flex;flex-direction:column}.grow{flex:1}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}
.grid-2,.grid-3{display:grid;gap:16px}.wrap-title{display:flex;justify-content:space-between;align-items:end;gap:18px;flex-wrap:wrap;margin-bottom:28px}.wrap-title>a{font-weight:600;font-size:.9rem;border-bottom:1px solid var(--line-2);padding-bottom:3px}
.divider{height:1px;background:var(--line);margin:22px 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:12px;top:8px;z-index:1000;transform:translateY(-160%);padding:10px 14px;border-radius:var(--r-sm);background:#fff;color:var(--ink);font-weight:750;box-shadow:var(--shadow-2);transition:transform .18s}.skip-link:focus{transform:none}

/* recognisable ShuttleMe family header */
.prototype-bar{background:var(--ink);color:#fff;font:500 10px/30px var(--f-mono);letter-spacing:.08em;text-align:center;text-transform:uppercase;height:30px}
.site-header{height:var(--header-h);position:sticky;top:0;z-index:100;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:.25s}.site-header.scrolled{border-color:var(--line)}
.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font:800 1.2rem/1 var(--f-head);letter-spacing:-.05em;display:grid;grid-template-columns:auto auto;align-items:end;justify-content:start;white-space:nowrap}.brand .tld{color:#a3a3a3;font-weight:650}.brand-sub{display:block;grid-column:1/-1;margin:5px 0 0!important;color:#9b9b9b;font:600 .46rem/1 var(--f-mono)!important;letter-spacing:.13em!important;text-transform:uppercase}
.desktop-nav{display:none;align-items:center;gap:2px}.desktop-nav a{padding:9px 12px;border-radius:var(--r-sm);font-weight:600;font-size:.88rem;color:#525252}.desktop-nav a:hover{background:var(--paper-2);color:var(--ink)}
.header-actions{display:flex;align-items:center;gap:7px}.cart-link{position:relative;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--r-sm);display:grid;place-items:center}.cart-link svg,.menu-toggle svg{width:19px;height:19px}.cart-count{position:absolute;right:-4px;top:-4px;background:var(--ink);color:#fff;border:2px solid white;border-radius:999px;min-width:19px;height:19px;display:grid;place-items:center;font:600 9px var(--f-mono)}
.menu-toggle{width:44px;height:44px;border:0;background:transparent;border-radius:var(--r-sm);display:grid;place-items:center}.mobile-drawer{position:fixed;inset:94px 0 0;z-index:99;background:#fff;padding:14px 18px 40px;overflow:auto;opacity:0;transform:translateY(-8px);pointer-events:none;transition:.25s}.mobile-drawer.open{opacity:1;transform:none;pointer-events:auto}
.drawer-search{display:flex;gap:9px;margin:8px 0 18px}.drawer-search input{width:100%;min-height:48px;border:1px solid var(--line);border-radius:var(--r-sm);padding:0 14px;font-size:16px}.drawer-link{display:flex;justify-content:space-between;align-items:center;padding:15px 3px;border-bottom:1px solid var(--line);font:650 1.04rem var(--f-head)}.drawer-link svg{width:17px}.drawer-cta{display:grid;gap:9px;margin-top:20px}

.btn{border:1px solid transparent;border-radius:var(--r-sm);padding:12px 20px;min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:.91rem;line-height:1.2;text-align:center;transition:transform .2s,box-shadow .2s,background .2s,border-color .2s;max-width:100%}.btn:hover{transform:translateY(-1px)}.btn:active{transform:scale(.98)}.btn svg{width:16px;height:16px;flex:none}
.btn-primary{background:var(--ink);color:white}.btn-primary:hover{box-shadow:var(--shadow-2)}.btn-ghost{background:white;border-color:var(--line-2)}.btn-ghost:hover{border-color:var(--ink)}.btn-quiet{background:var(--paper-2)}.btn-lg{min-height:52px;padding:14px 26px}.btn-sm{min-height:40px;padding:9px 14px;font-size:.82rem}.btn-block{width:100%}.btn-group{display:flex;flex-wrap:wrap;gap:8px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-1)}.card-pad{padding:20px}.pill-note{display:inline-flex;gap:6px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;color:var(--ink-3);font-size:.84rem;background:#fff}
.badge,.status,.chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;font-size:.73rem;font-weight:650;line-height:1.25;padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:#fff;overflow-wrap:anywhere}.dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.badge-ok{color:var(--ok);border-color:#cde8da;background:var(--ok-bg)}.badge-warn{color:var(--warn);border-color:#eadcb5;background:var(--warn-bg)}.badge-danger{color:var(--danger);background:var(--danger-bg)}.badge-info{color:var(--info);background:var(--info-bg)}.badge-ink{background:var(--ink);color:#fff;border-color:var(--ink)}.tag-list{display:flex;flex-wrap:wrap;gap:7px}

/* hero & search: same composition rhythm as ShuttleMe */
.hero{padding:46px 0 52px;background:#fff;border-bottom:1px solid var(--line)}.hero-copy{max-width:760px}.hero-copy .h-xl{max-width:13ch;margin-top:14px}.hero-copy .lead{max-width:640px}.hero-copy>.row{flex-wrap:wrap}.hero>.wrap:first-child{display:grid;gap:34px}
.searchbox{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2);padding:18px}.hero-search{margin-top:30px}.fields-inline{display:grid;gap:10px}.field{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 12px;background:#fff}.field>span svg{width:18px;height:18px;color:#a3a3a3}.field label,.form-field label,.df label{display:block;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:2px}.field input{width:100%;border:0;outline:0;background:transparent;font-size:16px;padding:2px 0}.search-go{width:100%}.seg{display:flex;background:#f0f0f0;border-radius:var(--r-sm);padding:4px;gap:3px}.seg-btn{flex:1;border:0;background:transparent;border-radius:6px;min-height:40px;padding:8px;font-weight:700;font-size:.81rem}.seg-btn.active{background:#fff;box-shadow:var(--shadow-1)}
.chip{white-space:nowrap;cursor:pointer;flex:0 0 auto}.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}
button.chip,a.chip{min-height:40px;padding:9px 12px}
#chips{overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}#chips::-webkit-scrollbar{display:none}
.trust{background:var(--ink);color:#fff;padding:17px 0}.trust-track{display:flex;gap:22px;overflow:auto;scrollbar-width:none}.trust-track::-webkit-scrollbar{display:none}.trust-item{display:flex;align-items:center;gap:8px;flex:none;font-size:.82rem;color:#ddd}.trust-item svg{width:16px;height:16px;color:#fff}

/* editorial photography adds warmth without turning the catalogue into lifestyle clutter */
.campaign-section{padding:24px 0 0}.campaign-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;box-shadow:var(--shadow-1)}
.campaign-image{display:block;width:100%;height:clamp(260px,76vw,330px);object-fit:cover;object-position:68% center;background:#f2f0ea}.campaign-copy{padding:20px}.campaign-copy .h-md{margin-top:8px;max-width:24ch}.campaign-copy p{margin-top:9px;max-width:54ch;color:var(--ink-3);font-size:.88rem}.campaign-copy a{display:inline-block;margin-top:13px;font-weight:750;font-size:.84rem;border-bottom:1px solid var(--ink)}
.campaign-note,.media-note{position:absolute;z-index:3;border:1px solid rgba(0,0,0,.08);border-radius:6px;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);color:#777;font:600 8px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase}.campaign-note{top:10px;right:10px;padding:6px 8px}.media-note{right:9px;bottom:9px;padding:5px 7px}

.cat-grid,.journey-grid,.eq-grid,.guide-grid{display:grid;gap:16px}.category-card,.journey,.guide-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px;display:flex;gap:14px;transition:.25s}.category-card:hover,.journey:hover,.guide-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2);border-color:var(--line-2)}.category-card{min-height:154px;flex-direction:column;justify-content:space-between}.category-card .cat-icon,.j-ico{width:42px;height:42px;border-radius:10px;background:var(--ink);color:#fff;display:grid;place-items:center;flex:none}.category-card svg,.j-ico svg{width:20px;height:20px}.category-card h3,.journey h4{font-size:1.02rem;line-height:1.25}.category-card p,.journey p{font-size:.82rem;line-height:1.45;color:var(--ink-3);margin-top:5px}.category-card .cat-foot{display:flex;justify-content:space-between;align-items:end;gap:12px}.category-card .cat-foot>span{width:18px;flex:none}
.journey{align-items:center;min-height:92px}.journey .j-ico{background:var(--paper-2);color:var(--ink)}
.eq-card{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:.25s;min-width:0}.eq-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}.eq-visual{aspect-ratio:16/10;background:#f4f4f4;display:grid;place-items:center;position:relative;overflow:hidden}.eq-visual.has-image{background:#fff}.eq-visual>svg{width:56px;height:56px;color:#a3a3a3}.eq-visual>img{width:100%;height:100%;object-fit:contain;padding:12px;transition:transform .35s ease}.eq-card:hover .eq-visual>img{transform:scale(1.035)}.ph-tag{position:absolute;top:11px;left:11px;background:#fff;border:1px solid var(--line);padding:5px 8px;border-radius:6px;font:600 8px var(--f-mono);letter-spacing:.08em;max-width:calc(100% - 22px)}.eq-body{padding:19px;display:flex;flex-direction:column;flex:1}.eq-card .eq-cat{min-height:2.45em}.eq-card h3{font-size:1.05rem;line-height:1.28;margin:7px 0;min-height:2.68em}.eq-card .tag-list{margin-top:10px}.eq-rates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:17px 0}.eq-rate{border-left:1px solid var(--line);padding:0 10px}.eq-rate:first-child{border:0;padding-left:0}.eq-rate:last-child{padding-right:0}.eq-rate .k{font:500 8px var(--f-mono);text-transform:uppercase;color:var(--ink-3)}.eq-rate .v{font:700 .86rem var(--f-mono);margin-top:4px;white-space:nowrap}.eq-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 10px;border-top:1px solid var(--line);padding-top:12px;font-size:.75rem;color:var(--ink-3)}.eq-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto;padding-top:16px}.eq-actions .btn:last-child{grid-column:1/-1}
.eco{background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:26px}.eco .h-lg{color:#fff}.eco .lead{color:#a3a3a3;margin-top:12px}.eco-grid{display:grid;gap:10px;margin-top:24px}.eco-card{border:1px solid #333;border-radius:var(--r);padding:17px;background:#111}.eco-card .k{font:600 10px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:#888}.eco-card h4{margin-top:7px}.eco-card p{font-size:.82rem;color:#aaa;margin:7px 0 13px}.eco-card a{font-size:.82rem;font-weight:700}.eco-badge{display:inline-block;margin-left:7px;color:#777;font:500 8px var(--f-mono)}
.steps{counter-reset:steps;display:grid;gap:12px}.step{display:flex;gap:14px;padding:17px;border:1px solid var(--line);border-radius:var(--r)}.step .n{counter-increment:steps;width:32px;height:32px;background:var(--ink);color:#fff;border-radius:50%;display:grid;place-items:center;flex:none}.step .n::after{content:counter(steps);font:600 12px var(--f-mono)}.step p{color:var(--ink-3);font-size:.84rem;margin-top:5px}

/* page / product / booking */
.page-hero{padding:44px 0 34px;background:#fafafa;border-bottom:1px solid var(--line)}.page-hero .h-xl{max-width:18ch;margin-top:12px}.breadcrumb{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.78rem;color:var(--ink-3);margin-bottom:18px}.breadcrumb a:hover{color:var(--ink)}
.cat-layout{display:grid;gap:22px}.filter-panel{display:none;border:1px solid var(--line);border-radius:var(--r);padding:18px;align-self:start;position:sticky;top:82px}.field-group{padding:15px 0;border-bottom:1px solid var(--line)}.field-group:first-child{padding-top:0}.field-group h5{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.check{display:flex;gap:9px;align-items:flex-start;padding:7px 0;font-size:.86rem}.check input{width:17px;height:17px;accent-color:var(--ink)}.count-line{font-size:.87rem;color:var(--ink-3)}
.filter-bar{display:grid;gap:9px}.search-inline{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--r-sm);padding:0 12px}.search-inline svg{width:18px}.search-inline input{width:100%;border:0;padding:13px 10px;outline:0;font-size:16px}.filter-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sheet-scrim{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:150;opacity:0;pointer-events:none;transition:.2s}.sheet-scrim.open{opacity:1;pointer-events:auto}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:151;background:#fff;border-radius:20px 20px 0 0;max-height:88vh;display:flex;flex-direction:column;transform:translateY(101%);transition:.25s}.sheet.open{transform:none}.sheet-grab{width:42px;height:4px;background:#d4d4d4;border-radius:4px;margin:9px auto}.sheet-head,.sheet-foot{padding:13px 18px;display:flex;justify-content:space-between;gap:10px;align-items:center;border-bottom:1px solid var(--line)}.sheet-foot{border:0;border-top:1px solid var(--line)}.sheet-body{padding:18px;overflow:auto}.icon-btn{width:42px;height:42px;border:0;background:#f3f3f3;border-radius:var(--r-sm);display:grid;place-items:center}.icon-btn svg{width:18px}.sort-opt{padding:15px 2px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.sort-opt .tick{opacity:0}.sort-opt.active{font-weight:700}.sort-opt.active .tick{opacity:1}.sort-opt svg{width:17px}
.pd-grid{display:grid;gap:24px;grid-template-areas:'media' 'book' 'info'}.pd-media{grid-area:media}.pd-book{grid-area:book}.pd-info{grid-area:info}.gallery-main{aspect-ratio:4/3;background:#f4f4f4;border:1px solid var(--line);border-radius:var(--r-lg);display:grid;place-items:center;position:relative;overflow:hidden}.gallery-main.has-image{background:#fff}.gallery-main .ph-ico svg{width:84px;height:84px;color:#aaa}.gallery-stage{width:100%;height:100%;display:grid;place-items:center;overflow:hidden}.gallery-photo{width:100%;height:100%;max-width:500px;max-height:500px;object-fit:contain;padding:18px;transition:transform .25s ease}.gallery-photo.is-detail{transform:scale(1.22)}.gallery-message{max-width:280px;padding:24px;text-align:center;display:grid;justify-items:center;gap:9px;color:var(--ink-3)}.gallery-message svg{width:40px}.gallery-message strong{color:var(--ink);font-family:var(--f-head)}.gallery-message span{font-size:.82rem}.gallery-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}.gallery-thumbs .t{aspect-ratio:1;border:1px solid var(--line);background:#fff;border-radius:var(--r-sm);display:grid;place-items:center;overflow:hidden;padding:4px}.gallery-thumbs .t.active{border:2px solid var(--ink);padding:3px}.gallery-thumbs .t img{width:100%;height:100%;object-fit:contain}.gallery-thumbs svg{width:24px}
.booking-box{border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2);padding:18px;background:#fff}.rate-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.rate-cell{border:1px solid var(--line);border-radius:var(--r-sm);padding:11px;cursor:pointer}.rate-cell.pick{border:2px solid var(--ink);padding:10px}.r-k{font:600 9px var(--f-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}.r-v{font:700 .94rem var(--f-mono);margin-top:4px}.date-field{display:grid;grid-template-columns:1fr 1fr;gap:8px}.df{border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px}.df input{width:100%;border:0;background:transparent;outline:0;font-size:16px}.cost-lines{margin:16px 0}.cost-line{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:6px 0;font-size:.82rem}.cost-line.total{border-top:1px solid var(--line);margin-top:6px;padding-top:12px;font-weight:700}.cost-line.refund{color:var(--ok)}.tabs{display:flex;overflow:auto;border-bottom:1px solid var(--line);scrollbar-width:none}.tab{appearance:none;border:0;border-bottom:2px solid transparent;background:transparent;color:inherit;font:700 .84rem var(--f-body);padding:12px 14px;white-space:nowrap;cursor:pointer;flex:0 0 auto}.tab.active{border-color:var(--ink)}.info-block{padding:24px 0;border-bottom:1px solid var(--line)}.info-block h3{font-size:1.05rem;margin-bottom:10px}.spec-table{width:100%;border-collapse:collapse}.spec-table td{padding:10px 0;border-bottom:1px solid var(--line);font-size:.84rem;vertical-align:top}.spec-table td:last-child{text-align:right}.spec-tbc{color:var(--warn)}.list-clean{list-style:none;padding:0;margin:0}.list-clean li{position:relative;padding:7px 0 7px 24px}.list-clean li::before{content:'✓';position:absolute;left:0;font-weight:700}.list-clean.no li::before{content:'×';color:var(--danger)}.list-clean.warn li::before{content:'!';color:var(--warn)}.callout{padding:17px;border:1px solid var(--line);border-radius:var(--r);background:#fafafa}.callout.obra{background:var(--ink);color:#fff;border-color:var(--ink)}.callout.obra p{color:#aaa;margin-top:6px}.callout.safety{background:var(--warn-bg);border-color:#eadcb5}.form-hint{font-size:.76rem;color:var(--ink-3)}.action-bar{position:fixed;z-index:80;bottom:0;left:0;right:0;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:10px 14px calc(10px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:center;gap:12px}.action-bar .d{font:700 .98rem var(--f-mono)}.action-bar .s{font-size:.7rem;color:var(--ink-3)}

.form-grid{display:grid;gap:13px}.form-field label{margin-bottom:6px}.form-field input,.form-field select,.form-field textarea{width:100%;min-height:48px;border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 12px;background:#fff;outline:0;font-size:16px}.form-field textarea{min-height:110px;resize:vertical}.req{color:var(--danger)}.upload{border:1px dashed var(--line-2);border-radius:var(--r);padding:24px;text-align:center;color:var(--ink-3)}.booking-box .form-grid{margin-top:14px}.progress{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:24px;overflow:hidden}.progress .p{display:flex;align-items:center;gap:7px;font-size:.76rem;color:var(--ink-3)}.progress .b{width:28px;height:28px;border-radius:50%;background:#eee;display:grid;place-items:center;font:600 10px var(--f-mono);flex:none}.progress .active .b,.progress .done .b{background:var(--ink);color:#fff}.progress .sep{height:1px;background:var(--line);flex:1}.progress .lbl{display:none}

/* guides, account, admin */
.guide-card{display:block;padding:0;overflow:hidden}.g-media{aspect-ratio:16/9;background:#f3f3f3;display:grid;place-items:center}.g-media svg{width:38px}.g-body{padding:17px}.g-k{font:600 10px var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin-bottom:7px}.faq{border-bottom:1px solid var(--line)}.faq>button{width:100%;border:0;background:transparent;display:flex;justify-content:space-between;gap:12px;text-align:left;padding:16px 0;font-weight:700}.faq .plus{font-size:1.2rem}.faq>div{display:none;padding:0 0 16px;color:var(--ink-3)}.faq.open>div{display:block}
.kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.kpi{border:1px solid var(--line);border-radius:var(--r);padding:16px;background:#fff}.kpi .k{font-size:.72rem;color:var(--ink-3)}.kpi .v{font:750 1.55rem var(--f-head);margin:4px 0}.kpi .d{font-size:.72rem}.up{color:var(--ok)}.down{color:var(--danger)}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:var(--r)}.data-table{border-collapse:collapse;width:100%;min-width:680px;background:#fff}.data-table th,.data-table td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);font-size:.78rem;white-space:nowrap}.data-table th{font:600 9px var(--f-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);background:#fafafa}.admin-tabs{display:flex;gap:7px;overflow:auto}.admin-tabs .t{padding:9px 12px;border:1px solid var(--line);border-radius:999px;white-space:nowrap;font-size:.78rem}.admin-tabs .active{background:var(--ink);color:#fff}.admin-shell{min-height:100vh}.admin-side{display:none}.admin-main{padding:20px var(--gutter) 50px}.board{display:grid;gap:12px}.board-col{background:#f4f4f4;border-radius:var(--r);padding:13px}.board-col h4{display:flex;justify-content:space-between}.board-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:11px;margin-top:9px}.board-card .code{font:600 10px var(--f-mono);color:var(--ink-3)}.board-card .nm{font-weight:700;font-size:.84rem;margin:3px 0}.status{padding:5px 8px}.s-confirmed,.s-returned{color:var(--ok);background:var(--ok-bg)}.s-await{color:var(--warn);background:var(--warn-bg)}.s-overdue{color:var(--danger);background:var(--danger-bg)}.s-onhire{color:var(--info);background:var(--info-bg)}

.site-footer{background:var(--ink);color:#fff;padding:40px 0 24px;margin-top:30px}.footer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}.footer-grid>div:first-child{grid-column:1/-1}.site-footer .brand{color:#fff}.footer-col h4{font-size:.8rem;margin-bottom:10px}.footer-col a{display:block;color:#aaa;font-size:.82rem;padding:5px 0}.footer-col a:hover{color:#fff}.footer-bottom{border-top:1px solid #2c2c2c;margin-top:26px;padding-top:18px;color:#777;font-size:.75rem;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.footer-owner{display:inline-flex;align-items:center;gap:8px;max-width:100%;color:#888;line-height:1.35;white-space:normal;transition:color .2s ease}.footer-owner:hover{color:#fff}.footer-owner:focus-visible{outline:2px solid #fff;outline-offset:3px}.footer-owner img{width:20px;height:20px;flex:0 0 20px;border-radius:5px}.footer-owner strong{color:#bbb;font-weight:650}.footer-owner-arrow{flex:none;color:#aaa}.toast{position:fixed;left:50%;bottom:86px;z-index:300;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--ink);color:#fff;padding:12px 17px;border-radius:var(--r-sm);font-size:.84rem;box-shadow:var(--shadow-2);transition:.25s;white-space:nowrap;max-width:calc(100vw - 28px)}.toast.show{opacity:1;transform:translate(-50%,0)}
.hide-desktop{display:block}.hide-mobile-only{display:none}

@media(max-width:479px){.hero-copy>.row .btn{width:100%}.btn-group>.btn{flex:1 1 100%}.eco>.row .btn{width:100%}.eq-actions{grid-template-columns:1fr}.eq-actions .btn:last-child{grid-column:auto}.date-field{grid-template-columns:1fr}.kpi-grid{grid-template-columns:1fr 1fr}.card-pad,.booking-box{padding:16px}.section{padding-block:50px}.section-tight{padding-block:36px}.gallery-main .ph-tag{max-width:calc(100% - 20px)}}
@media(min-width:480px){.form-grid{grid-template-columns:1fr 1fr}.form-field.full{grid-column:1/-1}.progress .lbl{display:block}}
@media(min-width:640px){:root{--gutter:24px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-grid,.cat-grid,.journey-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.search-go{width:auto}.eco-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-grid{grid-template-columns:1.5fr repeat(4,minmax(0,1fr))}.footer-grid>div:first-child{grid-column:auto}.board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:768px){.section{padding-block:88px}.section-tight{padding-block:60px}.hide-desktop{display:none!important}.hide-mobile-only{display:block}.eq-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-panel{display:block}.cat-layout{grid-template-columns:230px minmax(0,1fr)}.action-bar{display:none}.pd-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);grid-template-areas:'media book' 'info book';align-items:start}.pd-book{position:static;top:auto}.booking-box{padding:22px}.rate-grid{grid-template-columns:repeat(2,1fr)}.admin-shell{display:grid;grid-template-columns:230px 1fr;align-items:start}.admin-side{display:block;background:#fff;border-right:1px solid var(--line);padding:20px 14px;position:static;height:auto;min-height:100vh;overflow:visible}.admin-main{padding:28px 30px 60px}.board{grid-template-columns:repeat(4,minmax(180px,1fr));overflow:auto}.kpi-grid{grid-template-columns:repeat(4,1fr)}}
@media(min-width:1020px){.desktop-nav{display:flex}.menu-toggle{display:none}.mobile-drawer{display:none}.hero{padding:72px 0 76px}.hero>.wrap:first-child{grid-template-columns:minmax(0,1.06fr) minmax(390px,.72fr);align-items:start;gap:68px}.hero-copy{padding-top:18px}.hero-copy>.row{gap:8px!important}.hero-copy>.row .btn{padding-inline:16px;font-size:.86rem}.hero-copy .h-xl{font-size:clamp(3rem,4.5vw,4rem)}.hero-search{margin-top:0;padding:24px}.fields-inline{display:grid;grid-template-columns:1fr 1fr;gap:11px}.fields-inline .field:first-child,.fields-inline .field:nth-child(2),.fields-inline .field:last-child{grid-column:1/-1}.fields-inline .field:last-child{margin-top:2px}.search-go{width:100%}.cat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.journey-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.eq-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.eq-grid.wide3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.guide-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.eco-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.footer-grid{grid-template-columns:2fr repeat(4,1fr)}}
@media(min-width:1020px){.fields-inline .mode-field{grid-column:1/-1}}
@media(min-width:1280px){.desktop-nav a{padding-inline:14px}.hero-copy .h-xl{font-size:4.2rem}.cat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* ============================================================
   Navigation + map refinement
   Header is permanently visible. Catalogue filters and booking
   cards remain in normal document flow instead of chasing scroll.
   ============================================================ */
body.has-site-header{padding-top:94px}
[hidden]{display:none!important}
body.has-site-header .prototype-bar{position:fixed;inset:0 0 auto;z-index:102}
body.has-site-header .site-header{position:fixed;inset:30px 0 auto;z-index:101;border-bottom-color:var(--line)}
.filter-panel{position:static;top:auto}
.pd-book{position:static;top:auto}
.action-bar{display:none!important}

.coverage-section{padding:30px 0 4px}
.coverage-shell{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff;box-shadow:var(--shadow-1)}
.coverage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px;border-bottom:1px solid var(--line)}
.coverage-head-copy{max-width:700px}.coverage-head-copy p{margin-top:7px;font-size:.88rem;color:var(--ink-3)}
.coverage-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px;width:min(100%,384px);justify-content:end}.coverage-actions .btn{width:100%}
.coverage-grid{display:grid}.provider-map{height:390px;background:#f1f1f1;position:relative;isolation:isolate}
.provider-map:focus{outline:2px solid var(--ink);outline-offset:-2px}.provider-map .leaflet-control-zoom a{color:var(--ink);font-family:var(--f-body)}
.provider-map .leaflet-control-attribution{font-size:9px}.provider-map .leaflet-popup-content-wrapper{border-radius:10px;box-shadow:var(--shadow-2)}
.provider-map .leaflet-popup-content{margin:14px;min-width:190px;font-family:var(--f-body)}
.map-provider-marker{display:grid;place-items:center;width:34px;height:34px;border:3px solid #fff;border-radius:50%;background:var(--ink);color:#fff;box-shadow:0 5px 16px rgba(0,0,0,.25);font:700 11px var(--f-mono)}
.map-provider-marker.selected{background:var(--ok);transform:scale(1.14)}
.map-draw-note{position:absolute;z-index:500;left:12px;top:12px;max-width:250px;padding:10px 12px;border-radius:8px;background:rgba(10,10,10,.9);color:#fff;font-size:.75rem;box-shadow:var(--shadow-1);display:none}.map-draw-note.show{display:block}
.provider-panel{border-top:1px solid var(--line);background:#fff;padding:18px;display:flex;flex-direction:column;max-height:390px}
.provider-panel-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.provider-panel-top h3{font-size:1rem}.provider-count{font:600 10px var(--f-mono);color:var(--ink-3)}
.provider-list{overflow:auto;display:grid;gap:8px;padding-right:3px}.provider-card{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;text-align:left;padding:13px;transition:.2s}.provider-card:hover,.provider-card.active{border-color:var(--ink);box-shadow:var(--shadow-1)}
.provider-card.active{background:#fafafa}.provider-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.provider-card h4{font-size:.88rem;line-height:1.3}.provider-card .distance{font:600 9px var(--f-mono);white-space:nowrap;color:var(--ink-3)}
.provider-card p{font-size:.75rem;color:var(--ink-3);margin-top:5px}.provider-services{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.provider-services span{font-size:.64rem;border-radius:999px;background:#f1f1f1;padding:4px 7px}
.selected-provider{display:none;margin-top:12px;padding:12px;border-radius:var(--r-sm);background:var(--ok-bg);color:var(--ok);font-size:.78rem}.selected-provider.show{display:block}
.map-fallback{height:100%;display:grid;place-items:center;padding:28px;text-align:center}.map-fallback svg{width:30px;margin:0 auto 10px}.map-privacy{padding:10px 18px;border-top:1px solid var(--line);font-size:.68rem;color:var(--ink-3);background:#fafafa}

@media(max-width:639px){.coverage-head{display:grid;padding:17px}.coverage-actions{width:100%}.coverage-actions .btn{padding-inline:10px}.provider-map{height:330px}.provider-panel{max-height:none}.provider-list{max-height:330px}.coverage-section{padding-top:22px}}
@media(max-width:859px){.coverage-head{display:grid}.coverage-actions{width:100%;max-width:384px}}
@media(min-width:860px){.coverage-grid{grid-template-columns:minmax(0,1.65fr) minmax(280px,.65fr)}.provider-panel{border-top:0;border-left:1px solid var(--line)}}
@media(min-width:1020px){.pd-book{position:static;top:auto}}

/* Premium cleaning editorial feature — compact recommendations, not full catalogue cards */
.cleaning-feature{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff;box-shadow:var(--shadow-1)}
.cleaning-feature-copy{display:grid;gap:24px;padding:24px;background:var(--ink);color:#fff}.cleaning-feature-copy .h-lg{color:#fff;max-width:16ch}.cleaning-feature-copy .lead{color:#aaa;max-width:54ch}
.cleaning-benefits{list-style:none;padding:0;margin:0 0 22px;display:grid;gap:9px}.cleaning-benefits li{position:relative;padding-left:24px;font-size:.84rem;color:#d2d2d2}.cleaning-benefits li::before{content:'✓';position:absolute;left:0;color:#fff;font-weight:700}
.cleaning-feature-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.cleaning-feature-actions .btn{width:100%;padding-inline:10px}.cleaning-feature-actions .btn-primary{background:#fff;color:var(--ink)}.cleaning-feature-actions .btn-ghost{background:transparent;color:#fff;border-color:#444}
.cleaning-recommendations{padding:22px}.cleaning-recommendations-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:16px}.cleaning-recommendations-head h3{font-size:1.2rem;margin-top:5px}.cleaning-recommendations-head>a{font-size:.78rem;font-weight:700;border-bottom:1px solid var(--line-2)}
.cleaning-mini-list{display:grid;gap:12px}.cleaning-mini-card{display:grid;grid-template-columns:112px minmax(0,1fr);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;min-width:0}.cleaning-mini-visual{position:relative;background:#f3f3f3;display:grid;place-items:center;min-height:170px}.cleaning-mini-visual>svg{width:42px;height:42px;color:#aaa}.cleaning-mini-visual .ph-tag{font-size:7px;top:8px;left:8px;padding:4px 6px}
.cleaning-mini-body{padding:15px;display:flex;flex-direction:column;min-width:0}.cleaning-mini-body h4{font-size:.98rem;line-height:1.28;margin:5px 0 9px}.cleaning-mini-status{display:flex;flex-wrap:wrap;gap:5px}.cleaning-mini-price{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}.cleaning-mini-price>div{display:grid}.cleaning-mini-price span,.cleaning-mini-price small{font-size:.62rem;color:var(--ink-3)}.cleaning-mini-price strong{font:700 .9rem var(--f-mono);margin:2px 0}.cleaning-mini-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:auto;padding-top:13px}.cleaning-mini-actions .btn{width:100%}

/* Interactive, touch-scrollable product gallery */
.gallery-main{touch-action:pan-y}.gallery-main.is-changing .gallery-stage{opacity:.25;transform:scale(.985)}.gallery-stage{display:grid;place-items:center;width:100%;height:100%;transition:opacity .18s,transform .18s}.gallery-stage svg{width:84px;height:84px;color:#aaa}.gallery-caption{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:6px;padding:6px 9px;font:600 9px var(--f-mono);letter-spacing:.05em}
.gallery-thumbs{display:flex!important;grid-template-columns:none!important;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;padding:1px 1px 8px;-webkit-overflow-scrolling:touch}.gallery-thumbs .t{appearance:none;flex:0 0 92px;aspect-ratio:1;scroll-snap-align:start;cursor:pointer;padding:0;color:var(--ink)}.gallery-thumbs .t:hover{border-color:var(--line-2)}.gallery-thumbs .t.active{border:2px solid var(--ink);box-shadow:0 0 0 2px #fff inset}.gallery-thumbs .t:focus-visible{outline-offset:1px}.gallery-thumbs-label{display:flex;justify-content:space-between;gap:12px;margin-top:8px;font-size:.7rem;color:var(--ink-3)}

@media(max-width:479px){.cleaning-feature-copy,.cleaning-recommendations{padding:18px}.cleaning-feature-actions{display:grid}.cleaning-mini-card{grid-template-columns:1fr}.cleaning-mini-visual{min-height:0;aspect-ratio:16/9}.cleaning-mini-price{grid-template-columns:1fr 1fr}.cleaning-mini-actions{grid-template-columns:1fr 1fr}.cleaning-recommendations-head>a{display:none}.gallery-thumbs .t{flex-basis:96px}}
@media(min-width:720px){.cleaning-feature-copy{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);align-items:end;padding:32px}.cleaning-recommendations{padding:28px}.cleaning-mini-list{grid-template-columns:1fr 1fr}.cleaning-mini-card{grid-template-columns:100px minmax(0,1fr)}}
@media(min-width:1080px){.cleaning-feature{display:grid;grid-template-columns:minmax(360px,.72fr) minmax(0,1.28fr)}.cleaning-feature-copy{grid-template-columns:1fr;align-content:space-between;padding:38px}.cleaning-recommendations{padding:30px}.cleaning-mini-list{grid-template-columns:1fr 1fr}.cleaning-mini-card{grid-template-columns:112px minmax(0,1fr)}}
@media(min-width:1200px){.trust-track{justify-content:space-between;gap:10px;overflow:hidden}.trust-item{font-size:.74rem}.trust-item:nth-child(n+7){display:none}}

/* ============================================================
   Final audit hardening — load stability, touch UX and premium
   responsive behaviour. These rules intentionally sit last.
   ============================================================ */
body.site-page{padding-top:94px}
body.site-page .prototype-bar{position:fixed;inset:0 0 auto;z-index:102}
body.site-page .site-header{position:fixed;inset:30px 0 auto;z-index:101;border-bottom-color:var(--line)}
.desktop-nav a[aria-current="page"],.drawer-link[aria-current="page"]{color:var(--ink)}
.desktop-nav a[aria-current="page"]{background:var(--paper-2)}
.drawer-link[aria-current="page"]{font-weight:800}
.admin-tabs .t{appearance:none;flex:0 0 auto;background:#fff;color:inherit;font:inherit;cursor:pointer}
.sort-opt{appearance:none;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}

.form-field input,.form-field select,.form-field textarea{transition:border-color .18s,box-shadow .18s}
.form-error{padding:12px 14px;border:1px solid #efc7c3;border-radius:var(--r-sm);background:var(--danger-bg);color:var(--danger);font-size:.8rem;line-height:1.5}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.df:focus-within,.search-inline:focus-within,.field:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px rgba(10,10,10,.07)}
.form-field input:user-invalid,.form-field select:user-invalid,.form-field textarea:user-invalid{border-color:var(--danger)}
.upload{display:block;position:relative;overflow:hidden;cursor:pointer;transition:border-color .18s,background .18s}
.upload:hover,.upload:focus-within{border-color:var(--ink);background:#fafafa}
.upload input[type="file"]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.btn:disabled{opacity:.48;cursor:not-allowed;transform:none;box-shadow:none}

.eq-visual,.gallery-main,.cleaning-mini-visual,.g-media{background-color:#f4f4f2;background-image:linear-gradient(135deg,rgba(255,255,255,.7),transparent 48%),radial-gradient(circle at 78% 18%,rgba(0,0,0,.045),transparent 28%)}
.cleaning-mini-visual{overflow:hidden}
.eq-visual::after,.gallery-main::after,.cleaning-mini-visual::after{content:'';position:absolute;inset:auto -8% -26% auto;width:62%;aspect-ratio:1;border:1px solid rgba(0,0,0,.055);border-radius:50%;pointer-events:none}
.gallery-stage,.gallery-caption,.eq-visual>svg,.cleaning-mini-visual>svg{position:relative;z-index:1}
.gallery-stage svg{color:#7f7f7b}
.ph-tag{z-index:2}

.rent-mobile-search{position:sticky;top:94px;z-index:70;margin-top:6px!important;padding-block:10px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.rent-mobile-search .filter-bar{padding:0}
.table-scroll{position:relative;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.table-scroll-hint{display:none;margin:0 0 8px;color:var(--ink-3);font:500 10px var(--f-mono);letter-spacing:.04em;text-transform:uppercase}
.cart-item{margin-bottom:12px;display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.cart-item-total{text-align:right;flex:none}
.addon-list{display:grid;gap:7px;margin-top:8px}
.addon-option{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:.8rem}
.addon-option label{display:flex;align-items:flex-start;gap:8px;cursor:pointer}
.addon-option input{width:17px;height:17px;accent-color:var(--ink);flex:none;margin-top:1px}
.qty-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}
.qty-row select{min-width:82px;border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 10px;background:#fff}
.cost-line>span:first-child{min-width:0;overflow-wrap:anywhere}
.cost-line>span:last-child{flex:none;white-space:nowrap}
.booking-layout,.rfq-layout{grid-template-columns:1fr!important}

@media(min-width:860px){
  .booking-layout{grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr)!important}
  .rfq-layout{grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr)!important}
}

@media(max-width:639px){
  .coverage-section{padding-top:12px}
  .coverage-head{padding:16px}
  .coverage-head-copy p{font-size:.82rem}
  .provider-map{height:270px}
  .provider-panel{padding:14px;max-height:none}
  .provider-list{display:flex;overflow-x:auto;overflow-y:hidden;max-height:none;padding:1px 1px 8px;scroll-snap-type:x mandatory}
  .provider-card{flex:0 0 min(246px,82vw);scroll-snap-align:start}
  .map-privacy{padding-inline:14px}
  .eq-card .eq-cat,.eq-card h3{min-height:0}
  .table-scroll-hint{display:block}
  .admin-main>.row{align-items:flex-start}
  .admin-main>.row>.row{flex-wrap:wrap}
}
@media(max-width:479px){
  .eq-actions{grid-template-columns:1fr 1fr}
  .eq-actions .btn:first-child{grid-column:1/-1}
  .eq-actions .btn:last-child{grid-column:auto}
  .gallery-thumbs .t{flex-basis:84px}
  .cart-item{display:grid}
  .cart-item-total{text-align:left;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%}
  .kpi-grid{grid-template-columns:1fr}
  .progress .p{font-size:.7rem}.progress .b{width:26px;height:26px}
}
@media(max-width:639px){
  .section{padding-block:52px}.section-tight{padding-block:38px}
  .site-footer{padding-top:34px}.footer-bottom{align-items:flex-start;flex-direction:column}
}
@media(max-width:360px){
  .h-xl{font-size:2rem;line-height:1.04}
  .hero{padding-top:38px}
}
@media(min-width:768px){.admin-side{position:static!important;top:auto!important;height:auto!important;overflow:visible!important}}

/* High-contrast ecosystem actions on dark ObraCerta panels */
.callout.obra .btn-ghost{background:#fff;color:var(--ink);border-color:#fff}
.callout.obra .btn-ghost:hover{background:#f2f2f2;border-color:#f2f2f2}

/* Generated launch photography — supplier/model photography replaces these launch visuals later. */
.eq-visual.has-image,.gallery-main.has-image,.cleaning-mini-visual.has-image{background:#fff;background-image:none}
.eq-visual.has-image::after,.gallery-main.has-image::after,.cleaning-mini-visual.has-image::after{display:none}
.eq-visual.has-image>img,.cleaning-mini-visual.has-image>img{position:absolute;inset:0;z-index:1;width:100%;height:100%;min-height:0;object-fit:contain}
.cleaning-mini-visual.has-image>img{padding:8px;transition:transform .3s ease}.cleaning-mini-card:hover .cleaning-mini-visual>img{transform:scale(1.035)}
.gallery-caption{z-index:2}.gallery-thumbs .t{padding:4px}.gallery-thumbs .t.active{padding:3px}.gallery-thumbs .t img{width:100%;height:100%;object-fit:contain}

@media(min-width:720px){
  .campaign-section{padding-top:30px}.campaign-card{min-height:390px}.campaign-image{height:390px;object-position:center}
  .campaign-copy{position:absolute;left:24px;bottom:24px;width:min(390px,44%);padding:22px;border:1px solid rgba(0,0,0,.08);border-radius:var(--r);background:rgba(255,255,255,.94);backdrop-filter:blur(14px);box-shadow:var(--shadow-2)}
}
@media(min-width:1100px){.campaign-card{min-height:430px}.campaign-image{height:430px}.campaign-copy{left:32px;bottom:32px;padding:26px}}

/* One button system across the whole product: identical height, type and centring. */
.btn,.btn-lg,.btn-sm{display:inline-flex;align-items:center;justify-content:center;height:46px;min-height:46px;max-height:46px;padding:0 16px;font-size:.88rem;line-height:1.2;white-space:nowrap;overflow:hidden;flex-shrink:0;vertical-align:middle}
.seg-btn{display:flex;align-items:center;justify-content:center;height:46px;min-height:46px;max-height:46px;padding:0 10px;white-space:nowrap;line-height:1.2}
.header-actions .btn.hide-mobile-only{display:none}
@media(min-width:768px){.header-actions .btn.hide-mobile-only{display:inline-flex}}
.hero-actions{display:grid!important;grid-template-columns:1fr;gap:8px!important;width:100%;max-width:660px}.hero-actions .btn{width:100%}
.equal-actions{display:grid!important;grid-template-columns:1fr;gap:8px!important;width:100%;max-width:520px}.equal-actions .btn{width:100%}
.btn-group{display:grid;grid-template-columns:1fr;gap:8px;width:100%;max-width:520px}.btn-group .btn{width:100%}.center>.btn-group,.center .btn-group{margin-inline:auto}
@media(min-width:640px){.equal-actions,.btn-group{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:720px){.hero-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}
.drawer-search input{flex:1 1 auto;width:auto}.drawer-search .btn{flex:0 0 auto;padding-inline:16px}
.form-grid>.btn:not(.btn-block){grid-column:1/-1;justify-self:start}
.cleaning-mini-actions .btn{padding-inline:8px}
.sheet-foot{display:grid;grid-template-columns:repeat(2,minmax(0,124px));justify-content:space-between}.sheet-foot .btn{width:100%}
.cat-layout .eq-grid{grid-template-columns:1fr}
@media(min-width:960px){.cat-layout .eq-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:360px){.btn,.btn-lg,.btn-sm{padding-inline:10px;font-size:.82rem}.seg-btn{padding-inline:7px;font-size:.8rem}}

/* Keep four cleaning recommendations useful without creating a long mobile wall. */
.cleaning-swipe-hint{display:none;color:var(--ink-3);font:500 .68rem/1.4 var(--f-mono);letter-spacing:.03em;margin:-6px 0 12px}
@media(max-width:719px){
  .cleaning-swipe-hint{display:block}
  .cleaning-mini-list{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:min(270px,100%);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:1px;padding:1px 1px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .cleaning-mini-list::-webkit-scrollbar{display:none}
  .cleaning-mini-card{grid-template-columns:1fr;scroll-snap-align:start}
  .cleaning-mini-visual{min-height:0;aspect-ratio:16/9}
}

/* Premium information pages: one calm visual language for process, FAQ and trade flows. */
.section-heading{max-width:720px}.section-heading .lead{max-width:64ch}
.process-grid{display:grid;gap:12px}.process-card{display:grid;grid-template-columns:44px minmax(0,1fr);gap:15px;padding:20px;border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--shadow-1)}
.process-number{width:44px;height:44px;border-radius:11px;background:var(--ink);color:#fff;display:grid;place-items:center;font:650 11px var(--f-mono)}
.process-card h3{font-size:1.03rem;line-height:1.3;margin-top:7px}.process-card p{margin-top:8px;color:var(--ink-3);font-size:.86rem;line-height:1.58}
.preflight-panel{display:grid;gap:24px;padding:24px;border-radius:var(--r-lg);background:var(--ink);color:#fff;overflow:hidden}.preflight-intro .h-lg{max-width:15ch}.preflight-intro p{max-width:58ch;margin-top:12px;color:#aaa}
.preflight-grid{display:grid;gap:10px}.preflight-item{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:17px;border:1px solid #303030;border-radius:var(--r);background:#111;transition:border-color .2s,transform .2s}.preflight-item:hover{border-color:#555;transform:translateY(-1px)}
.preflight-item strong{font:650 .92rem/1.35 var(--f-head)}.preflight-item small{color:#aaa;font-size:.75rem;line-height:1.45}
.faq-shell{display:grid;gap:24px;padding:22px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper-2)}.faq-intro p{max-width:48ch;margin-top:12px;color:var(--ink-3);font-size:.9rem}.faq-list{display:grid;gap:9px;align-content:start}
.faq{border:1px solid var(--line);border-radius:var(--r);background:#fff;overflow:hidden;transition:border-color .2s,box-shadow .2s}.faq[open]{border-color:var(--line-2);box-shadow:var(--shadow-1)}
.faq summary{list-style:none;display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:14px;padding:16px 17px;cursor:pointer;font:650 .9rem/1.4 var(--f-head)}.faq summary::-webkit-details-marker{display:none}
.faq .plus{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font:500 1.05rem/1 var(--f-body);transition:transform .2s,background .2s,color .2s}.faq[open] .plus{transform:rotate(45deg);background:var(--ink);border-color:var(--ink);color:#fff}
.faq>p{padding:0 17px 17px;color:var(--ink-3);font-size:.86rem;line-height:1.62}

/* Guided cleaning is retained as a decision tool, not a duplicate catalogue. */
.cleaning-finder-shell{display:grid;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff;box-shadow:var(--shadow-1)}
.finder-intro{display:flex;flex-direction:column;gap:24px;padding:24px;background:var(--ink);color:#fff}.finder-intro .h-lg{max-width:15ch}.finder-intro p{color:#aaa;max-width:48ch}.finder-intro .btn{width:100%;margin-top:auto}.finder-intro .btn-ghost{color:var(--ink)}
.finder-points{list-style:none;padding:0;margin:0;display:grid;gap:9px}.finder-points li{position:relative;padding-left:23px;color:#ddd;font-size:.84rem}.finder-points li::before{content:'✓';position:absolute;left:0;color:#fff;font-weight:700}
.finder-panel{padding:20px}.finder-step{padding:0 0 20px;margin-bottom:20px;border-bottom:1px solid var(--line)}.finder-step-head{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;align-items:center;margin-bottom:14px}.finder-step-head>span{width:38px;height:38px;border-radius:10px;background:var(--paper-2);display:grid;place-items:center;font:650 10px var(--f-mono)}
.finder-step-head strong,.finder-step-head small{display:block}.finder-step-head strong{font:650 .95rem var(--f-head)}.finder-step-head small{margin-top:3px;color:var(--ink-3);font-size:.72rem}.finder-result{margin-top:4px}.finder-result .callout{margin:0}.finder-result>.grid-2{margin-top:12px}
.cleaning-assurance{display:grid;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff}.cleaning-assurance>div{padding:20px;border-top:1px solid var(--line)}.cleaning-assurance>div:first-child{border-top:0}.cleaning-assurance h3{font-size:1rem;margin-top:12px}.cleaning-assurance p{margin-top:7px;color:var(--ink-3);font-size:.83rem}

/* Contractor accounts: honest review flow instead of a generic sign-up promise. */
.trade-overview{display:grid;border-radius:var(--r-lg);overflow:hidden;background:var(--ink);color:#fff}.trade-overview-copy{padding:25px}.trade-overview-copy .h-lg{max-width:16ch}.trade-overview-copy p{color:#aaa;max-width:54ch}.trade-status{display:flex;align-items:flex-start;gap:9px;padding:12px;border:1px solid #333;border-radius:var(--r-sm);color:#bbb;font-size:.76rem}.trade-status .dot{margin-top:6px;color:var(--ok)}
.trade-benefit-list{display:grid;background:#111}.trade-benefit-list article{display:grid;grid-template-columns:38px minmax(0,1fr);gap:13px;padding:18px;border-top:1px solid #2b2b2b}.trade-benefit-list article:first-child{border-top:0}.trade-benefit-list article>span{font:650 10px var(--f-mono);color:#777}.trade-benefit-list h3{font-size:.95rem}.trade-benefit-list p{margin-top:5px;color:#999;font-size:.78rem;line-height:1.5}
.trade-steps{display:grid;gap:12px}.trade-steps article{padding:20px;border:1px solid var(--line);border-radius:var(--r);background:#fff}.trade-steps article>span{font:650 10px var(--f-mono);color:var(--ink-3)}.trade-steps h3{font-size:1rem;margin-top:17px}.trade-steps p{margin-top:7px;color:var(--ink-3);font-size:.84rem}
.trade-cta{display:grid;gap:20px;align-items:center;padding:22px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper-2)}.trade-cta p{margin-top:7px;color:var(--ink-3);font-size:.84rem}.obra-inline{display:grid;gap:20px;align-items:center;padding:22px;border-radius:var(--r-lg);background:var(--ink);color:#fff}.obra-inline p{max-width:64ch;margin-top:8px;color:#aaa;font-size:.85rem}.obra-inline .btn-ghost{background:#fff;border-color:#fff;color:var(--ink);width:100%}

/* Quote page: the form owns the space; next steps stay calm and vertical. */
.quote-form-card{padding:22px}.quote-form-intro{max-width:62ch;font-size:.86rem}.quote-form-card .form-grid{grid-template-columns:1fr!important}.quote-side{display:grid;gap:16px}.quote-next{padding:22px;border-radius:var(--r-lg);background:var(--ink);color:#fff}.quote-next-intro{margin-top:10px;color:#aaa;font-size:.82rem;line-height:1.55}
.quote-next-list{display:grid;margin-top:20px}.quote-next-list>div{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:14px 0;border-top:1px solid #2f2f2f}.quote-next-list>div:first-child{border-top:0;padding-top:0}.quote-next-list>div>span{font:650 10px var(--f-mono);color:#777;padding-top:3px}.quote-next-list p,.quote-next-list strong,.quote-next-list small{display:block}.quote-next-list strong{font:650 .87rem var(--f-head)}.quote-next-list small{margin-top:5px;color:#999;font-size:.73rem;line-height:1.45}
.quote-equipment{margin:0}.quote-equipment .list-clean{font-size:.8rem;columns:1}.quote-side .callout{margin:0}.rfq-layout{grid-template-columns:1fr!important}

@media(min-width:640px){
  .process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.process-card{min-height:204px}
  .preflight-grid,.cleaning-assurance,.trade-steps{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cleaning-assurance>div{border-top:0;border-left:1px solid var(--line)}.cleaning-assurance>div:first-child{border-left:0}
  .trade-cta,.obra-inline{grid-template-columns:minmax(0,1fr) minmax(290px,.65fr)}
  .trade-cta .equal-actions{justify-self:end}.obra-inline .btn{width:auto;justify-self:end}
}
@media(min-width:820px){.faq-shell{grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);gap:36px;padding:30px}.cleaning-finder-shell{grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr)}.finder-intro,.finder-panel{padding:30px}}
@media(min-width:960px){.trade-overview{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr)}.trade-overview-copy{padding:34px}.trade-benefit-list{grid-template-columns:repeat(2,minmax(0,1fr))}.trade-benefit-list article:nth-child(2){border-top:0}.trade-benefit-list article:nth-child(even){border-left:1px solid #2b2b2b}}
@media(min-width:980px){.rfq-layout{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr)!important}}
@media(max-width:479px){.process-card{padding:17px;grid-template-columns:38px minmax(0,1fr)}.process-number{width:38px;height:38px}.preflight-panel,.finder-intro,.finder-panel,.faq-shell,.trade-overview-copy,.quote-next{padding:18px}.trade-cta,.obra-inline{padding:18px}.faq summary{padding:15px}.faq>p{padding:0 15px 15px}}

/* Form controls use the same understated industrial finish across every flow. */
select:not([multiple]){-webkit-appearance:none;appearance:none;background-color:#fff!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 13px center!important;background-size:16px!important;padding-right:42px!important}
.form-field select:hover{border-color:var(--line-2)}

/* Contractor accounts: a focused product page with its own application flow. */
.contractor-hero-grid{display:grid;gap:26px;align-items:center}.contractor-hero .h-xl{max-width:14ch}.contractor-hero .lead{max-width:60ch}
.contractor-account-card{padding:22px;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;box-shadow:var(--shadow-2)}.contractor-account-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.contractor-account-top .mono{font-size:9px;color:var(--ink-3)}
.contractor-account-card>h2{max-width:15ch;margin-top:20px;font-size:clamp(1.35rem,3vw,1.9rem)}.contractor-account-rows{display:grid;margin-top:22px;border-top:1px solid var(--line)}.contractor-account-rows>div{display:grid;gap:4px;padding:13px 0;border-bottom:1px solid var(--line)}.contractor-account-rows span{font:600 9px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.contractor-account-rows strong{font-size:.82rem}.contractor-account-card>p{margin-top:15px;color:var(--ink-3);font-size:.72rem;line-height:1.5}
.contractor-use-grid{display:grid;gap:12px}.contractor-use-grid article{padding:20px;border:1px solid var(--line);border-radius:var(--r);background:#fff}.contractor-use-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:var(--ink);color:#fff;font:650 10px var(--f-mono);margin-bottom:20px}.contractor-use-grid h3{font-size:1rem;margin-top:8px}.contractor-use-grid p{margin-top:8px;color:var(--ink-3);font-size:.83rem;line-height:1.55}
.contractor-application{display:grid;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff;box-shadow:var(--shadow-1)}.contractor-application-intro{display:flex;flex-direction:column;gap:30px;padding:24px;background:var(--ink);color:#fff}.contractor-application-intro .h-lg{max-width:14ch}.contractor-application-intro>div>p{max-width:46ch;margin-top:13px;color:#aaa;font-size:.86rem}.application-next{display:grid;margin-top:auto}.application-next>div{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:14px 0;border-top:1px solid #303030}.application-next>div:first-child{border-top:0}.application-next>div>span{font:650 10px var(--f-mono);color:#777;padding-top:3px}.application-next p,.application-next strong,.application-next small{display:block}.application-next strong{font:650 .86rem var(--f-head)}.application-next small{margin-top:4px;color:#999;font-size:.72rem;line-height:1.45}
.contractor-application-form{padding:20px}.structured-form{display:block}.form-section-head{display:grid;grid-template-columns:38px minmax(0,1fr);gap:13px;align-items:center;margin-bottom:16px}.form-section-head>span{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--paper-2);font:650 10px var(--f-mono)}.form-section-head h2,.form-section-head h3{font-size:1rem}.form-section-head p{margin-top:3px;color:var(--ink-3);font-size:.73rem}
.contractor-application-form .form-section-head{padding-top:23px;margin-top:23px;border-top:1px solid var(--line)}.contractor-application-form .sr-only+.form-section-head{padding-top:0;margin-top:0;border-top:0}.structured-fields{display:grid;gap:13px}.structured-fields .span-2{grid-column:1/-1}.structured-fields textarea{min-height:100px}.application-submit{display:grid;gap:16px;align-items:center;margin-top:24px;padding:18px;border-radius:var(--r);background:var(--paper-2)}.application-submit p{color:var(--ink-3);font-size:.75rem;line-height:1.5}.application-submit p strong{color:var(--ink)}.application-submit .btn{width:100%}
.application-success{padding:clamp(22px,5vw,44px);text-align:center}.application-success-mark{width:56px;height:56px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:var(--ok-bg);color:var(--ok)}.application-success-mark svg{width:24px}.application-success>p{max-width:48ch;margin:12px auto 0;color:var(--ink-3)}.application-success .equal-actions{margin-inline:auto}

/* Quote workspace: grouped information replaces one long undifferentiated sheet. */
.quote-layout{display:grid;gap:18px;align-items:start}.quote-form-shell{overflow:hidden;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;box-shadow:var(--shadow-1)}.quote-form-section{padding:22px;border-top:1px solid var(--line)}.quote-form-section:first-of-type{border-top:0}.quote-form-section .form-section-head{margin-bottom:18px}.quote-structured-form .structured-fields{grid-template-columns:1fr}.quote-upload{display:grid;justify-items:center;gap:4px;padding:22px}.quote-upload strong{color:var(--ink);font-family:var(--f-head)}.quote-upload span,.quote-upload small{display:block;font-size:.72rem}.quote-upload small{margin-top:5px;color:var(--ink-3)}
.quote-submit-bar{display:grid;gap:16px;align-items:center;padding:20px;border-top:1px solid var(--line);background:var(--paper-2)}.quote-submit-bar strong,.quote-submit-bar span{display:block}.quote-submit-bar strong{font-size:.86rem}.quote-submit-bar span{margin-top:3px;color:var(--ink-3);font-size:.73rem}.quote-submit-bar .btn{width:100%}
.quote-checklist{box-shadow:none}.quote-checklist ul{list-style:none;padding:0;margin:15px 0 0;display:grid;gap:10px}.quote-checklist li{position:relative;padding-left:22px;color:var(--ink-3);font-size:.8rem}.quote-checklist li::before{content:'✓';position:absolute;left:0;color:var(--ink);font-weight:700}.quote-only-note{padding:18px;border:1px solid var(--line);border-radius:var(--r);background:#fff}.quote-only-note p{margin-top:8px;color:var(--ink-3);font-size:.8rem;line-height:1.55}

@media(min-width:640px){
  .contractor-use-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.structured-fields,.quote-structured-form .structured-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .application-submit,.quote-submit-bar{grid-template-columns:minmax(0,1fr) auto}.application-submit .btn,.quote-submit-bar .btn{width:auto;min-width:190px}
}
@media(min-width:900px){.contractor-hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(340px,.65fr);gap:54px}.contractor-application{grid-template-columns:minmax(290px,.68fr) minmax(0,1.32fr)}.contractor-application-intro,.contractor-application-form{padding:30px}}
@media(min-width:980px){.quote-layout{grid-template-columns:minmax(0,1.42fr) minmax(320px,.58fr);gap:20px}}
@media(max-width:479px){.contractor-account-card,.contractor-use-grid article,.contractor-application-intro,.contractor-application-form,.quote-form-section{padding:18px}.quote-submit-bar{padding:17px}.form-section-head{grid-template-columns:34px minmax(0,1fr)}.form-section-head>span{width:34px;height:34px}}

/* Branded choice controls replace inconsistent native dropdowns in the trade flow. */
.form-choice{grid-column:1/-1;min-width:0;margin:0;padding:0;border:0}.form-choice legend{display:block;width:100%;margin:0 0 8px;color:var(--ink);font-size:.75rem;font-weight:700}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.choice-grid label{position:relative;min-width:0}.choice-grid input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.choice-grid label span{display:flex;align-items:center;justify-content:center;min-height:46px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;color:var(--ink-2);font-size:.77rem;font-weight:650;line-height:1.25;text-align:center;overflow-wrap:anywhere;cursor:pointer;transition:border-color .18s,background .18s,color .18s,box-shadow .18s}.choice-grid label span:hover{border-color:var(--line-2);background:var(--paper-2)}.choice-grid input:checked+span{border-color:var(--ink);background:var(--ink);color:#fff}.choice-grid input:focus-visible+span{outline:2px solid var(--ink);outline-offset:2px}

/* A quote basket must visibly confirm what the customer added. */
.quote-selection{padding:20px;border-bottom:1px solid var(--line);background:var(--paper-2)}.quote-selection-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:13px}.quote-selection-head h2{font-size:1rem;margin-top:4px}.quote-selection-head a{flex:none;color:var(--ink);font-size:.75rem;font-weight:700;border-bottom:1px solid var(--line-2)}.quote-selected-list{display:grid;gap:8px}.quote-selected-item{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;min-width:0}.quote-selected-item img{width:58px;height:58px;object-fit:contain;border-radius:7px;background:#fff}.quote-selected-copy{min-width:0}.quote-selected-copy strong,.quote-selected-copy small{display:block}.quote-selected-copy strong{font:650 .82rem/1.35 var(--f-head);overflow-wrap:anywhere}.quote-selected-copy small{margin-top:4px;color:var(--ink-3);font-size:.68rem}.quote-remove{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);cursor:pointer;transition:border-color .18s,background .18s}.quote-remove:hover{border-color:var(--ink);background:var(--paper-2)}.quote-remove:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.quote-remove svg{width:15px;height:15px}

.honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}.honeypot input{width:1px!important;height:1px!important;padding:0!important;border:0!important}
@media(min-width:700px){.choice-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.choice-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:360px){.choice-grid{grid-template-columns:1fr}.quote-selection{padding:16px}.quote-selection-head{align-items:flex-start}.quote-selected-item{grid-template-columns:50px minmax(0,1fr) 36px;gap:9px}.quote-selected-item img{width:50px;height:50px}}

.form-choice legend small{color:var(--ink-3);font-size:.68rem;font-weight:500}.application-consent label{display:flex!important;align-items:flex-start;gap:11px;padding:14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper-2);font-size:.76rem!important;font-weight:500!important;line-height:1.5;cursor:pointer}.application-consent input{flex:0 0 auto;width:18px;height:18px;margin-top:1px;accent-color:var(--ink)}
.provider-note{margin-top:12px;padding:10px 12px;border-left:2px solid var(--ink);background:var(--paper-2);color:var(--ink-3);font-size:.72rem;line-height:1.5}.provider-note strong{color:var(--ink)}

/* Privacy-first live map: provider cards work before any third-party tile request. */
.map-consent{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:22px;background:linear-gradient(145deg,#f5f5f2,#ecece8)}
.map-consent-card{width:min(100%,430px);padding:22px;border:1px solid var(--line);border-radius:var(--r);background:rgba(255,255,255,.96);box-shadow:var(--shadow-2);text-align:center}
.map-consent-mark{display:grid;place-items:center;width:42px;height:42px;margin:0 auto 14px;border-radius:10px;background:var(--ink);color:#fff}.map-consent-mark svg{width:20px}
.map-consent-card h3{font-size:1.05rem}.map-consent-card p{max-width:46ch;margin:8px auto 15px;color:var(--ink-3);font-size:.78rem;line-height:1.55}.map-consent-card .btn{margin-inline:auto}
.map-consent-card a{text-decoration:underline;text-underline-offset:2px}.coverage-actions .btn:disabled{opacity:.4}

/* Legal pages use readable measure and explicit pre-launch blockers. */
.legal-meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:20px;padding:12px 0;border-block:1px solid var(--line);color:var(--ink-3);font:600 10px/1.4 var(--f-mono);letter-spacing:.04em;text-transform:uppercase}
.legal-blocker{margin-top:22px;padding:17px;border:1px solid #e4c78c;border-radius:var(--r);background:var(--warn-bg);color:var(--warn)}
.legal-blocker strong{font-family:var(--f-head);font-size:.92rem}.legal-blocker p{margin-top:7px;color:#684f22;font-size:.8rem;line-height:1.58}
.legal-sections .info-block p{font-size:.88rem;line-height:1.72}.legal-sections a{text-decoration:underline;text-underline-offset:2px;color:var(--ink)}
@media(max-width:479px){.map-consent{padding:14px}.map-consent-card{padding:18px}.legal-blocker{padding:15px}.legal-sections .info-block{padding-block:21px}}

/* Motion is optional; core controls remain immediate and fully usable. */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.eq-card:hover,.category-card:hover,.journey:hover,.guide-card:hover,.preflight-item:hover{transform:none!important}}
