/* A-1 Services preview, shared styles (WMG site generator, 2026-10-28, v2) */
:root{
  --blue:#2D00B5; --blue-deep:#1c0a6e; --blue-ink:#140a45;
  --red:#BB0102; --red-deep:#8f0a0b;
  --paper:#f3efe6; --paper-2:#e9e2d3; --ink:#1e1a22; --ink-2:#4a4450; --night:#17131f;
  --soil-1:#2c2119; --soil-2:#3d2d21; --soil-3:#55402d; --clay:#8a623d; --sand:#b89262; --rock:#6f6a62;
  --stake:#d2ad72; --stake-dark:#a9824a; --caution:#f2c21b;
  --font-display:"Big Shoulders Display", "Arial Narrow", sans-serif;
  --font-body:"Barlow", "Helvetica Neue", sans-serif;
  --font-label:"Barlow Condensed", "Arial Narrow", sans-serif;
  --space-1:4px; --space-2:8px; --space-3:16px; --space-4:24px; --space-5:40px; --space-6:64px; --space-7:104px;
  --wrap:1240px;
  --bar-h:40px; --head-h:96px;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;padding-top:calc(var(--bar-h) + var(--head-h) + 4px);background:var(--paper);color:var(--ink);font:400 18px/1.6 var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.005em;line-height:.92;text-wrap:balance;margin:0}
p{margin:0 0 1em;text-wrap:pretty}
a{color:inherit}
:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:4px}
.wrap{width:min(var(--wrap),100% - 40px);margin-inline:auto}
.label{font:700 15px/1 var(--font-label);text-transform:uppercase;letter-spacing:.14em}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;z-index:200;background:#fff;padding:8px 12px}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:12px;min-height:56px;padding:0 26px;border-radius:6px 18px 6px 18px;font:700 19px/1 var(--font-label);text-transform:uppercase;letter-spacing:.06em;text-decoration:none;border:2px solid transparent;cursor:pointer;position:relative;overflow:hidden;transition:transform .3s ease, background-color .3s ease, color .3s ease}
.btn:hover{transform:translateY(-2px)}
.btn-red{background:var(--red);color:#fdf6ee;box-shadow:4px 4px 0 var(--red-deep)}
.btn-red::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s ease}
.btn-red:hover::after{transform:translateX(120%)}
.btn-line{border-color:currentColor;color:var(--paper);background:transparent}
.btn-line:hover{background:rgba(243,239,230,.1)}
.btn-blue{background:var(--blue);color:#f4f1ff;box-shadow:4px 4px 0 var(--blue-ink)}
.btn-ink{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ink:hover{background:rgba(30,26,34,.06)}

/* top bar + header: fixed, so shrinking never moves the page below */
.site-head{position:fixed;top:0;left:0;right:0;z-index:50;transition:transform .35s ease}
.site-head.is-small{transform:translateY(calc(var(--bar-h) * -1))}
.topbar{height:var(--bar-h);background:var(--blue);color:#e6e0ff;font:600 15px/1 var(--font-label);letter-spacing:.08em;text-transform:uppercase}
.topbar .wrap{display:flex;align-items:center;gap:26px;height:100%}
.topbar a{text-decoration:none;color:#fff}
.topbar i{color:#ffb4a6;margin-right:8px}
.topbar .push{margin-left:auto}
.topbar .now::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#9ff0b2;margin-right:9px;vertical-align:1px}
.topbar .now.is-closed::before{background:#c9c2d6}
.top{background:var(--night);color:var(--paper);border-bottom:4px solid var(--red)}
.top-in{display:flex;align-items:center;gap:var(--space-4);height:var(--head-h);transition:height .35s ease}
.site-head.is-small .top-in{height:66px}
.brand{display:block;flex:0 0 auto;transform-origin:left center;transition:transform .35s ease}
.brand img{width:330px}
.site-head.is-small .brand{transform:scale(.72)}
.nav{display:flex;gap:6px;margin-left:auto;align-items:center}
.nav a{white-space:nowrap;font:700 17px/1 var(--font-label);text-transform:uppercase;letter-spacing:.08em;text-decoration:none;padding:10px 12px;color:#d9d3e6;display:inline-block;transition:transform .3s ease,color .3s ease}
.nav a:hover,.nav a[aria-current="page"]{color:#fff}
.nav a:hover{transform:scale(1.05)}
.nav a[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--red)}
.nav .btn{margin-left:10px;min-height:50px;color:#fdf6ee;font-size:18px;transition:min-height .35s ease,transform .3s ease}
.site-head.is-small .nav .btn{min-height:44px}
@media (max-width:1180px){.nav a{padding:10px 8px}.topbar .hide-md{display:none}}
@media (max-width:980px){.nav a:not(.btn){display:none}.brand img{width:250px}}
@media (max-width:980px){:root{--head-h:80px}}
@media (max-width:640px){:root{--bar-h:34px}.topbar{font-size:13px}.topbar .hide-sm{display:none}.topbar .wrap{gap:14px;justify-content:space-between}.topbar .push{margin-left:0}}
@media (max-width:520px){.brand img{width:200px}.nav .btn span{display:none}.nav .btn{padding:0 16px}.site-head.is-small .top-in{height:60px}}

/* home hero: full-bleed photo under a partial overlay */
.hero{position:relative;color:var(--paper);min-height:clamp(560px,calc(100vh - 140px),820px);display:flex;align-items:flex-end;isolation:isolate;overflow:hidden;background:var(--night)}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:62% 40%}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(23,19,31,.84) 0%,rgba(23,19,31,.62) 42%,rgba(23,19,31,.12) 78%,rgba(23,19,31,.05) 100%),linear-gradient(0deg,rgba(23,19,31,.55) 0%,rgba(23,19,31,0) 45%)}
.hero-body{padding:var(--space-6) 0 130px;max-width:860px}
.hero h1{font-size:clamp(60px,8.4vw,124px);font-weight:900;color:#f6efe2}
.hero h1 .amp{color:#ff3b30;font-weight:800}
.hero h1 small{display:block;font:800 clamp(24px,2.6vw,38px)/1.05 var(--font-display);letter-spacing:.02em;color:#e3c48f;margin-top:14px}
.hero-lede{font-size:clamp(19px,1.5vw,22px);color:#efe6d6;max-width:46ch;margin:22px 0 26px}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px}

/* page hero (inner pages) */
.phero{position:relative;color:var(--paper);min-height:460px;display:flex;align-items:flex-end;isolation:isolate;overflow:hidden;background:var(--night)}
.phero .hero-bg img{object-position:50% 45%}
.phero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(23,19,31,.86) 0%,rgba(23,19,31,.55) 55%,rgba(23,19,31,.15) 100%)}
.phero-in{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:var(--space-5);align-items:end;padding:var(--space-6) 0 110px}
.crumb{font:700 15px/1 var(--font-label);letter-spacing:.12em;text-transform:uppercase;color:#e3c48f;margin-bottom:16px}
.crumb a{color:#e3c48f}
.phero h1{font-size:clamp(54px,7vw,104px);font-weight:900;color:#f6efe2}
.phero h1 span{color:#ff3b30}
.phero p{font-size:20px;color:#efe6d6;max-width:44ch;margin:18px 0 0}
.jump{background:rgba(243,239,230,.94);color:var(--ink);padding:22px 24px;border-radius:4px 26px 4px 4px;box-shadow:8px 8px 0 var(--red)}
.jump b{display:block;font:700 14px/1 var(--font-label);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:10px}
.jump a{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #d6ccb9;text-decoration:none;font-weight:600}
.jump a:last-child{border-bottom:0}
.jump a i{color:var(--red);font-size:14px;align-self:center}
@media (max-width:900px){.phero-in{grid-template-columns:1fr}.phero{min-height:0}}

/* facts rod with caution tape across the top */
.rod-zone{position:relative;z-index:3;margin-top:-70px}
.rod{position:relative;z-index:2}
.rod-bar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:var(--paper);border:3px solid var(--ink);box-shadow:8px 8px 0 var(--ink);position:relative}
.tape-band{position:absolute;z-index:1;left:-2vw;right:-2vw;top:38px;height:40px;background:var(--caution);border-top:3px solid #1e1a22;border-bottom:3px solid #1e1a22;transform:rotate(-2deg);overflow:hidden;display:flex;align-items:center;box-shadow:0 6px 14px -8px rgba(0,0,0,.6)}
.tape-band span{display:block;white-space:nowrap;font:900 20px/1 var(--font-display);letter-spacing:.18em;color:#1e1a22;word-spacing:.6em;font-size:22px}
.fact{padding:30px 22px 22px;border-right:2px solid var(--ink)}
.fact:last-child{border-right:0}
.fact b{display:block;font:900 clamp(30px,2.8vw,42px)/1 var(--font-display);text-transform:uppercase;color:var(--blue)}
.fact span{display:block;margin-top:8px;font:600 16px/1.3 var(--font-label);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2)}
@media (max-width:900px){.rod-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.fact{border-bottom:2px solid var(--ink)}.fact:nth-child(2n+1){border-right:0}.fact:last-child{grid-column:1/-1;border-bottom:0}}

/* crews */
.crews{position:relative;padding:var(--space-7) 0 var(--space-6);background:var(--paper)}
.grid-paper::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(45,0,181,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(45,0,181,.05) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}
.crews-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--space-5);align-items:end;margin-bottom:var(--space-6);position:relative}
.crews h2,.sec-h{font-size:clamp(52px,6.6vw,96px);font-weight:900;color:var(--ink)}
.crews h2 em,.sec-h em{font-style:normal;color:var(--blue)}
.crews-head p{font-size:20px;color:var(--ink-2);max-width:46ch}
.crew-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:0 70px}
.cutline{position:absolute;left:calc(53.5% + 2px);top:-30px;bottom:-40px;width:0;border-left:4px dashed var(--red);opacity:.75}
.crew{position:relative}
.crew.is-dig{margin-top:150px}
.crew-photo{border-radius:4px 40px 4px 4px;overflow:hidden;aspect-ratio:4/3;box-shadow:12px 12px 0 var(--paper-2)}
.crew.is-dig .crew-photo{border-radius:40px 4px 4px 4px;aspect-ratio:5/4}
.crew-photo img{width:100%;height:100%;object-fit:cover}
.crew-card{position:relative;background:#fbf8f2;border:3px solid var(--ink);padding:30px 30px 26px;margin:-110px 0 0 44px;box-shadow:8px 8px 0 var(--blue)}
.crew.is-dig .crew-card{margin:-90px 34px 0 -40px;box-shadow:8px 8px 0 var(--red)}
.crew-title{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.crew-title h3{font-size:clamp(40px,4vw,58px);font-weight:900}
.ico{flex:0 0 auto;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-size:27px;color:#fff;background:var(--blue)}
.is-dig .ico{background:var(--red)}
.ticks{list-style:none;margin:0 0 18px;padding:0}
.ticks li{display:flex;gap:12px;align-items:baseline;padding:9px 0;border-bottom:1px solid #d9d0bf;font-size:19px;font-weight:500}
.ticks li i{color:var(--red);font-size:15px;width:16px}
.is-dig .ticks li i{color:var(--blue)}
.more{display:inline-flex;gap:10px;align-items:center;font:700 17px/1 var(--font-label);letter-spacing:.08em;text-transform:uppercase;color:var(--blue);text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:4px}
.is-dig .more{color:var(--red)}
@media (max-width:900px){
  .crews-head,.crew-grid{grid-template-columns:1fr}
  .cutline{display:none}
  .crew.is-dig{margin-top:var(--space-6)}
  .crew-card,.crew.is-dig .crew-card{margin:-60px 12px 0 12px}
}
/* partner trades */
.trades{position:relative;z-index:4;margin-top:var(--space-6)}
.trades-in{display:grid;grid-template-columns:minmax(0,1.1fr) repeat(3,minmax(0,1fr));background:var(--blue);color:#f1edff;border-radius:4px 34px 4px 34px;overflow:hidden;box-shadow:0 26px 50px -30px rgba(20,10,69,.8)}
.trades-lead{padding:30px 32px;background:var(--blue-deep)}
.trades-lead h3{font-size:36px;font-weight:900;color:#fff}
.trades-lead p{margin:10px 0 0;font-size:16px;color:#cfc6f5}
.trade{padding:30px 26px;border-left:1px solid rgba(255,255,255,.16);display:flex;flex-direction:column;gap:10px}
.trade .ico{width:56px;height:56px;font-size:22px;background:rgba(255,255,255,.12);border:2px dashed rgba(255,255,255,.45)}
.trade b{font:800 30px/1 var(--font-display);text-transform:uppercase}
.trade span{font:600 14px/1.3 var(--font-label);letter-spacing:.1em;text-transform:uppercase;color:#bdb2f0}
@media (max-width:900px){.trades-in{grid-template-columns:1fr 1fr}.trades-lead{grid-column:1/-1}.trade:nth-child(2){border-left:0}}
@media (max-width:520px){.trades-in{grid-template-columns:1fr}.trade{border-left:0;border-top:1px solid rgba(255,255,255,.16)}}

/* soil strata dividers: the bottom edge of a row */
.strata-edge{position:relative;height:clamp(150px,16vw,230px);margin-top:-1px;overflow:visible}
.strata-edge svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.strata-edge::after{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.4;mix-blend-mode:overlay;pointer-events:none}
.strata-edge.on-paper{background:var(--paper)}
.strata-edge.to-paper{background:var(--soil-2)}
/* grade stake, driven through the ground line */
.stake{position:absolute;right:9%;bottom:18%;width:150px;height:330px;z-index:3}
.stake-post{position:absolute;left:50%;top:0;width:48px;margin-left:-24px;height:320px;background:linear-gradient(90deg,var(--stake-dark),var(--stake) 30%,#e0c08b 55%,var(--stake-dark));clip-path:polygon(0 0,100% 0,100% 88%,50% 100%,0 88%)}
.stake-post::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(180deg,transparent 0 9px,rgba(120,80,30,.16) 9px 10px);mix-blend-mode:multiply}
.stake-mark{position:absolute;left:50%;top:120px;transform:translateX(-50%) rotate(-90deg);white-space:nowrap;font:700 23px/1 var(--font-label);color:var(--blue);letter-spacing:.04em}
.stake-mark b{color:var(--red)}
.tape{position:absolute;top:16px;left:calc(50% + 20px);width:120px;height:120px;pointer-events:none}
.tape i{position:absolute;left:0;top:0;width:110px;height:24px;background:var(--red);transform-origin:0 50%;clip-path:polygon(0 0,100% 10%,92% 50%,100% 90%,0 100%)}
.tape i:nth-child(2){top:12px;width:90px;background:#d4161a;transform:rotate(14deg)}
@media (max-width:900px){.stake{display:none}}

/* job ticket (picker + estimate form) */
.jobs{position:relative;background:var(--soil-2);color:var(--paper);padding:var(--space-5) 0 var(--space-6);overflow:hidden}
.jobs::after{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.35;mix-blend-mode:overlay;pointer-events:none}
.jobs.is-page{padding-top:var(--space-7)}
.jobs-in{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:var(--space-6);align-items:start}
.jobs h2{font-size:clamp(56px,7vw,104px);font-weight:900;color:#f6efe2}
.jobs h2 span{color:var(--sand)}
.jobs-intro{font-size:20px;color:#e6dac6;max-width:44ch;margin:20px 0 30px}
.job-list{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.job{font:700 18px/1 var(--font-label);text-transform:uppercase;letter-spacing:.05em;color:var(--paper);background:rgba(23,19,31,.42);border:2px solid rgba(243,239,230,.35);border-radius:4px 14px 4px 14px;padding:14px 18px;cursor:pointer;display:inline-flex;gap:10px;align-items:center;transition:transform .3s ease,background-color .3s ease,border-color .3s ease}
.job i{color:var(--sand);transition:color .3s ease}
.job:hover{transform:translateY(-2px);border-color:var(--paper)}
.job[aria-pressed="true"]{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.job[aria-pressed="true"] i{color:var(--red)}
.job.is-partner{border-style:dashed}
.say{margin-top:28px;display:flex;gap:14px;align-items:center;font:italic 400 18px/1.4 var(--font-body);color:#d8c9b2}
.say i{font-size:22px;color:var(--sand)}
.ticket{position:relative;background:#fbf7ee;color:var(--ink);padding:38px 34px 30px;box-shadow:14px 14px 0 rgba(23,19,31,.55);transform:rotate(1deg)}
.ticket::before{content:"";position:absolute;left:0;right:0;top:-10px;height:12px;background:radial-gradient(circle at 8px 0,transparent 7px,#fbf7ee 7.5px) 0 0/16px 12px repeat-x}
.ticket-top{display:flex;justify-content:space-between;align-items:baseline;border-bottom:3px solid var(--ink);padding-bottom:12px;margin-bottom:6px}
.ticket-top b{font:900 30px/1 var(--font-display);text-transform:uppercase}
.ticket-top span{font:700 15px/1 var(--font-label);letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.ticket dl{margin:0}
.trow{display:grid;grid-template-columns:118px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid #d8cfbd;font-size:17px}
.trow dt{font:700 14px/1.6 var(--font-label);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.trow dd{margin:0}
.boxes{display:flex;flex-wrap:wrap;gap:8px 18px}
.box{display:inline-flex;align-items:center;gap:8px;font:700 16px/1 var(--font-label);text-transform:uppercase;letter-spacing:.06em;color:#8d8576}
.box::before{content:"";width:20px;height:20px;border:2px solid currentColor;border-radius:3px;display:inline-grid;place-items:center;font:900 15px/1 var(--font-body)}
.box.on{color:var(--ink)}
.box.on::before{content:"\2713";background:var(--blue);border-color:var(--blue);color:#fff}
.ticket-job{font:900 32px/1 var(--font-display);text-transform:uppercase;color:var(--blue)}
.ticket-form{margin-top:16px;padding-top:14px;border-top:3px dashed #cbbfa9}
.ticket-form .fhead{font:700 14px/1 var(--font-label);letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:12px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}
.fgrid .full{grid-column:1/-1}
.ticket label{display:block;font:700 13px/1 var(--font-label);letter-spacing:.1em;text-transform:uppercase;margin-bottom:5px;color:var(--ink-2)}
.ticket input,.ticket textarea{width:100%;font:500 17px/1.3 var(--font-body);padding:10px 12px;border:0;border-bottom:2px solid #b9ad97;border-radius:0;background:transparent;color:var(--ink)}
.ticket input:focus,.ticket textarea:focus{border-bottom-color:var(--blue);outline:none;background:#fffdf8}
.ticket textarea{min-height:58px;resize:vertical}
.ticket-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.ticket-actions .btn{min-height:50px;font-size:17px;padding:0 18px}
.form-msg{margin:10px 0 0;font-size:15px;color:var(--blue);min-height:1.2em}
.stub{font-size:14px;color:var(--ink-2);margin:10px 0 0}
.stamp{position:absolute;right:22px;top:92px;font:900 30px/1 var(--font-display);text-transform:uppercase;color:var(--red);border:4px solid var(--red);border-radius:6px;padding:8px 12px;transform:rotate(-12deg);opacity:.85;letter-spacing:.04em;mix-blend-mode:multiply;pointer-events:none}
.stamp small{display:block;font:700 13px/1 var(--font-label);letter-spacing:.14em;margin-top:4px}
@media (max-width:1000px){.jobs-in{grid-template-columns:1fr}.ticket{transform:none}}
@media (max-width:520px){.trow{grid-template-columns:1fr;gap:2px}.stamp{top:84px;right:10px;font-size:19px;padding:6px 8px}.stamp small{font-size:10px}.fgrid{grid-template-columns:1fr}.ticket{padding:34px 20px 24px}}

/* questions */
.qa{position:relative;padding:var(--space-7) 0}
.qa-in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:var(--space-6)}
.qa-side{position:sticky;top:120px;align-self:start}
.qa h2{font-size:clamp(50px,5.6vw,84px);font-weight:900}
.qa h2 span{color:var(--blue)}
.qa-side p{font-size:19px;color:var(--ink-2);margin-top:18px}
.qa-count{font:900 150px/.8 var(--font-display);color:transparent;-webkit-text-stroke:2px var(--red);margin-top:26px}
.qa-group+.qa-group{margin-top:var(--space-5)}
.qa-group h3{font-size:30px;font-weight:800;color:var(--blue);display:flex;align-items:center;gap:14px;padding-bottom:12px;border-bottom:3px solid var(--ink)}
.qa-group h3 .ico{width:48px;height:48px;font-size:19px}
details{border-bottom:1px solid #d3c9b6}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:18px 2px;font:600 20px/1.35 var(--font-body)}
summary::-webkit-details-marker{display:none}
summary::after{content:"\f067";font:900 15px/1 "Font Awesome 6 Free";color:var(--red);width:34px;height:34px;flex:0 0 34px;border-radius:50%;border:2px solid var(--red);display:grid;place-items:center;transition:transform .3s ease}
details[open] summary::after{transform:rotate(45deg)}
details p{padding:0 50px 14px 2px;color:var(--ink-2);font-size:18px}
.qa-more{margin-top:var(--space-5);display:flex;flex-wrap:wrap;gap:14px}
@media (max-width:900px){.qa-in{grid-template-columns:1fr}.qa-side{position:static}.qa-count{display:none}}

/* service detail rows (inner pages) */
.svc{position:relative;padding:var(--space-7) 0 var(--space-6)}
.svc-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-5);align-items:end;margin-bottom:var(--space-5);position:relative}
.svc-head p{font-size:20px;color:var(--ink-2);max-width:46ch;margin:0}
.svc-list{position:relative;counter-reset:svc;border-top:3px solid var(--ink)}
.svc-row{display:grid;grid-template-columns:90px minmax(0,1fr) minmax(0,1.1fr) 200px;gap:var(--space-4);align-items:center;padding:26px 0;border-bottom:1px solid #cfc4b0}
.svc-row::before{counter-increment:svc;content:counter(svc,decimal-leading-zero);font:900 54px/1 var(--font-display);color:transparent;-webkit-text-stroke:1.5px var(--red)}
.svc-row h3{font-size:clamp(30px,3vw,42px);font-weight:900;color:var(--blue)}
.svc-row p{margin:0;font-size:18px;color:var(--ink-2)}
.svc-row .btn{min-height:46px;font-size:16px;padding:0 16px;justify-self:end}
.strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:var(--space-5);position:relative}
.strip figure{margin:0;border-radius:4px 22px 4px 4px;overflow:hidden;aspect-ratio:31/10;background:var(--paper-2)}
.strip img{width:100%;height:100%;object-fit:cover}
.strip-note{position:relative;margin-top:10px;font-size:14px;color:var(--ink-2)}
@media (max-width:1000px){.svc-head{grid-template-columns:1fr}.svc-row{grid-template-columns:60px minmax(0,1fr)}.svc-row::before{font-size:38px}.svc-row p,.svc-row .btn{grid-column:2}.svc-row .btn{justify-self:start}.strip{grid-template-columns:1fr}}

/* footer finale */
.finale{color:var(--paper)}
.area{position:relative;background:var(--blue);padding:110px 0 90px;overflow:hidden}
.area::before{content:"";position:absolute;inset:-50% 0 0 0;background:repeating-radial-gradient(ellipse at 20% 120%,transparent 0 26px,rgba(255,255,255,.07) 26px 28px);animation:drift 240s linear infinite}
.area::after{content:"";position:absolute;left:0;right:0;top:0;height:30px;background:repeating-linear-gradient(-45deg,var(--caution) 0 24px,#1e1a22 24px 48px);border-bottom:3px solid #1e1a22}
.area-in{position:relative;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:var(--space-6);align-items:center}
.area h2{font-size:clamp(48px,5.4vw,80px);font-weight:900;color:#fff}
.area h2 span{color:#ffb4a6}
.area-in p{color:#d9d1fb;font-size:19px;margin:18px 0 22px;max-width:40ch}
.counties{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 22px;padding:0}
.counties li{font:700 16px/1 var(--font-label);text-transform:uppercase;letter-spacing:.06em;padding:9px 12px;border:2px solid rgba(255,255,255,.4);border-radius:3px 10px 3px 10px;color:#fff}
.counties li.is-home{background:var(--red);border-color:var(--red)}
.svc-map{position:relative;isolation:isolate;background:#f3efe6;border-radius:4px 34px 4px 4px;overflow:hidden;border:3px solid #0f0a2e;box-shadow:12px 12px 0 rgba(15,10,46,.55)}
.svc-svg{display:block;width:100%;height:auto}
.svc-svg .others path{fill:#e6dfd0;stroke:#f3efe6;stroke-width:2}
.svc-svg .served path{fill:#2D00B5;stroke:#f3efe6;stroke-width:2.2;transition:fill .3s ease}
.svc-svg .served path.home{fill:#BB0102}
.svc-svg .served path:hover{fill:#1c0a6e}
.svc-svg .served path.home:hover{fill:#8f0a0b}
.svc-svg .labels text{font:700 15px/1 var(--font-label);letter-spacing:.06em;fill:#fff;text-anchor:middle;pointer-events:none}
.svc-svg .pitt circle{fill:#fff;stroke:#1e1a22;stroke-width:3}
.svc-svg .pitt text{font:800 16px/1 var(--font-label);letter-spacing:.06em;fill:#f2c21b}
.svc-svg .base circle{fill:#f2c21b;stroke:#1e1a22;stroke-width:3}
.svc-svg .base .ring{fill:none;stroke:#f2c21b;stroke-width:3;transform-box:fill-box;transform-origin:center}
.svc-svg .base rect{fill:#1e1a22}
.svc-svg .base text{font:800 16px/1 var(--font-label);letter-spacing:.08em;fill:#f2c21b}
.svc-svg .scale path,.svc-svg .north path{stroke:#1e1a22;stroke-width:3;fill:#1e1a22}
.svc-svg .scale text,.svc-svg .north text{font:700 13px/1 var(--font-label);letter-spacing:.1em;fill:#1e1a22}
.svc-svg .state{font:900 34px/1 var(--font-display);letter-spacing:.2em;fill:#d2c9b6}
.js .svc-svg .base .ring{animation:ping 2.2s ease-out 1s 4}
@keyframes ping{from{transform:scale(1);opacity:1}to{transform:scale(3.2);opacity:0}}
.small-link{font:700 15px/1 var(--font-label);letter-spacing:.1em;text-transform:uppercase;color:#fff}
@keyframes drift{to{transform:translateY(50%)}}
@media (max-width:900px){.area-in{grid-template-columns:1fr}}

.contact{position:relative;background:var(--night);padding:var(--space-6) 0 var(--space-5)}
.contact::before{content:"";position:absolute;left:0;right:0;top:-1px;height:40px;background:var(--blue);clip-path:polygon(0 0,100% 0,100% 30%,86% 70%,72% 40%,58% 80%,42% 45%,28% 75%,12% 40%,0 70%)}
.contact-in{position:relative;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.8fr);gap:var(--space-5);padding-top:var(--space-4)}
.contact .brand-big img{width:min(420px,100%)}
.big-phone{display:block;white-space:nowrap;font:900 clamp(44px,4.6vw,72px)/1 var(--font-display);color:#fff;text-decoration:none;margin:28px 0 8px;letter-spacing:.01em}
.big-phone:hover{color:#ffb4a6}
.contact a.mail{font-size:20px;color:#d9d3e6}
.contact .town{font:700 22px/1.3 var(--font-label);text-transform:uppercase;letter-spacing:.08em;color:var(--sand);margin-top:16px}
.contact h3{font-size:28px;font-weight:800;color:#fff;margin-bottom:14px}
.hours{width:100%;border-collapse:collapse;font-size:18px}
.hours td{padding:10px 0;border-bottom:1px solid #332c3f;color:#ddd6e8}
.hours td:last-child{text-align:right;font-weight:600;color:#fff}
.flinks{list-style:none;margin:0;padding:0}
.flinks a{display:block;padding:8px 0;color:#d9d3e6;text-decoration:none;font:700 18px/1.2 var(--font-label);text-transform:uppercase;letter-spacing:.08em}
.flinks a:hover{color:#fff}
.oldsite{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid #332c3f;display:flex;flex-wrap:wrap;gap:10px 26px;align-items:baseline;font-size:16px;color:#a79fbb;position:relative}
.oldsite b{font:700 14px/1 var(--font-label);letter-spacing:.12em;text-transform:uppercase;color:#d9d3e6}
.oldsite a{color:#d9d3e6}
.credit{background:#100d16;color:#8f87a0;font-size:14px;padding:16px 0 18px}
.credit .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}
.credit a{color:#c9c2d6}
@media (max-width:1000px){.contact-in{grid-template-columns:1fr 1fr}.contact-in>div:first-child{grid-column:1/-1}}
@media (max-width:640px){.contact-in{grid-template-columns:1fr}}

.preview-tag{position:fixed;left:14px;bottom:14px;z-index:70;background:var(--paper);color:var(--ink);font:700 13px/1 var(--font-label);letter-spacing:.08em;text-transform:uppercase;padding:9px 12px;border-radius:4px;text-decoration:none;box-shadow:3px 3px 0 var(--ink)}
.bottom-bar{display:none}
@media (max-width:760px){
  .preview-tag{bottom:auto;top:auto;left:auto;right:10px;bottom:84px;font-size:11px;padding:6px 8px}
  .bottom-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:fixed;left:10px;right:10px;bottom:10px;z-index:60;background:var(--night);border-radius:6px 20px 6px 20px;padding:6px;box-shadow:0 18px 40px -16px rgba(0,0,0,.7);border:2px solid var(--red)}
  .bottom-bar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:54px;color:var(--paper);text-decoration:none;font:700 14px/1 var(--font-label);text-transform:uppercase;letter-spacing:.08em;border-radius:4px 14px 4px 14px}
  .bottom-bar a i{font-size:19px}
  .bottom-bar a.is-main{background:var(--red)}
  body{padding-bottom:84px}
}

/* motion (the Bow) */
.js .rise{opacity:0;transform:translateY(24px)}
.js .is-in .rise,.js .rise.is-in{opacity:1;transform:none;transition:opacity .55s ease-out,transform .55s ease-out}
.js .hero-body .rise:nth-child(2),.js .phero-in .rise:nth-child(2){transition-delay:.15s}
.js .hero-body .rise:nth-child(3){transition-delay:.3s}
.js .hero-body .rise:nth-child(4){transition-delay:.45s}
.js .hero-bg img,.js .phero .hero-bg img{transform:scale(1.06);transition:transform 2.4s cubic-bezier(.2,.7,.2,1)}
.js .is-in .hero-bg img{transform:none}
.js .stake{opacity:0;transform:translateY(-120px)}
.js .stake.is-in{opacity:1;transform:none;transition:transform .7s cubic-bezier(.2,.9,.3,1.3) .2s,opacity .3s ease .2s}
.js .stake.is-in .tape i{animation:flap 1.8s ease-in-out .9s 3}
.js .stake.is-in .tape i:nth-child(2){animation-delay:1.1s}
@keyframes flap{0%,100%{transform:rotate(0) scaleX(1)}50%{transform:rotate(9deg) scaleX(.9)}}
.js .tape-band span{animation:tape 40s linear infinite}
@keyframes tape{to{transform:translateX(-50%)}}
.slam{animation:slam .5s cubic-bezier(.2,.9,.3,1.3)}
@keyframes slam{0%{transform:rotate(-12deg) scale(2.4);opacity:0}60%{opacity:1}100%{transform:rotate(-12deg) scale(1);opacity:.85}}
.fadein{animation:fadein .45s ease-out}
@keyframes fadein{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.shake{animation:shake .45s ease}
@keyframes shake{0%,100%{transform:rotate(1deg)}25%{transform:rotate(1deg) translateX(-5px)}50%{transform:rotate(1deg) translateX(4px)}75%{transform:rotate(1deg) translateX(-2px)}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .rise,.js .stake{opacity:1;transform:none}
  .js .hero-bg img{transform:none}
}
@media (max-width:760px){
  .hero::before,.phero::before{background:linear-gradient(0deg,rgba(23,19,31,.86) 0%,rgba(23,19,31,.7) 55%,rgba(23,19,31,.35) 100%)}
  .hero-bg img{object-position:70% 40%}
}
