@font-face{font-family:"Archivo";font-style:normal;font-weight:400 800;font-stretch:90% 110%;font-display:swap;src:url(../fonts/archivo-latin-var.woff2) format("woff2")}
@font-face{font-family:"DM Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/dm-mono-latin-400.woff2) format("woff2")}
@font-face{font-family:"DM Mono";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/dm-mono-latin-500.woff2) format("woff2")}
:root{--ink:#171717;--paper:#f2efe6;--yellow:#f2c94c;--muted:#5c5952;--line:rgba(23,23,23,.18);--dark-line:rgba(255,255,255,.17);--max:1240px;--header:86px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Archivo",Arial,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{color:inherit}.shell{width:min(calc(100% - 48px),var(--max));margin-inline:auto}.skip-link{position:fixed;z-index:9999;left:12px;top:-80px;background:var(--yellow);padding:12px 16px;font-weight:700}.skip-link:focus{top:12px}.site-header{height:var(--header);position:absolute;z-index:100;left:0;right:0;top:0;display:flex;align-items:center;padding:0 max(24px,calc((100vw - var(--max))/2));border-bottom:1px solid rgba(255,255,255,.22);color:#fff;transition:background .25s,color .25s,border-color .25s}.site-header.is-scrolled,.site-header-solid{position:fixed;background:rgba(242,239,230,.96);backdrop-filter:blur(12px);color:var(--ink);border-color:var(--line)}.brand{display:flex;align-items:center;gap:12px;min-width:240px}.brand-mark{display:grid;place-items:center;width:44px;height:44px;background:var(--yellow);color:#111;font-weight:800;letter-spacing:-.07em;font-size:18px}.brand-copy{display:grid;line-height:1.05}.brand-copy strong{text-transform:uppercase;font-size:13px;letter-spacing:.06em}.brand-copy small{font-family:"DM Mono",monospace;font-size:9px;text-transform:uppercase;letter-spacing:.08em;margin-top:5px;opacity:.65}.site-nav{margin-left:auto;display:flex;align-items:center;gap:28px;font-size:13px;font-weight:650}.site-nav>a:not(.nav-cta){position:relative}.site-nav>a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:currentColor;transition:right .2s}.site-nav>a:hover::after,.site-nav>a[aria-current="page"]::after{right:0}.nav-cta{background:var(--yellow);color:#111;padding:12px 16px}.menu-toggle{display:none;margin-left:auto;background:none;border:0}.hero{min-height:100svh;background:var(--ink);color:#fff;position:relative;overflow:hidden}.hero-grid{min-height:calc(100svh - 46px);padding-top:calc(var(--header) + 74px);padding-bottom:74px;display:grid;grid-template-columns:minmax(0,1fr) minmax(400px,.82fr);gap:72px;align-items:center}.hero-copy{max-width:710px}.eyebrow{font-family:"DM Mono",monospace;font-size:11px;text-transform:uppercase;letter-spacing:.1em;display:flex;gap:14px;align-items:center;margin:0 0 30px;color:var(--muted)}.hero .eyebrow{color:rgba(255,255,255,.62)}.eyebrow span{color:var(--yellow)}h1,h2,h3,p{margin-top:0}h1,h2{font-weight:760;letter-spacing:-.055em;line-height:.93}h1{font-size:clamp(4rem,7.8vw,7.8rem);margin:0 0 30px;max-width:980px}h2{font-size:clamp(2.7rem,5vw,5.4rem);margin:0 0 24px;max-width:980px}h1 em,h2 em{font-style:normal;font-weight:430;color:var(--yellow)}.hero-lede{font-size:clamp(1.05rem,1.5vw,1.32rem);color:rgba(255,255,255,.72);max-width:650px;margin-bottom:34px}.hero-actions,.form-actions{display:flex;gap:10px;flex-wrap:wrap}.button{min-height:52px;padding:0 20px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:18px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;font-weight:750;cursor:pointer}.button-primary{background:var(--yellow);color:#111}.button-primary:hover,.nav-cta:hover{background:#ffda5f}.button-quiet{color:#fff;border-color:rgba(255,255,255,.35)}.button-dark{background:var(--ink);color:#fff}.button-outline-dark{background:transparent;border-color:rgba(23,23,23,.45);color:var(--ink)}.hero-media{height:min(650px,65vh);position:relative}.hero-photo{position:absolute;margin:0;overflow:hidden}.hero-photo img{width:100%;height:100%;object-fit:cover}.hero-photo-main{inset:0 0 6% 12%}.hero-photo-main:after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.25);pointer-events:none}.hero-photo-inset{width:42%;aspect-ratio:4/5;left:0;bottom:0;border:8px solid var(--ink)}.media-note{position:absolute;right:0;bottom:0;background:var(--yellow);color:#111;padding:10px 13px;font-family:"DM Mono",monospace;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.trust-strip{border-top:1px solid var(--dark-line);height:46px;display:flex;align-items:center}.trust-track{display:grid;grid-template-columns:repeat(4,1fr);font-family:"DM Mono",monospace;text-transform:uppercase;font-size:9px;letter-spacing:.07em;color:rgba(255,255,255,.55)}.trust-track span:not(:first-child){text-align:center}.section{padding:132px 0;border-bottom:1px solid var(--line)}.section-heading{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.55fr);gap:60px;align-items:end;margin-bottom:72px}.section-heading .eyebrow{grid-column:1/-1;margin-bottom:4px}.section-heading h2{margin-bottom:0}.section-heading>p:not(.eyebrow){color:var(--muted);font-size:17px;max-width:470px;margin:0 0 8px}.section-heading-inline{grid-template-columns:1fr auto;align-items:end}.section-heading-inline>div .eyebrow{margin-bottom:30px}.text-link{font-family:"DM Mono",monospace;font-size:11px;text-transform:uppercase;border-bottom:1px solid;padding-bottom:5px}.service-list{border-top:1px solid var(--ink)}.service-row{display:grid;grid-template-columns:65px minmax(220px,.8fr) minmax(300px,1.2fr) 120px;gap:28px;align-items:center;padding:28px 0;border-bottom:1px solid var(--line)}.service-no{font-family:"DM Mono",monospace;color:var(--muted);font-size:11px}.service-row h3{font-size:clamp(1.35rem,2.2vw,2rem);line-height:1.05;margin:0;letter-spacing:-.03em}.service-row p{margin:0;color:var(--muted);max-width:540px}.service-row a{font-family:"DM Mono",monospace;font-size:10px;text-transform:uppercase;text-align:right}.work{background:#dad4c5}.project-grid{display:grid;grid-template-columns:1.2fr .9fr .9fr;grid-auto-rows:270px;gap:12px}.project{display:block;position:relative;border:0;padding:0;overflow:hidden;background:#bbb;cursor:zoom-in}.project img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.8,.2,1)}.project:hover img{transform:scale(1.025)}.project span,.project-gallery-item span{position:absolute;left:12px;bottom:12px;background:var(--paper);padding:7px 9px;font-family:"DM Mono",monospace;font-size:9px}.project-large{grid-row:span 2}.project-wide{grid-column:2/span 2}.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,.82fr);gap:86px;align-items:center}.about-image{position:relative;min-height:660px}.about-image img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.corner-label{position:absolute;left:0;bottom:0;background:var(--yellow);padding:10px 13px;font-family:"DM Mono",monospace;font-size:9px;text-transform:uppercase}.about-copy h2{max-width:650px}.large-copy{font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.35;letter-spacing:-.025em}.about-copy>p:not(.eyebrow):not(.large-copy){color:var(--muted);font-size:17px;max-width:620px}.about-meta{display:grid;grid-template-columns:1fr 1fr;margin-top:46px;border-top:1px solid var(--line);padding-top:20px;gap:20px}.about-meta small{display:block;font-family:"DM Mono",monospace;color:var(--muted);text-transform:uppercase;font-size:9px;margin-bottom:8px}.about-meta strong{font-size:14px}.process{background:var(--ink);color:#fff}.process .eyebrow{color:rgba(255,255,255,.55)}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--dark-line)}.process-grid article{padding:30px 34px 30px 0;border-right:1px solid var(--dark-line);min-height:235px}.process-grid article+article{padding-left:34px}.process-grid article:last-child{border-right:0}.process-grid span{font-family:"DM Mono",monospace;color:var(--yellow);font-size:10px}.process-grid h3{font-size:25px;line-height:1.05;margin:46px 0 15px}.process-grid p{color:rgba(255,255,255,.6);margin:0}.estimate{background:var(--yellow);padding:120px 0}.estimate-grid{display:grid;grid-template-columns:.86fr 1.14fr;gap:90px}.eyebrow-dark{color:rgba(23,23,23,.8)}.eyebrow-dark span{color:var(--ink)}.estimate-copy h2 em{color:var(--ink);font-weight:430}.estimate-copy>p:not(.eyebrow){max-width:500px}.direct-contact{display:flex;flex-direction:column;gap:8px;margin-top:38px;font-weight:750}.estimate-form{display:grid;grid-template-columns:1fr 1fr;gap:22px}.estimate-form label{display:flex;flex-direction:column;gap:8px}.estimate-form .field-full{grid-column:1/-1}.estimate-form label span{font-family:"DM Mono",monospace;text-transform:uppercase;font-size:9px;letter-spacing:.07em}.estimate-form input,.estimate-form select,.estimate-form textarea{width:100%;border:0;border-bottom:1px solid rgba(23,23,23,.55);border-radius:0;background:rgba(255,255,255,.12);padding:14px 12px;outline:none}.estimate-form input:focus,.estimate-form select:focus,.estimate-form textarea:focus{box-shadow:inset 0 -2px 0 var(--ink)}.estimate-form textarea{resize:vertical}.form-actions,.form-note{grid-column:1/-1}.form-note{font-family:"DM Mono",monospace;font-size:10px;min-height:1.3em;margin:0}.footer{background:#0f0f0f;color:#fff;padding:70px 0 26px}.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:50px;padding-bottom:70px}.brand-footer{min-width:0}.footer-grid>div:not(:first-child){display:flex;flex-direction:column;gap:10px}.footer-grid small{font-family:"DM Mono",monospace;text-transform:uppercase;color:rgba(255,255,255,.62);font-size:10px;margin-bottom:8px}.footer-grid a,.footer-grid span{font-size:13px;color:rgba(255,255,255,.78)}.footer-bottom{border-top:1px solid var(--dark-line);padding-top:22px;display:flex;justify-content:space-between;font-family:"DM Mono",monospace;text-transform:uppercase;font-size:10px;color:rgba(255,255,255,.62)}.mobile-contact{display:none}.lightbox{width:min(94vw,1200px);height:min(92vh,900px);padding:0;border:0;background:#0b0b0b;overflow:hidden}.lightbox::backdrop{background:rgba(0,0,0,.85)}.lightbox img{width:100%;height:100%;object-fit:contain}.lightbox-close{position:absolute;z-index:2;right:12px;top:12px;background:var(--paper);border:0;padding:10px 12px;font-family:"DM Mono",monospace;font-size:10px;text-transform:uppercase}.page-hero{padding-top:calc(var(--header) + 110px);padding-bottom:95px;border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(3rem,6vw,6.2rem);max-width:1120px}.page-hero>p:last-child{max-width:650px;color:var(--muted);font-size:18px}.service-detail-list{padding:30px 0 120px}.service-detail{display:grid;grid-template-columns:.75fr 1fr .85fr;gap:60px;padding:72px 0;border-bottom:1px solid var(--line);align-items:start}.service-detail>div:first-child span{font-family:"DM Mono",monospace;font-size:10px;color:var(--muted)}.service-detail h2{font-size:clamp(2rem,3.3vw,3.6rem);margin:20px 0 0}.service-detail>div:nth-child(2) p{color:var(--muted);font-size:17px}.service-detail img{width:100%;aspect-ratio:4/3;object-fit:cover}.full-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding-top:60px;padding-bottom:120px}.project-gallery-item{display:block;position:relative;border:0;padding:0;background:#ccc;aspect-ratio:4/3;overflow:hidden;cursor:zoom-in}.project-gallery-item:nth-child(5n+1){grid-row:span 2;aspect-ratio:auto}.project-gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.project-gallery-item:hover img{transform:scale(1.025)}.project-cta{background:var(--yellow);padding:90px 0}.project-cta h2{font-size:clamp(2.5rem,4.7vw,5rem);max-width:850px}.contact-board{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink);margin-bottom:120px}.contact-board a{min-height:170px;padding:24px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;align-content:space-between;transition:background .2s}.contact-board a:nth-child(odd){border-right:1px solid var(--line)}.contact-board a:hover{background:#e4decf}.contact-board small{grid-column:1/-1;font-family:"DM Mono",monospace;text-transform:uppercase;font-size:9px;color:var(--muted)}.contact-board strong{font-size:clamp(1.25rem,2.4vw,2rem);letter-spacing:-.03em;overflow-wrap:anywhere}.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}.js .reveal.is-visible{opacity:1;transform:none}.js .reveal[data-delay="1"]{transition-delay:.12s}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none;transition:none}.project img,.project-gallery-item img{transition:none}}@media(max-width:980px){:root{--header:76px}.shell{width:min(calc(100% - 32px),var(--max))}.site-header{padding-inline:16px}.site-header,.site-header-solid{position:fixed}.brand{min-width:0}.site-nav{display:none;position:absolute;left:12px;right:12px;top:calc(var(--header) - 1px);background:var(--paper);color:var(--ink);padding:20px;flex-direction:column;align-items:stretch;gap:0;border:1px solid var(--line);box-shadow:0 20px 50px rgba(0,0,0,.18)}.site-nav.is-open{display:flex}.site-nav a{padding:15px 4px;border-bottom:1px solid var(--line)}.site-nav .nav-cta{margin-top:10px;text-align:center;border:0}.menu-toggle{display:flex;align-items:center;gap:10px;color:inherit;font-family:"DM Mono",monospace;text-transform:uppercase;font-size:10px}.menu-icon{display:block;width:18px;height:10px;border-top:1px solid currentColor;border-bottom:1px solid currentColor}.hero-grid{grid-template-columns:1fr;padding-top:calc(var(--header) + 70px);gap:45px;min-height:auto}.hero-media{height:520px}.hero{min-height:0}.trust-strip{height:auto;padding:16px 0}.trust-track{grid-template-columns:1fr 1fr;gap:10px}.trust-track span:not(:first-child){text-align:left}.section{padding:95px 0}.section-heading{grid-template-columns:1fr;gap:24px;margin-bottom:50px}.section-heading-inline{grid-template-columns:1fr}.service-row{grid-template-columns:45px 1fr 110px}.service-row p{grid-column:2/-1}.project-grid{grid-template-columns:1fr 1fr;grid-auto-rows:240px}.project-wide{grid-column:auto}.about-grid{grid-template-columns:1fr;gap:55px}.about-image{min-height:560px}.process-grid{grid-template-columns:1fr}.process-grid article,.process-grid article+article{padding:28px 0;border-right:0;border-bottom:1px solid var(--dark-line);min-height:0}.process-grid h3{margin:24px 0 10px}.estimate-grid{grid-template-columns:1fr;gap:55px}.footer-grid{grid-template-columns:1fr 1fr}.service-detail{grid-template-columns:1fr 1fr;gap:35px}.service-detail img{grid-column:1/-1;max-height:520px}.full-gallery{grid-template-columns:1fr 1fr}.project-gallery-item:nth-child(5n+1){grid-row:auto;aspect-ratio:4/3}}@media(max-width:640px){body{padding-bottom:58px}.shell{width:min(calc(100% - 24px),var(--max))}.brand-copy small{display:none}.brand-mark{width:40px;height:40px}.hero-grid{padding-top:calc(var(--header) + 50px);padding-bottom:50px}.eyebrow{margin-bottom:22px}h1{font-size:clamp(3.45rem,17vw,5.25rem)}h2{font-size:clamp(2.6rem,12vw,4rem)}.hero-media{height:420px}.hero-photo-main{inset:0 0 7% 7%}.hero-photo-inset{width:45%}.hero-actions .button{width:100%}.trust-track{grid-template-columns:1fr}.section{padding:76px 0}.service-row{grid-template-columns:34px 1fr}.service-row a{grid-column:2;text-align:left}.service-row p{grid-column:2}.project-grid{grid-template-columns:1fr;grid-auto-rows:330px}.project-large{grid-row:auto}.about-image{min-height:430px}.about-meta{grid-template-columns:1fr}.estimate{padding:76px 0}.estimate-form{grid-template-columns:1fr}.estimate-form label,.estimate-form .field-full,.form-actions,.form-note{grid-column:1}.form-actions .button{width:100%}.footer{padding-top:55px}.footer-grid{grid-template-columns:1fr;gap:32px;padding-bottom:46px}.footer-bottom{flex-direction:column;gap:8px}.mobile-contact{position:fixed;z-index:80;left:0;right:0;bottom:0;height:58px;background:var(--ink);color:#fff;display:grid;grid-template-columns:.7fr .7fr 1.4fr;border-top:1px solid rgba(255,255,255,.2)}.mobile-contact a{display:grid;place-items:center;font-family:"DM Mono",monospace;text-transform:uppercase;font-size:9px;border-right:1px solid rgba(255,255,255,.16)}.mobile-contact a:last-child{background:var(--yellow);color:var(--ink);font-weight:700}.page-hero{padding-top:calc(var(--header) + 75px);padding-bottom:60px}.page-hero h1{font-size:clamp(2.5rem,11.5vw,4rem)}.service-detail{grid-template-columns:1fr;padding:55px 0}.service-detail img{grid-column:1}.full-gallery{grid-template-columns:1fr;padding-top:30px;padding-bottom:75px}.contact-board{grid-template-columns:1fr;margin-bottom:75px}.contact-board a:nth-child(odd){border-right:0}.contact-board a{min-height:140px;padding:18px}.contact-board strong{font-size:1.15rem}}

/* ---- Accessibility ---- */
:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
main :focus-visible,.estimate :focus-visible{outline-color:var(--ink)}
.hero :focus-visible,.process :focus-visible,.footer :focus-visible,.mobile-contact :focus-visible{outline-color:var(--yellow)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- Home hero: H1 states the service + location, the editorial line follows ---- */
.hero h1{font-size:clamp(3.4rem,6.4vw,6.6rem)}
.hero-tagline{font-size:clamp(1.55rem,2.6vw,2.35rem);line-height:1.08;letter-spacing:-.035em;font-weight:430;margin:0 0 26px;max-width:640px}
.hero-tagline em{font-style:normal;color:var(--yellow)}
.hero-photo picture{display:block;width:100%;height:100%}

/* ---- Breadcrumb ---- */
.breadcrumb ol{list-style:none;margin:0 0 34px;padding:0;display:flex;flex-wrap:wrap;gap:6px 10px;font-family:"DM Mono",monospace;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.breadcrumb li+li::before{content:"›";margin-right:10px}
.breadcrumb a{border-bottom:1px solid var(--line)}
.breadcrumb a:hover{border-color:currentColor}
.breadcrumb [aria-current]{color:var(--ink)}

/* ---- Inner page hero with photo ---- */
.page-hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:64px;align-items:end}
.page-hero-grid h1{margin-bottom:26px}
.page-hero .lede{font-size:clamp(1.05rem,1.45vw,1.25rem);color:var(--muted);max-width:640px;margin-bottom:32px}
.page-hero-media{margin:0;position:relative}
.page-hero-media img{width:100%;aspect-ratio:4/5;max-height:680px;object-fit:cover}
.page-hero-media figcaption{position:absolute;left:0;bottom:0;background:var(--yellow);padding:9px 12px;font-family:"DM Mono",monospace;font-size:10px;text-transform:uppercase;letter-spacing:.06em;max-width:85%}
.cta-row{display:flex;flex-wrap:wrap;gap:10px}

/* ---- Editorial content sections ---- */
.content-section{padding:110px 0;border-bottom:1px solid var(--line)}
.content-grid{display:grid;grid-template-columns:minmax(220px,.62fr) minmax(0,1.38fr);gap:72px;align-items:start}
.content-grid>header h2{font-size:clamp(2.1rem,3.6vw,3.7rem);margin:0}
.content-grid>header .eyebrow{margin-bottom:22px}
.prose{max-width:720px}
.prose p,.prose li{font-size:18px;line-height:1.62;color:#3b3934}
.prose p+p{margin-top:0}
.prose h3{font-size:clamp(1.3rem,2vw,1.7rem);letter-spacing:-.03em;line-height:1.1;margin:44px 0 12px}
.prose ul{padding:0;margin:0 0 26px;list-style:none;border-top:1px solid var(--line)}
.prose ul li{padding:12px 0 12px 26px;border-bottom:1px solid var(--line);position:relative}
.prose ul li::before{content:"";position:absolute;left:0;top:23px;width:12px;height:2px;background:var(--yellow)}
.prose a,.text-inline{border-bottom:1px solid currentColor}
.content-dark{background:var(--ink);color:#fff;border-bottom:0}
.content-dark .prose p,.content-dark .prose li{color:rgba(255,255,255,.74)}
.content-dark .eyebrow{color:rgba(255,255,255,.6)}
.content-dark .prose ul,.content-dark .prose ul li{border-color:var(--dark-line)}

/* ---- Process steps ---- */
.steps{list-style:none;margin:0;padding:0;counter-reset:step;border-top:1px solid var(--ink)}
.steps li{counter-increment:step;display:grid;grid-template-columns:64px minmax(180px,.7fr) minmax(0,1.3fr);gap:24px;padding:26px 0;border-bottom:1px solid var(--line)}
.steps li::before{content:counter(step,decimal-leading-zero);font-family:"DM Mono",monospace;font-size:11px;color:var(--muted);padding-top:6px}
.steps h3{margin:0;font-size:clamp(1.2rem,1.9vw,1.55rem);letter-spacing:-.03em;line-height:1.1}
.steps p{margin:0;color:var(--muted);font-size:17px}

/* ---- Photo strip ---- */
.photo-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.photo-strip figure{margin:0}
.photo-strip a{display:block;overflow:hidden;background:#ccc;cursor:zoom-in}
.photo-strip img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform .45s}
.photo-strip a:hover img{transform:scale(1.025)}
.photo-strip figcaption,.gallery-caption{font-size:14px;color:var(--muted);padding-top:10px;line-height:1.4}
.strip-footer{margin-top:34px}

/* ---- FAQ ---- */
.faq{border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:24px;padding:24px 0;font-size:clamp(1.1rem,1.7vw,1.4rem);font-weight:700;letter-spacing:-.02em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:"DM Mono",monospace;font-weight:400;color:var(--muted)}
.faq details[open] summary::after{content:"−"}
.faq details p{margin:0 0 26px;max-width:720px;color:var(--muted);font-size:17px}

/* ---- Related services ---- */
.related .service-row h3 a:hover{border-bottom:1px solid}

/* ---- Service area ---- */
.service-area{background:#dad4c5}
.service-area .content-grid>header h2 em{color:var(--ink);font-weight:430}

/* ---- Service CTA band ---- */
.cta-band{background:var(--yellow);padding:100px 0}
.cta-band-grid{display:grid;grid-template-columns:minmax(0,1.2fr) auto;gap:50px;align-items:end}
.cta-band h2{font-size:clamp(2.4rem,4.4vw,4.6rem);margin:0}
.cta-band h2 em{color:var(--ink);font-weight:430}
.cta-band p{max-width:560px;margin:18px 0 0}
.cta-band .cta-row{justify-content:flex-end}

/* ---- Services overview ---- */
.overview-list{padding-bottom:110px}
.overview-list .service-row h2{font-size:clamp(1.35rem,2.2vw,2rem);line-height:1.05;margin:0;letter-spacing:-.03em}

/* ---- Projects gallery ---- */
.gallery-group{padding:80px 0;border-bottom:1px solid var(--line)}
.gallery-group-head{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end;margin-bottom:36px}
.gallery-group-head h2{font-size:clamp(2.1rem,3.8vw,3.9rem);margin:0}
.gallery-group-head p{color:var(--muted);margin:14px 0 0;max-width:620px}
.project-figures{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 12px}
.project-figures figure{margin:0}
.project-figures .project-gallery-item{aspect-ratio:3/4}

/* ---- Contact ---- */
.nap{font-style:normal;display:grid;gap:4px;margin-top:34px;font-weight:650}
.nap strong{font-size:18px}
.form-privacy{grid-column:1/-1;font-size:13px;margin:0;color:rgba(23,23,23,.75)}
.estimate-form label span small{text-transform:none;letter-spacing:0;font-size:10px;opacity:.75}

@media(max-width:980px){
  .page-hero-grid,.content-grid,.cta-band-grid{grid-template-columns:1fr;gap:40px}
  .page-hero-media img{aspect-ratio:4/3}
  .content-section{padding:85px 0}
  .steps li{grid-template-columns:48px 1fr}
  .steps p{grid-column:2}
  .photo-strip,.project-figures{grid-template-columns:1fr 1fr}
  .cta-band .cta-row{justify-content:flex-start}
  .gallery-group-head{grid-template-columns:1fr}
}
@media(max-width:640px){
  .content-section{padding:64px 0}
  .prose p,.prose li{font-size:17px}
  .steps li{grid-template-columns:36px 1fr;gap:14px}
  .photo-strip,.project-figures{grid-template-columns:1fr}
  .cta-band{padding:70px 0}
  .cta-row .button{width:100%}
  .gallery-group{padding:56px 0}
  .breadcrumb ol{font-size:10px}
}

/* ---- Responsive images inside cropped frames ---- */
picture{display:block}
.project picture,.project-gallery-item picture,.hero-photo picture{height:100%}
.trust-track{list-style:none;padding:0;margin-block:0}
.trust-track li:not(:first-child){text-align:center}
.footer-nap{margin-top:28px;display:flex;flex-direction:column;gap:6px}
.footer-grid .footer-nap strong{font-size:14px;color:#fff}
@media(max-width:980px){.trust-track li:not(:first-child){text-align:left}}
.service-row h2 a,.service-row h3 a{font-family:inherit;font-size:inherit;text-transform:none;text-align:left;letter-spacing:inherit}
.service-row h2 a:hover,.service-row h3 a:hover{border-bottom:1px solid}
.footer-grid>nav{display:flex;flex-direction:column;gap:10px}
.menu-toggle{min-height:44px;padding:0 6px;cursor:pointer}
.text-link{display:inline-block;padding-top:8px}
.service-row>a{padding-block:10px}

/* ---- Accent contrast: yellow text only on dark backgrounds; yellow marker on light ones ---- */
h1 em,h2 em{color:var(--ink);background:linear-gradient(transparent 62%,var(--yellow) 62%,var(--yellow) 90%,transparent 90%);-webkit-box-decoration-break:clone;box-decoration-break:clone}
.hero h1 em,.hero-tagline em,.process h2 em,.content-dark h2 em{color:var(--yellow);background:none}
.estimate h2 em,.cta-band h2 em,.project-cta h2 em{background:none}
.eyebrow span{color:var(--ink);font-weight:500}
.hero .eyebrow span,.process .eyebrow span,.content-dark .eyebrow span{color:var(--yellow)}
.footer-grid .brand-mark{color:#111;font-size:18px}
.footer .brand-copy small{opacity:1;color:rgba(255,255,255,.66)}
.hp-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.estimate-form{position:relative}
.form-note[data-state="success"]{font-size:13px;font-weight:600;color:var(--ink)}
.form-note[data-state="error"]{font-size:13px;font-weight:600;color:#7a1f12}
.button[disabled]{opacity:.6;cursor:progress}

/* ---- CTA hierarchy: tertiary text-style action ---- */
.button-text{min-height:52px;padding:0 6px;background:none;border:0;color:inherit;text-decoration:underline;text-underline-offset:4px;text-transform:none;letter-spacing:0;font-size:14px;font-weight:650}
.hero .button-text,.content-dark .button-text{color:#fff}
.hero-proof{margin:18px 0 0;font-family:"DM Mono",monospace;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}

/* ---- Footer bottom: legal line + website credit ---- */
.footer-bottom{flex-wrap:wrap;gap:10px 30px}
.footer-bottom a{color:rgba(255,255,255,.8);border-bottom:1px solid rgba(255,255,255,.3)}
.footer-credit{text-transform:none;letter-spacing:.02em}

/* ---- Legal pages ---- */
.legal .legal-prose{max-width:760px}
.legal-prose h2{font-size:clamp(1.5rem,2.4vw,2.1rem);letter-spacing:-.03em;line-height:1.1;margin:48px 0 14px}
.legal-prose h2:first-child{margin-top:0}
.legal-prose code{font-family:"DM Mono",monospace;font-size:.85em;background:rgba(23,23,23,.07);padding:1px 5px}
.legal .content-section,.content-section.legal{padding-top:70px}

@media(max-width:640px){
  .button-text{min-height:44px}
  .form-actions .button-text{width:auto}
}

.estimate-grid>*,.content-grid>*,.page-hero-grid>*{min-width:0}
.direct-contact a,.nap a,.legal-prose a,.contact-board strong{overflow-wrap:anywhere}
/* ---- Service landing pages on mobile: real project photo above the fold (title > photo > copy > CTAs) ---- */
@media(max-width:980px){
  .page-hero-grid{display:flex;flex-direction:column;gap:0;align-items:stretch}
  .page-hero-copy{display:contents}
  .page-hero-copy .eyebrow{order:1}
  .page-hero-copy h1{order:2;margin-bottom:18px}
  .page-hero-media{order:3;margin:0 0 22px}
  .page-hero-media img{aspect-ratio:16/9;max-height:240px}
  .page-hero-copy .lede{order:4;margin-bottom:24px}
  .page-hero-copy .cta-row{order:5}
  .page-hero-copy .hero-proof{order:6}
}
@media(max-width:640px){
  .page-hero .cta-row{display:grid;grid-template-columns:1fr auto;gap:10px}
  .page-hero .cta-row .button-primary{grid-column:1/-1}
  .page-hero .cta-row .button-outline-dark{width:100%}
  .page-hero-copy .lede{font-size:1rem}
}

@media(max-width:640px){.page-hero{padding-top:calc(var(--header) + 36px)}.page-hero-media figcaption{display:none}.breadcrumb ol{margin-bottom:22px}}
