/* Glenrothes Motor Services — design system
   --gut  : every foreground edge (100px at 1440+, scales down to 20px)
   --s-*  : content-aware section rhythm (strip / compact / standard / major) and heading-to-content gap
   --tx / --tx2 / --bd / --inv : surface tokens, flipped by dark contexts so components theme themselves */
:root{
  --red:#B0040D;--red-dk:#8C030A;--gold:#E09A2A;
  --k0:#0F0F0E;--k1:#151514;--k2:#1D1D1B;--k3:#262624;--k4:#383834;
  --ink:#1E1E1C;--paper:#F7F6F2;--stone:#EDEBE5;--stone-2:#E2DFD7;--line:#DCD8CE;--line-2:#C4BFB2;--muted:#5A5852;--on-dark:#CFCBC2;--dim:#96928A;
  --tx:var(--ink);--tx2:var(--muted);--bd:var(--line);--inv:#fff;--type-c:#ECEAE3;
  --gut:20px;--hdr:72px;
  --s-strip:clamp(20px,2vw,32px);--s-c:clamp(32px,3.4vw,48px);--s-std:clamp(40px,4.6vw,64px);--s-maj:clamp(52px,5.8vw,84px);--s-head:clamp(18px,2vw,28px);
  --r:2px;--ease-out:cubic-bezier(.2,.7,.2,1);--ease-io:cubic-bezier(.6,0,.2,1);
  /* motion: micro 200ms (icons, colour), standard 320ms (hover fills, panels), large 550ms (reveals, accordions) */
  --d-m:.2s;--d-s:.32s;--d-l:.55s;--t:var(--d-s) var(--ease-out);--tm:var(--d-m) var(--ease-out);
  --fh:"Barlow Condensed",Impact,"Arial Narrow",sans-serif;--fb:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;
}
@media(min-width:768px){:root{--gut:40px}}
@media(min-width:1024px){:root{--gut:clamp(48px,6.945vw,100px);--hdr:84px}}
.dark,.ihero,.hhero,.ftr,.band,.panel,.teaser,.ccard:not(.ccard--light){--tx:#fff;--tx2:var(--on-dark);--bd:var(--k4);--inv:var(--k1);--type-c:#1F1F1D;color:var(--tx)}
.stone{--type-c:var(--stone-2)}
.ihero{--type-c:#1A1A18}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hdr) + 16px);overflow-x:clip}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-stopped{overflow:clip}
@media(prefers-reduced-motion:no-preference){html:not(.lenis){scroll-behavior:smooth}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.55 var(--fb);font-kerning:normal;overflow-x:clip;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
p{margin:0 0 1em}
h1,h2,h3,h4{font-family:var(--fh);font-weight:800;line-height:.95;letter-spacing:0;margin:0 0 .35em;text-transform:uppercase;text-wrap:balance}
.d1{font-size:clamp(44px,6.4vw,108px);line-height:.88;letter-spacing:-.01em}
.d2{font-size:clamp(32px,3.4vw,54px);line-height:.92}
.d3{font-size:clamp(26px,2.3vw,38px)}
h3,.d4{font-size:clamp(21px,1.6vw,26px);line-height:1;letter-spacing:.01em}
.wrap{width:100%;padding-inline:var(--gut)}
.lead{font-size:clamp(17px,1.2vw,19px);line-height:1.55;color:var(--tx2)}
.small{font-size:15px;color:var(--tx2)}
.muted{color:var(--tx2)}
/* inline links: the underline lifts and turns red */
.ulink,.prose a{text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent);transition:color var(--tm),text-decoration-color var(--tm),text-underline-offset var(--tm)}
.ulink:hover,.prose a:hover{color:var(--red);text-decoration-color:currentColor;text-underline-offset:5px}
.ico{width:20px;height:20px;flex:none}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:12px 16px}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
:focus:not(:focus-visible){outline:0}
.faq summary:focus-visible,.snav a:focus-visible,.dd__grid a:focus-visible,.dd__all:focus-visible,.tiles a:focus-visible,.idx__list a:focus-visible,.way:focus-visible{outline-offset:-2px}

/* ---------- section rhythm ---------- */
main>section,.ftr{position:relative;isolation:isolate}
.sec{padding-block:var(--s-std)}
.sec--c{padding-block:var(--s-c)}
.sec--m{padding-block:var(--s-maj)}
.sec--s{padding-block:var(--s-strip)}
.dark{background:var(--k1)}
.stone{background:var(--stone)}
.sh{margin-bottom:var(--s-head)}
.sh h2{margin:0}
.sh .lead{margin:14px 0 0;max-width:58ch}
.kicker{display:flex;align-items:center;gap:10px;margin:0 0 12px;font:600 12.5px/1.2 var(--fb);letter-spacing:.18em;text-transform:uppercase;color:var(--tx2)}
.kicker::before{content:"";width:20px;height:2px;background:var(--gold);flex:none}
.kicker:has(svg)::before{display:none}
.kicker .ico{width:16px;height:16px;color:var(--red)}
.dark .kicker .ico,.band .kicker .ico,.teaser .ico{color:var(--gold)}
.num{font:700 12px/1 var(--fb);letter-spacing:.16em;color:var(--gold)}

/* ---------- background system: stack layers inside .fx ---------- */
.fx{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;color:var(--tx)}
.fx>*{position:absolute;display:block}
/* 12-column architectural linework, aligned to the gutter */
.fx-cols{inset:0;opacity:.055;background-image:linear-gradient(90deg,currentColor 1px,transparent 1px);background-size:calc((100% - 2 * var(--gut)) / 6) 100%;background-position:var(--gut) 0;-webkit-mask-image:linear-gradient(transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(transparent,#000 18%,#000 82%,transparent)}
@media(min-width:1024px){.fx-cols{background-size:calc((100% - 2 * var(--gut)) / 12) 100%}}
/* measurement grid: 24px minor, 96px major */
.fx-grid{inset:0;--g:rgba(30,30,28,.075);--g2:rgba(30,30,28,.035);background-image:linear-gradient(var(--g) 1px,transparent 1px),linear-gradient(90deg,var(--g) 1px,transparent 1px),linear-gradient(var(--g2) 1px,transparent 1px),linear-gradient(90deg,var(--g2) 1px,transparent 1px);background-size:96px 96px,96px 96px,24px 24px,24px 24px;background-position:var(--gut) 0;-webkit-mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent)}
.fx-grid--dark{--g:rgba(255,255,255,.065);--g2:rgba(255,255,255,.028)}
.fx-grid--r{-webkit-mask-image:radial-gradient(ellipse 55% 85% at 100% 50%,#000 25%,transparent 75%);mask-image:radial-gradient(ellipse 55% 85% at 100% 50%,#000 25%,transparent 75%)}
.fx-grid--l{-webkit-mask-image:radial-gradient(ellipse 55% 85% at 0 50%,#000 25%,transparent 75%);mask-image:radial-gradient(ellipse 55% 85% at 0 50%,#000 25%,transparent 75%)}
.fx-grid--fade{-webkit-mask-image:radial-gradient(ellipse 75% 80% at 50% 45%,#000 20%,transparent 78%);mask-image:radial-gradient(ellipse 75% 80% at 50% 45%,#000 20%,transparent 78%)}
/* ruler ticks along an edge: 8px, 48px and 240px divisions */
.fx-ruler{left:var(--gut);right:var(--gut);height:14px;opacity:.3;background:linear-gradient(90deg,currentColor 1px,transparent 1px) 0 100%/8px 5px repeat-x,linear-gradient(90deg,currentColor 1px,transparent 1px) 0 100%/48px 9px repeat-x,linear-gradient(90deg,currentColor 1px,transparent 1px) 0 100%/240px 14px repeat-x}
.fx-ruler--b{bottom:0}
.fx-ruler--t{top:0;transform:scaleY(-1)}
/* film grain */
.fx-grain{inset:0;opacity:.11;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* tonal hatched panel with a single red tick */
.fx-panel{top:0;bottom:0;width:36%;background:repeating-linear-gradient(-45deg,rgba(255,255,255,.035) 0 1px,transparent 1px 9px),var(--k2)}
.fx-panel::before{content:"";position:absolute;top:0;left:0;width:64px;height:3px;background:var(--red)}
.fx-panel--l{left:0}
.fx-panel--r{right:0}
.fx-panel--lt{background:repeating-linear-gradient(-45deg,rgba(30,30,28,.06) 0 1px,transparent 1px 9px),var(--stone-2)}
.fx-panel--lt::before{background:var(--ink)}
@media(max-width:1023px){.fx-panel{width:100%;height:42%;top:auto}.fx-panel::before{display:none}}
/* diagonal tonal slab */
.fx-slab{inset:0;background:repeating-linear-gradient(-45deg,rgba(30,30,28,.05) 0 1px,transparent 1px 10px),var(--stone-2);clip-path:polygon(64% 0,100% 0,100% 100%,52% 100%)}
.fx-slab--pair{clip-path:polygon(0 0,42% 0,30% 100%,0 100%)}
/* oversized cropped type, tonal not outlined */
.fx-type{font:800 clamp(140px,22vw,380px)/.78 var(--fh);text-transform:uppercase;letter-spacing:-.02em;white-space:nowrap;color:var(--type-c);user-select:none}
.fx-type--motf{left:-.03em;bottom:-.14em}
.fx-type--ahero{left:-.04em;bottom:-.2em;font-size:clamp(100px,18vw,320px)}
/* technical drawings */
.fx-profile{height:auto;opacity:.12}
.fx-profile text{fill:currentColor;stroke:none;font:600 13px var(--fb);letter-spacing:.22em}
.fx-profile .cl{opacity:.6}
.fx-profile .dim{opacity:.75}
.fx-profile--hero{left:var(--gut);bottom:28px;width:min(760px,48%);opacity:.14}
.fx-profile--intro{right:-3%;bottom:-4%;width:min(980px,64%);opacity:.11}
.fx-profile--covers{right:-8%;top:8%;width:min(1100px,72%);opacity:.08}
.fx-profile--ftr{right:var(--gut);top:24px;width:min(560px,42%);opacity:.06}
@media(max-width:1023px){.fx-profile--hero{display:none}.fx-profile--intro{width:120%;right:-30%;bottom:auto;top:0}.fx-profile--covers{width:140%;top:auto;bottom:0}.fx-profile--ftr{width:90%;top:auto;bottom:60px}}
.fx-wave{left:0;bottom:0;width:100%;height:clamp(60px,9vw,130px);color:var(--red);opacity:.6}
.fx-tread{left:0;right:0;bottom:0;height:150px;opacity:.06;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cpath d='M0 48L24 20L48 48M0 20L24-8L48 20' fill='none' stroke='%231E1E1C' stroke-width='7'/%3E%3C/svg%3E") 0 0/48px 48px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 20%,#000 80%,transparent);mask-image:linear-gradient(90deg,transparent,#000 20%,#000 80%,transparent)}

/* ---------- image frames ---------- */
.ph{position:relative;overflow:hidden;display:flex;align-items:flex-end;color:#99958c;background-color:var(--k2);background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(160deg,var(--k3),var(--k1));background-size:24px 24px,24px 24px,100% 100%}
.ph::after{content:attr(data-photo);position:relative;z-index:1;margin:14px;padding:6px 10px;font:600 10.5px/1.3 var(--fb);letter-spacing:.14em;text-transform:uppercase;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.08)}
.ph>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.serv__img .ph>img,.tyre__img .ph>img,.motf__img .ph>img,.intro__img .ph>img,.ahero__img .ph>img,.svc-note .ph>img{transition:transform 1.2s var(--ease-out)}
@media(hover:hover){.serv:hover .serv__img .ph>img,.tyre:hover .tyre__img .ph>img,.motf__grid:hover .motf__img .ph>img,.intro:hover .intro__img .ph>img,.ahero__grid:hover .ahero__img .ph>img,.svc-note:hover .ph>img{transform:scale(1.035)}}
.ph>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s ease}
.ph>video.is-on{opacity:1}
.ph:has(>img)::after{display:none}
.wipe{position:absolute;inset:0;z-index:4;background:var(--k3);transform:scaleX(0);transform-origin:right}
/* crop marks: works on photos and frames */
.crop{position:relative}
.crop::before{content:"";position:absolute;inset:10px;z-index:3;pointer-events:none;--c:rgba(255,255,255,.6);background:linear-gradient(var(--c),var(--c)) 0 0/16px 1px,linear-gradient(var(--c),var(--c)) 0 0/1px 16px,linear-gradient(var(--c),var(--c)) 100% 0/16px 1px,linear-gradient(var(--c),var(--c)) 100% 0/1px 16px,linear-gradient(var(--c),var(--c)) 0 100%/16px 1px,linear-gradient(var(--c),var(--c)) 0 100%/1px 16px,linear-gradient(var(--c),var(--c)) 100% 100%/16px 1px,linear-gradient(var(--c),var(--c)) 100% 100%/1px 16px;background-repeat:no-repeat}
/* chamfered corner, the site's cut-corner language */
.chamfer{--ch:clamp(24px,3vw,44px);-webkit-mask-image:linear-gradient(225deg,transparent var(--ch),#000 calc(var(--ch) + .5px));mask-image:linear-gradient(225deg,transparent var(--ch),#000 calc(var(--ch) + .5px))}

/* ---------- buttons and links ---------- */
/* buttons: the fill wipes in from the left, the arrow nudges forward, the phone tilts, the pin lifts; pressing sinks 1px */
.btn{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border:1.5px solid transparent;border-radius:var(--r);font:700 15px/1 var(--fb);letter-spacing:.07em;text-transform:uppercase;text-decoration:none;cursor:pointer;overflow:hidden;white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:color var(--t),border-color var(--t),background-color var(--t),transform .12s ease,opacity var(--tm)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;transform:scaleX(0);transform-origin:right;transition:transform var(--d-s) var(--ease-io)}
.btn:is(:hover,:focus-visible)::before{transform:scaleX(1);transform-origin:left}
.btn:active{transform:translateY(1px)}
.btn .ico{width:18px;height:18px;transition:transform var(--tm)}
.btn:is(:hover,:focus-visible) .arr{transform:translateX(4px)}
.btn:is(:hover,:focus-visible) .ico:first-child:not(.arr){transform:rotate(-10deg)}
.btn[href^="https://maps"]:is(:hover,:focus-visible) .ico:first-child{transform:translateY(-2px)}
.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;opacity:.55}
.btn:disabled::before{transform:scaleX(0)}
.btn:disabled:active{transform:none}
/* busy: label stays for screen readers, a spinner replaces it visually */
.btn[aria-busy=true]{color:transparent!important;opacity:1;cursor:progress}
.btn[aria-busy=true]::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.btn--line[aria-busy=true]::after{border-color:color-mix(in srgb,var(--tx) 25%,transparent);border-top-color:var(--tx)}
.btn--sm{min-height:46px;padding:0 18px;font-size:14px}
.btn--red{background:var(--red);color:#fff}
.btn--red::before{background:var(--red-dk)}
.btn--line{border-color:currentColor;color:var(--tx);background:transparent}
.btn--line::before{background:var(--tx)}
.btn--line:is(:hover,:focus-visible){color:var(--inv);border-color:var(--tx)}
.btns{display:flex;flex-wrap:wrap;gap:10px}
/* text links: the rule redraws left to right and the arrow moves; nothing changes width */
.tlink{position:relative;display:inline-flex;align-items:center;gap:10px;min-height:44px;font:700 14px/1 var(--fb);letter-spacing:.09em;text-transform:uppercase;text-decoration:none;transition:color var(--tm)}
.tlink::after{content:"";position:absolute;left:0;right:0;bottom:8px;height:1.5px;background:currentColor;transform-origin:right}
.tlink:is(:hover,:focus-visible)::after{animation:redraw var(--d-l) var(--ease-io)}
.tlink .ico{width:16px;height:16px;transition:transform var(--tm)}
.tlink:is(:hover,:focus-visible){color:var(--red)}
.tlink:is(:hover,:focus-visible) .ico{transform:translateX(5px)}
.dark .tlink:is(:hover,:focus-visible){color:var(--gold)}
@keyframes redraw{0%{transform:scaleX(1);transform-origin:right}45%{transform:scaleX(0);transform-origin:right}46%{transform:scaleX(0);transform-origin:left}100%{transform:scaleX(1);transform-origin:left}}

/* ---------- header ---------- */
.util{background:var(--k0);color:var(--on-dark);font:500 13.5px/1 var(--fb)}
.util .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:38px}
.util a{text-decoration:none;transition:color var(--t)}
.util a:hover{color:#fff}
.util__addr{display:none;align-items:center;gap:8px}
.util__addr .ico{width:15px;height:15px;color:var(--gold)}
@media(min-width:768px){.util__addr{display:inline-flex}}
.status{display:inline-flex;align-items:center;gap:10px;margin:0}
.status i{width:7px;height:7px;border-radius:50%;background:#77746c;flex:none}
.status.is-open i{background:var(--gold);box-shadow:0 0 0 3px rgba(224,154,42,.22)}
.hdr{position:sticky;top:0;z-index:50;background:rgba(247,246,242,.9);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line);transition:box-shadow var(--t),background-color var(--t)}
.hdr.is-stuck{background:rgba(247,246,242,.96);box-shadow:0 12px 28px -24px rgba(0,0,0,.45)}
.hdr__in{display:flex;align-items:center;gap:20px;min-height:var(--hdr)}
/* header badge: larger than the bar and hanging below it; settles inside the bar once the page scrolls or the menu opens */
.logo{display:flex;align-items:center;margin-right:auto;text-decoration:none;transition:opacity var(--t)}
.logo:hover{opacity:.85}
.logo--hdr{--lg:84px;--lg-s:54px;position:relative;z-index:2;align-self:flex-start;margin-top:8px;margin-bottom:calc(var(--hdr) - var(--lg) - 8px);transition:opacity var(--t),margin var(--d-s) var(--ease-out)}
.logo--hdr img{height:var(--lg);width:auto;filter:drop-shadow(0 6px 10px rgba(0,0,0,.28));transition:height var(--d-s) var(--ease-out)}
.hdr.is-stuck .logo--hdr,html.menu-open .logo--hdr{margin-top:calc((var(--hdr) - var(--lg-s)) / 2);margin-bottom:calc((var(--hdr) - var(--lg-s)) / 2)}
.hdr.is-stuck .logo--hdr img,html.menu-open .logo--hdr img{height:var(--lg-s)}
@media(min-width:1024px){.logo--hdr{--lg:112px;--lg-s:64px}}
.nav{display:none}
.nav>ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:2px}
.nav>ul>li>a:hover,.nav>ul>li>button:hover{color:var(--ink)}
.nav>ul>li>a,.nav>ul>li>button{position:relative;display:flex;align-items:center;gap:6px;min-height:48px;padding:0 14px;font:600 14px/1 var(--fb);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--ink);background:none;border:0;cursor:pointer;transition:color var(--t)}
.nav>ul>li>a::after,.nav>ul>li>button::after{content:"";position:absolute;left:14px;right:14px;bottom:9px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:right;transition:transform var(--t)}
.nav>ul>li>a:is(:hover,:focus-visible)::after,.nav>ul>li>button:is(:hover,:focus-visible)::after,.nav .dd.open>button::after,.nav a[aria-current=page]::after,.nav .is-current>button::after{transform:scaleX(1);transform-origin:left}
.nav a[aria-current=page],.nav .is-current>button{color:var(--red)}
.dd{position:relative}
.dd>button .ico{width:14px;height:14px;transition:transform var(--t)}
.dd__panel{position:absolute;top:calc(100% + 10px);left:-16px;width:min(640px,80vw);background:#fff;border:1px solid var(--line);border-top:2px solid var(--red);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity var(--d-m) ease,transform var(--d-m) ease,visibility 0s linear var(--d-m);box-shadow:0 28px 48px -32px rgba(0,0,0,.4)}
.dd__panel::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.dd.open .dd__panel{opacity:1;visibility:visible;transform:none;transition:opacity var(--d-s) var(--ease-out),transform var(--d-s) var(--ease-out),visibility 0s}
.dd.open>button .ico{transform:rotate(180deg)}
.dd__grid a{opacity:1;transition:background var(--tm),opacity var(--d-s) var(--ease-out)}
.dd:not(.open) .dd__grid a{opacity:0}
.dd.open .dd__grid a:nth-child(n+3){transition-delay:0s,30ms}.dd.open .dd__grid a:nth-child(n+5){transition-delay:0s,60ms}.dd.open .dd__grid a:nth-child(n+7){transition-delay:0s,90ms}
.dd__grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
.dd__grid a{position:relative;display:grid;grid-template-columns:22px 1fr;gap:3px 12px;align-items:center;min-height:62px;padding:12px 16px;background:#fff;text-decoration:none}
.dd__grid a::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--red);transform:scaleY(0);transition:transform var(--tm)}
.dd__grid a:is(:hover,:focus-visible)::before{transform:scaleY(1)}
.dd__grid a .ico{grid-row:span 2;color:var(--red);align-self:start;margin-top:1px;transition:transform var(--tm)}
.dd__grid a:is(:hover,:focus-visible) .ico{transform:translateX(2px)}
.dd__grid a b{font:700 15px/1.2 var(--fb)}
.dd__grid a small{grid-column:2;color:var(--muted);font-size:13px;line-height:1.3}
.dd__grid a:is(:hover,:focus-visible){background:var(--paper)}
.dd__grid a:is(:hover,:focus-visible) b{color:var(--red)}
.dd__grid b{transition:color var(--tm)}
.dd__grid a:last-child:nth-child(odd){grid-column:span 2}
.dd__all{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:0 16px;font:700 13px/1 var(--fb);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border-top:1px solid var(--line);transition:background var(--t),color var(--t)}
.dd__all .ico{width:16px;height:16px;transition:transform var(--t)}
.dd__all:is(:hover,:focus-visible){background:var(--ink);color:#fff}
.dd__all:is(:hover,:focus-visible) .ico{transform:translateX(4px)}
.hdr__tel{display:none;align-items:center;gap:8px;min-height:48px;font:700 17px/1 var(--fb);letter-spacing:.02em;text-decoration:none;transition:color var(--t)}
.hdr__tel .ico{width:18px;height:18px;color:var(--red);transition:transform var(--tm)}
.hdr__tel:is(:hover,:focus-visible){color:var(--red)}
.hdr__tel:is(:hover,:focus-visible) .ico{transform:rotate(-10deg)}
.hdr__in>.btn{display:none}
.menu-btn{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1.5px solid var(--line-2);border-radius:var(--r);background:transparent;color:var(--ink);cursor:pointer;transition:border-color var(--t),background-color var(--t)}
.menu-btn:hover{border-color:var(--ink)}
.menu-btn:active{background:var(--stone)}
.menu-btn[aria-expanded=true]{border-color:var(--ink);background:var(--ink);color:#fff}
.menu-btn .ico{width:22px;height:22px}
.menu-btn span{display:flex;transition:transform var(--tm),opacity var(--tm)}
.menu-btn .i-close{position:absolute;opacity:0;transform:rotate(-90deg)}
.menu-btn[aria-expanded=true] .i-open{opacity:0;transform:rotate(90deg)}
.menu-btn[aria-expanded=true] .i-close{opacity:1;transform:none}
.mnav{position:absolute;left:0;right:0;top:100%;border-top:1px solid var(--line);border-bottom:2px solid var(--ink);background:var(--paper);max-height:calc(100dvh - var(--hdr));overflow:auto;overscroll-behavior:contain;visibility:hidden;opacity:0;clip-path:inset(0 0 100% 0);transition:clip-path var(--d-s) var(--ease-io),opacity var(--d-m) ease,visibility 0s linear var(--d-s)}
.mnav.open{visibility:visible;opacity:1;clip-path:inset(0 0 0 0);transition:clip-path var(--d-l) var(--ease-io),opacity var(--d-m) ease,visibility 0s}
.mnav li{opacity:0;transform:translateY(8px);transition:opacity var(--d-m) ease,transform var(--d-m) ease}
.mnav.open li{opacity:1;transform:none;transition:opacity var(--d-s) var(--ease-out),transform var(--d-s) var(--ease-out);transition-delay:calc(var(--i,0) * 35ms + 120ms)}
html.menu-open{overflow:hidden}
html.menu-open .mbar{transform:translateY(110%)}
.hdr__in{position:relative}
.mnav ul{list-style:none;margin:0;padding:0}
.mnav__main{padding-top:8px}
.mnav__main a{position:relative;display:flex;align-items:center;min-height:56px;font:800 28px/1 var(--fh);text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--line);-webkit-tap-highlight-color:transparent;transition:color var(--tm),background-color var(--tm)}
.mnav__main a::after{content:"";margin-left:auto;width:9px;height:9px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);opacity:.35;transition:opacity var(--tm),transform var(--tm)}
.mnav__main a:is(:hover,:focus-visible){color:var(--red)}
.mnav__main a:is(:hover,:focus-visible)::after{opacity:1;transform:translateX(3px) rotate(45deg)}
.mnav__main a:active{background:var(--stone)}
.mnav__main a[aria-current=page]{color:var(--red);box-shadow:inset 3px 0 0 var(--red);padding-left:14px}
.mnav__main a[aria-current=page]::after{opacity:1}
.mnav__svc{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;padding:12px 0 4px}
.mnav__svc a{display:flex;align-items:center;gap:8px;min-height:44px;font:500 15px/1.2 var(--fb);text-decoration:none;-webkit-tap-highlight-color:transparent;transition:color var(--tm)}
.mnav__svc a:active{color:var(--red)}
.mnav__svc .ico{width:16px;height:16px;color:var(--red)}
.mnav__svc a:is(:hover,:focus-visible){color:var(--red)}
.mnav__cta{display:grid;gap:8px;padding:16px 0 24px}
@media(min-width:1024px){.nav{display:block}.hdr__in>.btn,.hdr__tel{display:inline-flex}.menu-btn,.mnav,.mnav.open{display:none}}
@media(min-width:1024px) and (max-width:1279px){.hdr__tel{display:none}}

/* mobile action bar */
.mbar{transition:transform var(--d-s) var(--ease-out)}
html.is-typing .mbar{transform:translateY(110%)}
.p-contact .mbar{grid-template-columns:1fr}
.p-contact .mbar .btn--red{display:none}
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:1fr 1.4fr;gap:8px;padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom));background:rgba(247,246,242,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
.mbar .btn{min-height:48px;padding:0 12px;font-size:14px}
@media(max-width:1023px){html{scroll-padding-bottom:96px}}
@media(max-width:1023px){.ftr{padding-bottom:70px}}
@media(min-width:1024px){.mbar{display:none}}

/* rails: horizontal swipe on small screens, with a progress bar */
.rail__bar{display:none;position:relative;height:2px;margin-top:14px;background:var(--bd)}
.rail__bar i{position:absolute;left:0;top:0;bottom:0;width:var(--rw,30%);transform:translateX(var(--rx,0));background:var(--tx);transition:transform .1s linear}

/* ---------- HOME ---------- */
.hhero{background:var(--k0);overflow:hidden}
.hhero__media{position:absolute;inset:0;z-index:-2}
.hhero__img{position:absolute;inset:0}
.hhero__edge{display:none}
.hhero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(15,15,14,.55),rgba(15,15,14,.94) 72%)}
@media(min-width:1024px){
  .hhero__media{left:auto;width:56%}
  .hhero__img{clip-path:polygon(18% 0,100% 0,100% 100%,0 100%)}
  .hhero__edge{display:block;position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--red);stroke-width:2}
  .hhero::before{background:linear-gradient(90deg,var(--k0) 0,var(--k0) 42%,rgba(15,15,14,.3) 62%,rgba(15,15,14,.06))}
}
.hhero__in{position:relative;padding-block:clamp(40px,6vw,96px) clamp(92px,8.5vw,136px)}
.hhero h1{font-size:clamp(46px,6.2vw,108px);margin:0 0 20px}
.hhero h1 .accent{color:transparent;-webkit-text-stroke:1.5px #fff}
.hhero .lead{max-width:44ch;margin:0 0 26px}
.strip{position:relative;z-index:2;margin-top:calc(-1 * clamp(56px,5.5vw,84px))}
.strip__in{position:relative;display:grid;grid-template-columns:1fr 1fr;background:#fff;border-top:2px solid var(--ink)}
.strip__in::before{content:"";position:absolute;left:0;top:-2px;width:72px;height:2px;background:var(--red)}
.strip__item{display:flex;flex-direction:column;gap:10px;padding:16px;border-left:1px solid var(--line);border-bottom:1px solid var(--line)}
.strip__item:nth-child(2n+1){border-left:0}
.strip__item .ico{width:20px;height:20px;color:var(--red)}
.strip__item b{display:block;font:800 clamp(20px,1.8vw,28px)/1 var(--fh);text-transform:uppercase}
.strip__item span{display:block;margin-top:4px;font-size:14.5px;color:var(--muted);line-height:1.35}
@media(min-width:900px){.strip__in{grid-template-columns:repeat(4,1fr)}.strip__item{flex-direction:row;gap:14px;padding:22px 24px;border-bottom:0}.strip__item:nth-child(2n+1){border-left:1px solid var(--line)}.strip__item:first-child{border-left:0}.strip__item .ico{margin-top:2px}}

/* services index: sticky preview + two-column list (rail on small screens) */
.idx{display:grid;gap:24px}
.idx__preview{display:none}
.idx__list{list-style:none;margin:0;padding:0}
/* each row is one link; hover, focus or touch makes it the active service: title and number turn red, the copy darkens, the arrow moves */
.idx__list a{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:6px 12px;align-items:center;height:100%;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:background-color var(--tm),border-color var(--tm)}
.idx__list a>.ico{color:var(--red);transition:transform var(--tm)}
.idx__list .num{grid-column:1;grid-row:2;align-self:start;transition:color var(--tm)}
.idx__list h3{margin:0;grid-column:2;font-size:clamp(22px,1.8vw,28px);transition:color var(--tm)}
.idx__list p{grid-column:2;grid-row:2;margin:0;color:var(--muted);font-size:15px;line-height:1.45;transition:color var(--t)}
.idx__list .arr{grid-column:3;grid-row:1;width:18px;height:18px;transition:transform var(--tm),color var(--tm)}
.idx__list a:is(:hover,:focus-visible,.is-active) h3{color:var(--red)}
.idx__list a:is(:hover,:focus-visible,.is-active) p{color:var(--ink)}
.idx__list a:is(:hover,:focus-visible) .arr{transform:translateX(5px);color:var(--red)}
.idx__list a:is(:hover,:focus-visible)>.ico{transform:translateY(-2px)}
.idx__list a:active{background:var(--stone)}
@media(max-width:1023px){
  .idx__list{display:grid;grid-auto-flow:column;grid-auto-columns:76%;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(-1 * var(--gut));padding-inline:var(--gut);scroll-padding-inline:var(--gut);scrollbar-width:none}
  .idx__list::-webkit-scrollbar{display:none}
  .idx__list li{scroll-snap-align:start}
  .idx__list a{align-content:start;padding:18px;background:#fff;border:1px solid var(--line);border-top:2px solid var(--ink)}
  .idx__list a:active{border-top-color:var(--red)}
  .idx__list a .arr{color:var(--red)}
  .idx__bar{display:block}
}
@media(min-width:640px) and (max-width:1023px){.idx__list{grid-auto-columns:42%}}
@media(min-width:1024px){
  .idx{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(40px,5vw,96px);align-items:start}
  .idx__aside{position:sticky;top:calc(var(--hdr) + 32px)}
  .idx__preview{display:block;margin-top:24px}
  .idx__preview .frame{position:relative;aspect-ratio:3/2;overflow:hidden}
  /* the preview cross-fades, then the photo drifts slowly inside its fixed frame */
  .idx__preview .ph{position:absolute;inset:0;opacity:0;transition:opacity var(--d-l) ease}
  .idx__preview .ph img{transform:scale(1.08);transition:transform 1.6s var(--ease-out)}
  .idx__preview .ph.is-on{opacity:1}
  .idx__preview .ph.is-on img{transform:scale(1.02)}
  .frame__num{transition:opacity var(--d-m) ease,transform var(--d-m) ease}
  .frame__num.is-swap{opacity:0;transform:translateY(8px)}
  .frame__num{position:absolute;right:18px;top:10px;z-index:3;font:800 clamp(64px,6vw,104px)/1 var(--fh);color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.45)}
  .idx__list{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(24px,3vw,48px);border-top:2px solid var(--ink)}
  .idx__list li{border-bottom:1px solid var(--line);position:relative}
  .idx__list li::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--red);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease-io)}
  .idx__list li:is(:hover,:focus-within)::after,.idx__list li:has(.is-active)::after{transform:scaleX(1);transform-origin:left}
  .idx__list a{padding:20px 4px 20px 0}
  .idx__list a:active{background:none}
}

/* MOT feature */
.motf__grid{display:grid;gap:32px}
@media(min-width:768px){.motf__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,96px);align-items:center}.motf__img .ph{aspect-ratio:4/5}}
.motf__img .ph{aspect-ratio:16/10}
.specs{display:grid;grid-template-columns:1fr 1fr;margin:0 0 4px;border-top:1px solid var(--k4)}
.specs div{padding:14px 14px 14px 0;border-bottom:1px solid var(--k4)}
.specs div:nth-child(even){padding-left:16px;border-left:1px solid var(--k4)}
.specs dt{font:600 11.5px/1.2 var(--fb);letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:6px}
.specs dd{margin:0;font:800 clamp(20px,1.7vw,26px)/1 var(--fh);text-transform:uppercase;color:#fff}
.fine{font-size:14px;color:var(--dim);margin:10px 0 22px}
.specs+.btns{margin-top:22px}
@media(max-width:1023px){.specs div:last-child:nth-child(odd){grid-column:1/-1;padding-left:0;border-left:0}}
@media(min-width:1024px){
  .motf__img{margin-top:calc(-1 * var(--s-maj) - var(--s-std) * .8)}
  .motf__img .ph{aspect-ratio:5/4}
  .specs{grid-template-columns:repeat(3,1fr)}
  .specs div,.specs div:nth-child(even){padding:16px 16px 16px 0;border-left:0}
  .specs div+div{padding-left:16px;border-left:1px solid var(--k4)}
}

/* garage intro: photo beside the statement */
.intro{display:grid;gap:24px}
.intro__img .ph{aspect-ratio:16/10}
.statement{font:800 clamp(30px,3.2vw,52px)/.95 var(--fh);text-transform:uppercase;margin:0 0 16px;text-wrap:balance}
.statement em{font-style:normal;color:transparent;-webkit-text-stroke:1.5px var(--ink)}
.intro .lead{max-width:56ch;margin:0 0 14px}
@media(min-width:768px){.intro{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,5vw,88px);align-items:center}.intro__img .ph{aspect-ratio:4/3}}

/* reviews: heading beside the Elfsight widget on a white surface; min-height holds space while it lazy-loads */
.reviews{background:#fff;border-block:1px solid var(--line)}
.rev{display:grid;gap:20px}
.rev .sh{margin:0}
.reviews__widget{min-height:240px;min-width:0}
@media(min-width:1024px){.rev{grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:clamp(32px,4vw,72px);align-items:start}.rev__head{position:sticky;top:calc(var(--hdr) + 24px)}}

/* booking band */
.book__grid{display:grid;gap:20px}
.book .sh{margin:0}
.bigtel{display:inline-flex;align-items:center;gap:12px;min-height:44px;font:800 clamp(34px,3.4vw,54px)/1 var(--fh);letter-spacing:.01em;text-decoration:none;color:var(--tx);transition:color var(--t)}
.bigtel .ico{width:.6em;height:.6em;color:var(--red);stroke-width:2;transition:transform var(--tm)}
.bigtel:is(:hover,:focus-visible){color:var(--red)}
.bigtel:is(:hover,:focus-visible) .ico{transform:rotate(-10deg)}
.ccard .bigtel:is(:hover,:focus-visible){color:var(--gold)}
.book__tel p{margin:8px 0 0;font-size:15px;color:var(--muted)}
.ways{display:grid;gap:8px}
.way{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:2px 16px;align-items:center;padding:16px 18px;background:#fff;border:1px solid var(--line);text-decoration:none;-webkit-tap-highlight-color:transparent;transition:border-color var(--t),background-color var(--tm)}
.way::after{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:3px;background:var(--red);transform:scaleY(0);transform-origin:bottom;transition:transform .35s var(--ease-io)}
.way:is(:hover,:focus-visible){border-color:var(--ink)}
.way:is(:hover,:focus-visible)::after{transform:scaleY(1);transform-origin:top}
.way:is(:hover,:focus-visible) .ico{transform:translateX(4px)}
.way:first-child:is(:hover,:focus-visible) .ico{transform:rotate(-10deg)}
.way:active{background:var(--paper)}
.way .num{grid-column:1;grid-row:1/span 2;align-self:start;padding-top:5px}
.way b{grid-column:2;grid-row:1;font:800 22px/1 var(--fh);text-transform:uppercase}
.way span:not(.num){grid-column:2;grid-row:2;color:var(--muted);font-size:14.5px}
.way .ico{grid-row:1/span 2;grid-column:3;color:var(--red);transition:transform var(--tm)}
@media(min-width:1024px){.book__grid{grid-template-columns:minmax(0,3fr) minmax(0,4fr) minmax(0,5fr);gap:clamp(24px,3vw,56px);align-items:center}}

/* ---------- inner heroes ---------- */
.ihero{background:var(--k0);overflow:hidden}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font:500 13.5px/1.4 var(--fb);color:var(--dim);margin:0 0 16px}
.crumbs a{text-decoration:none;text-underline-offset:3px;transition:color var(--tm)}
.crumbs a:hover{text-decoration:underline}
.crumbs a:hover{color:var(--tx)}
/* services */
.shero{padding-block:clamp(32px,4.5vw,72px) clamp(28px,3vw,48px)}
.shero__top{display:grid;gap:16px}
.shero h1{margin:0}
.shero .lead{margin:0 0 20px;max-width:52ch}
@media(min-width:1024px){.shero__top{grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(40px,5vw,96px);align-items:end}}
.tiles{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:28px 0 0;padding:0;background:var(--k4);border:1px solid var(--k4)}
.tiles a{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;min-height:56px;height:100%;padding:12px 14px;background:var(--k1);text-decoration:none;transition:background var(--t)}
.tiles a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--red);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease-io)}
.tiles a:is(:hover,:focus-visible){background:var(--k2)}
.tiles a:is(:hover,:focus-visible)::after{transform:scaleX(1);transform-origin:left}
.tiles a:active{background:var(--k3)}
.tiles .ico{color:var(--gold);transition:transform var(--tm)}
.tiles a:is(:hover,:focus-visible) .ico:first-child{transform:translateY(-2px)}
.tiles .num,.tiles .arr{display:none}
/* an odd count leaves no empty cell: the last tile takes the spare space */
.tiles li:last-child:nth-child(odd){grid-column:span 2}
.tiles b{font:700 17px/1.05 var(--fh);letter-spacing:.03em;text-transform:uppercase}
@media(min-width:1024px){.tiles{grid-template-columns:repeat(4,1fr);margin-top:clamp(32px,3.5vw,48px)}.tiles a{grid-template-columns:auto auto 1fr auto;gap:12px;min-height:68px;padding:14px 18px}.tiles .num,.tiles .arr{display:block}.tiles b{font-size:19px}.tiles .arr{width:16px;height:16px;transition:transform var(--t)}.tiles a:is(:hover,:focus-visible) .arr{transform:translateX(4px)}}
/* sticky in-page service navigation */
.snav{position:sticky;top:calc(var(--hdr) + 1px);z-index:40;background:rgba(247,246,242,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.snav ul{position:relative;list-style:none;margin:0;padding:0;display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth;--fl:0px;--fr:0px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--fl),#000 calc(100% - var(--fr)),transparent);mask-image:linear-gradient(90deg,transparent,#000 var(--fl),#000 calc(100% - var(--fr)),transparent)}
.snav ul.can-l{--fl:40px}
.snav ul.can-r{--fr:56px}
.snav__ind{position:absolute;left:0;bottom:0;height:2px;width:var(--w,0);background:var(--red);transform:translateX(var(--x,0));transition:transform var(--d-s) var(--ease-io),width var(--d-s) var(--ease-io);pointer-events:none}
.snav.has-ind a::after{display:none}
.snav ul::-webkit-scrollbar{display:none}
.snav a{position:relative;display:flex;align-items:center;gap:8px;min-height:50px;padding:0 12px;font:600 13px/1 var(--fb);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;text-decoration:none;color:var(--muted);-webkit-tap-highlight-color:transparent;transition:color var(--tm)}
.snav a .num{transition:color var(--tm)}
.snav a.is-active .num{color:var(--red)}
.snav li:first-child a{padding-left:0}
.snav a::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:var(--red);transform:scaleX(0);transition:transform var(--t)}
.snav li:first-child a::after{left:0}
.snav a:is(:hover,:focus-visible){color:var(--ink)}
.snav a.is-active{color:var(--ink)}
.snav a.is-active::after{transform:scaleX(1)}
@media(min-width:1280px){.snav ul{justify-content:space-between}}
html:has(.snav){scroll-padding-top:calc(var(--hdr) + 64px)}
/* MOT */
.mhero{display:flex;align-items:flex-end}
.mhero .ph.bg,.band .ph.bg{position:absolute;inset:0;z-index:-2}
.mhero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(15,15,14,.35),rgba(15,15,14,.93) 74%)}
@media(min-width:1024px){.mhero::before{background:linear-gradient(90deg,rgba(15,15,14,.94) 0,rgba(15,15,14,.82) 40%,rgba(15,15,14,.35) 80%)}}
.mhero__in{display:grid;gap:24px;width:100%;padding-block:clamp(56px,8vw,128px) clamp(36px,4vw,64px)}
.mhero h1{margin:0 0 16px}
.mhero .lead{max-width:46ch;margin:0 0 22px}
@media(min-width:1024px){.mhero__in{grid-template-columns:1fr auto;align-items:end;gap:64px}}
.fact{--tx:var(--ink);--tx2:var(--muted);background:#fff;color:var(--ink);padding:20px 22px;border-top:2px solid var(--red);min-width:min(100%,340px)}
.fact__h{display:flex;align-items:center;gap:8px;margin:0 0 14px;font:600 12px/1 var(--fb);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.fact__h .ico{width:18px;height:18px;color:var(--red)}
.fact dl{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}
.fact dt{font:600 11px/1.2 var(--fb);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.fact dd{margin:3px 0 0;font:800 21px/1 var(--fh);text-transform:uppercase}
/* about */
.ahero{background:var(--stone);color:var(--ink);--type-c:#E7E4DC;overflow:hidden}
.ahero__grid{display:grid;gap:28px;padding-top:clamp(32px,4.5vw,72px)}
.ahero .lead{color:var(--ink);max-width:48ch;margin:0}
.ahero h1{margin:0 0 18px}
.ahero .crumbs a:hover{color:var(--red)}
.ahero__img .ph{aspect-ratio:16/10}
.ahero__img{margin-bottom:var(--s-std)}
@media(min-width:1024px){.ahero{overflow:visible}.ahero .fx{overflow:hidden}.ahero__grid{grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(40px,5vw,96px);align-items:end}.ahero__copy{padding-bottom:var(--s-std)}.ahero__img{margin-bottom:calc(-1 * clamp(40px,5vw,80px));position:relative;z-index:2}.ahero__img .ph{aspect-ratio:5/4}}
/* contact + privacy */
.chero__in{padding-block:clamp(32px,4vw,64px) clamp(28px,3vw,48px);display:grid;gap:14px}
.chero h1{margin:0}
.chero .lead{margin:0;max-width:46ch}
@media(min-width:1024px){.chero__in{grid-template-columns:1fr auto;align-items:end;gap:48px}}

/* ---------- SERVICES compositions ---------- */
.svc-head{display:grid;grid-template-columns:auto 1fr;gap:0 clamp(16px,2vw,28px);align-items:start;margin-bottom:var(--s-head)}
.svc-head .sh{margin:0}
.svc-head .bignum{font:800 clamp(48px,5.6vw,96px)/.78 var(--fh);color:transparent;-webkit-text-stroke:1.5px var(--line-2);margin-top:2px}
.dark .svc-head .bignum,.band .svc-head .bignum{-webkit-text-stroke-color:var(--k4)}
/* servicing */
.serv{display:grid;gap:28px}
.serv__img .ph{aspect-ratio:16/10}
@media(min-width:768px){.serv{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,5vw,96px);align-items:center}.serv__img .ph{aspect-ratio:5/4}}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 16px}
.opt-card{position:relative;padding:18px;background:#fff;border:1px solid var(--line);transition:border-color var(--t),opacity var(--t)}
.opts:hover .opt-card:not(:hover){opacity:.62}
.opt-card .num{transition:color var(--tm)}
.opt-card:hover .num{color:var(--red)}
.opt-card::after{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease-io)}
.opt-card:hover{border-color:var(--ink)}
.opt-card:hover::after{transform:scaleX(1);transform-origin:left}
.opt-card h3{font-size:clamp(24px,2vw,30px);margin:10px 0 6px}
.opt-card p{margin:0;font-size:15px;color:var(--muted);line-height:1.45}
/* brakes: 2x2 spec sheet beside the heading */
.brk{display:grid;gap:28px}
@media(min-width:1024px){.brk{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,5vw,96px);align-items:center}}
.sheet{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
@media(min-width:560px){.sheet{grid-template-columns:1fr 1fr}}
.sheet__cell{position:relative;display:grid;align-content:start;grid-template-columns:auto 1fr;gap:4px 14px;padding:18px 20px;background:#fff;transition:background var(--t)}
.sheet__cell::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--red);transform:scaleY(0);transform-origin:bottom;transition:transform .35s var(--ease-io)}
.sheet__cell:hover{background:var(--paper)}
.sheet__cell:hover::before{transform:scaleY(1);transform-origin:top}
.sheet__cell h3{transition:color var(--tm)}
.sheet__cell:hover h3{color:var(--red)}
.sheet__cell .num{grid-row:span 2;padding-top:5px}
.sheet__cell h3{margin:0}
.sheet__cell p{margin:0;font-size:15px;color:var(--muted)}
@media(min-width:1024px){.sheet__cell{grid-template-columns:1fr;padding:24px}.sheet__cell .num{grid-row:auto;padding:0 0 8px}}
/* tyres: photo beside a compact spec list */
.tyre{display:grid;gap:28px}
.tyre__img .ph{aspect-ratio:16/10}
@media(min-width:768px){.tyre{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,5vw,88px);align-items:center}.tyre__img .ph{aspect-ratio:4/3}}
.panels{display:grid;gap:1px;margin:0 0 22px;background:var(--k4);border:1px solid var(--k4)}
.panel{position:relative;display:grid;grid-template-columns:auto 1fr;gap:16px;padding:16px 20px;background:var(--k1);transition:background var(--t)}
.panel::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--gold);transform:scaleY(0);transform-origin:bottom;transition:transform .35s var(--ease-io)}
.panel:hover{background:var(--k2)}
.panel:hover::before{transform:scaleY(1);transform-origin:top}
.panel .num{padding-top:5px}
.panel h3{margin:0 0 4px}
.panel p{margin:0;font-size:15px;color:var(--on-dark)}
/* diagnostics */
.diag__grid{display:grid;gap:28px}
.diag__img .ph{aspect-ratio:16/10}
@media(min-width:768px){.diag__grid{grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(40px,5vw,96px);align-items:center}.diag__img .ph{aspect-ratio:4/3}}
.readout{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:0 0 22px;background:var(--k4);border:1px solid var(--k4)}
.readout div{display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:var(--k1)}
.readout b{font:800 22px/1 var(--fh);text-transform:uppercase}
.readout span{display:inline-flex;align-items:center;gap:8px;font:600 11px/1 var(--fb);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.readout span::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.readout{position:relative;overflow:hidden}
.readout::after{content:"";position:absolute;top:0;bottom:0;left:0;width:30%;background:linear-gradient(90deg,transparent,rgba(224,154,42,.12),transparent);transform:translateX(-110%);pointer-events:none}
.readout.is-scan::after{animation:scan 1.4s var(--ease-io) forwards}
@keyframes scan{to{transform:translateX(380%)}}
.readout.is-armed span{color:var(--dim);transition:color var(--d-s) ease}
.readout.is-armed span::before{transform:scale(.6);transition:transform var(--d-s) var(--ease-out)}
.readout.is-scan span{color:var(--gold)}
.readout.is-scan span::before{transform:none}
.readout.is-scan div:nth-child(2) span{transition-delay:.25s}.readout.is-scan div:nth-child(3) span{transition-delay:.5s}.readout.is-scan div:nth-child(4) span{transition-delay:.75s}
.readout.is-scan div:nth-child(2) span::before{transition-delay:.25s}.readout.is-scan div:nth-child(3) span::before{transition-delay:.5s}.readout.is-scan div:nth-child(4) span::before{transition-delay:.75s}
@media(min-width:640px){.readout div{flex-direction:row;align-items:center;justify-content:space-between;padding:16px 20px}}
/* wet belts + DPF: two horizontal rows (photo | copy | action) */
.notes{display:grid;gap:12px}
.svc-note{position:relative;display:grid;background:#fff;border:1px solid var(--line);transition:border-color var(--t)}
.svc-note::after{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:right;transition:transform var(--d-l) var(--ease-io)}
.svc-note:hover{border-color:var(--line-2)}
.svc-note:hover::after{transform:scaleX(1);transform-origin:left}
.svc-note .ph{aspect-ratio:21/9}
.svc-note__body{padding:20px 20px 4px}
.svc-note__body h2{margin:0 0 10px}
.svc-note__body p:not(.kicker){margin:0;color:var(--muted);font-size:16px}
.svc-note__act{display:grid;gap:14px;align-content:center;justify-items:start;padding:16px 20px 22px}
.callout-line{display:flex;gap:10px;align-items:flex-start;margin:0;padding:12px 14px;border-left:3px solid var(--gold);background:var(--paper);font-weight:500;font-size:15px;line-height:1.45;color:var(--ink)}
.callout-line .ico{color:var(--red);margin-top:1px}
@media(min-width:640px) and (max-width:899px){.svc-note{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}.svc-note .ph{grid-row:span 2;aspect-ratio:auto;min-height:100%}}
@media(min-width:900px){.svc-note{grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(0,3fr);align-items:stretch}.svc-note .ph{aspect-ratio:auto;min-height:220px}.svc-note__body{padding:24px 28px;align-self:center}.svc-note__act{padding:24px 28px;border-left:1px solid var(--line)}}
/* bodywork band */
.band{color:#fff;overflow:hidden}
.band::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(15,15,14,.6),rgba(15,15,14,.93) 70%)}
@media(min-width:1024px){.band::before{background:linear-gradient(90deg,rgba(15,15,14,.95) 0,rgba(15,15,14,.8) 45%,rgba(15,15,14,.3))}}
.band__in{display:grid;gap:4px;padding-block:var(--s-std)}
.band .sh{margin-bottom:20px}
.band .sh .lead{max-width:46ch}
@media(min-width:1024px){.band__in{max-width:calc(var(--gut) + 620px)}}
/* MOT cross-link strip */
.teaser{position:relative;display:grid;grid-template-columns:auto 1fr;gap:6px 16px;align-items:center;padding:18px 20px;background:var(--k1);text-decoration:none;border-left:3px solid var(--red);transition:background var(--t)}
.teaser>.ico{width:26px;height:26px;align-self:start}
.teaser .kicker{margin:0 0 6px}
.teaser b{display:block;font:800 clamp(22px,2vw,30px)/1 var(--fh);text-transform:uppercase}
.teaser span:not(.teaser__go){display:block;margin-top:6px;color:var(--on-dark);font-size:15px}
.teaser__go{grid-column:1/-1;display:inline-flex;align-items:center;gap:10px;min-height:44px;font:700 14px/1 var(--fb);letter-spacing:.09em;text-transform:uppercase}
.teaser__go .ico{width:18px;height:18px;transition:transform var(--t)}
.teaser:is(:hover,:focus-visible){background:var(--k2)}
.teaser:is(:hover,:focus-visible) .teaser__go .ico{transform:translateX(4px)}
.teaser:active{background:var(--k3)}
@media(min-width:900px){.teaser{grid-template-columns:auto 1fr auto;padding:22px 28px}.teaser__go{grid-column:auto}}

/* ---------- MOT page ---------- */
.row-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 40px;margin-bottom:var(--s-head)}
.row-head .sh{margin:0}
.row-head>.lead{margin:0;max-width:46ch}
.tl{position:relative;list-style:none;margin:0;padding:0;display:grid}
.tl::before{content:"";position:absolute;left:21px;top:8px;bottom:8px;width:2px;background:var(--line)}
.tl__fill{position:absolute;left:21px;top:8px;width:2px;height:0;background:var(--red)}
.tl li{position:relative;counter-increment:s;padding:0 0 22px 64px}
.tl li:last-child{padding-bottom:0}
.tl li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:0;z-index:1;width:44px;height:44px;display:grid;place-items:center;background:var(--paper);border:1.5px solid var(--ink);border-radius:50%;font:800 17px/1 var(--fh);transition:background-color var(--t),color var(--t),border-color var(--t)}
.tl h3{margin:10px 0 6px;transition:color var(--t)}
.tl p{margin:0;color:var(--muted);font-size:15.5px;max-width:46ch;transition:color var(--t)}
.tl.is-live li:not(.is-on):not(.is-done) h3{color:var(--muted)}
.tl li.is-done::before{background:var(--ink);color:#fff}
.tl li.is-on::before{background:var(--red);border-color:var(--red);color:#fff}
.tl li.is-on h3{color:var(--red)}
.tl li.is-on p{color:var(--ink)}
@media(min-width:1100px){
  .tl{grid-template-columns:repeat(5,1fr);gap:24px}
  .tl::before{left:22px;right:0;top:21px;bottom:auto;width:auto;height:2px}
  .tl__fill{left:22px;top:21px;width:0;height:2px}
  .tl li{padding:60px 0 0}
  .tl h3{margin-top:0}
}
.covers-grid{display:grid;gap:4px}
@media(min-width:1024px){.covers-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,5vw,96px);align-items:start}}
.covers{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;list-style:none;padding:0;margin:0;border-top:1px solid var(--k4)}
@media(min-width:900px){.covers{grid-template-columns:repeat(3,1fr);column-gap:28px}}
@media(min-width:1280px){.covers{grid-template-columns:repeat(4,1fr)}}
.covers li{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--k4);font-weight:500;font-size:15.5px;color:#fff;line-height:1.25}
.covers .ico{width:16px;height:16px;color:var(--gold)}
.results{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
@media(min-width:900px){.results{grid-template-columns:repeat(4,1fr)}}
.res{position:relative;padding:18px 18px 20px;background:#fff}
.res::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--ink)}
.res--fail::before{background:var(--red)}
.res .tag{display:inline-block;margin-bottom:12px;padding:5px 8px;font:700 11px/1 var(--fb);letter-spacing:.14em;text-transform:uppercase;border:1px solid currentColor}
.res--fail .tag{color:var(--red)}
.res--pass .tag{color:var(--muted)}
.res h3{margin:0 0 6px}
.res p{margin:0;color:var(--muted);font-size:15px;line-height:1.45}
.faq{border-top:2px solid var(--ink);background:var(--paper)}
/* FAQ: answers ease open, the plus folds into a minus, the open question gets a red edge on white */
.faq details{position:relative;border-bottom:1px solid var(--line);transition:background-color var(--t)}
.faq details::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:transform var(--t)}
.faq details[open]{background:#fff}
.faq details[open]::before{transform:scaleY(1)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:62px;padding:14px 18px;cursor:pointer;list-style:none;font:600 17.5px/1.3 var(--fb);-webkit-tap-highlight-color:transparent;transition:color var(--tm),background-color var(--tm)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--red);background:#fff}
.faq summary:active{background:var(--stone)}
.faq summary .ico{width:22px;height:22px;flex:none;padding:3px;border:1.5px solid currentColor;border-radius:50%;color:var(--red);transition:transform var(--t),background-color var(--tm),color var(--tm)}
.faq summary .ico path{transform-origin:center;transition:transform var(--t)}
.faq details[open] summary .ico{background:var(--red);border-color:var(--red);color:#fff;transform:rotate(180deg)}
.faq details[open] summary .ico path:last-child{transform:scaleY(0)}
.faq details>div{padding:0 18px 20px;max-width:66ch;color:var(--muted);overflow:hidden}
@media(max-width:639px){.faq summary{padding:14px 14px;font-size:17px}.faq details>div{padding:0 14px 18px}}
.faq details>div p{margin:0}
.faq-grid{display:grid;gap:8px}
@media(min-width:1024px){.faq-grid{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(40px,5vw,96px);align-items:start}}

/* ---------- ABOUT ---------- */
.principles{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.principles li{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;padding:18px 0;border-bottom:1px solid var(--line)}
.principles .big{grid-row:span 2;font:800 44px/.8 var(--fh);color:transparent;-webkit-text-stroke:1.5px var(--ink);transition:color var(--t),-webkit-text-stroke-color var(--t)}
.principles li:hover .big{color:var(--red);-webkit-text-stroke-color:var(--red)}
.principles li>.ico{transition:transform var(--t)}
.principles li:hover>.ico{transform:translateY(-3px)}
.principles li>.ico{display:none}
.principles h3{margin:0}
.principles p{margin:0;color:var(--muted);font-size:16px;max-width:46ch}
@media(min-width:1024px){
  .principles{display:grid;grid-template-columns:repeat(3,1fr)}
  .principles li{grid-template-columns:1fr auto;gap:0;padding:24px 28px 8px 0;border-bottom:0;align-content:start}
  .principles li+li{padding-left:28px;border-left:1px solid var(--line)}
  .principles .big{grid-row:auto;font-size:clamp(48px,4vw,64px);margin-bottom:18px}
  .principles li>.ico{display:block;width:22px;height:22px;color:var(--red)}
  .principles h3,.principles p{grid-column:1/-1}
  .principles h3{margin-bottom:8px}
}
.local{display:grid;gap:28px}
.local .sh{margin-bottom:20px}
.local h3{margin:0 0 10px}
@media(min-width:900px){.local{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,4vw,72px);align-items:start}}
.svc-list{list-style:none;margin:0;padding:0;display:grid;column-gap:24px;border-top:2px solid var(--ink)}
@media(min-width:480px){.svc-list{grid-template-columns:1fr 1fr}}
.svc-list a{display:flex;align-items:center;gap:10px;min-height:48px;border-bottom:1px solid var(--line);font-weight:600;font-size:15.5px;text-decoration:none;transition:color var(--t)}
.svc-list .ico{width:18px;height:18px;color:var(--red)}
.svc-list .arr{margin-left:auto;width:16px;height:16px;opacity:0;transform:translateX(-6px);transition:opacity var(--tm),transform var(--tm)}
.svc-list a{position:relative;-webkit-tap-highlight-color:transparent}
.svc-list a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--red);transform:scaleX(0);transform-origin:right;transition:transform var(--t)}
.svc-list a:is(:hover,:focus-visible){color:var(--red)}
.svc-list a:is(:hover,:focus-visible)::after{transform:scaleX(1);transform-origin:left}
.svc-list a:is(:hover,:focus-visible) .arr{opacity:1;transform:none}
@media(hover:none){.svc-list .arr{opacity:.5;transform:none}}

/* ---------- CONTACT ---------- */
.cgrid{display:grid;gap:24px}
@media(min-width:1024px){.cgrid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,3vw,56px);align-items:start}}
.form-wrap{background:#fff;border:1px solid var(--line);border-top:3px solid var(--ink);padding:clamp(20px,2.8vw,40px)}
.form-wrap__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.form-wrap__head h2{margin:0}
.steps{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;font-size:14.5px;color:var(--muted)}
.steps li{display:flex;align-items:baseline;gap:6px}
.cside{display:grid;gap:10px}
@media(min-width:1024px){.cside{position:sticky;top:calc(var(--hdr) + 24px)}}
.ccard{position:relative;isolation:isolate;overflow:hidden;background:var(--k1);padding:22px 24px}
.ccard .bigtel{font-size:clamp(30px,2.8vw,42px)}
.ccard .status{display:flex;margin-top:10px;font-size:15px;color:var(--on-dark)}
.ccard--light{background:var(--stone);color:var(--ink);transition:background-color var(--t)}
.ccard--light:has(a:hover){background:var(--stone-2)}
.ccard address{font-style:normal;margin:0 0 6px;font-size:17px;font-weight:600}

/* hours table */
.hours{width:100%;border-collapse:collapse;font-size:15.5px}
.hours th,.hours td{text-align:left;padding:9px 0;border-bottom:1px solid var(--bd);font-weight:400}
.hours td{text-align:right}
.hours tr.today th,.hours tr.today td{font-weight:700;color:var(--tx)}
.hours tr.today th::after{content:" · today";font-weight:500;color:var(--tx2)}

/* map facade */
.map{position:relative;min-height:300px;background:#fff;border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;-webkit-mask-image:-webkit-radial-gradient(#fff,#000)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;opacity:0;transition:opacity var(--d-l) ease}
.map.is-ready iframe{opacity:1}
.map.is-loading .map__load .btn{pointer-events:none}
.map.is-loading .map__load .btn .ico{animation:spin 1s linear infinite}
.map.is-ready .map__load{opacity:0;visibility:hidden;transition:opacity var(--d-s) ease,visibility 0s linear var(--d-s)}
.map__load{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;color:var(--muted);font-size:14.5px;background-color:var(--stone);background-image:linear-gradient(rgba(30,30,28,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(30,30,28,.06) 1px,transparent 1px);background-size:24px 24px}
.map__load p{margin:0;max-width:30ch}
.map__load .btn{--tx:var(--ink);--inv:#fff;color:var(--ink)}

/* form (classes used by booking-form.js) */
.f{display:grid;gap:18px}
@media(min-width:768px){.f{grid-template-columns:1fr 1fr;column-gap:18px;align-items:start}.f>.formerr,.f>.btns,.f>.f__row:has(textarea),.f>.f__row:has(fieldset){grid-column:1/-1}}
.f__row{display:grid;gap:6px}
.f label,.f legend{font:600 15.5px/1.3 var(--fb)}
.f .req{color:var(--red);margin-left:3px}
.f input,.f select,.f textarea{width:100%;min-height:52px;padding:12px 16px;font:400 17px/1.4 var(--fb);color:var(--ink);background-color:var(--paper);background-repeat:no-repeat;border:1.5px solid var(--line);border-radius:var(--r);transition:border-color var(--tm),background-color var(--tm),box-shadow var(--tm)}
.f select{-webkit-appearance:none;appearance:none;padding-right:48px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B0040D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 16px center;background-size:18px}
.f select:invalid,.f select:has(option[value='']:checked){color:var(--muted)}
.f select option{color:var(--ink)}
.f textarea{min-height:112px;resize:vertical}
.f input:hover,.f select:hover,.f textarea:hover{border-color:var(--line-2)}
.f input:focus,.f select:focus,.f textarea:focus{outline:0;background-color:#fff;border-color:var(--ink);box-shadow:0 0 0 3px rgba(224,154,42,.3)}
.f__row label{transition:color var(--tm)}
.f__row:focus-within>label{color:var(--red)}
/* checked and complete: a quiet tick; wrong: red edge and tint */
.f [data-ok]:not(select):not([type=checkbox]):not([type=radio]){border-color:var(--ink);padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231E1E1C' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");background-position:right 16px center;background-size:16px}
.f select[data-ok]{border-color:var(--ink)}
.f [aria-invalid=true]{border-color:var(--red);background-color:#fdf3f3}
.f [aria-invalid=true]:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(176,4,13,.18)}
.f .help{font-size:14.5px;color:var(--muted);margin:0}
.f .err{display:flex;align-items:flex-start;gap:7px;font-size:14.5px;font-weight:500;color:var(--red);margin:0;animation:errIn var(--d-s) var(--ease-out)}
.f .err::before{content:"!";flex:none;display:grid;place-items:center;width:17px;height:17px;margin-top:1px;border-radius:50%;background:var(--red);color:#fff;font:700 11px/1 var(--fb)}
@keyframes errIn{from{opacity:0;transform:translateY(-4px)}}
.f .err:empty{display:none}
.f .formerr{padding:12px 14px;background:#fbeaea;color:var(--red-dk)}
.f .formerr:empty{display:none}
.f fieldset{border:0;margin:0;padding:0;display:grid;gap:6px}
.f .opt{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;font-weight:400;border:1.5px solid var(--line);border-radius:var(--r);cursor:pointer;transition:border-color var(--tm),background-color var(--tm)}
.f .opt:hover{border-color:var(--line-2)}
.f .opt:has(input:checked){border-color:var(--ink);background:#fff}
.f .opt:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:2px}
.f .opt input{width:20px;height:20px;min-height:0;margin:0;accent-color:var(--red)}
.f .opt input:focus{box-shadow:none}
.f .btn{width:100%}
@media(min-width:640px){.f .btn{width:auto}}
.f-skel{display:grid;gap:16px}
.f-skel i{display:block;height:52px;background:linear-gradient(90deg,var(--paper) 30%,#fff 50%,var(--paper) 70%) 0 0/300% 100%;animation:shimmer 1.4s linear infinite}
@keyframes shimmer{from{background-position:100% 0}to{background-position:-50% 0}}
.f-step{display:flex;align-items:center;gap:12px;margin:0 0 18px;font:600 12.5px/1 var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.f-step i{flex:1;height:2px;background:var(--line);position:relative}
.f-step i b{position:absolute;left:0;top:0;bottom:0;background:var(--red);transition:width var(--d-l) var(--ease-io)}
/* sent: a drawn tick, the request wording kept, then the phone as the next step */
.f-done{display:grid;grid-template-columns:auto 1fr;gap:4px 18px;align-items:start;padding:8px 0}
.f-done:focus{outline:0}
.f-done svg{grid-column:1;grid-row:1/span 6;width:52px;height:52px;color:var(--red)}
.f-done>:not(svg){grid-column:2}
.f-done svg circle,.f-done svg path{stroke-dasharray:1;stroke-dashoffset:1;animation:draw .6s var(--ease-io) forwards}
.f-done svg path{animation-delay:.35s}
@keyframes draw{to{stroke-dashoffset:0}}
.f-done h3{margin:6px 0 4px;font-size:clamp(26px,2.2vw,32px)}
.f-done p{margin:0;color:var(--muted)}
.f-done .f-done__tel{margin-top:12px;color:var(--ink)}
.f-done .f-done__tel a{font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* prose (privacy) */
.prose{max-width:72ch}
.prose h2{font-size:clamp(26px,2.4vw,34px);margin:1.4em 0 .4em}
.prose ul{padding-left:1.2em;margin:0 0 1em}
.prose li{margin-bottom:.4em}
.prose a{text-underline-offset:3px;transition:color var(--t)}
.prose a:hover{color:var(--red)}
.note{border-left:3px solid var(--gold);background:var(--stone);padding:14px 18px;margin:0 0 24px}
.toc{display:grid;gap:2px;align-content:start}
.toc a{display:flex;align-items:center;min-height:44px;padding:0 0 0 16px;border-left:2px solid var(--line);text-decoration:none;font-weight:600;font-size:15.5px;transition:border-color var(--t),color var(--t)}
.toc a:is(:hover,:focus-visible),.toc a.is-active{border-color:var(--red);color:var(--red)}
.pgrid{display:grid;gap:28px}
@media(min-width:1024px){.pgrid{grid-template-columns:240px 1fr;gap:clamp(40px,5vw,96px)}.toc{position:sticky;top:calc(var(--hdr) + 32px)}}

/* ---------- footer ---------- */
.ftr{background:var(--k0);color:var(--on-dark);font-size:15.5px;overflow:hidden}
.ftr__cta{display:grid;gap:18px;padding-block:var(--s-c);border-bottom:1px solid var(--k4)}
.ftr__cta h2{color:#fff;margin:0 0 8px}
.ftr__cta p{margin:0}
@media(min-width:1024px){.ftr__cta{grid-template-columns:1fr auto;align-items:center;gap:48px}}
.ftr__grid{display:grid;gap:32px;padding-block:var(--s-c)}
@media(min-width:640px){.ftr__grid{grid-template-columns:1fr 1fr}}
@media(min-width:1200px){.ftr__grid{grid-template-columns:1.1fr 1fr .9fr 1.5fr;align-items:stretch;gap:clamp(28px,3vw,56px)}}
.ftr h3{font:600 12.5px/1.2 var(--fb);letter-spacing:.18em;color:#fff;margin:0 0 14px}
.ftr .logo{margin:0 0 16px}
.ftr .logo img{height:72px;width:auto}
.members{margin:16px 0 0;max-width:34ch;font-size:13.5px;line-height:1.45;color:var(--dim)}
/* About: memberships as a compact ruled row under the principles */
.memb{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;margin:20px 0 0;padding-top:16px;border-top:1px solid var(--line)}
.memb__h{font:600 12px/1.2 var(--fb);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.memb__i{display:inline-flex;align-items:baseline;gap:10px;font-size:15px;color:var(--muted)}
.memb__i b{font:800 22px/1 var(--fh);letter-spacing:.02em;color:var(--ink)}
.ftr address{font-style:normal;margin:0 0 6px}
.ftr address a{display:inline-block;padding-block:2px;text-decoration:underline;text-decoration-color:var(--k4);text-underline-offset:4px}
.ftr address a:is(:hover,:focus-visible){text-decoration-color:var(--gold)}
.ftr a{text-decoration:none;transition:color var(--tm)}
.ftr a:is(:hover,:focus-visible){color:#fff}
.ftr .ftel{display:inline-flex;align-items:center;gap:10px;min-height:44px;font:700 20px/1 var(--fb);color:#fff}
.ftr .ftel .ico{color:var(--red);transition:transform var(--tm)}
.ftr .ftel:is(:hover,:focus-visible){color:var(--gold)}
.ftr .ftel:is(:hover,:focus-visible) .ico{transform:rotate(-10deg)}
.social{display:flex;gap:8px;margin-top:14px}
.social a{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--k4);border-radius:var(--r);color:#fff;transition:border-color var(--t),color var(--t)}
.social a:is(:hover,:focus-visible){border-color:var(--gold);color:var(--gold)}
.social a:active{background:var(--k2)}
.social svg{width:18px;height:18px}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:16px}
.ftr ul a{position:relative;display:inline-flex;align-items:center;min-height:44px;transition:color var(--tm),transform var(--tm)}
.ftr ul a:is(:hover,:focus-visible){transform:translateX(3px)}
@media(min-width:640px){.ftr ul{grid-template-columns:1fr}.ftr ul a{min-height:38px}}
@media(max-width:639px){.ftr__map{grid-column:1/-1}}
.ftr .map{min-height:240px;height:100%}
.ftr__base{display:grid;gap:10px;padding-block:18px 22px;border-top:1px solid var(--k4);font-size:13.5px;color:#a39f96}
@media(min-width:1024px){.ftr__base{grid-template-columns:auto auto 1fr;gap:20px 40px;align-items:center}.ftr__base .footer-legal{text-align:right}}
.ftr__base p{margin:0}
.ftr__links{display:flex;flex-wrap:wrap;gap:4px 20px}
.ftr__links a{display:inline-flex;align-items:center;min-height:44px}
.footer-legal a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color .25s ease}
.footer-legal a:hover{color:#fff}

/* ---------- motion: hidden states only exist when JS + GSAP will reveal them ---------- */
.js-motion .rv{opacity:0;transform:translateY(18px)}
.js-motion .rv-img{clip-path:inset(0 100% 0 0)}
.js-motion .hhero__media{clip-path:inset(0 0 0 100%)}
.js-motion .rv-img .wipe{transform:scaleX(1)}
.rv-line{display:block}
.js-motion .rv-line{clip-path:inset(-.15em -100vw 0 -100vw)}
.js-motion .rv-line>span{display:block;transform:translateY(105%)}
.js-motion .dr path,.js-motion .dr circle,.js-motion path.dr{stroke-dasharray:1;stroke-dashoffset:1}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}.f-done svg circle,.f-done svg path{stroke-dashoffset:0}.btn[aria-busy=true]::after{animation:spin 1.6s linear infinite!important}}
