/* Delivery & Access (delivery-access.php + partials/pieces/access-checker.php) */

/* ---------- opener: measured, on an ink blueprint grid ---------- */
.dop { --fs: min(35vw, 53svh, 510px); position: relative; background: var(--ink); color: rgba(255, 255, 255, .88); overflow: clip; min-height: min(70svh, 760px); display: grid; align-items: center; padding: calc(var(--tb) + var(--hh) + clamp(16px, 3vh, 40px)) 0 clamp(24px, 4vh, 48px); }
.dop__grid-bg { position: absolute; inset: -80px 0 0; pointer-events: none; background-image: linear-gradient(rgba(255, 255, 255, .09) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .09) 1px, transparent 1px), linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px); background-size: 200px 200px, 200px 200px, 40px 40px, 40px 40px; }
.dop::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse 55% 70% at 78% 55%, rgba(31, 107, 83, .55), transparent 70%), radial-gradient(ellipse 50% 60% at 0% 100%, rgba(31, 107, 83, .35), transparent 70%); }
.dop__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(60px, 5vw, 90px); align-items: center; }
.dop__copy { display: grid; gap: 22px; align-content: center; }
.dop__title { font: 800 clamp(2.4rem, 4vw, 4rem)/.98 var(--display); font-stretch: 74%; letter-spacing: -.01em; color: var(--white); }
.dop__lede { font-size: clamp(1.0625rem, 1.25vw, 1.22rem); line-height: 1.55; color: rgba(255, 255, 255, .86); }
.dop__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.dop__facts { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 14px clamp(20px, 3vw, 46px); padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .16); }
.dop__facts li { display: grid; gap: 4px; }
.dop__facts strong { font: 800 clamp(1.5rem, 2vw, 2rem)/1 var(--display); font-stretch: 80%; color: var(--brand-hi); white-space: nowrap; }
.dop__facts span { font-size: .95rem; font-weight: 600; color: rgba(255, 255, 255, .72); }
.dop__media { --pl: 0px; position: relative; justify-self: end; padding: 54px 10px 66px var(--pl); }
.dop__frame { position: relative; width: var(--fs); aspect-ratio: 1; border-radius: var(--dome); overflow: clip; background: var(--ink-2); box-shadow: 0 40px 90px -30px rgba(0, 0, 0, .6); }
.dop__pic { position: absolute; inset: 0; }
.dop__pic img { width: 100%; height: 100%; object-fit: cover; }
.dop__cap { position: absolute; left: 18px; bottom: 18px; padding: 7px 14px; border-radius: 999px; background: rgba(12, 42, 32, .85); color: var(--white); font-weight: 700; font-size: .9rem; }
.dop__dims { position: absolute; left: var(--pl); top: 54px; width: var(--fs); height: var(--fs); overflow: visible; pointer-events: none; }
.dop__line, .dop__tick { fill: none; stroke: var(--red); stroke-width: .6; }
.dop__ruler { fill: none; stroke: rgba(255, 255, 255, .45); stroke-width: .3; }
.dop__lbl { position: absolute; z-index: 2; padding: 6px 12px; border-radius: 999px; background: var(--red); color: var(--white); font-weight: 800; font-size: .92rem; line-height: 1.1; white-space: nowrap; box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .5); }
.dop__lbl--h { left: calc(var(--pl) - var(--fs) * .07); top: calc(54px + var(--fs) / 2); translate: -50% -50%; rotate: -90deg; }
.dop__lbl--l { left: calc(var(--pl) + var(--fs) / 2); top: calc(54px + var(--fs) * 1.07); translate: -50% -50%; }
.dop__lbl--w { left: calc(var(--pl) + var(--fs) * .83); top: calc(54px - var(--fs) * .07); translate: -50% -50%; }
.dop__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* ---------- delivery days ---------- */
.days { position: relative; background: var(--white); padding: clamp(64px, 7vw, 110px) 0; overflow: clip; }
.days__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(36px, 6vw, 110px); align-items: center; }
.days__copy { display: grid; gap: 22px; }
.rules { display: grid; gap: 4px; }
.rules li { position: relative; padding: 13px 0 13px 46px; border-top: 1px solid var(--line); font-size: 1.0625rem; }
.rules li:first-child { border-top: 0; }
.rules li::before { content: ""; position: absolute; left: 0; top: 24px; width: 28px; height: 12px; border: 2.5px solid var(--brand); border-top: 0; border-bottom: 0; background: linear-gradient(var(--brand), var(--brand)) center / 100% 2.5px no-repeat; }
.rules strong { color: var(--ink); }
.days__media { position: relative; height: min(68svh, 600px); }
.days__ph { position: absolute; left: 0; top: 8%; width: 84%; height: 78%; border-radius: var(--dome); overflow: clip; box-shadow: 0 40px 80px -40px rgba(12, 42, 32, .5); }
.days__ph img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; }
.wkcard { position: absolute; right: 0; bottom: 0; display: grid; gap: 10px; padding: 18px 20px; border-radius: 22px; background: var(--white); box-shadow: 0 30px 60px -24px rgba(12, 42, 32, .4), 0 0 0 1px var(--line); }
.wkcard__t { font: 800 1.15rem/1 var(--display); font-stretch: 85%; color: var(--ink); }
.wkcard__days { display: grid; grid-template-columns: repeat(7, 38px); gap: 5px; }
.wkcard__days li { position: relative; display: grid; place-items: center; height: 44px; border-radius: 12px 12px 4px 4px; background: var(--brand); color: var(--ink); font-weight: 800; }
.wkcard__days li.is-we { background: repeating-linear-gradient(45deg, var(--chalk), var(--chalk) 5px, var(--chalk-2) 5px, var(--chalk-2) 10px); color: var(--muted); box-shadow: inset 0 0 0 1.5px var(--line); }
.wkcard__days li { transition: transform .45s var(--ease), box-shadow .45s; }
.wkcard__days li.is-now { transform: translateY(-7px); box-shadow: 0 0 0 3px var(--ink), 0 10px 18px -8px rgba(12, 42, 32, .5); }
.wkcard__k { display: flex; align-items: center; gap: 8px; font-size: .88rem; font-weight: 600; color: var(--muted); }
.wkcard__dot { width: 12px; height: 12px; border-radius: 4px; background: var(--brand); }
.wkcard__dot--we { margin-left: 8px; background: repeating-linear-gradient(45deg, var(--chalk), var(--chalk) 2px, #c9d2c5 2px, #c9d2c5 4px); box-shadow: inset 0 0 0 1px var(--line); }
.ring48 { position: absolute; right: 4%; top: 0; width: clamp(120px, 10vw, 150px); aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; background: var(--ink); color: var(--white); box-shadow: 0 24px 50px -20px rgba(12, 42, 32, .6); }
.ring48 svg { position: absolute; inset: 8px; width: calc(100% - 16px); height: calc(100% - 16px); transform: rotate(-90deg); }
.ring48__track { fill: none; stroke: rgba(255, 255, 255, .14); stroke-width: 5; }
.ring48__ring { fill: none; stroke: var(--brand-hi); stroke-width: 5; stroke-linecap: round; }
.ring48 p { position: relative; display: grid; justify-items: center; line-height: 1; }
.ring48 strong { font: 800 clamp(2.4rem, 3.2vw, 3rem)/.95 var(--display); font-stretch: 80%; }
.ring48 span { font-size: .875rem; font-weight: 700; color: rgba(255, 255, 255, .8); }

/* ---------- check your access ---------- */
.chk { position: relative; background: var(--chalk); padding: clamp(64px, 7vw, 110px) 0; overflow: clip; scroll-margin-top: 60px; }
.chk .wrap { position: relative; }
.chk .head { margin-bottom: clamp(24px, 3vw, 40px); }
.chk__tool { display: grid; grid-template-columns: minmax(300px, .62fr) minmax(0, 1.5fr); gap: clamp(22px, 3vw, 50px); align-items: start; }
.chk__side { display: grid; gap: 20px; align-content: start; }
.chk__tabs { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 6px; border-radius: 26px; background: var(--white); box-shadow: 0 0 0 1px var(--line); }
.chk__tab { position: relative; z-index: 1; min-height: 48px; padding: 10px 12px; border-radius: 999px; font-weight: 700; color: var(--ink); transition: color .35s; }
.chk__tab:hover { color: var(--trail); }
.chk__tab[aria-selected="true"] { color: var(--white); }
.chk__pill { position: absolute; left: 0; top: 0; border-radius: 999px; background: var(--ink); transition: transform .5s var(--ease), width .5s var(--ease), height .5s var(--ease); }
html:not(.js) .chk__pill { display: none; }
html:not(.js) .chk__tab[aria-selected="true"] { background: var(--ink); }
.chk__panel { display: grid; gap: 18px; }
.js .chk__panel:not(.is-on) { display: none; }
.chk__ph { display: none; }
.chk__ctl { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 6px 18px;  padding: 20px 22px 16px; border-radius: 22px; background: var(--white); box-shadow: 0 30px 60px -40px rgba(12, 42, 32, .45), 0 0 0 1px var(--line); }
.chk__lab { grid-column: 1 / -1; font-weight: 700; color: var(--ink); line-height: 1.3; }
.chk__read { grid-row: 2 / 4; align-self: center; min-width: 3.2ch; }
.chk__read { display: flex; align-items: baseline; gap: 4px; font: 800 clamp(2.6rem, 3.6vw, 3.6rem)/.9 var(--display); font-stretch: 78%; color: var(--ink); font-variant-numeric: tabular-nums; }
.chk__read span { font-size: .45em; color: var(--trail); }
.chk__range { grid-column: 2; width: 100%; height: 44px; margin: 6px 0 0; background: none; appearance: none; -webkit-appearance: none; cursor: pointer; --p: 30%; }
.chk__range::-webkit-slider-runnable-track { height: 10px; border-radius: 10px; background: linear-gradient(90deg, var(--brand) var(--p), var(--chalk-2) var(--p)); }
.chk__range::-moz-range-track { height: 10px; border-radius: 10px; background: linear-gradient(90deg, var(--brand) var(--p), var(--chalk-2) var(--p)); }
.chk__range::-webkit-slider-thumb { -webkit-appearance: none; width: 32px; height: 32px; margin-top: -11px; border-radius: 50%; background: var(--white); border: 4px solid var(--ink); box-shadow: 0 6px 16px rgba(12, 42, 32, .3); transition: transform .25s var(--ease); }
.chk__range::-moz-range-thumb { width: 24px; height: 24px; border-radius: 50%; background: var(--white); border: 4px solid var(--ink); box-shadow: 0 6px 16px rgba(12, 42, 32, .3); }
.chk__range:active::-webkit-slider-thumb { transform: scale(1.15); }
.chk__range:focus-visible { outline: 3px solid var(--brand); outline-offset: 4px; border-radius: 12px; }
.chk__ends { grid-column: 2; display: flex; justify-content: space-between; font-size: .88rem; font-weight: 600; color: var(--muted); }
.chk__verdict { position: relative; min-height: 4.6em; padding: 16px 18px 16px 58px; border-radius: 18px; background: var(--white); font-weight: 700; color: var(--ink); line-height: 1.4; box-shadow: 0 0 0 1px var(--line); transition: background .35s, box-shadow .35s; }
.chk__verdict::before { content: ""; position: absolute; left: 16px; top: 16px; width: 28px; height: 28px; border-radius: 50%; background: var(--brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230c2a20' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 18px no-repeat; }
.chk__verdict.is-warn { background: #fff8e8; box-shadow: inset 0 0 0 1.5px rgba(214, 150, 0, .5); }
.chk__verdict.is-warn::before { background: #e0a100 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230c2a20' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 6v8M12 18v.5'/%3E%3C/svg%3E") center / 18px no-repeat; }
.chk__verdict.is-bad { background: #fff3f0; box-shadow: inset 0 0 0 1.5px rgba(210, 69, 43, .5); }
.chk__verdict.is-bad::before { background: var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M7 7l10 10M17 7L7 17'/%3E%3C/svg%3E") center / 16px no-repeat; }
.chk__rule { font-size: .98rem; color: var(--muted); }
.chk__board { position: relative; padding: clamp(10px, 1.2vw, 16px); border-radius: 26px; background: var(--white); box-shadow: 0 40px 80px -46px rgba(12, 42, 32, .5), 0 0 0 1px var(--line); }
.chk__svg { width: 100%; height: auto; border-radius: 16px; background: #f4f7f0; font-family: var(--body); }
.chk__scale { display: flex; padding: 12px 6px 2px; font-size: .9rem; font-weight: 600; color: var(--muted); }
html:not(.js) .chk__tabs, html:not(.js) .chk__range, html:not(.js) .chk__read, html:not(.js) .chk__ends, html:not(.js) .chk__verdict { display: none; }
html:not(.js) .chk__ph { display: block; font: 800 1.4rem/1.1 var(--display); font-stretch: 82%; color: var(--ink); }
html:not(.js) .chk__ctl { display: none; }

/* drawing */
.sc { display: none; }
.sc.is-on { display: inline; }
.sc-road { fill: #3b4a44; }
.sc-road-line { stroke: rgba(255, 255, 255, .6); stroke-width: 3; stroke-dasharray: 26 20; }
.sc-kerb { stroke: #cfd8cf; stroke-width: 6; }
.sc-veh { fill: #fff; stroke: var(--ink); stroke-width: 3; }
.sc-cab { fill: #dfe6e2; stroke: var(--ink); stroke-width: 3; }
.sc-tank { fill: #c9d3ce; stroke: var(--ink); stroke-width: 2; }
.sc-bed { fill: #e9eee9; stroke: var(--ink); stroke-width: 2; }
.sc-bar { stroke: var(--ink); stroke-width: 6; stroke-linecap: round; }
.sc-trailer { fill: var(--trail); stroke: var(--ink); stroke-width: 3; }
.sc-roof { stroke: rgba(255, 255, 255, .5); stroke-width: 2; fill: none; }
.sc-loo { fill: var(--trail); stroke: var(--ink); stroke-width: 3; }
.sc-loo-top { fill: rgba(255, 255, 255, .85); }
.sc-drive { fill: #e2e4dc; }
.sc-ground { fill: #c9d6c2; }
.sc-house { fill: #f4f1ec; stroke: var(--ink); stroke-width: 3; }
.sc-lbl { font-size: 22px; font-weight: 700; fill: var(--ink); paint-order: stroke; stroke: #f4f7f0; stroke-width: 5px; stroke-linejoin: round; }
.sc-lbl--sm { font-size: 19px; }
.sc-lbl--light { fill: #fff; stroke: none; }
.h-truck .sc-lbl { stroke: none; font-size: 20px; }
.sc-note { font-size: 22px; font-weight: 800; }
.sc-note--green { fill: var(--trail); paint-order: stroke; stroke: #f4f7f0; stroke-width: 6px; }
.sc-dim path { fill: none; stroke: var(--red); stroke-width: 3; }
.sc-dimtxt { font-size: 24px; font-weight: 800; fill: var(--red); paint-order: stroke; stroke: #f4f7f0; stroke-width: 7px; stroke-linejoin: round; }
.sc-dimtxt--on { stroke: none; fill: #fff; }
.sc--head .sc-dimtxt--on { fill: var(--red); stroke: #f4f7f0; }
.sc-dimtxt--dark { fill: var(--ink); }
.sc-scale path { stroke: var(--ink); stroke-width: 3; fill: none; }
.sc-scale text { font-size: 20px; font-weight: 700; fill: var(--ink); }
.h-sonar { fill: none; stroke: var(--brand); stroke-width: 10; opacity: 0; }
.h-reach { fill: rgba(80, 170, 38, .1); stroke: var(--brand); stroke-width: 3; stroke-dasharray: 14 10; }
.h-hose { fill: none; stroke: var(--brand); stroke-width: 9; stroke-linecap: round; }
.h-flow { fill: none; stroke: rgba(255, 255, 255, .75); stroke-width: 3; stroke-dasharray: 4 18; stroke-linecap: round; }
.h-gap, .p-gap { fill: none; stroke: var(--red); stroke-width: 4; stroke-dasharray: 10 9; }
.g-hedge { stroke: #2f7a3b; stroke-width: 22; stroke-linecap: round; stroke-dasharray: 2 18; }
.g-post { fill: var(--ink); }
.g-post.is-hit { fill: var(--red); }
.g-hit, .k-hit { fill: url(#hatch); stroke: var(--red); stroke-width: 2; }
.k-trunk { fill: #6b4f2a; }
.k-canopy { fill: rgba(47, 122, 59, .55); stroke: #2f7a3b; stroke-width: 3; }
.k-under { stroke: var(--red); stroke-width: 3; stroke-dasharray: 10 8; fill: none; }
.k-door { fill: none; stroke: rgba(255, 255, 255, .7); stroke-width: 3; }
.k-glass { fill: #c9d6dc; }
.k-wheel { fill: #2b2f33; stroke: #8b9590; stroke-width: 6; }
.p-ok { fill: rgba(80, 170, 38, .25); }
.p-edge { fill: rgba(224, 161, 0, .35); }
.p-ruler path { stroke: var(--ink); stroke-width: 2.5; }
.p-zone { font-size: 17px; font-weight: 800; fill: var(--trail); }
.p-socket { fill: var(--brand); stroke: var(--ink); stroke-width: 2.5; }
.p-cable { fill: none; stroke: #e0a100; stroke-width: 7; stroke-linecap: round; }
.p-flow { fill: none; stroke: #fff3c4; stroke-width: 2.5; stroke-dasharray: 3 16; stroke-linecap: round; }
.p-plug { fill: #e0a100; stroke: var(--ink); stroke-width: 2; }
.p-gen rect { fill: #fff; stroke: var(--ink); stroke-width: 3; stroke-dasharray: 8 6; }

/* ---------- servicing ---------- */
.svc { position: relative; background: var(--trail); color: rgba(255, 255, 255, .88); padding: clamp(64px, 7vw, 110px) 0; overflow: clip; }
.svc__bg { position: absolute; inset: -20% 0; pointer-events: none; opacity: .5; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='400' viewBox='0 0 600 400'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.12' stroke-width='1.2'%3E%3Cpath d='M-20 60c80-40 160 30 240 0s150-60 230-20 110 40 170 10'/%3E%3Cpath d='M-20 110c90-40 150 40 240 5s160-55 230-15 110 45 170 12'/%3E%3Cpath d='M-20 160c80-30 170 40 250 8s150-50 220-12 110 40 170 14'/%3E%3Cpath d='M-20 215c100-45 160 35 240 4s160-60 240-18 100 35 160 10'/%3E%3Cpath d='M-20 270c90-35 170 40 250 6s150-55 230-15 100 40 160 12'/%3E%3Cpath d='M-20 325c80-40 160 30 240 2s160-50 230-12 110 40 170 10'/%3E%3Cpath d='M-20 380c90-40 160 35 250 4s150-55 220-15 110 45 170 12'/%3E%3C/g%3E%3C/svg%3E"), radial-gradient(ellipse 60% 60% at 20% 40%, rgba(12, 42, 32, .55), transparent 70%); background-size: 900px auto, 100% 100%; }
.svc__grid { position: relative; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(36px, 6vw, 110px); align-items: center; }
.svc__media { position: relative; justify-self: start; width: min(100%, calc(min(70svh, 640px) * 1.02)); padding: 0 0 34px; }
.svc__ph { position: relative; aspect-ratio: 1 / .98; border-radius: var(--dome); overflow: clip; box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .55); }
.svc__ph img { position: absolute; left: 0; top: 0; width: 100%; height: 115%; object-fit: cover; object-position: 58% 50%; } /* the square crop keeps the hose, the toilet and the cab */
.dial { position: absolute; right: 18px; bottom: 0; display: flex; align-items: center; gap: 14px; padding: 14px 20px 14px 14px; border-radius: 22px; background: var(--white); color: var(--ink); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .45); }
.dial svg { width: 92px; height: 92px; flex: none; }
.dial__face { fill: var(--chalk); stroke: var(--ink); stroke-width: 3; }
.dial__zone { fill: none; stroke: var(--brand); stroke-width: 10; }
.dial__ticks path { stroke: var(--ink); stroke-width: 2.5; }
.dial__hand { stroke: var(--red); stroke-width: 4; stroke-linecap: round; }
.dial__hub { fill: var(--ink); }
.dial p { display: grid; gap: 2px; }
.dial strong { font: 800 1.6rem/1 var(--display); font-stretch: 80%; }
.dial span { font-size: .9rem; font-weight: 600; color: var(--muted); }
.svc__copy { display: grid; gap: 22px; }
.svc__lede { font-size: clamp(1.0625rem, 1.3vw, 1.22rem); }
.spec { display: grid; }
.spec li { display: grid; grid-template-columns: minmax(150px, .34fr) 1fr; gap: 18px; align-items: baseline; padding: 16px 0; border-top: 1px solid rgba(255, 255, 255, .18); }
.spec strong { font: 800 clamp(1.7rem, 2.4vw, 2.4rem)/1 var(--display); font-stretch: 78%; color: var(--white); white-space: nowrap; }
.spec p { font-size: 1.0625rem; }

/* ---------- on the day ---------- */
.day { position: relative; background: var(--white); padding: clamp(52px, 5vw, 84px) 0; overflow: clip; }
.day__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(36px, 6vw, 100px); align-items: center; }
.day__copy { display: grid; gap: 22px; justify-items: start; }
.day__copy .rules { justify-self: stretch; }
.day__terms { font-weight: 700; color: var(--trail); }
.wait { position: relative; display: grid; gap: 22px; padding: clamp(22px, 2.6vw, 36px); border-radius: 26px; background: var(--chalk); box-shadow: 0 0 0 1px var(--line); }
.wait__h { font: 800 clamp(1.4rem, 1.9vw, 1.9rem)/1.08 var(--display); font-stretch: 82%; color: var(--ink); }
.wait__chart { position: relative; display: grid; gap: 22px; padding-top: 30px; }
.wait__axis { position: absolute; left: 0; right: 0; top: 0; display: flex; justify-content: space-between; font-size: .875rem; font-weight: 700; color: var(--muted); }
.wait__axis span:last-child { margin-right: -4px; }
.wait__row { display: grid; gap: 8px; }
.wait__lbl { font-size: 1rem; color: var(--text); }
.wait__lbl strong { color: var(--ink); margin-right: 6px; }
.wait__bar { position: relative; height: 26px; border-radius: 8px; background: var(--white); overflow: clip; box-shadow: inset 0 0 0 1px var(--line); }
.wait__free { position: absolute; left: 0; top: 0; bottom: 0; width: var(--w); background: var(--brand); border-radius: 8px 0 0 8px; transform-origin: left; }
.wait__paid { position: absolute; left: var(--w); right: 0; top: 0; bottom: 0; background: repeating-linear-gradient(45deg, rgba(210, 69, 43, .5), rgba(210, 69, 43, .5) 6px, rgba(210, 69, 43, .15) 6px, rgba(210, 69, 43, .15) 12px); transform-origin: left; }
.wait__head { position: absolute; top: 26px; bottom: -6px; left: 0; width: 3px; border-radius: 3px; background: var(--ink); opacity: 0; }
.wait__cap { display: flex; gap: 12px; align-items: flex-start; font-size: .98rem; font-weight: 600; color: var(--text); }
.wait__key { flex: none; width: 22px; height: 22px; margin-top: 2px; border-radius: 6px; background: repeating-linear-gradient(45deg, rgba(210, 69, 43, .6), rgba(210, 69, 43, .6) 4px, rgba(210, 69, 43, .18) 4px, rgba(210, 69, 43, .18) 8px); }
.visit { position: relative; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 20px clamp(20px, 3vw, 44px); margin-top: clamp(30px, 3vw, 48px); padding: 14px clamp(22px, 3vw, 40px) 14px 14px; border-radius: 26px; background: var(--ink); color: var(--white); overflow: clip; }
.visit::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 40% 120% at var(--vx, 20%) 50%, rgba(31, 107, 83, .8), transparent 70%); pointer-events: none; }
.visit > * { position: relative; }
.visit__ph { width: clamp(100px, 8.5vw, 130px); aspect-ratio: 1; border-radius: 30px 30px 8px 8px; overflow: clip; }
.visit__ph img { width: 100%; height: 100%; object-fit: cover; }
.visit__t { font: 700 clamp(1.2rem, 1.7vw, 1.6rem)/1.25 var(--display); font-stretch: 90%; }
.visit__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; }
.visit__tel { display: inline-flex; align-items: center; min-height: 44px; font: 800 1.35rem/1 var(--display); font-stretch: 85%; color: var(--white); text-decoration: none; white-space: nowrap; }
.visit__tel:hover { color: var(--brand-hi); }

/* ---------- responsive ---------- */
@media (max-width: 1180px) {
  .dop__facts { grid-template-columns: repeat(2, auto); }
  .chk__tool { grid-template-columns: 1fr; }
  .chk__side { grid-template-columns: 1fr 1fr; align-items: start; }
  .chk__tabs { grid-column: 1 / -1; grid-template-columns: repeat(4, 1fr); }
  .chk__panel { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; align-items: start; }
  .chk__board { order: -1; }
}
@media (max-width: 960px) {
  .dop { --fs: min(62vw, 34svh); min-height: 0; }
  .dop__grid, .days__grid, .svc__grid, .day__grid { grid-template-columns: minmax(0, 1fr); }
  .dop__grid { gap: 14px; }
  .dop__media { --pl: 46px; order: -1; justify-self: center; padding: 40px 6px 48px var(--pl); }
  .dop__dims { top: 40px; }
  .dop__lbl { font-size: .875rem; padding: 5px 10px; }
  .dop__lbl--h { top: calc(40px + var(--fs) / 2); }
  .dop__lbl--l { top: calc(40px + var(--fs) * 1.07); }
  .dop__lbl--w { top: calc(40px - var(--fs) * .07); }
  .dop__title { font-size: clamp(2.1rem, 9vw, 3rem); }
  .dop__copy { gap: 18px; }
  .days__media { height: min(62svh, 520px); }
  .svc__media { justify-self: center; }
  .chk__side, .chk__panel { grid-template-columns: 1fr; }
  .chk__tabs { grid-template-columns: 1fr 1fr; }
  .chk__board { position: sticky; top: calc(var(--tb) + var(--hh) + 6px); z-index: 2; padding: 8px; border-radius: 18px; }
  .chk__scale { font-size: .875rem; padding-top: 8px; }
  .visit { grid-template-columns: auto 1fr; }
  .visit__actions { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .dop__facts { grid-template-columns: 1fr 1fr; }
  .dop__actions .btn { flex: 1 1 100%; }
  .wkcard { left: 0; right: auto; padding: 14px; }
  .wkcard__days { grid-template-columns: repeat(7, 34px); gap: 4px; }
  .ring48 { width: 104px; }
  .ring48 strong { font-size: 2rem; }
  .ring48 span { max-width: 7ch; font-size: .75rem; line-height: 1.1; text-align: center; } /* "hours notice" on two lines inside the small ring */
  .spec li { grid-template-columns: 1fr; gap: 6px; }
  .visit { grid-template-columns: 1fr; padding: 18px; }
  .visit__ph { display: none; }
  /* the drawing shrinks to a third on a phone, so its words grow to stay readable */
  .chk__svg .sc-lbl { font-size: 36px; stroke-width: 8px; }
  .chk__svg .sc-lbl--sm { font-size: 32px; }
  .chk__svg .sc-dimtxt { font-size: 44px; stroke-width: 10px; }
  .chk__svg .sc-note { font-size: 40px; }
  .chk__svg .sc-scale text { font-size: 34px; }
  .chk__svg .p-zone { font-size: 30px; }
  .chk__svg .sc-dim path { stroke-width: 5; }
  .day__terms { display: inline-flex; align-items: center; min-height: 44px; }
}
