:root{--primary:#860216;--secondary:#e6e8eb;--accent:#9e3545;--dark:#000000;--light:#f5f6f7;--brand-accent:#860216;--on-dark:#e6e8eb;--on-dark-strong:#f5f6f7;--on-light:#000000;--on-light-muted:#3d3e3e;--accent-on-dark:#9e3545;--accent-on-light:#860216;--primary-on-light:#860216;--primary-on-dark:#9e3545;--on-accent:#ffffff;--on-primary:#ffffff;--line:rgba(228,235,237,.23);--line-on-light:rgba(0,0,0,.12);--heading:'Ubuntu',sans-serif;--body:'Source Sans 3',sans-serif;--space:clamp(64px,8vw,112px);--radius:3px;--form-radius:20px;--wrap:1180px}
:root{--i-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--i-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 17L17 7M9 7h8v8' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--i-arrow-right:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--i-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6l6 6-6 6' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--i-caret:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--i-plus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--i-minus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--i-phone:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 006.6 6.6l2.2-2.2a1 1 0 011-.25 11.4 11.4 0 003.6.57 1 1 0 011 1V20a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1c0 1.25.2 2.45.57 3.57a1 1 0 01-.25 1z' fill='black'/%3E%3C/svg%3E");--i-mail:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 6h18v12H3zM3 7l9 6 9-6' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--i-clock:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a9 9 0 100 18 9 9 0 000-18zM12 7v5l3 2' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--i-pin:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0114 0C19 14.8 12 21 12 21zM12 7.5a2.5 2.5 0 100 5 2.5 2.5 0 000-5z' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--i-star:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1L3.2 9.5l6.1-.9z' fill='black'/%3E%3C/svg%3E");--i-dot:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 7a5 5 0 100 10 5 5 0 000-10z' fill='black'/%3E%3C/svg%3E")}
:root{--heading:'Oswald','Arial Narrow',sans-serif;--body:'DM Sans',Arial,sans-serif;--radius:50px;--form-radius:20px;--space:clamp(64px,8vw,112px);--wrap:1240px;--hh:108px;--ac-card:color-mix(in srgb,var(--dark) 96%,#fff);--ac-deep:color-mix(in srgb,var(--dark) 70%,#000);--ac-field:color-mix(in srgb,var(--dark) 85%,#000);--ac-tint:color-mix(in srgb,var(--primary) 14%,var(--dark));--ac-label:color-mix(in srgb,var(--primary-on-dark) 70%,#fff);--ac-edge:rgba(255,255,255,.09);--ac-house:path("M13.2 262.8 386.8 262.8 386.8 261.2 13.2 261.2ZM69 161 69 263 71 263 71 161ZM329 161 329 263 331 263 331 161ZM47.7 164.4 201.4 58.3 200.3 56.6 46.6 162.7ZM198.6 58.3 352.3 164.4 353.4 162.7 199.7 56.6ZM47.2 163.8 352.8 163.8 352.8 162.2 47.2 162.2ZM85.9 151.7 200.7 72.1 200.1 71.3 85.3 150.9ZM199.3 72.1 314.1 151.7 314.7 150.9 199.9 71.3ZM262.8 101.8 262.8 71.2 261.2 71.2 261.2 101.8ZM261.2 72.8 288.8 72.8 288.8 71.2 261.2 71.2ZM287.2 71.2 287.2 119.8 288.8 119.8 288.8 71.2ZM182.8 262.8 182.8 199.2 181.2 199.2 181.2 262.8ZM181.2 200.8 218.8 200.8 218.8 199.2 181.2 199.2ZM217.2 199.2 217.2 262.8 218.8 262.8 218.8 199.2ZM208 233 214 233 214 231 208 231ZM97.2 184.8 148.8 184.8 148.8 183.2 97.2 183.2ZM147.2 183.2 147.2 228.8 148.8 228.8 148.8 183.2ZM148.8 227.2 97.2 227.2 97.2 228.8 148.8 228.8ZM98.8 228.8 98.8 183.2 97.2 183.2 97.2 228.8ZM122.5 183.5 122.5 228.5 123.5 228.5 123.5 183.5ZM97.5 206.5 148.5 206.5 148.5 205.5 97.5 205.5ZM93.2 232.8 152.8 232.8 152.8 231.2 93.2 231.2ZM251.2 184.8 302.8 184.8 302.8 183.2 251.2 183.2ZM301.2 183.2 301.2 228.8 302.8 228.8 302.8 183.2ZM302.8 227.2 251.2 227.2 251.2 228.8 302.8 228.8ZM252.8 228.8 252.8 183.2 251.2 183.2 251.2 228.8ZM276.5 183.5 276.5 228.5 277.5 228.5 277.5 183.5ZM251.5 206.5 302.5 206.5 302.5 205.5 251.5 205.5ZM247.2 232.8 306.8 232.8 306.8 231.2 247.2 231.2ZM199 103.9 211.8 121 213 120.1 200.2 103ZM211.8 119 199 136.2 200.2 137 213 119.9ZM201 136.2 188.2 119 187 119.9 199.8 137ZM188.2 121 201 103.9 199.8 103 187 120.1ZM69.5 284.5 330.5 284.5 330.5 283.5 69.5 283.5ZM69.5 275.5 69.5 292.5 70.5 292.5 70.5 275.5ZM329.5 275.5 329.5 292.5 330.5 292.5 330.5 275.5ZM65 290.1 76.1 279 75 277.9 63.9 289ZM325 290.1 336.1 279 335 277.9 323.9 289ZM365.5 162.5 365.5 262.5 366.5 262.5 366.5 162.5ZM357.5 163.5 374.5 163.5 374.5 162.5 357.5 162.5ZM357.5 262.5 374.5 262.5 374.5 261.5 357.5 261.5ZM361 169.1 372.1 158 371 156.9 359.9 168ZM361 268.1 372.1 257 371 255.9 359.9 267ZM27.5 57.5 27.5 163.5 28.5 163.5 28.5 57.5ZM19.5 58.5 36.5 58.5 36.5 57.5 19.5 57.5ZM19.5 163.5 36.5 163.5 36.5 162.5 19.5 162.5ZM23 64.1 34.1 53 33 51.9 21.9 63ZM23 169.1 34.1 158 33 156.9 21.9 168ZM35.5 58.5 42.5 58.5 42.5 57.5 35.5 57.5ZM46.5 58.5 53.5 58.5 53.5 57.5 46.5 57.5ZM57.5 58.5 64.5 58.5 64.5 57.5 57.5 57.5ZM68.5 58.5 75.5 58.5 75.5 57.5 68.5 57.5ZM79.5 58.5 86.5 58.5 86.5 57.5 79.5 57.5ZM90.5 58.5 97.5 58.5 97.5 57.5 90.5 57.5ZM101.5 58.5 108.5 58.5 108.5 57.5 101.5 57.5ZM112.5 58.5 119.5 58.5 119.5 57.5 112.5 57.5ZM123.5 58.5 130.5 58.5 130.5 57.5 123.5 57.5ZM134.5 58.5 141.5 58.5 141.5 57.5 134.5 57.5ZM145.5 58.5 152.5 58.5 152.5 57.5 145.5 57.5ZM156.5 58.5 163.5 58.5 163.5 57.5 156.5 57.5ZM167.5 58.5 174.5 58.5 174.5 57.5 167.5 57.5ZM178.5 58.5 185.5 58.5 185.5 57.5 178.5 57.5ZM189.5 58.5 194.5 58.5 194.5 57.5 189.5 57.5ZM199.5 21.5 199.5 28.5 200.5 28.5 200.5 21.5ZM199.5 32.5 199.5 39.5 200.5 39.5 200.5 32.5ZM199.5 43.5 199.5 50.5 200.5 50.5 200.5 43.5ZM39.5 163.5 46.5 163.5 46.5 162.5 39.5 162.5ZM24 261.3 15.3 270 16 270.7 24.7 262ZM40 261.3 31.3 270 32 270.7 40.7 262ZM56 261.3 47.3 270 48 270.7 56.7 262ZM72 261.3 63.3 270 64 270.7 72.7 262ZM88 261.3 79.3 270 80 270.7 88.7 262ZM104 261.3 95.3 270 96 270.7 104.7 262ZM120 261.3 111.3 270 112 270.7 120.7 262ZM136 261.3 127.3 270 128 270.7 136.7 262ZM152 261.3 143.3 270 144 270.7 152.7 262ZM168 261.3 159.3 270 160 270.7 168.7 262ZM184 261.3 175.3 270 176 270.7 184.7 262ZM200 261.3 191.3 270 192 270.7 200.7 262ZM216 261.3 207.3 270 208 270.7 216.7 262ZM232 261.3 223.3 270 224 270.7 232.7 262ZM248 261.3 239.3 270 240 270.7 248.7 262ZM264 261.3 255.3 270 256 270.7 264.7 262ZM280 261.3 271.3 270 272 270.7 280.7 262ZM296 261.3 287.3 270 288 270.7 296.7 262ZM312 261.3 303.3 270 304 270.7 312.7 262ZM328 261.3 319.3 270 320 270.7 328.7 262ZM344 261.3 335.3 270 336 270.7 344.7 262ZM360 261.3 351.3 270 352 270.7 360.7 262ZM376 261.3 367.3 270 368 270.7 376.7 262Z")}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hh) + 20px)}
body{margin:0;background:var(--dark);color:var(--on-dark);font:400 16px/1.6 var(--body);overflow-x:hidden}
h1,h2,h3{font-family:var(--heading);font-weight:500;color:var(--on-dark-strong);line-height:1.2;margin:0 0 22px;letter-spacing:-.4px;text-wrap:balance}
h1{font-size:clamp(39px,4.25vw,61px);font-weight:600;line-height:1.2;letter-spacing:-1px;text-transform:uppercase}
h2{font-size:clamp(31px,2.75vw,39px);text-transform:capitalize}
h3{font-size:24px;text-transform:capitalize}
p{margin:0 0 22px}
a{color:inherit;text-underline-offset:5px}
p a,.prose a{color:var(--on-dark-strong);text-decoration-thickness:1px;text-decoration-color:var(--accent-on-dark)}
a:hover{color:var(--accent-on-dark)}
img{max-width:100%;object-fit:cover;display:block}
button,input,textarea,select{font:inherit}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
a,button,summary{touch-action:manipulation}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--on-dark-strong);outline-offset:4px}
h1 span{color:var(--primary-on-dark);display:block;font-size:.62em;line-height:1.25;letter-spacing:-.4px;margin-top:.25em}
h2 span{color:var(--primary-on-dark)}
.wrap{width:min(var(--wrap),calc(100% - 64px));margin-inline:auto}
.section{padding:var(--space) 0;position:relative}
.section-title{margin-bottom:52px}
.center{text-align:center}
.narrow{max-width:820px}
/* eyebrow: short second-accent line + letter-spaced caps label */
.eyebrow{font:700 14px/1.45 var(--body);text-transform:uppercase;letter-spacing:2px;margin-bottom:20px;display:flex;align-items:center;gap:10px;color:var(--ac-label)}
.eyebrow:before{content:'';width:80px;height:3px;background:var(--accent-on-dark);display:inline-block;flex-shrink:0}
.center .eyebrow,.call-band .eyebrow{justify-content:center}
/* pill buttons */
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--primary);color:var(--on-primary);padding:18px 28px;border:2px solid transparent;border-radius:var(--radius);font:500 18px/1.25 var(--body);letter-spacing:-.4px;text-transform:capitalize;text-decoration:none;min-height:56px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.button:hover{background:color-mix(in srgb,var(--primary) 82%,#000);color:var(--on-primary)}
.button.outline{color:var(--on-dark-strong);background:transparent;border:0;border-radius:0;min-height:44px;padding:8px 6px 6px;box-shadow:inset 0 -2px 0 var(--on-dark-strong)}
.button.outline:hover{color:var(--accent-on-dark);box-shadow:inset 0 -2px 0 var(--accent-on-dark);background:transparent}
.button.small{font-size:15px;min-height:44px;padding:12px 24px}
.actions{display:flex;align-items:center;gap:22px;margin-top:30px;flex-wrap:wrap}
.text-link{font-weight:500;font-size:17px;letter-spacing:-.3px;text-transform:capitalize;text-decoration:none;display:inline-block;border-bottom:2px solid currentColor;padding:8px 4px 5px;color:var(--on-dark-strong)}
.skip{position:absolute;left:20px;top:-100px;background:var(--on-dark-strong);color:var(--dark);padding:12px;z-index:100;border-radius:8px}
.skip:focus{top:10px}
/* floating pill header, pinned on scroll, laid over the hero */
.header{position:sticky;top:0;z-index:50;padding:20px 0 0;height:var(--hh);margin-bottom:calc(-1 * var(--hh));pointer-events:none}
.header-inner{pointer-events:auto;position:relative;width:min(var(--wrap),calc(100% - 64px));margin:auto;height:88px;padding:0 0 0 36px;display:flex;align-items:stretch;gap:30px;background:var(--ac-deep);border-radius:999px;box-shadow:0 14px 34px rgba(0,0,0,.35)}
.wordmark{align-self:center;text-decoration:none;font:600 29px/1 var(--heading);letter-spacing:-.6px;text-transform:uppercase;color:var(--on-dark-strong);white-space:nowrap}
.wordmark span{color:var(--primary-on-dark)}
.wordmark small{display:block;font:700 10px/1.3 var(--body);letter-spacing:3px;margin-top:6px;color:var(--ac-label)}
.header nav{display:flex;align-items:stretch;gap:30px;margin-left:auto}
.header nav a{text-decoration:none;font-size:16.5px;color:var(--on-dark-strong);display:flex;align-items:center;gap:6px}
.header nav a:hover{color:var(--ac-label)}
.header nav .nav-item{position:relative;display:flex;align-items:stretch}
.header nav .caret{font-size:11px;color:var(--ac-label)}
.header nav .sub{display:none;position:absolute;top:calc(100% - 8px);left:-22px;min-width:260px;max-height:70vh;overflow:auto;background:var(--ac-deep);border:1px solid var(--ac-edge);border-radius:20px;padding:10px 0;z-index:60;box-shadow:0 20px 40px rgba(0,0,0,.4)}
.header nav .has-sub:hover .sub,.header nav .has-sub:focus-within .sub,.header nav .has-sub.sub-open .sub{display:block}
.header nav .sub a{display:block;padding:10px 22px;font-size:15px;white-space:nowrap}
.header nav .sub a:hover{background:rgba(255,255,255,.05)}
.header nav .sub a.sub-2{padding-left:38px;font-size:14px;color:var(--on-dark)}
.sub-toggle{display:none}
.header-phone{order:5;display:flex;align-items:center;gap:16px;text-decoration:none;white-space:nowrap;background:var(--primary);color:var(--on-primary);padding:0 40px 0 28px;border-radius:0 999px 999px 0;margin-left:0}
.header-phone:hover{color:var(--on-primary);background:color-mix(in srgb,var(--primary) 85%,#000)}
.phone-icon{display:grid;place-content:center;width:auto;height:auto;font-size:34px;line-height:1;color:var(--on-primary);transform:rotate(-12deg)}
.header-phone small{display:block;font-size:11px;font-weight:700;letter-spacing:1.6px;opacity:.95}
.header-phone b{font-weight:500;font-size:18px;letter-spacing:-.2px}
.header-cta{order:4;align-self:center;font-size:15px;min-height:44px;padding:10px 20px;background:transparent;color:var(--on-dark-strong);border-color:var(--primary-on-dark)}
.header-cta:hover{background:var(--primary);color:var(--on-primary)}
.menu-toggle{display:none}
/* hero: heavy overlay, left text column + bordered dark blueprint card on the right */
.hero{position:relative;isolation:isolate;text-align:left;overflow:hidden}
.hero-photo,.hero-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.hero-shade{background:linear-gradient(90deg,color-mix(in srgb,var(--dark) 94%,transparent) 0,color-mix(in srgb,var(--dark) 86%,transparent) 55%,color-mix(in srgb,var(--dark) 72%,transparent));z-index:-1}
.home-hero{padding:calc(var(--hh) + 64px) 0 96px;min-height:760px}
.hero-content{max-width:var(--wrap);display:grid;grid-template-columns:minmax(0,1.62fr) minmax(0,1fr);grid-template-rows:repeat(6,auto);column-gap:64px}
.hero-content>*{grid-column:1;min-width:0}
.hero-content:before{content:'';grid-column:2;grid-row:1/-1;border:1px solid var(--primary-on-dark);border-radius:20px;background:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px) 0 0/26px 26px,linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px) 0 0/26px 26px,var(--ac-deep)}
.hero-content:after{content:'';grid-column:2;grid-row:1/-1;align-self:start;justify-self:center;width:400px;height:300px;margin-top:34px;background:var(--on-dark-strong);opacity:.6;clip-path:var(--ac-house);transform:scale(.92);transform-origin:50% 0}
.hero-content .actions{grid-column:2;grid-row:1/-1;align-self:end;flex-direction:column;align-items:stretch;gap:12px;margin:330px 32px 32px}
.hero-content .actions .button.outline{align-self:center}
.hero-content>p:not(.eyebrow):not(.crumbs){max-width:700px;margin:0 0 6px;color:var(--on-dark-strong);font-size:17px;line-height:1.6}
.hero .eyebrow{margin-bottom:16px}
.hero h1{margin-bottom:20px}
.hero-facts{display:flex;flex-wrap:wrap;gap:10px 30px;font-size:16px;margin:0 0 22px;color:var(--on-dark-strong)}
.hero-facts span{display:inline-flex;align-items:center;gap:9px}
.hero-facts span:before{content:"";display:inline-block;flex-shrink:0;width:17px;height:17px;background:var(--accent-on-dark);-webkit-mask:var(--i-check) center/contain no-repeat;mask:var(--i-check) center/contain no-repeat}
.photo-note{position:absolute;bottom:10px;right:24px;font-size:11px;letter-spacing:.3px;color:var(--on-dark)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}
/* about: cream light band, photo in a thick dark rounded frame, blueprint behind */
.about-split{background:var(--light);color:var(--on-light-muted);isolation:isolate;overflow:hidden}
.about-split h2,.about-split h3{color:var(--on-light)}
.about-split h2 span{color:var(--primary-on-light)}
.about-split .eyebrow{color:var(--primary-on-light)}
.about-split .eyebrow:before{background:var(--accent-on-light)}
.about-split p a{color:var(--on-light);text-decoration-color:var(--primary-on-light)}
.about-split a:hover{color:var(--primary-on-light)}
.about-split .text-link{color:var(--on-light)}
.about-split a:focus-visible{outline-color:var(--on-light)}
.mat-frame{margin:0;padding:32px;background:var(--ac-deep);border-radius:24px;position:relative}
.mat-frame:before{content:'';position:absolute;z-index:-1;right:-70px;top:-205px;width:400px;height:300px;background:var(--on-light);opacity:.15;clip-path:var(--ac-house)}
.mat-frame img{width:100%;height:470px;border-radius:16px}
.mat-frame figcaption{font-size:12px;padding-top:10px;letter-spacing:.4px;color:var(--on-dark)}
.fact-line{border:1px solid var(--line-on-light);border-radius:20px;padding:20px 26px;display:flex;gap:24px;align-items:center;margin:26px 0}
.fact-line strong{font:600 22px/1.2 var(--heading);text-transform:uppercase;color:var(--on-light)}
.fact-line span{font-size:15px;border-left:3px solid var(--accent-on-light);padding-left:20px;line-height:1.5}
.section-heading{display:grid;grid-template-columns:1.5fr 1fr;gap:90px;align-items:end;margin-bottom:52px}
.section-heading p:last-child{max-width:400px}
/* numbered service cards */
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.service-grid:has(>.service-card:nth-child(4):last-child),.service-grid:has(>.service-card:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}
/* a single service: one wide card, text left and photo right, instead of a lone third-width card */
.service-grid:has(>.service-card:only-child){grid-template-columns:1fr}
.service-card:only-child{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:0 44px;align-items:stretch}
.service-card:only-child .card-content{padding:0;align-self:start}
.service-card:only-child .card-photo{margin:0}
.service-card:only-child .card-photo img{height:320px}
.service-card:only-child .card-stock-note{left:auto;right:44px;top:44px;bottom:auto}
.service-card{position:relative;display:flex;flex-direction:column;background:var(--ac-card);border:1px solid var(--ac-edge);border-radius:20px;padding:30px}
.card-photo{position:static;order:2;margin-top:auto}
.card-stock-note{position:absolute;left:44px;bottom:44px;background:var(--dark);color:var(--on-dark);padding:3px 8px;font-size:11px;line-height:1.4;border-radius:6px}
.card-photo img{width:100%;height:250px;border-radius:16px}
.corner-tile{position:absolute;left:30px;top:24px;background:none;color:var(--accent-on-dark);font:600 46px/1 var(--heading);letter-spacing:-1px}
.corner-tile:after{content:'.'}
.card-content{order:1;padding:0 0 22px}
.card-content h3{min-height:48px;display:flex;align-items:center;margin:0 0 16px 82px;font-size:24px;line-height:1.15}
.card-content p{max-width:520px;margin-bottom:0}
.card-content .button.small{position:absolute;right:30px;bottom:30px;z-index:2;max-width:calc(100% - 90px);border-radius:16px 0 16px 0;box-shadow:0 0 0 7px var(--ac-card);padding:12px 24px;min-height:46px;font-size:15px;text-align:left}
.card-content .button.small:focus-visible{outline-offset:-5px;outline-color:var(--on-primary)}
/* CTA: huge rounded accent pill banner with grid + white blueprint house */
.call-band{padding:calc(var(--space) * .7) 0;color:var(--on-primary);text-align:left}
.call-band .wrap{position:relative;isolation:isolate;overflow:hidden;background:var(--primary) linear-gradient(color-mix(in srgb,var(--on-primary) 9%,transparent) 1px,transparent 1px) 0 0/30px 30px;border-radius:999px;padding:60px 84px 60px 100px;display:grid;grid-template-columns:minmax(0,1fr) 220px auto;align-items:center;gap:0 40px}
.call-band .wrap:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,color-mix(in srgb,var(--on-primary) 9%,transparent) 1px,transparent 1px) 0 0/30px 30px;-webkit-mask:linear-gradient(90deg,transparent 30%,#000);mask:linear-gradient(90deg,transparent 30%,#000)}
/* the blueprint house is its own grid cell between the headline and the button, so it never sits under text */
.call-band .wrap:after{content:'';position:relative;z-index:-1;grid-column:2;grid-row:1/3;align-self:center;justify-self:center;width:400px;height:300px;margin:-100px -90px;background:var(--on-primary);opacity:.3;clip-path:var(--ac-house);transform:scale(.55);pointer-events:none}
.call-band h2{font-size:clamp(32px,3.3vw,48px);font-weight:600;text-transform:uppercase;letter-spacing:-.8px;line-height:1.1;color:var(--on-primary);margin:0;grid-column:1}
.call-band .eyebrow{grid-column:1;justify-content:start;color:var(--on-primary);margin-bottom:14px}
.call-band .eyebrow:before{background:var(--on-primary)}
.call-band .button{grid-column:3;grid-row:1/3}
.call-band a:focus-visible{outline-color:var(--on-primary)}
.dark-button{background:var(--light);color:var(--on-light);box-shadow:none}
.dark-button:hover{background:#fff;color:var(--on-light)}
/* process: dark cards with a solid number tab set in the corner */
.process{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:10px}
.process>div{background:var(--ac-card);border:1px solid var(--ac-edge);border-radius:20px;padding:0 30px 30px;display:grid;grid-template-columns:auto 1fr;gap:0 18px;align-items:center;align-content:start}
.step{background:var(--accent);color:var(--on-accent);display:inline-grid;place-items:center;min-width:64px;height:62px;padding:0 10px;font:600 26px/1 var(--heading);letter-spacing:-.5px;border-radius:19px 0 16px 0}
.process .step{margin:-1px 0 0 -31px;align-self:start}
.process h3{font-size:23px;margin:16px 0 0;line-height:1.15}
.process p{font-size:16px;grid-column:1/-1;margin:20px 0 0}
/* areas band */
.local-band{background:var(--ac-tint)}
.local-band h2{margin-bottom:0}
.local-band .split{align-items:center}
.local-band .split>div:last-child{background:var(--dark);border:1px solid var(--ac-edge);border-radius:20px;padding:40px;color:var(--on-dark-strong)}
.local-band a{color:var(--on-dark-strong);text-decoration-color:var(--accent-on-dark)}
.local-band .button{color:var(--on-primary);margin-top:6px}
/* faq: centred heading, narrow accordion, blueprint house bottom-left */
.faq{overflow:hidden;isolation:isolate}
/* house sits in the empty left gutter beside the narrow accordion, never behind text; hidden when there is no gutter */
.faq:before{content:'';position:absolute;z-index:-1;left:calc(50% - 750px);bottom:60px;width:400px;height:300px;background:var(--on-dark-strong);opacity:.1;clip-path:var(--ac-house);transform:scale(.65);transform-origin:0 100%;pointer-events:none}
@media(max-width:1299px){.faq:before{display:none}}
.faq .split{grid-template-columns:1fr;max-width:900px;gap:36px;align-items:start}
.faq .split>div:first-child{text-align:center}
.faq .split>div:first-child .eyebrow{justify-content:center}
.faq .split>div:first-child p{max-width:640px;margin-inline:auto}
.accordions{border-top:0;display:grid;gap:10px}
details{background:var(--ac-card);border:1px solid var(--ac-edge);border-radius:14px;transition:border-color .15s}
summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 26px;cursor:pointer;font:600 19px/1.35 var(--heading);letter-spacing:-.2px;color:var(--on-dark-strong);list-style:none;border-radius:14px}
summary::-webkit-details-marker{display:none}
summary>span{font-size:0;line-height:0;color:var(--on-accent);overflow:hidden;width:22px;height:22px;flex-shrink:0;background:var(--accent-on-dark);-webkit-mask:var(--i-plus) center/contain no-repeat;mask:var(--i-plus) center/contain no-repeat}
details[open]{border-color:var(--primary-on-dark)}
details[open] summary{color:var(--ac-label)}
details[open] summary>span{-webkit-mask-image:var(--i-minus);mask-image:var(--i-minus)}
details p{padding:0 26px 6px;font-size:16px}
/* contact: muted band, text left, bordered dark form card right */
.contact{background:var(--ac-tint)}
.contact>.wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:70px;align-items:start}
.contact .section-title{text-align:left;margin:0;position:sticky;top:calc(var(--hh) + 30px)}
.contact .section-title .eyebrow{justify-content:start}
.contact .section-title p:not(.eyebrow){color:var(--on-dark-strong)}
.contact .section-title p a{display:inline-flex;align-items:center;gap:10px;margin:8px 4px 0;background:var(--primary);color:var(--on-primary);text-decoration:none;padding:16px 28px;border-radius:50px;font-weight:500;font-size:18px}
.contact .section-title p a:before{content:"";display:inline-block;flex-shrink:0;width:19px;height:19px;background:currentColor;-webkit-mask:var(--i-phone) center/contain no-repeat;mask:var(--i-phone) center/contain no-repeat}
.contact .section-title p a:hover{background:color-mix(in srgb,var(--primary) 82%,#000)}
.form-card{max-width:800px;width:100%;margin:0;border:1px solid var(--primary-on-dark);border-radius:var(--form-radius);padding:38px;background:var(--ac-deep)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{display:block;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1.4px;margin-bottom:20px;color:var(--ac-label)}
label span{font-weight:400;font-size:12px;letter-spacing:.4px;text-transform:none;color:var(--on-dark)}
input,select,textarea{display:block;width:100%;color:var(--on-dark-strong);background:var(--ac-field);border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:12px 16px;margin-top:8px;min-height:50px;font-size:16px;letter-spacing:0;text-transform:none;font-weight:400}
input:focus,select:focus,textarea:focus{border-color:var(--primary-on-dark)}
textarea{resize:vertical}
.form-send{width:100%;justify-content:center;margin-top:4px}
.honey{display:none}
.contact-details{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:24px;margin:0 0 56px}
.contact-details>div{background:var(--ac-card);border:1px solid var(--ac-edge);border-radius:20px;padding:30px;border-top:4px solid var(--accent-on-dark)}
.contact-details h2{font:700 14px/1.4 var(--body);text-transform:uppercase;letter-spacing:2px;color:var(--ac-label);margin-bottom:12px}
.contact-details a{overflow-wrap:anywhere;color:var(--on-dark-strong);font-size:19px}
.contact-details p{margin:0;color:var(--on-dark-strong)}
/* footer */
footer{padding:80px 0 26px;background:var(--ac-deep);font-size:16px}
.footer-grid{display:grid;grid-template-columns:1.25fr 1.1fr 1fr 1.2fr;gap:48px}
.footer-grid h2{font:700 14px/1.4 var(--body);text-transform:uppercase;letter-spacing:2.4px;color:var(--ac-label);margin-bottom:20px}
.footer-grid a:not(.wordmark){display:block;text-decoration:none;padding:5px 0;overflow-wrap:anywhere}
.footer-grid>div:not(:first-child) a:not(.wordmark){display:flex;align-items:flex-start;gap:12px}
.footer-grid>div:not(:first-child) a:not(.wordmark):before{content:'';display:block;flex-shrink:0;width:7px;height:7px;border-radius:2px;background:var(--accent-on-dark);margin-top:9px}
.footer-grid>div:first-child>a:not(.wordmark){display:inline-flex;margin-top:4px;color:var(--on-dark-strong);font-weight:500;font-size:18px}
.footer-grid p{margin-top:22px;font-size:16px}
.copyright{margin-top:60px;border-top:1px solid var(--ac-edge);padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:14px}
.mobile-call{display:none}
/* inner + town heroes */
.inner-hero{padding:calc(var(--hh) + 56px) 0 84px}
.inner-hero h1{font-size:clamp(39px,4vw,56px)}
.inner-hero .hero-content>p:not(.eyebrow):not(.crumbs){max-width:700px}
.inner-hero .hero-shade{background:linear-gradient(90deg,color-mix(in srgb,var(--dark) 95%,transparent),color-mix(in srgb,var(--dark) 80%,transparent))}
.town-hero{background:radial-gradient(ellipse at 90% 0,color-mix(in srgb,var(--primary) 40%,transparent),transparent 60%),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px) 0 0/28px 28px,linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0/28px 28px;padding:calc(var(--hh) + 70px) 0 90px;overflow:hidden;isolation:isolate}
.town-hero:after{content:'';position:absolute;z-index:-1;right:4%;bottom:40px;width:400px;height:300px;background:var(--on-dark-strong);opacity:.13;clip-path:var(--ac-house);transform:scale(1.05);transform-origin:100% 100%;pointer-events:none}
.town-hero .wrap>*{max-width:min(1000px,calc(100% - 440px))}
.town-hero h1 span{font-size:.62em}
.town-hero .actions{justify-content:start}
.town-hero .lede{max-width:680px;font-size:19px;color:var(--on-dark-strong)}
.service-editorial{display:grid;grid-template-columns:1fr 1.65fr;gap:90px;align-items:start}
.service-editorial aside{position:sticky;top:calc(var(--hh) + 30px);background:var(--ac-card);border:1px solid var(--ac-edge);border-radius:20px;padding:36px}
.scope-list{padding:0;list-style:none;margin:26px 0}
.scope-list li{padding:13px 0;border-bottom:1px solid var(--line);font-size:16px}
.prose{max-width:800px}
.prose section+section{margin-top:52px}
.prose h2{font-size:32px}
.prose p{font-size:17px;line-height:1.75}
.service-hub-copy{margin:80px auto 0}
.town-intro{align-items:start}
.town-services{background:var(--ac-deep)}
.town-service-row{position:relative;display:grid;grid-template-columns:1fr 1.65fr;gap:70px;background:var(--ac-card);border:1px solid var(--ac-edge);border-radius:20px;margin-top:24px;padding:40px 40px 30px}
.town-service-row>div:first-child{display:flex;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;gap:16px 20px}
.town-service-row .step{flex-shrink:0;margin:-41px 0 0 -41px}
.town-service-row .text-link{margin-top:4px}
.town-service-row h3{font-size:28px}
.location-guide article{display:grid;grid-template-columns:1fr 2fr;gap:60px;border-top:1px solid var(--line);padding:35px 0}
.location-guide article h3{font-size:28px}
.location-guide article h3 a{text-decoration:none}
.location-guide>p:last-child{border-top:1px solid var(--line);padding-top:30px}
.location-guide h2{margin-bottom:50px}
@media(min-width:1500px){.home-hero{min-height:800px;padding-top:calc(var(--hh) + 84px)}}
@media(max-width:1200px){.header-inner{gap:22px;padding-left:28px}
.header-cta{display:none}
.header-phone{padding:0 30px 0 22px}
.header-phone small{font-size:10px;letter-spacing:1.2px}
.split{gap:50px}
.service-editorial,.town-service-row{gap:50px}
.footer-grid{gap:30px}
.header nav{gap:22px}
.wordmark{font-size:25px}
.service-grid{grid-template-columns:repeat(2,1fr)}
.hero-content{column-gap:40px}
.hero-content:after{transform:scale(.72)}
.hero-content .actions{margin:260px 26px 26px}
.call-band .wrap{padding:54px 70px}
.mat-frame:before{right:-30px}
}
@media(max-width:1100px) and (min-width:851px){.call-band .wrap{grid-template-columns:minmax(0,1fr) auto;gap:0 40px}
.call-band .wrap:after{display:none}
.call-band .button{grid-column:2}
}
@media(max-width:850px){:root{--hh:114px}
.wrap{width:calc(100% - 44px)}
.header{top:-40px;padding-top:46px}
.header-inner{width:calc(100% - 28px);height:68px;padding:0 0 0 24px;gap:12px;justify-content:space-between}
.wordmark{font-size:24px}
.wordmark small{font-size:9px;letter-spacing:2.4px;margin-top:5px}
.header-phone{position:absolute;left:50%;right:auto;transform:translateX(-50%);top:-42px;height:38px;justify-content:center;gap:10px;background:none;color:var(--on-dark-strong);padding:0;border-radius:0}
.header-phone:hover{background:none;color:var(--accent-on-dark)}
.phone-icon{font-size:17px;color:var(--accent-on-dark);transform:none}
.header-phone small{display:none}
.header-phone b{font-size:17px}
.header nav{display:none;position:absolute;top:calc(100% + 10px);left:0;right:0;margin:0;flex-direction:column;gap:0;background:var(--ac-deep);border:1px solid var(--ac-edge);border-radius:22px;padding:10px 14px;max-height:calc(100vh - 140px);overflow:auto;box-shadow:0 20px 40px rgba(0,0,0,.45)}
.header nav.open{display:flex}
.header nav a{padding:13px 10px;font-size:17px}
.header nav>a{border-top:1px solid var(--ac-edge)}
.header nav .nav-item{display:grid;grid-template-columns:1fr auto;align-items:center;border-top:1px solid var(--ac-edge)}
.header nav .nav-item:first-child{border-top:0}
.header nav .caret{display:none}
.header nav .has-sub .sub,.header nav .has-sub:hover .sub,.header nav .has-sub:focus-within .sub{display:none;position:static;grid-column:1/-1;border:0;box-shadow:none;max-height:none;min-width:0;padding:0 0 8px 12px;background:transparent;border-radius:0}
.header nav .has-sub.sub-open .sub{display:block}
.header nav .sub a{padding:10px;white-space:normal}
.sub-toggle{display:block;width:46px;height:44px;background:var(--ac-card);border:1px solid var(--ac-edge);border-radius:12px;color:var(--on-dark-strong);font-size:15px;cursor:pointer}
.sub-open>.sub-toggle{transform:rotate(180deg)}
.menu-toggle{order:3;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--on-primary);background:var(--primary);border:0;border-radius:0 999px 999px 0;min-height:44px;padding:0 26px 0 22px;font:500 15px/1 var(--body);cursor:pointer}
.menu-toggle span{font-size:30px;line-height:1}
.menu-toggle:focus-visible{outline-offset:-6px;outline-color:var(--on-primary)}
.split,.section-heading,.service-editorial,.town-service-row{grid-template-columns:1fr;gap:40px}
.section-heading{margin-bottom:35px}
.section-heading p:last-child{max-width:650px}
.process{grid-template-columns:1fr;gap:22px}
.service-grid{gap:22px}
.card-photo img{height:220px}
.service-card:only-child{display:flex}
.service-card:only-child .card-content{padding:0 0 22px}
.service-card:only-child .card-photo img{height:260px}
.service-card:only-child .card-stock-note{left:44px;right:auto;top:auto;bottom:44px}
.mat-frame img{height:400px}
.footer-grid{grid-template-columns:1fr 1fr;gap:35px}
.service-editorial aside{position:static}
.scope-list{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}
.contact-details{grid-template-columns:1fr 1fr}
.town-service-row{gap:24px}
.home-hero{padding:calc(var(--hh) + 44px) 0 80px;min-height:0}
.inner-hero{padding:calc(var(--hh) + 40px) 0 70px}
.town-hero{padding:calc(var(--hh) + 50px) 0 70px}
.hero-content{display:block}
.hero-content:before,.hero-content:after{display:none}
.hero-content .actions{margin:26px 0 0;flex-direction:row;align-items:center}
.contact>.wrap{grid-template-columns:1fr;gap:36px}
.contact .section-title{position:static}
.call-band .wrap{border-radius:36px;padding:50px 40px;grid-template-columns:1fr}
.call-band .button{grid-column:1;grid-row:auto;justify-self:start;margin-top:28px}
.call-band .wrap:after{grid-column:1;grid-row:auto;justify-self:end;margin:-55px -100px -75px;transform:scale(.5)}
.town-hero:after{display:none}
.town-hero .wrap>*{max-width:none}
}
@media(max-width:540px){body{font-size:16px}
.wrap{width:calc(100% - 40px)}
.header-inner{width:calc(100% - 20px);height:66px;padding-left:20px}
.wordmark{font-size:22px}
.menu-toggle{padding:0 22px 0 18px;font-size:0;gap:0}
.menu-toggle span{font-size:32px}
.hero{text-align:left}
.home-hero{min-height:auto;padding:calc(var(--hh) + 30px) 0 56px}
.hero-content .eyebrow{font-size:13px;letter-spacing:1.6px;margin-bottom:16px;flex-wrap:wrap}
.hero .eyebrow:before{width:80px;flex-basis:100%;max-width:80px;margin-bottom:6px}
.hero h1{font-size:39px;line-height:1.2;letter-spacing:-.6px}
.hero h1 br{display:none}
.hero h1 span{font-size:26px;margin-top:10px}
.hero-content>p:not(.eyebrow):not(.crumbs){font-size:16px;line-height:1.6}
.hero-facts{flex-direction:column;gap:6px;font-size:16px;margin:0 0 18px}
.actions{flex-direction:column;align-items:stretch;gap:12px;margin-top:24px}
.actions .button{width:100%;min-height:56px}
.actions .button.outline{width:auto;align-self:center;min-height:44px}
.hero-content .actions{flex-direction:column;align-items:stretch}
.photo-note{font-size:9px;right:20px;bottom:12px}
.section{padding:64px 0}
.eyebrow{font-size:12px;gap:10px;letter-spacing:1.6px;margin-bottom:16px}
.eyebrow:before{width:46px}
.mat-frame{margin:0 0 8px;padding:16px;border-radius:20px}
.mat-frame img{height:300px;border-radius:12px}
.mat-frame:before{right:-150px;top:-170px;transform:scale(.8)}
.split{gap:38px}
.fact-line{padding:18px;gap:14px;flex-wrap:wrap}
.fact-line strong{font-size:20px}
.fact-line span{padding-left:14px;font-size:14px}
.service-grid,.service-grid:has(>.service-card:nth-child(4):last-child){grid-template-columns:1fr;gap:22px}
.service-card{padding:24px}
.corner-tile{left:24px;top:20px;font-size:40px}
.card-content h3{margin-left:72px;font-size:22px;min-height:44px}
.card-photo img{height:230px}
.card-content .button.small{right:24px;bottom:24px;max-width:calc(100% - 70px);font-size:14px;padding:11px 18px}
.card-stock-note{left:34px;bottom:34px}
.card-content p{font-size:16px}
.button.small{font-size:14px;gap:10px;padding:12px 16px}
.call-band{padding:48px 0}
.call-band .wrap{width:calc(100% - 28px);border-radius:28px;padding:42px 24px}
.call-band h2{font-size:32px;letter-spacing:-.5px}
.call-band .eyebrow{font-size:11px;gap:8px;letter-spacing:1.4px}
.call-band .eyebrow:before{width:30px}
.call-band .button{width:100%;justify-self:stretch}
.call-band .wrap:after{justify-self:center;margin:-62px -110px -82px;transform:scale(.45)}
.dark-button{font-size:16px;padding:16px 18px}
.process{grid-template-columns:1fr;gap:20px;margin-top:0}
.process>div{padding:0 22px 24px}
.process .step{margin-left:-23px;min-width:58px;height:56px;font-size:23px}
.process h3{font-size:22px;margin-top:14px}
.process p{font-size:16px;margin-top:16px}
.local-band .split>div:last-child{padding:26px 22px}
.faq .split{gap:28px}
summary{font-size:18px;padding:18px 18px}
details p{padding:0 18px 4px}
.form-card{padding:24px 18px;border-radius:20px}
.form-row{grid-template-columns:1fr;gap:0}
label{font-size:12px}
.form-send{font-size:16px}
.section-title{margin-bottom:30px}
.center{text-align:left}
.center .eyebrow{justify-content:start}
.faq .split>div:first-child{text-align:left}
.faq .split>div:first-child .eyebrow{justify-content:start}
.center h2 br{display:none}
.contact .center p:not(.eyebrow){font-size:16px}
.contact .section-title p a{margin-top:14px}
.footer-grid{grid-template-columns:1fr;gap:30px}
.footer-grid>div:first-child{padding-bottom:22px;border-bottom:1px solid var(--ac-edge)}
.footer-grid h2{margin-bottom:12px}
.footer-grid>div:nth-child(3){display:grid;grid-template-columns:1fr 1fr;gap:0 15px}
.footer-grid>div:nth-child(3) h2{grid-column:1/-1}
.footer-grid a:not(.wordmark){min-height:40px;padding:8px 0}
.copyright{display:block;font-size:13px;margin-top:35px}
.copyright span{display:block;margin-top:10px}
footer{padding:56px 0 100px}
.mobile-call{display:grid;grid-template-columns:1.2fr 1fr;position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:20;background:var(--ac-deep);border:1px solid var(--ac-edge);border-radius:999px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.45)}
.mobile-call a{display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;min-height:54px;padding:0 10px;font-size:15px;font-weight:500;text-decoration:none;color:var(--on-dark-strong)}
.mobile-call a:first-child{color:var(--on-primary);background:var(--primary)}
.mobile-call a:focus-visible{outline-offset:-5px}
.inner-hero{padding:calc(var(--hh) + 26px) 0 56px}
.inner-hero h1{font-size:35px}
.inner-hero h1 span{font-size:24px}
.town-hero{padding:calc(var(--hh) + 30px) 0 56px}
.town-hero h1{font-size:37px;letter-spacing:-.5px}
.town-hero h1 br{display:none}
.town-hero h1 span{display:block;margin-top:12px;font-size:25px}
.town-hero .lede{font-size:17px}
.town-hero .eyebrow{font-size:11px}
.town-hero:after{opacity:.08;right:-120px}
.prose h2{font-size:28px}
.prose p{font-size:16px}
.service-editorial aside{padding:26px 20px}
.scope-list{grid-template-columns:1fr}
.town-service-row{padding:24px 22px 24px;gap:20px}
.town-service-row .step{margin:-25px 0 0 -23px;min-width:58px;height:56px;font-size:23px}
.town-service-row h3{font-size:25px}
.contact-details{grid-template-columns:1fr;gap:16px;margin:0 0 40px}
.contact-details h2{margin-bottom:8px}
.location-guide article{grid-template-columns:1fr;gap:0;padding:28px 0}
.location-guide article h3{font-size:26px;margin-bottom:16px}
.location-guide article p{font-size:16px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.crumbs{font-size:14px;margin:0 0 20px;color:var(--on-dark)}
.crumbs a{text-decoration:none;color:var(--on-dark-strong)}
.crumbs a:hover{color:var(--accent-on-dark)}
.crumbs span{opacity:.6;margin:0 8px}
.check-list{padding:0;list-style:none;margin:26px 0}
.check-list li{padding:12px 0 12px 34px;border-bottom:1px solid var(--line);font-size:16px;position:relative}
.check-list li:before{content:"";position:absolute;left:0;top:13px;width:22px;height:22px;box-sizing:border-box;border:1.5px solid var(--accent-on-dark);border-radius:50%}
.check-list li:after{content:"";position:absolute;left:5px;top:18px;width:12px;height:12px;background:var(--accent-on-dark);-webkit-mask:var(--i-check) center/contain no-repeat;mask:var(--i-check) center/contain no-repeat}
.cat-index article{display:grid;grid-template-columns:1fr 2fr;gap:60px;border-top:1px solid var(--line);padding:40px 0}
.cat-index h3{font-size:30px}
.cat-index h3 a{text-decoration:none}
.svc-links{display:grid;grid-template-columns:1fr 1fr;gap:6px 30px;padding:0;margin:20px 0 0;list-style:none}
.svc-links a{display:block;padding:9px 0;border-bottom:1px solid var(--line);text-decoration:none}
.form-ok{display:none;border:1px solid var(--accent-on-dark);border-radius:12px;padding:16px 18px;margin-top:18px;color:var(--on-dark-strong)}
.legal h2{font-size:26px;margin-top:40px}
.no-photo{background:linear-gradient(135deg,var(--primary),var(--dark))}
@media(max-width:850px){.cat-index article{grid-template-columns:1fr;gap:20px}.svc-links{grid-template-columns:1fr}}
.town-service-row h2.row-h,.town-service-row h3{font-size:30px;margin:-14px 0 0;flex:1 1 calc(100% - 110px);min-width:0;letter-spacing:-.4px;line-height:1.15}
@media(max-width:540px){.town-service-row h2.row-h,.town-service-row h3{font-size:24px;margin-top:-8px;flex-basis:calc(100% - 90px)}}

:where(.i){display:inline-block;width:1em;height:1em;vertical-align:-.14em;flex-shrink:0}
.wordmark.has-logo{display:inline-flex;align-items:center;line-height:0;min-width:0;max-width:min(260px,100%);overflow:visible}
.wordmark.logo-plate-light{background:#fff;padding:6px 12px;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.wordmark.logo-plate-dark{background:#15181c;padding:6px 12px;border-radius:8px}
.wordmark.has-logo img{max-height:56px}
@media(max-width:540px){.wordmark.has-logo{max-width:calc(100vw - 225px);padding:4px 8px}.wordmark.has-logo img{max-height:38px;height:auto!important}}
