:root {
  --ink: #101214;
  --ink-2: #191c1f;
  --steel: #aeb4b8;
  --silver: #d7dbde;
  --paper: #f4f2ed;
  --white: #fff;
  --line: rgba(16,18,20,.18);
  --condensed: "Barlow Condensed", Impact, sans-serif;
  --body: "Manrope", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--body); font-size: 16px; line-height: 1.65; }
a { color: inherit; }
img { max-width: 100%; display: block; }
.skip-link { position: fixed; left: 1rem; top: -4rem; background: var(--white); padding: .8rem 1rem; z-index: 100; }
.skip-link:focus { top: 1rem; }

.site-header {
  height: 86px; padding: 0 clamp(1.25rem,4vw,4.5rem); background: rgba(16,18,20,.96); color: var(--white);
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem; position: sticky; top: 0; z-index: 50;
  border-bottom: 1px solid rgba(255,255,255,.1); backdrop-filter: blur(16px);
}
.wordmark { display: inline-flex; align-items: center; gap: .8rem; text-decoration: none; width: max-content; }
.wordmark-logo { display:block; width:clamp(150px,13vw,190px); height:64px; object-fit:contain; object-position:left center; }
.wordmark-icon { width: 44px; height: 44px; border: 1px solid #7d8489; display: grid; place-items: center; font: 700 1.15rem/1 var(--condensed); letter-spacing: -.08em; color: var(--silver); }
.wordmark strong,.wordmark small { display: block; line-height: 1; }
.wordmark strong { font: 600 1.2rem var(--condensed); letter-spacing: .16em; }
.wordmark small { margin-top: .32rem; color: var(--steel); font-size: .58rem; letter-spacing: .26em; }
.desktop-nav { display: flex; gap: clamp(1.2rem,2.5vw,2.7rem); }
.desktop-nav a { text-decoration: none; color: #d4d6d7; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.desktop-nav a:hover { color: var(--white); }
.header-call { text-decoration: none; justify-self: end; text-align: right; line-height: 1.2; }
.header-call span { display:block; color: var(--steel); font-size: .65rem; text-transform: uppercase; letter-spacing: .15em; }
.header-call strong { font: 600 1.05rem var(--condensed); letter-spacing: .08em; }
.menu-toggle,.mobile-nav { display:none; }

.hero { min-height: calc(100svh - 86px); background: var(--ink); color: var(--white); display: grid; grid-template-columns: 58% 42%; overflow: hidden; }
.hero-copy { padding: clamp(4.8rem,9vw,9rem) clamp(2rem,7vw,8rem) 3.5rem clamp(1.25rem,6vw,7rem); display:flex; flex-direction:column; justify-content:center; position:relative; }
.hero-copy::before { content:""; position:absolute; inset:0; opacity:.13; background-image: linear-gradient(rgba(255,255,255,.15) 1px, transparent 1px),linear-gradient(90deg,rgba(255,255,255,.15) 1px,transparent 1px); background-size:80px 80px; mask-image:linear-gradient(to right,black,transparent 80%); pointer-events:none; }
.hero-copy > * { position:relative; }
.eyebrow { margin:0 0 1.35rem; font: 600 .72rem var(--body); text-transform:uppercase; letter-spacing:.22em; color:#6f777c; }
.hero .eyebrow { color:#aeb4b8; }
h1,h2,h3,p { margin-top:0; }
h1 { margin-bottom:2rem; max-width:800px; font:600 clamp(4rem,7.4vw,8.4rem)/.82 var(--condensed); letter-spacing:-.045em; text-transform:uppercase; }
h1 em { color:transparent; -webkit-text-stroke:1px #aeb4b8; font-style:normal; }
.hero-lede { max-width:650px; color:#c6c9cb; font-size:clamp(1rem,1.4vw,1.22rem); line-height:1.75; }
.hero-actions { display:flex; align-items:center; gap:2rem; margin:1.3rem 0 clamp(3rem,6vw,6rem); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:2rem; padding:1rem 1.25rem; min-height:58px; text-decoration:none; text-transform:uppercase; letter-spacing:.12em; font-size:.75rem; font-weight:700; }
.button-primary { background:var(--white); color:var(--ink); min-width:250px; }
.button-primary:hover { background:var(--silver); }
.button-dark { background:var(--ink); color:var(--white); min-width:280px; }
.button-dark:hover { background:#30353a; }
.text-link { text-decoration:none; border-bottom:1px solid currentColor; padding:.35rem 0; font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; font-weight:700; }
.text-link span { margin-left:.75rem; }
.hero-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-width:700px; border-top:1px solid rgba(255,255,255,.17); }
.hero-meta > div { display:grid; grid-template-columns:auto 1fr; gap:1rem; padding:1.25rem 1rem 0 0; }
.hero-meta > div + div { border-left:1px solid rgba(255,255,255,.17); padding-left:1.5rem; }
.hero-meta span { color:#777e83; font:600 .72rem var(--body); }
.hero-meta p { color:#8e9498; margin:0; font-size:.78rem; line-height:1.55; }
.hero-meta strong { display:block; color:#e7e8e9; font-size:.85rem; margin-bottom:.2rem; }
.hero-visual { min-height:720px; position:relative; border-left:1px solid rgba(255,255,255,.14); overflow:hidden; }
.hero-visual > img { width:100%; height:100%; object-fit:cover; object-position:center 42%; filter:contrast(1.04); }
.hero-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(16,18,20,.22),transparent 25%),linear-gradient(0deg,rgba(16,18,20,.42),transparent 35%); }
.hero-badge { position:absolute; z-index:2; left:0; bottom:2.4rem; background:rgba(16,18,20,.9); backdrop-filter:blur(8px); display:flex; align-items:center; gap:.8rem; padding:1rem 1.4rem; font-size:.65rem; text-transform:uppercase; letter-spacing:.16em; }
.hero-badge i { display:block; width:3px; height:3px; border-radius:50%; background:var(--silver); }

.service-intro { padding:clamp(5rem,9vw,9rem) clamp(1.25rem,6vw,7rem) clamp(3rem,5vw,5rem); display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(2rem,8vw,9rem); align-items:end; }
h2 { font:600 clamp(2.8rem,5vw,5.5rem)/.96 var(--condensed); text-transform:uppercase; letter-spacing:-.025em; margin-bottom:0; }
.service-intro > p { margin-bottom:.3rem; color:#555d62; max-width:590px; }
.services-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); margin:0 clamp(1.25rem,6vw,7rem) clamp(6rem,10vw,10rem); }
.service-card { min-height:390px; padding:2rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); position:relative; display:flex; flex-direction:column; }
.service-card h3 { font:600 2rem var(--condensed); text-transform:uppercase; margin:2rem 0 1rem; }
.service-card p { color:#5b6266; font-size:.9rem; }
.service-number { color:#83898d; font-size:.7rem; }
.service-card a { margin-top:auto; font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; text-decoration:none; display:flex; justify-content:space-between; padding-top:1rem; border-top:1px solid rgba(255,255,255,.25); }
.service-featured { grid-column:span 2; background:var(--ink-2); color:var(--white); padding-right:34%; overflow:hidden; }
.service-featured p { color:#b7bbbe; }
.service-featured::after { content:""; position:absolute; right:-40px; bottom:-80px; width:260px; height:260px; border:1px solid rgba(255,255,255,.18); transform:rotate(45deg); }
.line-icon { width:50px; height:40px; margin-top:2.4rem; border:1px solid #7d8488; position:relative; }
.line-icon::before,.line-icon::after { content:""; position:absolute; background:#7d8488; }
.line-icon::before { width:70%; height:1px; top:50%; left:15%; }
.line-icon::after { height:70%; width:1px; left:50%; top:15%; }
.icon-deck { transform:skewX(-12deg); border-top:0; }
.icon-basement { border-top:10px double #7d8488; }
.icon-repair { border-radius:50%; width:42px; }
.icon-commercial::before { width:100%; left:0; box-shadow:0 -10px 0 #7d8488,0 10px 0 #7d8488; }
.icon-commercial::after { height:100%; top:0; box-shadow:-13px 0 0 #7d8488,13px 0 0 #7d8488; }

.difference { background:#dfe2e3; display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(3rem,8vw,10rem); padding:clamp(5rem,10vw,10rem) clamp(1.25rem,6vw,7rem); }
.difference-title p:last-child { margin-top:2.2rem; color:#4f565a; max-width:650px; }
.difference-list { border-top:1px solid rgba(16,18,20,.26); }
.difference-list article { display:grid; grid-template-columns:60px 1fr; gap:1rem; padding:2rem 0; border-bottom:1px solid rgba(16,18,20,.26); }
.difference-list article > span { color:#6f777c; font-size:.72rem; }
.difference-list h3 { font:600 1.6rem var(--condensed); text-transform:uppercase; margin-bottom:.55rem; }
.difference-list p { color:#555d62; font-size:.9rem; margin:0; max-width:580px; }

.process { padding:clamp(5rem,9vw,9rem) clamp(1.25rem,6vw,7rem); }
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--ink); margin-top:2.5rem; }
.process-grid article { padding:2rem 2rem 0 0; min-height:250px; border-right:1px solid var(--line); }
.process-grid article + article { padding-left:2rem; }
.process-grid span { color:#777f84; font-size:.7rem; }
.process-grid h3 { font:600 1.5rem var(--condensed); text-transform:uppercase; margin:3rem 0 .8rem; }
.process-grid p { color:#5a6165; font-size:.86rem; margin:0; }

.about { display:grid; grid-template-columns:1fr 1fr; background:var(--ink); color:var(--white); min-height:680px; }
.about-mark { position:relative; display:grid; place-items:center; overflow:hidden; border-right:1px solid rgba(255,255,255,.13); background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px); background-size:60px 60px; }
.about-mark > span { color:transparent; -webkit-text-stroke:1px #8c9296; font:700 clamp(10rem,24vw,28rem)/1 var(--condensed); letter-spacing:-.14em; transform:translateX(-.07em); }
.measure-line { position:absolute; inset:15%; border:1px solid rgba(255,255,255,.2); }
.measure-line::before,.measure-line::after { content:""; position:absolute; background:#8c9296; }
.measure-line::before { width:30px; height:1px; left:-15px; top:50%; }
.measure-line::after { width:1px; height:30px; left:50%; top:-15px; }
.about-copy { align-self:center; padding:clamp(4rem,8vw,8rem); }
.about-copy h2 { margin-bottom:.4rem; }
.role { color:var(--steel); text-transform:uppercase; letter-spacing:.18em; font-size:.72rem; margin-bottom:2.5rem; }
.about-copy > p:not(.eyebrow):not(.role) { color:#b8bdc0; max-width:620px; }
.light { display:inline-block; margin-top:1.2rem; color:var(--white); }

.coverage { padding:clamp(5rem,8vw,8rem) clamp(1.25rem,6vw,7rem); display:grid; grid-template-columns:1fr 1fr; gap:4rem; border-bottom:1px solid var(--line); }
.coverage p:last-child { align-self:end; color:#596065; line-height:2.2; }
.contact { padding:clamp(5rem,10vw,10rem) clamp(1.25rem,6vw,7rem); }
.contact h2 { max-width:1050px; margin-bottom:clamp(3rem,6vw,6rem); }
.request-cta { margin-bottom:clamp(3rem,5vw,5rem); }
.contact-actions { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--ink); }
.contact-actions a { display:grid; grid-template-columns:1fr auto; padding:2rem 1.5rem 2rem 0; text-decoration:none; align-items:center; }
.contact-actions a + a { border-left:1px solid var(--line); padding-left:2rem; }
.contact-actions small { grid-column:1; color:#777f84; text-transform:uppercase; letter-spacing:.15em; font-size:.65rem; }
.contact-actions strong { grid-column:1; font:600 clamp(1.5rem,3vw,3rem) var(--condensed); overflow-wrap:anywhere; }
.contact-actions span { grid-column:2; grid-row:1 / span 2; font-size:1.6rem; }
.contact-actions a:hover strong { color:#6b7378; }

footer { background:var(--ink); color:#aeb4b8; padding:2rem clamp(1.25rem,6vw,7rem); display:flex; align-items:center; justify-content:space-between; gap:2rem; font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; }
footer p { margin:0; }
.footer-mark { color:var(--white); }

.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; }
.desktop-nav .active { color:var(--white); border-bottom:1px solid #8d9498; }

.request-layout { min-height:calc(100svh - 86px); display:grid; grid-template-columns:minmax(360px,.72fr) minmax(620px,1.28fr); background:var(--paper); }
.request-intro { background:var(--ink); color:var(--white); padding:clamp(4rem,7vw,7rem) clamp(2rem,5vw,6rem); display:flex; flex-direction:column; justify-content:space-between; position:sticky; top:86px; min-height:calc(100svh - 86px); max-height:calc(100svh - 86px); overflow:auto; }
.request-intro::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.11; background-image:linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px); background-size:64px 64px; }
.request-intro > * { position:relative; }
.request-intro h1 { font-size:clamp(3.8rem,6vw,7rem); margin-bottom:2rem; }
.request-intro > div:first-child > p:last-child { color:#b9bec1; max-width:580px; }
.request-guide { margin-top:4rem; border-top:1px solid rgba(255,255,255,.2); padding-top:1.5rem; }
.guide-title { color:#8f979c; text-transform:uppercase; letter-spacing:.16em; font-size:.72rem; }
.request-guide ul { list-style:none; margin:0 0 2rem; padding:0; }
.request-guide li { display:grid; grid-template-columns:32px 1fr; gap:.8rem; padding:.65rem 0; color:#c7cbcd; font-size:.85rem; }
.request-guide li span { color:#767e83; font-size:.67rem; }
.direct-contact { color:#8f979c; font-size:.78rem; margin:0; }
.direct-contact a { color:var(--white); font:600 1.2rem var(--condensed); letter-spacing:.04em; }

.request-form-panel { padding:clamp(4rem,7vw,7rem) clamp(1.25rem,6vw,7rem); max-width:1100px; width:100%; }
.form-heading { margin-bottom:3.5rem; }
.form-heading h2 { margin-bottom:.8rem; }
.form-heading > p:last-child { color:#687075; font-size:.8rem; }
.request-form-panel form { display:grid; gap:3.5rem; }
.request-form-panel fieldset { margin:0; padding:0; border:0; min-width:0; }
.request-form-panel legend { width:100%; padding:0 0 1rem; margin-bottom:1.5rem; border-bottom:1px solid var(--line); font:600 1.35rem var(--condensed); text-transform:uppercase; letter-spacing:.04em; }
.request-form-panel legend > span { color:#7d858a; font:500 .7rem var(--body); margin-right:1rem; }
.request-form-panel legend small { color:#7d858a; font:500 .65rem var(--body); letter-spacing:.12em; margin-left:.6rem; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.3rem; }
.request-form-panel label { display:grid; gap:.5rem; color:#394045; font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; }
.request-form-panel label > span { color:#777f84; }
.full-width { grid-column:1 / -1; }
.request-form-panel input:not([type="file"]),.request-form-panel textarea { width:100%; border:1px solid #bfc4c6; border-radius:0; background:#fff; color:var(--ink); font:500 1rem/1.45 var(--body); padding:.9rem 1rem; min-height:52px; outline:none; transition:border-color .15s,box-shadow .15s; text-transform:none; letter-spacing:normal; }
.request-form-panel textarea { resize:vertical; min-height:180px; }
.request-form-panel input:focus,.request-form-panel textarea:focus { border-color:var(--ink); box-shadow:0 0 0 2px rgba(16,18,20,.1); }
.field-note { color:#687075; font-size:.8rem; margin:-.3rem 0 1.4rem; }
.photo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; }
.photo-upload { aspect-ratio:1.25; border:1px dashed #9da4a8; background:#e9e8e3; position:relative; display:grid !important; place-items:center; cursor:pointer; overflow:hidden; }
.photo-upload input { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; }
.photo-upload > span { display:grid; place-items:center; color:#5f676c; gap:.4rem; font-size:.65rem; position:relative; z-index:2; }
.photo-upload b { font:300 2rem var(--body); }
.photo-upload img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; }
.photo-upload.has-photo img { opacity:1; }
.photo-upload.has-photo > span { background:rgba(16,18,20,.78); color:white; padding:.45rem .65rem; align-self:end; justify-self:stretch; display:block; text-align:center; }
.photo-upload.has-photo b { display:none; }
.file-status { margin:.8rem 0 0; color:#687075; font-size:.8rem; }
.file-status.over-limit,.form-error { color:#9b281f; font-weight:700; }
.form-submit { border-top:1px solid var(--ink); padding-top:1.8rem; display:flex; justify-content:space-between; align-items:center; gap:2rem; }
.form-submit p { max-width:480px; color:#687075; font-size:.76rem; margin:0; }
.form-submit button { border:0; cursor:pointer; }
.form-submit button:disabled { opacity:.65; cursor:wait; }
.form-error { background:#f6dedb; border-left:4px solid #9b281f; padding:1rem; margin:0; }

.thank-you-page { min-height:100svh; background:var(--ink); color:var(--white); }
.thank-you { min-height:100svh; padding:clamp(2rem,5vw,5rem); display:flex; flex-direction:column; background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px); background-size:80px 80px; }
.thank-you-card { max-width:900px; margin:auto 0; }
.success-mark { display:grid; place-items:center; width:58px; height:58px; border:1px solid #7f878c; color:var(--silver); margin-bottom:2.5rem; font-size:1.6rem; }
.thank-you-card h1 { font-size:clamp(4rem,9vw,9rem); }
.thank-you-card > p:not(.eyebrow) { color:#b9bec1; max-width:680px; font-size:1.05rem; }
.thank-you-actions { display:flex; align-items:center; gap:2rem; margin-top:2.5rem; }

.commercial-hero { min-height:calc(100svh - 86px); background:var(--ink); color:var(--white); display:grid; grid-template-columns:58% 42%; overflow:hidden; }
.commercial-hero-copy { padding:clamp(5rem,9vw,9rem) clamp(2rem,7vw,8rem) clamp(4rem,7vw,7rem) clamp(1.25rem,6vw,7rem); display:flex; flex-direction:column; justify-content:center; position:relative; }
.commercial-hero-copy::before { content:""; position:absolute; inset:0; opacity:.12; background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px); background-size:72px 72px; mask-image:linear-gradient(to right,black,transparent 90%); }
.commercial-hero-copy > * { position:relative; }
.commercial-hero-copy .eyebrow { color:var(--steel); }
.commercial-hero-copy > p:not(.eyebrow) { max-width:690px; color:#c0c5c7; font-size:clamp(1rem,1.35vw,1.2rem); }
.commercial-hero h1 em { color:transparent; -webkit-text-stroke:1px var(--steel); font-style:normal; }
.commercial-drawing { min-height:720px; position:relative; border-left:1px solid rgba(255,255,255,.14); overflow:hidden; background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px),radial-gradient(circle at 45% 45%,#30353a,#111315 68%); background-size:54px 54px,54px 54px,auto; display:grid; place-items:center; }
.commercial-drawing > span { color:transparent; -webkit-text-stroke:1px #8e9599; font:700 clamp(5rem,10vw,10rem)/.8 var(--condensed); text-transform:uppercase; letter-spacing:-.05em; transform:rotate(-90deg); opacity:.72; }
.commercial-outline { position:absolute; width:62%; aspect-ratio:1.35; border:1px solid #7e8589; }
.commercial-outline::before,.commercial-outline::after { content:""; position:absolute; border:1px solid rgba(255,255,255,.28); }
.commercial-outline::before { inset:13%; }
.commercial-outline::after { left:37%; top:-20%; width:26%; height:140%; border-top:0; border-bottom:0; }
.commercial-measure { position:absolute; color:#7c8489; font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; }
.measure-one { top:17%; left:12%; border-top:1px solid #60686d; width:76%; padding-top:.4rem; text-align:center; }
.measure-two { bottom:14%; left:17%; border-left:1px solid #60686d; height:72%; padding-left:.5rem; writing-mode:vertical-rl; text-align:center; }
.commercial-intro { padding:clamp(5rem,9vw,9rem) clamp(1.25rem,6vw,7rem); display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(3rem,8vw,9rem); align-items:end; }
.commercial-intro > p { margin:0; color:#555d62; max-width:620px; }
.commercial-services { display:grid; grid-template-columns:repeat(3,1fr); margin:0 clamp(1.25rem,6vw,7rem) clamp(6rem,10vw,10rem); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.commercial-services article { min-height:320px; padding:2rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.commercial-services article > span { color:#7d858a; font-size:.7rem; }
.commercial-services h3 { margin:4rem 0 1rem; font:600 1.8rem var(--condensed); text-transform:uppercase; }
.commercial-services p { margin:0; color:#5a6266; font-size:.88rem; }
.commercial-operations { background:#dfe2e3; display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(3rem,8vw,10rem); padding:clamp(5rem,10vw,10rem) clamp(1.25rem,6vw,7rem); }
.operations-list { border-top:1px solid rgba(16,18,20,.26); }
.operations-list article { display:grid; grid-template-columns:56px 1fr; gap:1rem; padding:1.8rem 0; border-bottom:1px solid rgba(16,18,20,.26); }
.operations-list article > span { color:#6f777c; font-size:.7rem; }
.operations-list h3 { font:600 1.55rem var(--condensed); text-transform:uppercase; margin-bottom:.45rem; }
.operations-list p { margin:0; color:#555d62; font-size:.88rem; }
.commercial-scope { padding:clamp(5rem,9vw,9rem) clamp(1.25rem,6vw,7rem); display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem,8vw,9rem); }
.commercial-scope ul { list-style:none; padding:0; margin:0; border-top:1px solid var(--ink); display:grid; grid-template-columns:1fr 1fr; }
.commercial-scope li { padding:1.25rem 1rem 1.25rem 0; border-bottom:1px solid var(--line); color:#4f575b; font-size:.86rem; }
.commercial-scope li:nth-child(even) { padding-left:1rem; border-left:1px solid var(--line); }
.commercial-contact { border-top:1px solid var(--line); }

@media (max-width: 1050px) {
  .site-header { grid-template-columns:1fr auto; }
  .desktop-nav,.header-call { display:none; }
  .menu-toggle { display:block; width:46px; height:46px; background:none; border:1px solid #596065; padding:0 12px; }
  .menu-toggle span { display:block; height:1px; background:white; margin:7px 0; transition:.2s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-4px) rotate(-45deg); }
  .mobile-nav { display:none; position:absolute; left:0; right:0; top:86px; padding:1rem 1.5rem 2rem; background:var(--ink); border-top:1px solid #333; }
  .mobile-nav.open { display:grid; }
  .mobile-nav a { padding:1rem 0; border-bottom:1px solid #333; text-decoration:none; text-transform:uppercase; font:600 1.2rem var(--condensed); letter-spacing:.08em; }
  .hero { grid-template-columns:1.1fr .9fr; }
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .service-featured { grid-column:span 2; }
  .request-layout { grid-template-columns:1fr; }
  .commercial-hero { grid-template-columns:1.1fr .9fr; }
  .request-intro { position:relative; top:auto; min-height:auto; max-height:none; }
}

@media (max-width: 760px) {
  .site-header { height:74px; padding-inline:1rem; }
  .mobile-nav { top:74px; }
  .hero { display:flex; flex-direction:column; min-height:auto; }
  .commercial-hero { display:flex; flex-direction:column; min-height:auto; }
  .commercial-hero-copy { padding:5rem 1.25rem 3rem; }
  .commercial-drawing { min-height:470px; border-left:0; border-top:1px solid rgba(255,255,255,.14); }
  .hero-copy { padding:5rem 1.25rem 3rem; }
  h1 { font-size:clamp(3.7rem,17vw,6rem); }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:1.25rem; margin-bottom:3rem; }
  .button-primary { width:100%; }
  .hero-meta { grid-template-columns:1fr; }
  .hero-meta > div + div { border-left:0; padding-left:0; }
  .hero-visual { min-height:540px; border-left:0; border-top:1px solid rgba(255,255,255,.14); }
  .hero-visual > img { object-position:center 38%; }
  .service-intro,.difference,.about,.coverage { grid-template-columns:1fr; }
  .commercial-intro,.commercial-operations,.commercial-scope { grid-template-columns:1fr; }
  .commercial-services { grid-template-columns:1fr; margin-inline:1.25rem; }
  .services-grid { grid-template-columns:1fr; margin-inline:1.25rem; }
  .service-featured { grid-column:auto; padding-right:2rem; }
  .service-card { min-height:320px; }
  .process-grid { grid-template-columns:1fr 1fr; }
  .process-grid article:nth-child(3) { padding-left:0; }
  .about-mark { min-height:430px; border-right:0; border-bottom:1px solid rgba(255,255,255,.13); }
  .about-copy { padding:4rem 1.25rem; }
  .coverage { gap:2rem; }
  .contact-actions { grid-template-columns:1fr; }
  .contact-actions a + a { border-left:0; border-top:1px solid var(--line); padding-left:0; }
  .form-grid { grid-template-columns:1fr; }
  .full-width { grid-column:auto; }
  .photo-grid { grid-template-columns:repeat(2,1fr); }
  .form-submit { align-items:stretch; flex-direction:column; }
  .form-submit .button { width:100%; }
  .thank-you-actions { align-items:flex-start; flex-direction:column; }
  .commercial-scope ul { grid-template-columns:1fr; }
  .commercial-scope li:nth-child(even) { padding-left:0; border-left:0; }
  footer { align-items:flex-start; flex-direction:column; }
}

@media (max-width: 460px) {
  .wordmark strong { font-size:1rem; }
  .wordmark-icon { width:38px; height:38px; }
  .process-grid { grid-template-columns:1fr; }
  .process-grid article,.process-grid article + article,.process-grid article:nth-child(3) { min-height:0; padding:1.5rem 0; border-right:0; border-bottom:1px solid var(--line); }
  .process-grid h3 { margin:1.3rem 0 .5rem; }
  .contact-actions strong { font-size:1.65rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
}
