@charset "UTF-8";
:root{--graphite:#292b2b;--teal:#3b9a9c;--teal-dark:#246e70;--white:#fff;--paper:#f5f6f4;--line:#e7e9e7;--ink:#252828;--muted:#646b69;--container:1280px;--gutter:24px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;color:var(--ink);font:16px/1.65 Arial,Helvetica,sans-serif;background:var(--white)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}a,button{touch-action:manipulation}::selection{background:#bee2de;color:var(--ink)}:focus-visible{outline:3px solid var(--teal);outline-offset:5px}.container{width:min(calc(100% - var(--gutter)*2),var(--container));margin-inline:auto}.section{padding-block:80px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.12;letter-spacing:-.045em}h2{font-size:clamp(2.1rem,4vw,3.6rem);font-weight:500;margin-bottom:28px}h3{font-weight:500}p{margin-bottom:22px}.muted{color:var(--muted)}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.14em;margin-bottom:30px;color:var(--teal-dark)}.eyebrow.light{color:#b0ceca}.skip-link{position:fixed;top:-100px;left:20px;z-index:20;padding:12px;background:white;color:var(--ink)}.skip-link:focus{top:10px}.header{position:sticky;top:0;background:var(--graphite);color:white;z-index:10;border-bottom:1px solid #ffffff20}.header-inner{height:80px;display:flex;align-items:center;gap:20px}.logo{font-size:1.3rem;letter-spacing:-.065em;font-weight:800;display:inline-flex;align-items:center;white-space:nowrap;line-height:1}.logo span{font-weight:400;margin-left:5px}.logo i{height:19px;width:4px;display:inline-block;background:var(--teal);margin-left:10px;transform:skew(-18deg)}nav{display:flex;align-items:center;gap:32px;margin-left:auto}nav a{font-size:.875rem;color:#d7dcd9;position:relative;padding-block:12px}nav a:hover,nav a[aria-current]{color:#fff}nav a::after{content:"";height:2px;position:absolute;bottom:4px;left:0;width:0;background:var(--teal);transition:width .2s}nav a:hover::after,nav a[aria-current]::after{width:100%}.header-call{border:1px solid #ffffff50;padding:9px 17px;font-size:.875rem;margin-left:auto;display:flex;gap:26px;align-items:center}.header-call:hover{background:#ffffff12}.menu-toggle{display:none}.hero{background:var(--graphite);color:#fff;position:relative;overflow:hidden}.hero-content{position:relative;padding-top:56px}.hero .eyebrow{display:flex;gap:12px;align-items:center}.hero .eyebrow>span{display:inline-block;width:6px;height:6px;background:var(--teal)}h1{font-size:clamp(4.5rem,9.8vw,9.1rem);font-weight:500;line-height:.98;margin:0 0 40px;letter-spacing:-.065em}em{font-style:normal;color:#77b8b6}.hero-bottom{display:flex;justify-content:space-between;align-items:center;gap:28px}.hero-subtitle{font-size:clamp(1.1rem,1.7vw,1.4rem);margin-bottom:10px}.hero-description{max-width:520px;font-size:.95rem;color:#bac1bd;margin:0}.hero-actions{display:flex;gap:36px;align-items:center}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:50px;min-height:54px;padding:14px 24px;border:0;font-weight:600;font-size:.9375rem;transition:background .2s,transform .2s}.button.primary{background:var(--teal);color:#101f1f}.button.primary:hover{background:#6cb8b7;transform:translateY(-2px)}.text-link{display:inline-flex;gap:25px;align-items:center;font-size:.9375rem;font-weight:600;border-bottom:1px solid var(--teal);padding-bottom:6px}.text-link:hover{color:var(--teal-dark)}.light-link:hover{color:#92d0ce}.hero-caption{border-top:1px solid #ffffff25;display:flex;justify-content:space-between;padding-block:22px;margin-top:50px;color:#aeb8b2;font-size:.6875rem;letter-spacing:.13em}.hero-caption a{font-size:.75rem;letter-spacing:0}.hero-caption a span{margin-left:24px}.two-column{display:grid;gap:28px}.lead{font-size:1.25rem;line-height:1.45;color:var(--ink)}.body-copy{color:var(--muted)}.body-copy .text-link{color:var(--ink);margin-top:5px}.values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:64px;border-top:1px solid var(--line)}.values article{padding:26px 20px 0 0}.value-number{font-size:.75rem;color:var(--teal-dark)}.values h3{font-size:1.2rem;line-height:1.35;margin:18px 0 12px;letter-spacing:-.025em}.values p{font-size:.875rem;color:var(--muted);max-width:235px}.services{background:var(--paper)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:38px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:310px;color:var(--muted);margin:0}.service-list{border-top:1px solid #d4d9d5}details{border-bottom:1px solid #d4d9d5}summary{display:flex;gap:25px;align-items:center;list-style:none;padding:27px 0}summary::-webkit-details-marker{display:none}summary h3{font-size:clamp(1.2rem,2.5vw,2rem);margin:0;letter-spacing:-.035em}.service-number{color:var(--teal-dark);font-size:.75rem;min-width:30px}.expand{width:32px;height:32px;margin-left:auto;flex-shrink:0;border:1px solid #bcc7c1;border-radius:50%;position:relative}.expand::before,.expand::after{content:"";position:absolute;width:12px;height:1px;left:9px;top:15px;background:var(--ink)}.expand::after{transform:rotate(90deg);transition:transform .2s}details[open] .expand::after{transform:rotate(0)}details[open] .expand{background:var(--graphite);border-color:var(--graphite)}details[open] .expand::before,details[open] .expand::after{background:#fff}summary:hover h3{color:var(--teal-dark)}.service-content{padding:0 0 32px 55px;display:grid;gap:22px;color:var(--muted)}.service-content p{max-width:275px;font-size:.9375rem}.service-content ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}.service-content li{position:relative;padding-left:17px;font-size:.9375rem}.service-content li::before{content:"";width:4px;height:4px;background:var(--teal);position:absolute;top:11px;left:0}.statement{background:#e8efeb;padding:70px 0}.statement em{color:var(--teal-dark)}.area{padding-top:30px}.area-intro{color:var(--muted)}.regions{list-style:none;margin:0 0 24px;padding:0}.regions li{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:1.7rem;letter-spacing:-.04em}.area-note{font-size:.9375rem;color:var(--muted);max-width:470px}.contact{background:var(--graphite);color:white}.contact h2>span{color:#aebbb5}.contact-links{margin-top:48px;display:flex;flex-direction:column;align-items:flex-start}.contact-links>span{font-size:.6875rem;letter-spacing:.12em;color:#b5c3ba;margin-bottom:10px}.phone{font-size:clamp(1.8rem,3vw,2.6rem);letter-spacing:-.045em}.phone>span{color:#72b1af;margin-left:20px}.email{margin-top:12px;color:#d8dfd9;font-size:1rem}.email>span{margin-left:18px;color:#72b1af}.contact-links a:hover{color:#9fd3cf}.form-title{font-size:1.2rem;margin-bottom:10px}form>label{display:block;font-size:.875rem;margin:18px 0 7px}input:not([type=checkbox]),textarea{display:block;width:100%;border:1px solid #738078;background:#ffffff05;color:#fff;padding:12px 14px;border-radius:0;min-height:48px}input::placeholder,textarea::placeholder{color:#b8c1bb;font-size:.875rem}textarea{resize:vertical;min-height:110px;max-height:500px}.consent{display:flex;align-items:flex-start;gap:12px;font-size:.75rem;line-height:1.6;color:#c8d1ca}.consent input{width:18px;height:18px;flex-shrink:0;margin-top:3px;accent-color:var(--teal)}.consent a{text-decoration:underline;text-underline-offset:3px}form>.button{margin-top:18px;width:100%}#form-status{font-size:.875rem;margin:16px 0 0;color:#b3dcd2}footer{background:var(--graphite);color:#c2ccc4;padding:0 0 25px}.footer-top{border-top:1px solid #ffffff25;padding:32px 0;display:flex;align-items:center;justify-content:space-between;gap:25px}.footer-top .logo{color:white}.footer-top p{font-size:.875rem;margin:0}.footer-top>div{display:flex;flex-direction:column;font-size:.875rem}.footer-bottom{border-top:1px solid #ffffff15;padding-top:23px;display:flex;justify-content:space-between;gap:18px;font-size:.75rem}.footer-bottom a:hover,footer a:hover{text-decoration:underline}.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s,transform .6s}.reveal.visible{opacity:1;transform:none}.privacy-page{max-width:780px;padding-block:70px}.privacy-page h1{font-size:clamp(2.5rem,6vw,4rem);line-height:1.1}.privacy-page h2{font-size:1.4rem;margin-top:35px}.privacy-page a{text-decoration:underline;color:var(--teal-dark)}
@media(min-width:900px){:root{--gutter:48px}.section{padding-block:105px}.two-column{grid-template-columns:1fr 1fr;gap:85px}.values{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:70px}.values article+article{padding-left:28px;border-left:1px solid var(--line)}.values article{margin-top:24px;padding-top:0}.service-content{grid-template-columns:1fr 1.65fr;gap:55px}.service-content ul{grid-template-columns:1fr 1fr;column-gap:30px}.area{padding-top:15px}.contact .two-column{gap:100px}}
@media(min-width:1500px){.hero-content{padding-top:75px}.hero-caption{margin-top:65px}}
@media(max-width:899px){nav{gap:18px}.hero-actions{gap:24px}.hero-bottom{align-items:flex-start;flex-direction:column}.hero-caption{margin-top:38px}.section-heading{align-items:flex-start;flex-direction:column;gap:20px}.section-heading>p{max-width:450px}.contact form{margin-top:20px}.footer-top{flex-wrap:wrap}}
@media(max-width:699px){.header-inner{height:70px;gap:16px}.logo{font-size:1.15rem}.header-call{font-size:.8125rem;padding:8px 12px;gap:14px;margin-left:0}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;margin-left:auto;min-width:44px;min-height:44px;padding:10px;background:none;border:0;order:3}.menu-toggle span{display:block;width:23px;height:1px;background:white;transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}nav{display:none;position:absolute;top:70px;left:0;right:0;margin:0;background:var(--graphite);padding:20px 24px 28px;border-bottom:1px solid #68736c;flex-direction:column;align-items:stretch;gap:0}nav.is-open{display:flex;animation:menu-in .2s ease}nav a{padding:13px 0;font-size:1rem}html:not(.js-enabled) body nav{display:flex;position:static;flex-wrap:wrap;flex-direction:row;width:100%;padding:0;gap:18px}html:not(.js-enabled) body .header-inner{height:auto;flex-wrap:wrap;padding-block:15px}html:not(.js-enabled) body .menu-toggle{display:none}.hero-content{padding-top:36px}h1{font-size:clamp(4rem,15vw,6.2rem);margin-bottom:30px}.hero .eyebrow{font-size:.625rem;letter-spacing:.11em}.hero-description{font-size:.875rem}.hero-actions{width:100%;justify-content:space-between;gap:16px;margin-top:5px}.button{gap:30px;padding:13px 20px}.hero-caption>span{max-width:150px;font-size:.625rem}.hero-caption a{font-size:.6875rem}.hero-caption a span{margin-left:10px}.section{padding-block:65px}.eyebrow{margin-bottom:22px}.values{margin-top:38px}.values article{padding-right:20px}.values article:nth-child(even){padding-left:20px;border-left:1px solid var(--line)}.values h3{font-size:1.1rem}.values p{font-size:.8125rem}.service-content{padding-left:0}.service-content p{max-width:none;margin-bottom:0}summary{gap:14px;padding-block:25px}.service-number{min-width:20px}summary h3{line-height:1.2}.statement{padding-block:55px}.area{padding-top:0}.contact-links{margin-top:30px}.footer-top{align-items:flex-start}.footer-bottom{flex-direction:column;gap:10px}.footer-top>div{font-size:.8125rem}.reveal{transform:translateY(10px)}}
@keyframes menu-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

@media(max-width:380px){.header-inner{gap:8px}.header .logo{font-size:1rem}.header .logo i{margin-left:6px}.header-call{padding:8px 10px}.header-call span{display:none}.menu-toggle{min-width:40px;padding:8px}.hero-actions{gap:12px}.hero-actions .button{gap:18px}.hero-actions .text-link{gap:12px}}


/* Real photographs: keep the image visible, with a shaded reading area. */
.hero-construction { isolation: isolate; }
.hero-photo { position: absolute; inset: 0; z-index: -2; }
.hero-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 62% 52%; }
.hero-construction::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(24,30,29,.94) 0%, rgba(24,30,29,.83) 29%, rgba(24,30,29,.35) 59%, rgba(24,30,29,.04) 100%), linear-gradient(0deg, rgba(24,30,29,.7), transparent 40%); }
.hero-construction .hero-content { padding-top: 64px; }

.hero-construction .hero-bottom { flex-direction: column; align-items: flex-start; gap: 28px; }
.hero-construction .hero-subtitle { max-width: 460px; }
.hero-construction .hero-description { max-width: 455px; color: #e0e7e2; }
.hero-construction .hero-caption { color: #edf1ee; margin-top: 52px; }
.hero-construction .eyebrow { color: #dfefea; }
.hero-construction .hero-actions { gap: 36px; }
.hero-construction .button { min-height: 56px; }

/* Alternating wide / narrow pairs retain the landscape compositions. */
.project-gallery { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: 36px 24px; }
.project-photo { margin: 0; grid-column: span 7; min-width: 0; }
.project-photo:nth-child(4n+2), .project-photo:nth-child(4n+3) { grid-column: span 5; }
.gallery-link { display: block; position: relative; height: clamp(240px,27vw,355px); overflow: hidden; background: var(--paper); }
.gallery-link img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .4s ease; }
.project-photo:nth-child(2) img { object-position: 54% 55%; }
.project-photo:nth-child(12) img { object-position: 50% 42%; }
.photo-open { position: absolute; bottom: 16px; right: 16px; display: grid; place-items: center; width: 44px; height: 44px; color: white; background: rgba(37,40,40,.86); font-size: 1.4rem; transition: background .2s; }
.project-photo figcaption { display: flex; gap: 16px; justify-content: space-between; align-items: baseline; padding-top: 13px; font-size: .9375rem; }
.photo-index { color: var(--teal-dark); font-size: .75rem; }
@media (hover:hover) { .gallery-link:hover img { transform: scale(1.025); } .gallery-link:hover .photo-open { background: var(--teal-dark); } }

/* Native modal provides focus containment and makes the page inert. */
html.viewer-open { overflow: hidden; }
.photo-viewer { color: white; background: #202423; border: 1px solid #54605a; padding: 20px 28px 16px; width: min(1440px,96vw); max-width: 96vw; max-height: 96dvh; overflow: auto; }
.photo-viewer::backdrop { background: rgba(13,17,16,.94); }
.photo-viewer:not([open]) { display: none; }
.viewer-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: .75rem; letter-spacing: .1em; }
.photo-viewer button { color: white; background: transparent; border: 1px solid #78837c; min-height: 48px; min-width: 48px; padding: 8px 14px; }
.photo-viewer button:hover { background: #3b514d; }
.viewer-close { display: flex; gap: 22px; align-items: center; font-size: .875rem; }
.viewer-close span { font-size: 1.6rem; }
.viewer-stage { position: relative; display: grid; place-items: center; margin-block: 20px; height: min(65dvh,690px); }
#viewer-image { display: block; width: 100%; height: 100%; object-fit: contain; }
#viewer-image[hidden], #viewer-error[hidden] { display: none; }
.viewer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.viewer-description { text-align: center; }
#viewer-caption { margin: 0; font-size: 1rem; }
#viewer-count, #viewer-help { color: #c3cec6; font-size: .8125rem; }
#viewer-help { text-align: center; margin: 12px 0 0; }
@media(max-width:899px) {
  .hero-construction::after { background: linear-gradient(90deg,rgba(24,30,29,.92),rgba(24,30,29,.60) 55%,rgba(24,30,29,.1)),linear-gradient(0deg,rgba(24,30,29,.6),transparent); }
  .hero-construction .hero-content { padding-top: 52px; }
  .project-gallery { gap: 28px 18px; }
  .gallery-link { height: 240px; }
}
@media(max-width:699px) {
  .hero-construction .hero-content { padding-top: 235px; }
  .hero-photo { bottom: auto; height: 410px; }
  .hero-photo img { object-position: 61% center; }
  .hero-construction::after { background: linear-gradient(180deg,rgba(24,30,29,.04) 0,rgba(24,30,29,.10) 135px,rgba(41,43,43,.88) 260px,#292b2b 395px); }

  .hero-construction .eyebrow { font-size: .625rem; margin-bottom: 19px; }
  .hero-construction .hero-bottom { gap: 24px; }
  .hero-construction .hero-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
  .hero-construction .hero-actions .text-link { min-height: 56px; padding: 13px 12px; justify-content: space-between; border: 1px solid #7b9991; }
  .hero-construction .hero-caption { margin-top: 30px; }
  .hero-construction .hero-caption a { display: none; }
  .hero-construction .hero-caption>span { max-width: none; }
  .project-gallery { display: flex; flex-direction: column; gap: 27px; }
  .gallery-link { height: auto; aspect-ratio: 1.65; }
  .project-photo:nth-child(3n+1) .gallery-link { aspect-ratio: 2.16; }
  .project-photo figcaption { font-size: .875rem; }
  .photo-viewer { padding: 14px; width: 100vw; max-width: 100vw; max-height: 100dvh; }
  .viewer-toolbar { font-size: .625rem; letter-spacing: .06em; }
  .viewer-close { gap: 10px; }
  .viewer-stage { height: 55dvh; margin-block: 18px; }
  .viewer-bottom { gap: 12px; }
  #viewer-caption { font-size: .875rem; }
  #viewer-help { font-size: .75rem; }
}
@media(prefers-reduced-motion:reduce) { .gallery-link img { transition: none; } }

/* Shared type and spacing scale: refinements to the existing design. */
:root {
  --type-h1: clamp(3.35rem, 6.1vw, 5.7rem);
  --type-h2: clamp(2rem, 3.35vw, 3rem);
  --type-h3: clamp(1.2rem, 2.15vw, 1.75rem);
  --type-lead: clamp(1.125rem, 1.5vw, 1.25rem);
  --section-space: clamp(64px, 7vw, 96px);
}
.section { padding-block: var(--section-space); }
h2, .statement h2, .contact h2 { font-size: var(--type-h2); line-height: 1.15; letter-spacing: -.04em; font-weight: 500; }
h2 { margin-bottom: 26px; }
.eyebrow { font-size: .75rem; line-height: 1.5; letter-spacing: .12em; margin-bottom: 26px; }
.lead, .form-title { font-size: var(--type-lead); line-height: 1.5; }
.body-copy { max-width: 58ch; }
.body-copy p, .section-heading>p, .service-content p, .service-content li, .area-note { font-size: 1rem; line-height: 1.65; }
.two-column { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(32px,5vw,72px); }
.two-column>* { min-width: 0; }
.section-heading { gap: 32px; margin-bottom: 36px; }
.section-heading>div { min-width: 0; }
.section-heading>p { flex: 0 1 320px; }
.button, .text-link { font-size: .9375rem; }
.hero-construction .hero-claim { font-size: var(--type-h1); line-height: 1.04; letter-spacing: -.055em; font-weight: 600; margin: 0 0 26px; }
.hero-construction .hero-content { padding-top: clamp(52px,5vw,72px); }
.hero-construction .eyebrow { margin-bottom: 24px; }
.hero-construction .hero-subtitle { font-size: var(--type-lead); line-height: 1.5; max-width: 455px; margin-bottom: 14px; }
.hero-construction .hero-description { max-width: 47ch; font-size: 1rem; }
.hero-construction .hero-bottom { gap: 26px; }
.hero-construction .hero-caption { margin-top: 44px; }
.hero-construction::after { background: linear-gradient(90deg,rgba(24,30,29,.95) 0%,rgba(24,30,29,.84) 28%,rgba(24,30,29,.24) 61%,transparent 88%),linear-gradient(0deg,rgba(24,30,29,.52),transparent 26%); }
.hero-photo img { object-position: 61% 52%; }
.values { margin-top: 52px; }
.values article { min-width: 0; padding-right: 20px; }
.values h3 { font-size: clamp(1.1rem,1.45vw,1.25rem); line-height: 1.35; min-height: 3.4em; }
.values p { font-size: .9375rem; line-height: 1.6; margin-bottom: 0; }
.values article+article { padding-left: 24px; }
summary { padding-block: 25px; gap: 24px; }
summary h3 { font-size: var(--type-h3); line-height: 1.25; }
summary:focus-visible { outline-offset: 4px; border-radius: 2px; }
.expand { width: 40px; height: 40px; }
.expand::before,.expand::after { left: 13px; top: 19px; }
.service-content { padding-bottom: 30px; gap: 30px; }
.service-content ul { gap: 12px 28px; }
.service-content li::before { top: 12px; }
.service-list details[open] .service-content { animation: service-in .2s ease-out; }
@keyframes service-in { from { opacity: .45; transform: translateY(-5px); } to { opacity: 1; transform: none; } }
@supports (interpolate-size: allow-keywords) {
  .service-list details { interpolate-size: allow-keywords; }
  .service-list details::details-content { block-size: 0; overflow: clip; transition: block-size .24s ease, content-visibility .24s allow-discrete; }
  .service-list details[open]::details-content { block-size: auto; }
}
.statement { padding-block: var(--section-space); background: #e8efeb; }
.statement-layout { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: clamp(32px,4vw,60px); align-items: center; }
.statement-copy h2 { max-width: 13ch; }
.statement-copy>p:last-child { max-width: 40ch; color: #4b5a53; line-height: 1.65; margin: 0; }
.statement-photo { margin: 0; min-width: 0; }
.statement-photo img { width: 100%; aspect-ratio: 1.5; height: auto; object-fit: cover; object-position: 49% 53%; display: block; }
.statement-photo figcaption { font-size: .8125rem; color: #4b5a53; padding-top: 12px; }
.project-gallery { gap: 32px 24px; }
.gallery-link { height: clamp(220px,25vw,335px); }
.gallery-link:focus-visible .photo-open { background: var(--teal-dark); }
.area { padding-top: 28px; padding-bottom: clamp(60px,6vw,84px); }
.regions li { font-size: clamp(1.4rem,2.1vw,1.8rem); line-height: 1.35; padding-block: 14px; cursor: default; }
.area-intro { margin-bottom: 12px; }
.area .text-link { min-height: 44px; align-items: center; }
.contact .two-column { gap: clamp(32px,5vw,72px); }
.contact form { margin-top: 0; }
.form-title { margin-bottom: 26px; }
form>label { font-size: .875rem; margin-top: 20px; margin-bottom: 8px; }
input:not([type=checkbox]),textarea { min-height: 52px; padding: 13px 15px; border-color: #7a8780; font-size: 1rem; transition: border-color .2s,background .2s; }
input:not([type=checkbox]):focus,textarea:focus { background: #ffffff09; border-color: #9fd3cf; outline: 2px solid #9fd3cf; outline-offset: 2px; }
input::placeholder,textarea::placeholder { font-size: .9375rem; }
textarea { min-height: 132px; }
.consent { margin-top: 20px; gap: 12px; font-size: .8125rem; }
.consent input { width: 20px; height: 20px; }
form>.button { min-height: 56px; margin-top: 24px; }
#form-status { color: #e4d5b8; }
#form-status:empty { display: none; }
.footer-top { padding-block: 32px; gap: 24px; }
.footer-top p { line-height: 1.5; }
.footer-bottom { line-height: 1.6; }
@media(min-width:900px) and (max-width:1099px) {
  .values { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 0; }
  .values article:nth-child(3) { border-left: 0; padding-left: 0; }
  .values article { margin-top: 0; padding-top: 24px; }
  .values h3 { min-height: 0; }
}
@media(max-width:899px) {
  .two-column { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .section-heading>p { flex: auto; }
  .values article:nth-child(odd) { padding-left: 0; }
  .values article:nth-child(even) { border-left: 1px solid var(--line); padding-left: 24px; }
  .statement-layout { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .statement-copy h2 { max-width: 20ch; }
  .statement-copy>p:last-child { max-width: 58ch; }
  .statement-photo img { aspect-ratio: 2; }
  .footer-top p { display: block; }
  .contact form { margin-top: 12px; }
}
@media(max-width:699px) {
  .hero-construction .hero-content { padding-top: 225px; }
  .hero-construction .hero-claim { font-size: var(--type-h1); }
  .hero-construction .eyebrow { font-size: .625rem; margin-bottom: 20px; }
  .hero-construction::after { background: linear-gradient(180deg,rgba(24,30,29,.02),rgba(24,30,29,.08) 130px,rgba(41,43,43,.92) 255px,#292b2b 390px); }
  .hero-construction .hero-photo img { object-position: 61% center; }
  .hero-construction .hero-caption { margin-top: 28px; }
  .hero-construction .hero-subtitle { font-size: 1.125rem; }
  .hero-construction .hero-description { font-size: .9375rem; }
  .eyebrow { margin-bottom: 22px; }
  .values { margin-top: 36px; row-gap: 26px; }
  .values article { padding-top: 22px; padding-right: 14px; }
  .values article:nth-child(even) { padding-left: 18px; }
  .values h3 { min-height: 0; }
  .values p { font-size: .875rem; }
  summary { gap: 12px; padding-block: 22px; }
  .service-content { gap: 20px; }
  .statement-copy h2 { max-width: 16ch; }
  .statement-photo img { aspect-ratio: 1.55; object-position: 48% center; }
  .gallery-link { height: auto; }
  .project-gallery { gap: 28px; }
  .area { padding-top: 12px; }
  .contact-links { margin-top: 30px; }
  .footer-top { display: grid; grid-template-columns: minmax(0,1fr); gap: 18px; }
  .footer-top p { margin: 0; }
  .footer-top>div { font-size: .875rem; gap: 4px; }
}
@media(prefers-reduced-motion:reduce) { .service-list details::details-content { transition: none; } }

.body-copy .lead { font-size: var(--type-lead); line-height: 1.5; }

.company-details { margin: 28px 0 0; max-width: 440px; font-size: .75rem; line-height: 1.6; color: #c8d1ca; }

/* SEO subpages reuse the approved palette and typography. */
.hero-construction h1.hero-description { font-size: .95rem; line-height: 1.65; letter-spacing: normal; font-weight: 400; margin: 0; max-width: 455px; color: #e0e7e2; }
.seo-home-links { margin: 28px 0 0; line-height: 2; }
.seo-home-links a, .seo-body a { text-decoration: underline; text-underline-offset: 4px; }
.seo-intro { padding-block: 38px 60px; }
.seo-page h1 { font-size: clamp(2.2rem, 4.8vw, 4.5rem); line-height: 1.1; max-width: 22ch; margin-bottom: 28px; }
.seo-intro .lead { max-width: 65ch; }
.seo-body { max-width: 1000px; padding-bottom: 70px; }
.seo-body section { padding-block: 28px; }
.seo-body h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); }
.seo-body h3 { font-size: 1.35rem; margin-block: 30px 16px; }
.seo-body p { max-width: 75ch; }
.seo-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 48px; }
.seo-grid article { border-top: 1px solid var(--line); }
.seo-photo { margin: 24px 0 36px; }
.seo-photo img { display: block; width: 100%; height: auto; background: var(--paper); }
.seo-photo figcaption { font-size: .875rem; color: var(--muted); margin-top: 10px; }
.seo-links { padding-left: 20px; line-height: 2; }
nav.breadcrumbs { display: block; position: static; background: transparent; padding: 0; margin: 0 0 38px; border: 0; color: var(--muted); }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 8px 14px; list-style: none; margin: 0; padding: 0; font-size: .8125rem; }
nav.breadcrumbs a { color: var(--teal-dark); font-size: inherit; padding: 0; text-decoration: underline; }
.breadcrumbs li+li::before { content: '/'; margin-right: 14px; }
.breadcrumbs a::after { display: none; }
@media(max-width:699px) { .seo-grid { grid-template-columns: minmax(0,1fr); } .seo-intro { padding-block: 28px 40px; } .hero-construction h1.hero-description { font-size: .9375rem; } }
