/* OT Construction. Palette taken from the logo: black, logo orange, white, and concrete grey. */
/* Fonts are served from this site (no third-party request). Archivo and Source Serif 4, SIL Open Font License, Latin subset, only the weight/width ranges used below. */
@font-face{font-family:"Archivo";font-style:normal;font-weight:500 900;font-stretch:74% 100%;font-display:swap;src:url(/assets/fonts/archivo-latin.21778fd2b1.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/source-serif-4-latin.98a04b7ed4.woff2) format("woff2")}
/* While a web font is still downloading, text is drawn in a system font. These faces resize that system font to the web font's measured width on this site's own text, so the page does not reflow when the web font arrives (no layout shift). They load nothing: they only name fonts already on the visitor's device. */
@font-face{font-family:"Source Serif Fallback Georgia";font-weight:400;src:local("Georgia"),local("Georgia Regular");size-adjust:102.6%;ascent-override:101%;descent-override:32.7%;line-gap-override:0%}
@font-face{font-family:"Source Serif Fallback Times";font-weight:400;src:local("Times New Roman"),local("TimesNewRomanPSMT"),local("Liberation Serif"),local("Tinos");size-adjust:112.6%;ascent-override:92%;descent-override:29.8%;line-gap-override:0%}
@font-face{font-family:"Archivo Fallback Display";font-weight:700;src:local("Arial Bold"),local("Arial-BoldMT"),local("Helvetica Neue Bold"),local("HelveticaNeue-Bold"),local("Liberation Sans Bold"),local("Arimo Bold"),local("Roboto Bold");size-adjust:81%;ascent-override:108.4%;descent-override:25.9%;line-gap-override:0%}
:root{
  --paper:#E3E3E0; --sheet:#F4F4F2; --line:#B8B8B4; --line-d:rgba(255,255,255,.16);
  --ink:#141414; --ink-2:#4A4A47;
  --ink:#141414; --night:#151515; --night-d:#0C0C0C;
  --stake:#F15A25; --stake-d:#D44A18; --stake-text:#B23E14;
  --water:#F15A25; --water-l:#F15A25;
  --ui:"Archivo","Helvetica Neue",Arial,sans-serif;
  --display:"Archivo","Archivo Fallback Display","Arial Narrow","Helvetica Neue",Arial,sans-serif;
  --serif:"Source Serif 4","Source Serif Fallback Georgia","Source Serif Fallback Times",Georgia,"Times New Roman",serif;
  --maxw:1180px; --prose:66ch;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:6rem}
body{
  margin:0;color:var(--ink);background-color:var(--paper);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .08 0 0 0 0 .08 0 0 0 0 .08 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  font:400 1.125rem/1.65 var(--serif);text-rendering:optimizeLegibility;padding-bottom:3.7rem;
}
img,svg{max-width:100%}
h1,h2,h3,h4{font-family:var(--display);font-stretch:75%;font-weight:800;line-height:1.05;letter-spacing:-.005em;margin:0 0 .5em;color:var(--ink)}
h1{font-size:clamp(2.3rem,5.4vw,4.4rem)}
h2{font-size:clamp(1.8rem,3.8vw,2.7rem);margin-top:2.1em}
h3{font-size:1.4rem;font-stretch:80%;margin-top:1.4em}
p{margin:0 0 1.15em}
a{color:var(--ink);text-decoration-color:var(--stake);text-decoration-thickness:.1em;text-underline-offset:.22em}
a:hover{color:var(--ink);text-decoration-thickness:.2em}
:focus-visible{outline:3px solid var(--stake);outline-offset:3px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0;background:var(--stake);color:var(--ink);padding:.8rem 1.1rem;font:700 1rem var(--ui);z-index:100}
.skip:focus{left:0}
.wrap{width:min(100% - 2.5rem,var(--maxw));margin-inline:auto}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:var(--night);color:#fff;border-bottom:1px solid var(--line-d);padding-top:env(safe-area-inset-top,0px)}
.bar{display:flex;align-items:center;gap:1rem;min-height:72px}
.brand{display:flex;align-items:center;gap:.8rem;color:#fff;text-decoration:none}
.brand:hover{color:#fff}
.mark{display:block;height:46px;width:auto}
.brand-text strong{display:block;font:600 1.02rem/1.15 var(--ui);letter-spacing:.2em;text-transform:uppercase}
.brand-text small{display:block;font:500 .78rem/1.25 var(--ui);color:#A8A8A4}
.nav{margin-left:auto;align-self:stretch}
.nav-list{list-style:none;display:flex;gap:.1rem;margin:0;padding:0;height:100%;align-items:stretch}
.nav-list>li{display:flex;align-items:center}
.nav-list>li>a{display:flex;align-items:center;height:100%;padding:0 .85rem;color:#fff;text-decoration:none;font:600 .97rem/1.2 var(--ui)}
.nav-list>li>a:hover{background:rgba(255,255,255,.08);color:#fff}
.has-sub>a::after{content:"";width:.42em;height:.42em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:-.25em 0 0 .6em}
.nav-list>li>a.call{height:auto;margin-left:.6rem;background:var(--stake);color:var(--ink);padding:.7rem 1rem;border-radius:2px;font:800 1.02rem/1.1 var(--display);font-stretch:90%;white-space:nowrap}
.nav-list>li>a.call:hover{background:var(--stake-d);color:var(--ink)}
.mega{display:none;position:absolute;right:0;top:100%;width:min(700px,calc(100vw - 2rem));background:var(--sheet);color:var(--ink);border-top:4px solid var(--stake);box-shadow:0 26px 50px rgba(0,0,0,.4);padding:.6rem}
.has-sub:hover .mega,.has-sub:focus-within .mega{display:block}
.mega-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr}
.mega-list a{display:grid;grid-template-columns:auto 1fr;gap:.15rem .9rem;padding:1rem .9rem;color:var(--ink);text-decoration:none;align-items:start}
.mega-list a:hover{background:#fff}
.mega-list .ico{grid-row:1 / span 2;width:34px;height:34px;color:var(--ink)}
.mega-list strong{font:800 1.12rem/1.15 var(--display);font-stretch:80%}
.mega-list span{font:400 .9rem/1.35 var(--serif);color:var(--ink-2)}
.brand-text strong{white-space:nowrap}
@media(max-width:959px){.brand-text strong{font-size:.92rem;letter-spacing:.13em}}
@media(max-width:380px){.brand-text strong{font-size:.82rem;letter-spacing:.1em}.mark{height:40px}}
.nav-toggle{display:none;margin-left:auto;background:transparent;color:#fff;border:2px solid #fff;border-radius:2px;padding:.5rem .85rem;min-height:44px;font:700 .95rem var(--ui);cursor:pointer}
@media(min-width:1120px){.bar{position:relative}}
@media(min-width:1120px) and (max-width:1279px){.nav-list>li>a{padding:0 .6rem}}
@media(max-width:1119px){
  .nav-toggle{display:block}
  .nav{position:absolute;left:0;right:0;top:100%;margin:0;align-self:auto;background:var(--night);display:none;border-top:1px solid var(--line-d);max-height:calc(100vh - 72px);overflow:auto}
  .nav.open{display:block}
  .nav-list{flex-direction:column;align-items:stretch;height:auto;padding:.5rem 1.25rem 1.2rem}
  .nav-list>li{display:block}
  .nav-list>li>a{height:auto;padding:.85rem .2rem}
  .has-sub>a::after{display:none}
  .mega{display:block;position:static;width:auto;background:transparent;box-shadow:none;border:0;padding:0 0 .4rem .8rem;color:#fff}
  .mega-list{grid-template-columns:1fr}
  .mega-list a{display:block;padding:.6rem .2rem;color:#fff}
  .mega-list a:hover{background:transparent}
  .mega-list .ico,.mega-list span{display:none}
  .mega-list strong{font:600 .98rem var(--ui)}
  .nav-list>li>a.call{margin:.6rem 0 0;text-align:center;justify-content:center}
}

/* ---------- Dark fields (hero, page heads, bands) ---------- */
.field{position:relative;background-color:var(--night);color:#fff;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:56px 56px;background-position:-1px -1px}
.field h1,.field h2,.field h3{color:#fff}
.field a{color:#fff}
.crumbs{font:500 .9rem var(--ui);margin-bottom:1.3rem}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.2rem .55rem}
.crumbs li+li::before{content:"/";color:#8A8A86;margin-right:.55rem}
.crumbs a{color:#C8C8C4}
.crumbs [aria-current]{color:#fff}

.hero,.page-head{border-bottom:6px solid var(--stake)}
.page-head{padding:clamp(2.2rem,5vw,3.8rem) 0 clamp(2.4rem,5vw,3.8rem)}
.ph-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:center}
.page-head h1{font-size:clamp(2.1rem,4.6vw,3.7rem);max-width:21ch;margin-bottom:.4em}
.page-head .lede{max-width:62ch;margin-bottom:0}
.ph-icon{color:rgba(255,255,255,.2)}
.ph-icon svg{width:clamp(96px,12vw,150px);height:auto;stroke-width:1.6}
@media(max-width:759px){.ph-grid{grid-template-columns:1fr}.ph-icon{display:none}}
.lede{font-size:1.28rem;line-height:1.55;max-width:46ch;color:var(--ink-2)}
.field .lede{color:#D2D2CE}
.lede p:last-child{margin-bottom:0}

/* ---------- Buttons ---------- */
.btn{display:inline-block;padding:.95rem 1.4rem;background:var(--stake);color:var(--ink);border:2px solid var(--stake);border-radius:2px;font:800 1.05rem/1 var(--display);font-stretch:90%;text-decoration:none;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.btn:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.btn-ghost{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff}
.field .btn,.field .btn:visited{color:var(--ink)}
.field .btn:hover{background:#fff;border-color:#fff;color:var(--ink)}
.field .btn-ghost{background:transparent;border-color:rgba(255,255,255,.7);color:#fff}
.field .btn-ghost:hover{background:#fff;border-color:#fff;color:var(--ink)}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}

/* ---------- Hero ---------- */
.hero{padding:clamp(2.6rem,6vw,5rem) 0 0;overflow:hidden}
.hero-grid{display:grid;gap:2.2rem;grid-template-columns:1fr;align-items:center;padding-bottom:clamp(2.2rem,5vw,3.6rem)}
@media(min-width:1000px){.hero-grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:3.2rem}}
.hero h1{font-size:clamp(2.5rem,5.4vw,4.5rem);line-height:1;margin-bottom:.45em}
.hero .lede{max-width:40ch}
.hero-art{margin:0}
.hero-art figcaption{font:500 .92rem/1.45 var(--ui);color:#A8A8A4;margin-top:.7rem;max-width:56ch}
.proof{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;border-top:1px solid var(--line-d)}
@media(min-width:700px){.proof{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.proof{grid-template-columns:repeat(4,1fr)}}
.proof li{padding:1.15rem 1.2rem 1.2rem 0;border-bottom:1px solid var(--line-d)}
@media(min-width:1000px){.proof li{border-bottom:0;border-left:1px solid var(--line-d);padding-left:1.4rem}.proof li:first-child{border-left:0;padding-left:0}}
.proof strong{display:block;font:800 1.15rem/1.2 var(--display);font-stretch:82%;color:#fff}
.proof span{display:block;font:500 .93rem/1.4 var(--ui);color:#B9B9B5;margin-top:.15rem}
.proof a{color:#fff}

/* ---------- Sections ---------- */
.section{padding:clamp(3rem,7vw,5.5rem) 0}
.section+.section{border-top:1px solid var(--line)}
.section-sheet{background:var(--sheet)}
.sec-head{display:grid;gap:.6rem 3rem;grid-template-columns:1fr;margin-bottom:2.4rem;align-items:end}
@media(min-width:900px){.sec-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.sec-head h2{margin:0;font-size:clamp(2rem,4.2vw,3.2rem)}
.sec-head p{margin:0;color:var(--ink-2);max-width:52ch}

.svc-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;border-top:2px solid var(--ink);border-left:1px solid var(--line)}
@media(min-width:700px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.svc-grid{grid-template-columns:repeat(3,1fr)}}
.svc-grid li{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.svc-grid a{display:flex;flex-direction:column;gap:.65rem;height:100%;padding:2rem 1.8rem 1.7rem;text-decoration:none;color:var(--ink);transition:background .2s}
.svc-grid a:hover{background:var(--sheet);color:var(--ink)}
.svc-grid .ico{width:52px;height:52px;color:var(--ink);margin-bottom:.4rem;transition:color .2s}
.svc-grid a:hover .ico{color:var(--stake)}
.svc-grid strong{font:800 1.65rem/1.08 var(--display);font-stretch:76%}
.svc-grid .txt{color:var(--ink-2);font-size:1rem;line-height:1.5}
.svc-grid .more{margin-top:auto;padding-top:.8rem;align-self:flex-start;font:700 .95rem/1.2 var(--ui);color:var(--ink);border-bottom:2px solid var(--line)}
.svc-grid a:hover .more{border-color:var(--stake)}

.statement-grid{display:grid;gap:2rem 5rem;grid-template-columns:1fr}
@media(min-width:960px){.statement-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}}
.statement h2{margin:0;font-size:clamp(2.3rem,5.2vw,4.3rem);line-height:.98}
.statement .prose{max-width:none}

.sub-h{margin:clamp(3rem,6vw,4.5rem) 0 0;font-size:clamp(1.8rem,3.4vw,2.4rem)}
.joints{display:grid;grid-template-columns:1fr;border-top:3px solid var(--ink);margin-top:2.2rem}
@media(min-width:860px){.joints{grid-template-columns:repeat(3,1fr)}.joints>div+div{border-left:1px solid var(--line)}}
.joints>div{padding:1.5rem 1.6rem 1rem 0}
@media(min-width:860px){.joints>div{padding:1.6rem 1.8rem 1rem}.joints>div:first-child{padding-left:0}}
.joints h3{margin-top:0;font-size:1.6rem}
.joints p{color:var(--ink-2);margin:0}

.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:0;counter-reset:st;border-top:2px solid var(--ink)}
@media(min-width:900px){.steps{grid-template-columns:repeat(4,1fr)}}
.steps li{counter-increment:st;position:relative;padding:2rem 1.6rem 1.6rem 0;border-bottom:1px solid var(--line)}
@media(min-width:900px){.steps li{border-bottom:0;padding-right:2rem}}
.steps li::before{content:"";position:absolute;top:-8px;left:0;width:14px;height:14px;background:var(--stake);border:2px solid var(--ink)}
.steps h3{margin:0 0 .6rem;font-size:1.55rem}
.steps h3::before{content:counter(st) ".";margin-right:.35rem;color:var(--ink-2)}
.steps p{margin:0;color:var(--ink-2);font-size:1.02rem;line-height:1.55}

.winter-band{padding:clamp(3rem,7vw,5.5rem) 0}
.winter-grid{display:grid;gap:2.5rem;grid-template-columns:1fr;align-items:center}
@media(min-width:960px){.winter-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:4rem}}
.winter-grid h2{margin:0 0 .5em;font-size:clamp(2.1rem,4.4vw,3.5rem)}
.winter-grid p{color:#D2D2CE;max-width:46ch}
.winter-grid .fig{margin:0;color:var(--ink)}

.areas-grid{display:grid;gap:2.2rem 5rem;grid-template-columns:1fr}
@media(min-width:960px){.areas-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}}
.areas-grid h2{margin:0 0 .4em;font-size:clamp(2rem,4.2vw,3.2rem)}
.city-list{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.city-list a{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1.05rem .1rem;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);font:800 clamp(1.7rem,3.2vw,2.3rem)/1.1 var(--display);font-stretch:76%}
.city-list a span{font:500 .95rem var(--ui);color:var(--ink-2)}
.city-list a:hover{color:var(--ink);background:var(--sheet)}
.also{margin-top:1.4rem;color:var(--ink-2)}
.also strong{color:var(--ink)}

.cta-band{padding:clamp(3rem,6vw,4.8rem) 0}
.cta-grid{display:grid;gap:2rem 4rem;grid-template-columns:1fr;align-items:center}
@media(min-width:900px){.cta-grid{grid-template-columns:minmax(0,1fr) auto}}
.cta-band h2{margin:0 0 .35em;font-size:clamp(2rem,4.4vw,3.3rem)}
.cta-band p{max-width:50ch;color:#D2D2CE;margin:0}
.cta-side{display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
@media(min-width:900px){.cta-side{align-items:flex-end}}
.big-phone{font:800 clamp(2.4rem,5.5vw,3.8rem)/1 var(--display);font-stretch:74%;color:#fff;text-decoration:none;letter-spacing:.01em}
.big-phone:hover{color:var(--stake)}
.cta-band .actions{margin-top:0}

/* ---------- Content pages ---------- */
.two-col{display:grid;gap:3rem;grid-template-columns:1fr}
@media(min-width:960px){.two-col{grid-template-columns:minmax(0,1fr) 330px;gap:4rem}}
.main-col{min-width:0}
.prose{max-width:var(--prose)}
.prose>h2:first-child{margin-top:0}
.prose h2{font-size:clamp(1.85rem,3.6vw,2.5rem)}
.prose ul{padding-left:1.25rem}
.prose li{margin:.4rem 0}
.prose ol{list-style:none;padding:0;margin:1.4rem 0;counter-reset:s}
.prose ol>li{counter-increment:s;position:relative;margin:0;padding:1rem 0 1rem 3.5rem;border-top:1px solid var(--line)}
.prose ol>li:last-child{border-bottom:1px solid var(--line)}
.prose ol>li::before{content:counter(s);position:absolute;left:0;top:.95rem;width:2.3rem;height:2.3rem;display:grid;place-items:center;background:var(--night);color:#fff;font:800 1.15rem/1 var(--display);font-stretch:75%}
.checks{list-style:none;padding:0!important}
.checks li{position:relative;padding-left:1.8rem}
.checks li::before{content:"";position:absolute;left:0;top:.6em;width:.85rem;height:.48rem;border-left:3px solid var(--ink);border-bottom:3px solid var(--ink);transform:rotate(-45deg)}
.field .checks li::before{border-color:#fff}
.quick{border-left:6px solid var(--stake);background:var(--sheet);padding:1.2rem 1.5rem;margin:0 0 2.2rem;max-width:var(--prose)}
.quick p{margin:0}
.note{font-size:.97rem;color:var(--ink-2)}
.side{align-self:start;display:grid;gap:1.25rem}
@media(min-width:960px){.side{position:sticky;top:6rem}}
.panel{background:var(--sheet);border:1px solid var(--line);border-top:3px solid var(--ink);padding:1.25rem 1.3rem}
.panel h2,.panel h3{font-size:1.4rem;margin:0 0 .5rem}
.panel p{font-size:1rem;line-height:1.5;margin:0 0 .9rem}
.panel p:last-child{margin-bottom:0}
.panel ul{list-style:none;margin:0;padding:0}
.panel li{border-top:1px solid var(--line)}
.panel li a{display:block;padding:.6rem 0;font:600 .98rem/1.3 var(--ui);text-decoration:none}
.panel li a:hover{text-decoration:underline}
.panel .btn{display:block;text-align:center;margin-top:.5rem}

.ledger{list-style:none;padding:0;margin:0;border-top:2px solid var(--ink)}
.ledger li{border-bottom:1px solid var(--line)}
.ledger a{display:grid;gap:.15rem 2.5rem;padding:1.25rem .3rem;text-decoration:none;color:var(--ink);grid-template-columns:1fr;transition:background .15s}
@media(min-width:760px){.ledger a{grid-template-columns:minmax(0,24rem) 1fr;align-items:baseline}}
.ledger strong{font:800 1.55rem/1.12 var(--display);font-stretch:76%}
.ledger a:hover{background:var(--sheet)}
.ledger a:hover strong{color:var(--ink);text-decoration:underline}
.ledger span{color:var(--ink-2)}
.cols{columns:1;column-gap:2.5rem}
@media(min-width:760px){.cols{columns:2}}
.cols li{break-inside:avoid}
.areas{display:grid;gap:2rem;grid-template-columns:1fr}
@media(min-width:760px){.areas{grid-template-columns:1fr 1fr}}
.areas h3{margin-top:0}
.areas ul{list-style:none;margin:0;padding:0;columns:2;column-gap:1.5rem}
.areas li{break-inside:avoid;padding:.2rem 0}

/* Figures and legends */
.fig{margin:0 0 2.8rem;background:var(--sheet);border:1px solid var(--line);border-top:3px solid var(--ink)}
.fig-art{padding:1.2rem 1.2rem .2rem}
.fig figcaption{padding:.5rem 1.4rem .9rem;font:800 1.2rem/1.2 var(--display);font-stretch:82%;color:var(--ink)}
.fig .legend{list-style:none;margin:0;padding:0 1.4rem 1.4rem;counter-reset:l;display:grid;gap:.6rem 1.8rem;grid-template-columns:1fr}
@media(min-width:680px){.fig .legend{grid-template-columns:1fr 1fr}}
.fig .legend>li{counter-increment:l;position:relative;margin:0;padding:0 0 0 2.3rem;font-size:.98rem;line-height:1.4;color:var(--ink)}
.fig .legend>li::before{content:counter(l);position:absolute;left:0;top:-.05rem;width:1.55rem;height:1.55rem;border-radius:50%;background:var(--ink);display:grid;place-items:center;font:800 .82rem/1 var(--display);color:#fff}
.dg{display:block;width:100%;height:auto}
.dg .ln{stroke:var(--ink);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.dg .lead{stroke:var(--ink);stroke-width:1.4;stroke-dasharray:3 3}
.dg .water{stroke:var(--water);stroke-width:3;fill:none;stroke-linecap:round;marker-end:url(#ar)}
.dg .water.dash{stroke-dasharray:9 8}
.dg .rain{stroke:var(--ink-2);stroke-width:2.5;stroke-linecap:round;opacity:.55}
.dg .pin circle{fill:var(--ink);stroke:#fff;stroke-width:2.5}
.dg .pin{transform-box:fill-box;transform-origin:center}
@media(max-width:679px){.dg:not(.dg-hero) .pin{transform:scale(1.25)}}
.dg .pin text{font-family:var(--display);font-weight:800;font-size:17px;fill:#fff}
.dg-hero .hl{stroke:#fff;stroke-opacity:.82;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.dg-hero .wtr{stroke:var(--water-l);stroke-width:3.2;fill:none;stroke-linecap:round;marker-end:url(#ar-d)}
.dg-labels text{font-family:var(--ui);font-size:14px;font-weight:600;fill:#fff;fill-opacity:.92}
@media(max-width:759px){.dg-labels{display:none}}

@media(prefers-reduced-motion:no-preference){
  .dg-hero .draw{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.1s ease-out var(--d,0s) forwards}
  .dg-hero .fade{opacity:0;animation:fadein .7s ease-out var(--d,0s) forwards}
  .dg-hero .draw2{opacity:0;animation:fadein .8s ease-out 1.2s forwards}
  .dg-hero .flow{stroke-dasharray:10 9;animation:fadein .8s ease-out 1.2s forwards,march 1.6s linear 1.2s 4}
}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fadein{to{opacity:1}}
@keyframes march{to{stroke-dashoffset:-38}}

.qa{border-top:1px solid var(--line);padding:1.1rem 0 .5rem}
.qa:last-child{border-bottom:1px solid var(--line)}
.qa h3{margin:0 0 .4em;font-size:1.35rem}
.sources{font-size:.97rem}
.sources li{margin:.3rem 0}

/* Forms */
.quote-form{display:grid;gap:1.1rem;max-width:660px}
.quote-form label{display:block;font:700 .97rem var(--ui);margin-bottom:.35rem}
.quote-form input,.quote-form select,.quote-form textarea{width:100%;padding:.85rem .95rem;background:var(--sheet);border:2px solid var(--ink);border-radius:2px;font:400 1.05rem var(--serif);color:var(--ink)}
.quote-form textarea{min-height:9.5rem;resize:vertical}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.form-note{font-size:.95rem;color:var(--ink-2)}
.quote-form .pair{display:grid;gap:1.1rem}
@media(min-width:700px){.quote-form .pair{grid-template-columns:1fr 1fr}}
.quote-thanks{border:2px solid var(--ink);padding:1.2rem 1.3rem;background:var(--sheet);max-width:660px}
.quote-thanks h3{margin:0 0 .4em}

/* ---------- Footer ---------- */
.site-footer{background:var(--night-d);color:#B9B9B5;padding:3.6rem 0 1.6rem}
.site-footer a{color:#fff}
.foot-grid{display:grid;gap:2.2rem;grid-template-columns:1fr}
@media(min-width:760px){.foot-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.site-footer h2{font-size:1.2rem;color:#fff;margin:0 0 .7rem}
.site-footer ul{list-style:none;margin:0;padding:0;font:500 .97rem/1.4 var(--ui)}
.site-footer li{padding:.28rem 0}
.site-footer p{font:500 .97rem/1.55 var(--ui)}
.foot-logo{display:block;width:min(300px,100%);height:auto;margin:0 0 1.2rem}
.logo-card{margin:0 0 2.8rem;background:var(--sheet);border:1px solid var(--line);border-top:3px solid var(--ink);padding:clamp(1.4rem,4vw,2.6rem)}
.logo-card img{display:block;width:min(520px,100%);height:auto;margin:0 auto}
.foot-phone{font:800 1.9rem/1 var(--display);font-stretch:76%;text-decoration:none}
.legal{border-top:1px solid var(--line-d);margin-top:2.4rem;padding-top:1.3rem;font:500 .86rem/1.5 var(--ui);color:#8E8E8A}

.mobilebar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:1fr 1fr;background:var(--night);padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:0 -6px 18px rgba(0,0,0,.3)}
.mobilebar a{padding:1.05rem .5rem;text-align:center;font:800 1.02rem/1 var(--display);font-stretch:90%;color:#fff;text-decoration:none}
.mobilebar a:first-child{background:var(--stake);color:var(--ink)}
@media(min-width:760px){.mobilebar{display:none}body{padding-bottom:0}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* ---------- Answer hub ---------- */
.answers{max-width:none}
.answers .ans-section{margin-top:3.2rem;max-width:var(--prose)}
.answers .ans-section:first-of-type{margin-top:0}
.answers .ans-section>h2{margin-top:0;padding-bottom:.45rem;border-bottom:3px solid var(--ink)}
.answers .ans-intro{margin:.9rem 0 1.4rem;color:var(--ink-2)}
.ans{border-top:1px solid var(--line);padding:1.5rem 0 1rem;scroll-margin-top:6rem}
.ans h3{font-size:1.65rem;line-height:1.1;margin:0 0 .8rem;text-wrap:balance}
.ans .short{background:var(--sheet);border-left:6px solid var(--stake);padding:.95rem 1.15rem;margin:0 0 1.1rem;font-size:1.12rem;line-height:1.55}
.ans .lab{display:block;font:800 .8rem/1 var(--display);font-stretch:80%;letter-spacing:.14em;text-transform:uppercase;color:var(--stake-text);margin-bottom:.45rem}
.ans .detail p{margin:0 0 1.05em}
.ans .ask{border:1px solid var(--line);background:rgba(255,255,255,.45);padding:.85rem 1.1rem .5rem;margin:1.2rem 0 1rem}
.ans .ask h4{font-size:.95rem;letter-spacing:.1em;text-transform:uppercase;margin:0 0 .4rem}
.ans .ask ul{margin:0 0 .5rem;padding-left:1.15rem;font-size:1rem}
.ans .ask li{margin:.3rem 0}
.ans .see{font-size:.97rem;color:var(--ink-2);margin:.3rem 0 .6rem}
.jump-wrap{margin:0 0 2.6rem;max-width:var(--prose)}
.jump{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.6rem}
.jump a{display:flex;justify-content:space-between;gap:.8rem;align-items:center;padding:.75rem .95rem;background:var(--sheet);border:1px solid var(--line);border-left:5px solid var(--stake);text-decoration:none;font:700 1.02rem/1.2 var(--ui)}
.jump a span{font:600 .85rem var(--ui);color:var(--ink-2)}
.jump a:hover{background:#fff}
.starts{margin:.3rem 0 0;padding-left:1.1rem}
.starts li{margin:.35rem 0}
.toc{display:none}
.toc ul{list-style:none;margin:0;padding:0}
.toc li{margin:0;border-top:1px solid var(--line)}
.toc a{display:block;padding:.5rem 0;text-decoration:none;font:600 1rem/1.25 var(--ui)}
.toc a:hover{text-decoration:underline;text-decoration-color:var(--stake)}
@media(min-width:960px){.jump-wrap{display:none}.toc{display:block}}
.answers .ans-section>h3{font-size:1.15rem;letter-spacing:.06em;text-transform:uppercase;margin:1.6rem 0 .4rem}
.answers .sources{margin:0 0 .6rem;padding-left:1.15rem}
.alt-contact{margin:.9rem 0 0;font:600 .97rem/1.4 var(--ui);overflow-wrap:anywhere}

/* ---------- Project photos ---------- */
.project{border-top:3px solid var(--ink);padding:1.2rem 0 1.8rem;margin:0 0 1.2rem;scroll-margin-top:6rem}
.project .meta,.work-cards .meta{display:block;font:800 .8rem/1.2 var(--display);font-stretch:80%;letter-spacing:.14em;text-transform:uppercase;color:var(--stake-text);margin:0 0 .45rem}
.project h3{font-size:1.6rem;line-height:1.1;margin:0 0 .9rem;text-wrap:balance}
.project figure{margin:0}
.project .lead img{display:block;width:100%;height:auto;max-height:36rem;object-fit:cover;background:var(--sheet)}
.project figcaption{font:500 .92rem/1.45 var(--ui);color:var(--ink-2);margin:.45rem 0 0}
.project .thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.8rem;margin:.9rem 0 0}
.project .thumbs img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:var(--sheet)}
.project .facts{margin:1rem 0 .4rem;padding-left:1.15rem}
.project .facts li{margin:.3rem 0}
.project .see{font-size:.97rem;margin:.6rem 0 0}
.work-cards,.prose .work-cards{list-style:none;margin:1.2rem 0 0;padding:0;display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr))}
.work-cards a,.prose .work-cards a{display:block;text-decoration:none;color:inherit;border-top:3px solid var(--ink);padding-top:.7rem}
.work-cards .card-img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:var(--sheet);margin:0 0 .7rem}
.work-cards strong{display:block;font:700 1.08rem/1.25 var(--ui)}
.work-cards a:hover strong{text-decoration:underline;text-decoration-color:var(--stake)}
.more-work{margin:1.2rem 0 0;font:700 1rem/1.3 var(--ui)}
.work-sec{margin-top:3rem;max-width:var(--prose)}
.work-sec:first-of-type{margin-top:1.6rem}
.work-sec>h2{margin-top:0;padding-bottom:.45rem;border-bottom:3px solid var(--ink)}
.work-jump{margin:.8rem 0 0}
.lead-in{font:700 1rem/1.3 var(--ui);margin:0}
.projects{margin:1rem 0 1.4rem}

/* Work page: on wide screens, lead photo on the left and the other photos beside it */
@media(min-width:960px){
.work-sec{max-width:none}
.work-sec .project{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);column-gap:2rem;align-items:start}
.work-sec .project>.meta,.work-sec .project>h3,.work-sec .project>.facts,.work-sec .project>.see{grid-column:1/-1}
.work-sec .project .lead{grid-column:1;grid-row:3}
.work-sec .project .thumbs{grid-column:2;grid-row:3;margin-top:0;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr))}
.work-sec .project .lead img{max-height:32rem}
}

/* customer reviews (home page) */
.review-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media (min-width:760px){.review-grid{grid-template-columns:repeat(3,1fr)}}
.review{margin:0;padding:1.25rem;border:1px solid var(--line,#d9d6cf);border-radius:6px;background:var(--card,transparent)}
.review blockquote{margin:0}
.review p{margin:0 0 .75rem}
.review figcaption{font-weight:700;font-size:.95rem}
