/* Greensand Tree Care: shared styles for the service pages */
:root{
  --bg:#13140e; --bg-2:#1a1c14; --paper:#f4f3e8; --paper-dim:rgba(244,243,232,.74); --muted:#84837b;
  --lime:#ffd60a; --lime-glow:rgba(255,214,10,.55); --line:#404040; --line-soft:rgba(244,243,232,.14);
  --sans:'Inter',system-ui,-apple-system,sans-serif; --mono:'Barlow Semi Condensed','Arial Narrow',system-ui,sans-serif;
  --r:.25rem; --max:clamp(77.5rem,80vw,92rem); --gutter:clamp(1rem,4vw,3rem);
}
*{box-sizing:border-box;margin:0;padding:0}
/* The whole site scales from this one size: 16px up to 1440px wide, then growing with the screen
   to 21px (about 1.3x) on very wide monitors. Every size in the design is in rem, so it all scales together. */
html{scroll-behavior:smooth;font-size:clamp(16px,calc(.4286vw + 9.83px),21px)}
body{background:var(--bg);color:var(--paper);font:400 1rem/1.55 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
.mono{font-family:var(--mono)}
.eyebrow{font:500 0.8125rem/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--lime);margin-bottom:1.125rem}
.btn{display:inline-flex;align-items:center;gap:.625rem;font:600 .9375rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:.9375rem 1.25rem;border-radius:var(--r);border:1px solid transparent;cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease;white-space:nowrap}
.btn-lime{background:var(--lime);color:var(--bg)}
.btn-lime:hover{transform:translateY(-1px);background:#ffe24d}
.btn-ghost{background:transparent;color:var(--paper);border-color:var(--line-soft)}
.btn-ghost:hover{border-color:var(--paper)}
h1,h2,h3{font-weight:400;letter-spacing:-.03em;text-wrap:balance}
.display{font-size:clamp(2.625rem,6.4vw,5.75rem);line-height:.94}
.h2{font-size:clamp(2rem,4.2vw,3.75rem);line-height:1}
.lede{font-size:clamp(1.0625rem,1.4vw,1.25rem);color:var(--paper-dim);max-width:52ch;text-wrap:pretty;margin-top:1.375rem}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.block{padding:clamp(4.5rem,9vw,8rem) 0;border-top:1px solid var(--line)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.625rem}
.chip{font:400 0.875rem/1 var(--mono);letter-spacing:.04em;padding:.5625rem .75rem;border:1px solid var(--line-soft);border-radius:var(--r);color:var(--paper-dim)}
.chip.lime{border-color:var(--lime);color:var(--lime)}

/* header */

/* reveal on scroll */
[data-reveal]{opacity:0;transform:translateY(1.375rem);transition:opacity .7s ease,transform .7s ease}
[data-reveal].in{opacity:1;transform:none}
/* "clip" reveals: the observed wrapper stays unclipped (a fully clipped target never intersects), the child is clipped */
[data-reveal="clip"]{opacity:1;transform:none;transition:none}
[data-reveal="clip"]>.ba,[data-reveal="clip"]>.ph{clip-path:inset(0 0 100% 0);transition:clip-path .9s cubic-bezier(.2,.7,.2,1)}
[data-reveal="clip"].in>.ba,[data-reveal="clip"].in>.ph{clip-path:inset(0 0 0 0)}
[data-reveal="clip"]>.ba-cap,[data-reveal="clip"]>figcaption{opacity:0;transition:opacity .5s ease .5s}
[data-reveal="clip"].in>.ba-cap,[data-reveal="clip"].in>figcaption{opacity:1}
@media (prefers-reduced-motion:reduce){[data-reveal],[data-reveal="clip"]>*{opacity:1;transform:none;clip-path:none;transition:none}}

/* service hero */
.svc-hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--bg)}
.svc-hero video,.svc-hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.svc-hero video{opacity:0;transition:opacity 1.2s ease}
.svc-hero video.ready{opacity:1}
.svc-hero .shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(19,20,14,.86) 0%,rgba(19,20,14,.35) 40%,rgba(19,20,14,.05) 70%),linear-gradient(to right,rgba(19,20,14,.45),rgba(19,20,14,0) 60%)}
.svc-hero .grain{position:absolute;inset:0;pointer-events:none;opacity:.045;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}
.svc-hero .inner{position:relative;width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gutter) clamp(3rem,9vh,6rem)}
.svc-hero .crumb{display:flex;gap:.75rem;align-items:center;font:400 0.8125rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--lime);margin-bottom:1.125rem}
.svc-hero .crumb a{color:var(--paper-dim)}
.svc-hero .crumb i{font-style:normal;color:var(--muted)}
/* word-rise: the clip box gets room below the baseline for descenders (g, p, y) and the same
   amount of negative margin so line spacing is unchanged; words start further down so they still rise from hidden */
.svc-hero h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.22em;margin-bottom:-.22em}
.svc-hero h1 .w span{display:inline-block;transform:translateY(135%);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes rise{to{transform:none}}
.svc-hero .lede,.svc-hero .actions{opacity:0;animation:fade .8s ease forwards}
.svc-hero .lede{animation-delay:.5s}
.svc-hero .actions{animation-delay:.7s}
@keyframes fade{to{opacity:1}}
@media (prefers-reduced-motion:reduce){.svc-hero h1 .w span{transform:none;animation:none}.svc-hero .lede,.svc-hero .actions{opacity:1;animation:none}}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.875rem}
.svc-hero .meta{position:absolute;right:var(--gutter);bottom:clamp(3rem,9vh,6rem);display:grid;gap:.625rem;font:400 0.8125rem/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-dim);text-align:right}
.svc-hero .meta b{display:block;color:var(--paper);font-weight:500}

/* signs */
.two{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.points{list-style:none;display:grid;gap:.875rem;margin-top:.5rem}
.points li{display:flex;gap:1rem;align-items:baseline;font-size:1.0625rem;color:var(--paper-dim);padding:.875rem 0;border-bottom:1px solid var(--line)}
.points li::before{content:"";width:.4375rem;height:.4375rem;border-radius:50%;background:var(--lime);flex:none;position:relative;top:-2px}
.points li b{color:var(--paper);font-weight:500}

/* before / after */
.ba{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:var(--r);border:1px solid var(--line);user-select:none;touch-action:none;cursor:ew-resize;--pos:50%}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba .after{clip-path:inset(0 0 0 var(--pos))}
.ba .handle{position:absolute;top:0;bottom:0;left:var(--pos);width:1px;background:var(--paper);transform:translateX(-.5px);pointer-events:none}
.ba .handle::after{content:"\2039\2003\203A";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:3rem;height:3rem;border-radius:50%;background:var(--lime);color:var(--bg);display:flex;align-items:center;justify-content:center;font:500 1rem/1 var(--mono);letter-spacing:-.2em;padding-left:.1em;box-shadow:0 0 1.5rem var(--lime-glow)}
.ba .tag{position:absolute;top:1rem;font:500 0.75rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;padding:.5rem .625rem;border-radius:2px;background:rgba(19,20,14,.7);backdrop-filter:blur(.5rem);border:1px solid var(--line-soft);pointer-events:none}
.ba .tag.l{left:1rem}.ba .tag.r{right:1rem}
.ba-cap{display:flex;justify-content:space-between;gap:1.5rem;margin-top:.875rem;font:400 0.875rem/1.5 var(--mono);color:var(--muted)}
.ba-wrap{margin-top:3rem}

/* steps with a drawing line */
.steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:2.5rem 2rem;margin-top:3.5rem;--p:0}
.steps::before,.steps::after{content:"";position:absolute;left:0;right:0;top:0;height:1px}
.steps::before{background:var(--line)}
.steps::after{background:var(--lime);transform-origin:left;transform:scaleX(var(--p));box-shadow:0 0 .75rem var(--lime-glow)}
.step{padding-top:1.375rem}
.step .num{font:400 0.875rem/1 var(--mono);letter-spacing:.14em;color:var(--lime);margin-bottom:2.125rem}
.step h3{font-size:1.375rem;line-height:1.15}
.step p{font-size:.9375rem;color:var(--muted);margin-top:.75rem;text-wrap:pretty}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:3rem}
.gallery figure{overflow:hidden;border-radius:var(--r);border:1px solid var(--line);background:var(--bg-2)}
.gallery .ph{aspect-ratio:3/2;overflow:hidden}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.gallery figure:hover img{transform:scale(1.04)}
.gallery figcaption{font:400 0.875rem/1.5 var(--mono);color:var(--muted);padding:.75rem .875rem;border-top:1px solid var(--line)}

/* faq */
.faq{margin-top:2.5rem;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.375rem 0;font-size:clamp(1.125rem,1.6vw,1.375rem);letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{font:400 1.375rem/1 var(--mono);color:var(--lime);flex:none;transition:transform .25s}
.faq details[open] summary i{transform:rotate(45deg)}
.faq .a{padding:0 0 1.5rem;max-width:64ch;color:var(--paper-dim);text-wrap:pretty}

/* quote */
.quote{display:grid;grid-template-columns:1fr 1.1fr;gap:3.5rem;align-items:start}
.form{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem 1.75rem;padding:clamp(1.375rem,3vw,2.25rem);border:1px solid var(--line);border-radius:var(--r)}
.form .full{grid-column:1/-1}
.form label{display:block}
.form label span{display:block;font:400 0.75rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-dim);margin-bottom:.375rem}
.form input,.form select,.form textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line-soft);color:var(--paper);font:400 .9375rem/1.3 var(--mono);padding:.625rem 0;border-radius:0;outline:none;transition:border-color .2s}
.form select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23f4f3e8' stroke-width='1.5'/></svg>");background-repeat:no-repeat;background-position:right 2px center;padding-right:1.375rem;cursor:pointer}
.form select option{background:var(--bg-2);color:var(--paper)}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--lime)}
.form textarea{min-height:5.75rem;resize:vertical}
.form-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:1.125rem}
.call{color:var(--lime)}
.alt{font:400 0.875rem/1 var(--mono);letter-spacing:.04em;color:var(--paper-dim)}
.done{grid-column:1/-1;font:400 0.9375rem/1.5 var(--mono);color:var(--lime);border:1px solid var(--lime);padding:.875rem 1rem;border-radius:var(--r)}
.form .consent{display:flex;gap:.75rem;align-items:flex-start;cursor:pointer}
.form .consent input{width:1.125rem;height:1.125rem;flex:none;margin:.2rem 0 0;padding:0;border:0;accent-color:var(--lime);cursor:pointer}
.form .consent span{font:400 .875rem/1.55 var(--sans);letter-spacing:0;text-transform:none;color:var(--paper-dim);margin:0}
.form .consent a,.err a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.err{grid-column:1/-1;font:400 0.9375rem/1.5 var(--mono);color:#ff8a80;border:1px solid #ff8a80;padding:.875rem 1rem;border-radius:var(--r)}
.form [hidden]{display:none}
.qpoints{list-style:none;margin-top:1.875rem;display:grid;gap:.75rem}
.qpoints li{display:flex;gap:.875rem;align-items:baseline;font-size:1rem;color:var(--paper-dim)}
.qpoints li::before{content:"";width:.375rem;height:.375rem;border-radius:50%;background:var(--lime);flex:none;position:relative;top:-2px}

/* other services */
.others{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:3rem}
.others a{display:block;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 0 1.375rem;background:var(--bg);transition:background .2s}
.others a:hover{background:var(--bg-2)}
.others .ph{aspect-ratio:3/2;overflow:hidden}
.others img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.others a:hover img{transform:scale(1.035)}
.others .eyebrow{margin:1.125rem 1.25rem .375rem}
.others h3{font-size:1.1875rem;margin:0 1.25rem}
.others .go{display:block;margin:.75rem 1.25rem 0;font:500 0.8125rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--lime)}

/* ---------- area (town) pages ---------- */
.area-hero{position:relative;padding:clamp(6.5rem,14vh,8.75rem) 0 0;overflow:hidden;background:radial-gradient(120% 80% at 80% 0%,rgba(255,214,10,.06),transparent 60%),var(--bg)}
.area-hero .grain{position:absolute;inset:0;pointer-events:none;opacity:.045;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}
.area-top{position:relative;display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:end}
.area-hero .crumb{display:flex;gap:.75rem;align-items:center;font:400 0.8125rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--lime);margin-bottom:1.125rem}
.area-hero .crumb a{color:var(--paper-dim)}
.area-hero .crumb i{font-style:normal;color:var(--muted)}
.area-hero h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.22em;margin-bottom:-.22em}
.area-hero h1 .w span{display:inline-block;transform:translateY(135%);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}
.area-hero .lede,.area-hero .actions,.area-facts{opacity:0;animation:fade .8s ease forwards}
.area-hero .lede{animation-delay:.5s}.area-hero .actions{animation-delay:.7s}.area-facts{animation-delay:.9s}
.area-facts{display:grid;gap:0;border-top:1px solid var(--line);font:400 0.875rem/1.4 var(--mono)}
.area-facts div{display:grid;grid-template-columns:6.875rem 1fr;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}
.area-facts dt{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:.625rem;padding-top:2px}
.area-facts dd{color:var(--paper)}
.area-facts dd a{color:var(--lime)}
.area-map{position:relative;margin-top:clamp(28px,5vh,56px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(26,28,20,.6),rgba(19,20,14,0))}
.area-map svg{display:block;width:100%;height:auto;max-height:46vh}
.area-map figcaption{position:absolute;left:var(--gutter);bottom:10px;font:400 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.area-map .grat{stroke:rgba(244,243,232,.06);stroke-width:1}
.area-map .grat-l{fill:rgba(244,243,232,.28);font:400 11px var(--mono);letter-spacing:.06em}
.area-map .town circle{fill:var(--paper-dim);opacity:0;animation:pop .5s ease forwards}
.area-map .town text{fill:var(--paper-dim);font:400 15px var(--mono);letter-spacing:.02em;opacity:0;animation:fade .6s ease forwards;transition:fill .2s;paint-order:stroke;stroke:var(--bg);stroke-width:5px;stroke-linejoin:round}
.area-map a.town:hover text,.area-map a.town:focus text{fill:var(--lime)}
.area-map a.town:hover circle{fill:var(--lime)}
.area-map .here circle.dot{fill:var(--lime)}
.area-map .here text{fill:var(--lime);font-size:16px;font-weight:500}
.area-map .ring{fill:none;stroke:var(--lime);stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:ring 2.4s ease-out infinite}
.area-map .ring.r2{animation-delay:1.2s}
.area-map .link{stroke:var(--lime);stroke-width:1.4;fill:none;stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:draw 1.1s cubic-bezier(.4,.1,.2,1) forwards;opacity:.85}
.area-map .dist{fill:var(--lime);font:500 14px var(--mono);opacity:0;animation:fade .5s ease forwards;paint-order:stroke;stroke:var(--bg);stroke-width:5px}
.area-map .scale line{stroke:var(--paper-dim);stroke-width:1.2}
.area-map .scale text,.area-map .north text{fill:var(--paper-dim);font:400 11px var(--mono);letter-spacing:.1em}
.area-map .north path{fill:none;stroke:var(--paper-dim);stroke-width:1.2}
@keyframes pop{from{opacity:0;transform:scale(.2)}to{opacity:1;transform:none}}
@keyframes ring{from{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(4.2)}}
@keyframes draw{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.area-hero h1 .w span{transform:none;animation:none}.area-hero .lede,.area-hero .actions,.area-facts,.area-map .town circle,.area-map .town text,.area-map .dist{opacity:1;animation:none}.area-map .link{stroke-dashoffset:0;animation:none}.area-map .ring{display:none}}

.prose p{font-size:1.0625rem;line-height:1.65;color:var(--paper-dim);text-wrap:pretty;max-width:64ch}
.prose p+p{margin-top:1.125rem}
.rules{display:grid;grid-template-columns:auto 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:start;padding:clamp(1.5rem,3vw,2.5rem);border:1px solid var(--line);border-left:2px solid var(--lime);border-radius:var(--r);background:var(--bg-2);margin-top:2.5rem}
.rules .who{font:500 0.875rem/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--lime);max-width:22ch}
.rules p{font-size:1.0625rem;line-height:1.65;color:var(--paper-dim);text-wrap:pretty}
.svc-rows{list-style:none;margin-top:2.75rem;border-top:1px solid var(--line)}
.svc-rows li{border-bottom:1px solid var(--line)}
.svc-rows a{display:grid;grid-template-columns:3.5rem minmax(11.25rem,1fr) 2fr 2rem;gap:1.5rem;align-items:baseline;padding:1.5rem .5rem;transition:background .2s ease,padding .2s ease}
.svc-rows a:hover{background:var(--bg-2);padding-left:1rem}
.svc-rows .n{font:400 0.875rem/1 var(--mono);color:var(--lime);letter-spacing:.12em}
.svc-rows h3{font-size:clamp(1.1875rem,1.7vw,1.4375rem);line-height:1.2}
.svc-rows p{font-size:.9688rem;color:var(--muted);text-wrap:pretty}
.svc-rows .go{font:400 1.125rem/1 var(--mono);color:var(--lime);transition:transform .2s}
.svc-rows a:hover .go{transform:translateX(.25rem)}
.tree-note{font-size:.9688rem;color:var(--muted);margin-top:1.375rem;max-width:64ch;text-wrap:pretty}
.near{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:2.5rem}
.near a{display:block;padding:1.375rem 1.375rem 1.5rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .2s}
.near a:hover{background:var(--bg-2)}
.near .d{font:400 0.8125rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--lime)}
.near h3{font-size:1.375rem;margin-top:.875rem}
.near .c{font:400 0.8125rem/1.5 var(--mono);color:var(--muted);margin-top:.5rem}
.area-strip{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem}
.area-strip a{font:400 0.9375rem/1 var(--mono);padding:.6875rem .875rem;border:1px solid var(--line-soft);border-radius:var(--r);color:var(--paper-dim);transition:border-color .2s,color .2s}
.area-strip a:hover{border-color:var(--lime);color:var(--lime)}
@media (max-width:980px){.area-top{grid-template-columns:1fr}.near{grid-template-columns:1fr 1fr}.rules{grid-template-columns:1fr}}
@media (max-width:760px){
  .svc-rows a{grid-template-columns:2.25rem 1fr 1.25rem;gap:.375rem .875rem}
  .svc-rows p{grid-column:2/3}
  .svc-rows .go{grid-row:1;grid-column:3}
  /* on phones the map zooms in 3x, centred on this town, so labels stay readable */
  .area-map .map-vp{overflow:hidden}
  .area-map svg{width:300%;max-width:none;max-height:none;margin-left:calc(50% - var(--cx) * 300%)}
  .area-map .grat-l,.area-map .scale,.area-map .north{display:none}
  .area-map figcaption{bottom:8px}
  .prose p,.rules p{font-size:1rem}
}

/* footer */
footer{border-top:1px solid var(--line);padding:3rem 0 2.5rem;background:var(--bg-2)}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1.5rem;align-items:flex-start}
.foot .legal{font:400 0.875rem/1.6 var(--mono);color:var(--muted);max-width:62ch}
.foot .legal b{color:var(--paper-dim);font-weight:500}
.foot-towns{font:500 .875rem/1.7 var(--mono);letter-spacing:.04em;color:var(--paper-dim);max-width:62ch;margin-bottom:.875rem}
.foot-towns a{color:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:.2em}
.foot-towns a:hover{color:var(--lime)}
.foot .mono a{color:inherit}

/* responsive */
@media (max-width:1100px){.steps{grid-template-columns:repeat(2,1fr)}.others{grid-template-columns:repeat(2,1fr)}}
@media (max-width:980px){.two,.quote{grid-template-columns:1fr}.gallery{grid-template-columns:1fr 1fr}.svc-hero .meta{display:none}}
@media (max-width:760px){
  .form{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr;gap:2rem;padding-left:1.375rem}
  .steps::before,.steps::after{left:0;right:auto;top:0;bottom:0;width:1px;height:auto}
  .steps::after{transform-origin:top;transform:scaleY(var(--p))}
  .step{padding-top:0}
  .step .num{margin-bottom:.875rem}
  .lede{font-size:1rem}
  .svc-hero{min-height:88svh}
}
/* fixed pages: privacy, thanks, 404 */
.page-top{padding-top:clamp(8rem,14vw,11rem);border-top:0}
.legal-doc{margin-top:2rem}
.legal-doc h3{font:500 1.125rem/1.35 var(--sans);color:var(--paper);margin:2.25rem 0 .625rem}
.legal-doc a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.legal-doc .updated{color:var(--muted);margin-top:2.5rem;font-size:.875rem}
