/* Pro Build Atelier — warm white, anthracite and natural stone. */
:root { --ink:#292a28; --coal:#292a28; --graphite:#454640; --gold:#454640; --gold-soft:#e9e6df; --paper:#f7f5f0; --muted:#605e57; --line:#d8d4cb; --shadow:none; --success:#bcb7ad; }
body { background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
h1,h2,h3 { font-family:Georgia,'Times New Roman',serif; font-weight:400; }
h1 em,h2 em { font-weight:400; }
a,button,summary { touch-action:manipulation; }
:focus-visible { outline:2px solid #7b786f; outline-offset:5px; }
[id] { scroll-margin-top:105px; }
.site-header { background:rgba(245,243,239,.96); border-bottom:1px solid #d8d4cb; backdrop-filter:blur(12px); }
.nav { width: min(1360px,calc(100% - 5rem)); height:88px; gap:1.2rem; }
.brand-mark { border-color:#605e57; color:var(--ink); }
.brand-text small { color:#605e57; }
.nav-links { gap:1rem; font-size:.875rem; }
.nav-links a { color:#454640; }
.nav-links a:hover,.nav-links a[aria-current=page] { color:#605e57; text-decoration:underline; text-underline-offset:6px; }
.nav-links a.button { color:var(--paper); text-decoration:none; }
.button { background:var(--ink); color:var(--paper); border-color:var(--ink); font-weight:500; padding:1rem 1.3rem; gap:1.6rem; }
.button:hover { background:#454640; color:white; }
.button.secondary,.button.ghost { background:transparent; color:inherit; border-color:currentColor; }
.button.secondary:hover,.button.ghost:hover { background:#e9e6df; color:#292a28; }
.menu-button { color:var(--ink); }
.eyebrow { color:#605e57; font-size:.875rem; letter-spacing:.13em; font-weight:500; }
.section { padding:7rem 0; }
.section-grid { width:min(1240px,calc(100% - 5rem)); }
.section.dark { color:var(--paper); background:var(--coal); }
.section.dark .eyebrow,.section.dark .pill { color:#e9e6df; }
.section-head { grid-template-columns:1fr 2fr; gap:2rem; align-items:start; }
.section-head h2 { margin-bottom:1.5rem; }
.section-head p,.prose,.service-card p,.fact span,.feature span { color:#605e57; }
.section.dark .section-head p { color:#d8d4cb; }
.text-link { color:#454640; font-weight:500; text-decoration:underline; text-underline-offset:6px; }
.section.dark .text-link { color:#e9e6df; }
.service-card { color:var(--ink); background:#f7f5f0; }
.service-card .num { color:#605e57; font-size:.875rem; }
.service-grid,.facts { background:#d8d4cb; border-color:#d8d4cb; }
.atelier-hero { padding:4.5rem 2.5rem 0; max-width:1500px; margin:auto; }
.atelier-heading { display:grid; grid-template-columns:1.3fr .7fr; gap:0 5rem; align-items:end; padding:0 2rem 3.5rem; }
.atelier-heading>.eyebrow { grid-column:1/-1; margin:0 0 1.75rem; }
.atelier-heading h1 { font-size:clamp(4rem,7.2vw,7rem); line-height:.98; letter-spacing:-.065em; margin:0; max-width:900px; }
.atelier-heading h1 em { color:#605e57; }
.hero-intro { padding-bottom:.25rem; max-width:360px; }
.hero-intro p { color:#605e57; margin:0 0 1.75rem; font-size:1rem; line-height:1.8; }
.atelier-image { margin:0; position:relative; }
.atelier-image>img { width:100%; height:clamp(370px,42vw,630px); object-fit:cover; object-position:50% 55%; }
.atelier-image figcaption { display:flex; justify-content:space-between; gap:1rem; font-size:.875rem; padding:1rem 0; color:#605e57; }
.image-label { position:absolute; right:2rem; bottom:5rem; padding:1.4rem 1.7rem; background:#e9e6df; color:#292a28; font:400 clamp(1.5rem,2.3vw,2rem)/1.2 Georgia,serif; min-width:230px; }
.image-label span { float:right; padding-left:2rem; }
.hero-baseline { display:flex; justify-content:space-between; gap:1rem; padding:1.25rem 0 2rem; border-top:1px solid #d8d4cb; font-size:.875rem; }
.wish-section { background:#e9e6df; }
.wish-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid #bcb7ad; border-bottom:1px solid #bcb7ad; }
.wish-option { text-align:left; position:relative; display:flex; flex-direction:column; align-items:start; gap:1.5rem; padding:2rem; border:0; border-right:1px solid #bcb7ad; background:transparent; color:#292a28; cursor:pointer; min-height:230px; transition:background .2s,color .2s; }
.wish-option:last-child { border-right:0; }
.wish-option>span:first-child { font-size:.875rem; }
.wish-option strong { font:400 clamp(1.5rem,2.6vw,2.4rem)/1.12 Georgia,serif; }
.wish-option small { font-size:.94rem; max-width:240px; }
.wish-option[aria-pressed=true] { background:#292a28; color:#f7f5f0; }
.wish-option:hover:not([aria-pressed=true]) { background:#d8d4cb; }
.wish-arrow { position:absolute; right:1.5rem; top:1.5rem; font-size:1.5rem; }
.wish-result { display:flex; align-items:center; justify-content:space-between; gap:3rem; padding:2.5rem 0 0; }
.wish-result>div { max-width:670px; }
.wish-result h3 { font-size:2rem; }
.wish-result p:not(.eyebrow) { color:#605e57; }
.wish-result .button { flex-shrink:0; }
.editorial-grid { display:grid; grid-template-columns:1fr 1.15fr; align-items:center; gap:7rem; }
.editorial-grid h2 { font-size:clamp(3rem,4.7vw,4.7rem); }
.editorial-grid p:not(.eyebrow) { max-width:380px; margin:2rem 0; color:#605e57; }
.editorial-image { margin:0; }
.editorial-image img { height:570px; width:100%; object-fit:cover; object-position:82% center; }
.editorial-image figcaption { font-size:.875rem; color:#605e57; margin-top:1rem; }
.budget-section { background:#292a28; color:#f7f5f0; }
.budget-section .eyebrow { color:#e9e6df; }
.budget-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:6rem; align-items:center; }
.budget-grid h2 { font-size:clamp(3rem,4.7vw,4.7rem); }
.budget-grid p { max-width:550px; color:#d8d4cb; margin:2rem 0; }
.budget-grid .button { background:#e9e6df; color:#292a28; border-color:#e9e6df; }
.budget-note { border-left:1px solid #7b786f; padding:2rem 0 2rem 4rem; }
.budget-note>span { font:400 1.6rem Georgia,serif; }
.budget-note ol { list-style:none; margin:2rem 0; padding:0; }
.budget-note li { padding:1rem 0; border-bottom:1px solid #605e57; }
.budget-note li span { color:#d8d4cb; margin-right:1.25rem; }
.budget-note p { font-size:.9rem; }
.process-rows a { display:grid; grid-template-columns:50px 1fr 1.2fr 25px; gap:1.5rem; padding:2rem 0; border-top:1px solid #d8d4cb; align-items:center; }
.process-rows h3 { font-size:2rem; }
.process-rows p { color:#605e57; margin:0; }
.process-rows a:hover h3 { color:#605e57; }
.cta-band { background:#d8d4cb; color:#292a28; }
.cta-inner { width:min(1240px,calc(100% - 5rem)); padding:5rem 0; }
.cta-inner .eyebrow { margin-top:0; }
.footer { background:#292a28; color:#f7f5f0; }
.footer-grid { width:min(1240px,calc(100% - 5rem)); }
.footer .brand { display:inline-flex; color:#f7f5f0; }
.footer .brand-mark,.footer .brand-text small { color:#e9e6df; border-color:#bcb7ad; }
.footer p,.footer a { color:#d8d4cb; }
.footer h3,.test-badge { color:#e9e6df; font-size:.875rem; }
.footer-note { width:min(1240px,calc(100% - 5rem)); color:#d8d4cb; font-size:.875rem; }
.test-badge::before { display:none; }
.page-hero { background:#e9e6df; color:#292a28; min-height:44vh; border-bottom:1px solid #d8d4cb; }
.page-hero .section-grid { padding:4rem 0; }
.page-hero p:not(.eyebrow),.crumb a { color:#605e57; }
.project-tile,.project-tile:nth-child(2),.project-tile:nth-child(3) { background:#454640; color:#f7f5f0; border-color:#605e57; }
.project-tile small { font-size:.875rem; }
.project-gallery .project-tile { background:#f7f5f0; color:#292a28; border:0; }
.project-gallery .project-tile p,.project-gallery .project-tile small,.project-gallery summary { color:#605e57; }
.project-gallery .text-link { color:#454640; }
.project-gallery details { border-color:#d8d4cb; }
.project-feature figcaption { color:#d8d4cb; }
.section.dark .service-card .text-link { color:#454640; }
.calc-form,.contact-card { background:#f7f5f0; }
.calc-form .eyebrow,.contact-card .eyebrow { color:#605e57; }
.calc-sidebar { background:#292a28; color:#f7f5f0; border-color:#605e57; }
.calc-form .button,.contact-card .button { color:#f7f5f0; }
.notice { background:#454640; color:#e9e6df; border-color:#d8d4cb; font-size:.875rem; }
.summary-list li,.estimate-band,.calc-sub { color:#d8d4cb; }
.choice input:checked+label { border-color:#605e57; box-shadow:inset 0 0 0 1px #605e57; background:#e9e6df; }
.choice input:focus-visible+label { outline:2px solid #605e57; outline-offset:3px; }
.check-row input { accent-color:#605e57; }
.field input,.field select,.field textarea { border-color:#bcb7ad; background:#f7f5f0; }
.step { background:#292a28; }.step .num { color:#e9e6df; }.step p,.contact-aside p { color:#d8d4cb; }
.calc-teaser { color:#f7f5f0; }.price-panel { background:#d8d4cb; }.price-panel small { color:#454640; }
.pill { color:inherit; }
.visual-card { color:white; }
.prose a { text-decoration:underline; text-underline-offset:3px; }
.skip-link { background:#292a28; color:white; }
@media(min-width:1041px) and (max-width:1200px) { .nav { width:calc(100% - 2rem); gap:1rem; }.nav-links { gap:.65rem; font-size:.8rem; }.nav-links .button { padding:.65rem; font-size:.8rem; } }
@media(max-width:1040px) { .nav-links { top:88px; background:#f7f5f0; }.atelier-heading { gap:2rem; padding-left:0; padding-right:0; }.editorial-grid,.budget-grid { gap:3rem; }.budget-note { padding-left:2rem; } }
@media(max-width:760px) { .nav { width:calc(100% - 2rem); height:72px; }.nav-links { top:72px; }.atelier-hero { padding:2.75rem 1rem 0; }.atelier-heading { grid-template-columns:1fr; gap:1.5rem; padding-bottom:2rem; }.atelier-heading>.eyebrow { margin:0; font-size:.75rem; }.atelier-heading h1 { font-size:clamp(3.3rem,12.5vw,5.5rem); }.hero-intro { max-width:100%; }.hero-intro p { margin-bottom:1.25rem; }.atelier-image>img { height:380px; object-position:66% center; }.image-label { right:1rem; bottom:5rem; min-width:190px; padding:1rem; }.atelier-image figcaption { flex-direction:column; gap:.25rem; }.hero-baseline { flex-direction:column; font-size:.8rem; }.section { padding:4rem 0; }.section-grid,.cta-inner,.footer-grid,.footer-note { width:calc(100% - 2rem); }.section-head { grid-template-columns:1fr; gap:1rem; }.wish-options { grid-template-columns:1fr; }.wish-option { min-height:150px; padding:1.5rem; border-right:0; border-bottom:1px solid #bcb7ad; gap:.7rem; }.wish-option strong { font-size:1.8rem; }.wish-option small { max-width:none; }.wish-result { flex-direction:column; align-items:start; gap:1rem; }.editorial-grid,.budget-grid { grid-template-columns:1fr; gap:2.5rem; }.editorial-image img { height:430px; }.budget-note { border-left:0; border-top:1px solid #7b786f; padding:2rem 0 0; }.process-rows a { grid-template-columns:25px 1fr 20px; gap:1rem; }.process-rows p { grid-column:2; }.process-rows a>span:last-child { grid-column:3; grid-row:1; }.process-rows h3 { font-size:1.7rem; }.cta-inner { padding:3rem 0; }.page-hero .section-grid { padding:3rem 0; }.page-hero h1 { font-size:clamp(2.6rem,10vw,4rem); }.calc-summary { padding:1.25rem; }.project-gallery .project-tile { padding:1.5rem; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }

/* Photography leads; copy sits outside the image. */
.atelier-hero { max-width:none; padding:0; display:flex; flex-direction:column; }
.atelier-image { order:-1; width:100%; }
.atelier-image>img { height:calc(100svh - 88px); min-height:480px; max-height:1000px; object-position:center 58%; }
.atelier-image figcaption { width:min(1360px,calc(100% - 5rem)); margin:auto; padding:1.1rem 0; border-bottom:1px solid #d8d4cb; }
.atelier-heading { width:min(1240px,calc(100% - 5rem)); margin:auto; padding:4.5rem 0 3.5rem; }
.atelier-heading h1 em { color:#605e57; }
.hero-baseline { width:min(1240px,calc(100% - 5rem)); margin:auto; }
.editorial-section { padding-bottom:0; }
.editorial-grid { width:100%; display:block; }
.editorial-grid>div { width:min(1240px,calc(100% - 5rem)); margin:0 auto 4rem; display:grid; grid-template-columns:1.2fr .8fr; gap:1rem 5rem; align-items:end; }
.editorial-grid>div>.eyebrow { grid-column:1/-1; }
.editorial-grid>div>h2 { grid-row:2/4; }
.editorial-grid>div>p:not(.eyebrow) { margin:0; max-width:480px; }
.editorial-grid>div>a { margin-top:1rem; }
.editorial-image img { width:100%; height:85svh; min-height:520px; max-height:1050px; object-position:center 58%; }
.editorial-image figcaption { width:min(1240px,calc(100% - 5rem)); margin:0 auto; padding:1.1rem 0 3rem; }
.projects-showcase { padding-top:0; }
.projects-showcase>.section-grid { width:100%; }
.project-feature img { width:100%; height:85svh; min-height:480px; max-height:1050px; object-fit:cover; object-position:center 58%; }
.project-feature figcaption,.project-gallery { width:min(1240px,calc(100% - 5rem)); margin-left:auto; margin-right:auto; }
.project-feature figcaption { padding-top:1rem; }
.service-feature { margin:0; background:#292a28; }
.service-feature img { display:block; width:100%; height:clamp(420px,62svh,760px); object-fit:cover; object-position:center; }
.page-name { display:inline-flex; align-items:center; gap:.75rem; margin:0 0 1.75rem; color:#292a28; font-size:clamp(1.15rem,2vw,1.55rem); font-weight:600; letter-spacing:.02em; }
.page-name::before { content:""; width:2.5rem; height:1px; background:currentColor; opacity:.55; }
.page-name--featured { gap:1rem; font-size:clamp(1.9rem,3.5vw,2.8rem); line-height:1.08; letter-spacing:-.015em; }
.page-name--featured::before { width:3.5rem; }
@media(max-width:760px) {
 .atelier-hero { padding:0; }
 .atelier-image>img { height:72svh; min-height:420px; max-height:760px; object-position:68% center; }
 .atelier-image figcaption,.atelier-heading,.hero-baseline { width:calc(100% - 2rem); }
 .atelier-heading { padding:3rem 0 2.5rem; }
 .editorial-grid>div { width:calc(100% - 2rem); display:block; margin-bottom:2.5rem; }
 .editorial-grid>div>p:not(.eyebrow) { margin:1.5rem 0; }
 .editorial-image img,.project-feature img { height:72svh; min-height:420px; object-position:68% center; }
 .editorial-image figcaption,.project-feature figcaption,.project-gallery { width:calc(100% - 2rem); }
 .service-feature img { height:420px; }
}

/* Keep the live estimate usable at narrow widths, short heights and zoom. */
.calculator-shell > * { min-width:0; }
.calc-sidebar { top:100px; max-height:calc(100vh - 116px); max-height:calc(100dvh - 116px); overflow-y:auto; overflow-x:hidden; scrollbar-gutter:stable; container-type:inline-size; }
.calc-summary { padding:clamp(1rem,2vw,1.5rem); }
.calc-summary .live { font-size:.875rem; }
.calc-total { font-size:clamp(2rem,3.5vw,3.4rem); font-size:clamp(2rem,11cqi,3.4rem); line-height:1.08; margin:.7rem 0; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.estimate-band { flex-wrap:wrap; gap:.3rem .8rem; margin:.7rem 0; line-height:1.5; }
.estimate-band strong { overflow-wrap:anywhere; }
.calc-sub { display:block; font-size:.875rem; }
.summary-list { padding:.75rem 0; margin:1rem 0; }
.summary-list li { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:.35rem .75rem; margin:.4rem 0; line-height:1.45; }
.summary-list li>* { min-width:0; overflow-wrap:anywhere; }
.calc-actions { gap:.5rem; }
.calc-actions .button { width:100%; min-width:0; min-height:44px; padding:.65rem .75rem; font-size:.9rem; line-height:1.4; white-space:normal; overflow-wrap:anywhere; text-align:center; }
.calc-actions .button:not(.secondary):not(.ghost) { background:#e9e6df; border-color:#e9e6df; color:#292a28; }
.calc-actions .button:not(.secondary):not(.ghost):hover { background:#f7f5f0; }
.calc-summary .notice { margin-top:.85rem; padding:.75rem; line-height:1.5; }
.section.dark .calc-form .eyebrow { color:#605e57; }
@media(max-width:900px) {
 .calc-sidebar { position:static; max-height:none; overflow:visible; scrollbar-gutter:auto; }
 .calc-summary { padding:1.25rem; }
 .calc-total { font-size:clamp(2rem,9cqi,3.4rem); }
}
@media(min-width:901px) and (max-height:800px) {
 .calc-summary { padding:1rem; }
 .calc-total { font-size:clamp(2rem,9cqi,2.75rem); margin:.5rem 0; }
 .summary-list { margin:.75rem 0; padding:.5rem 0; }
 .calc-summary .notice { font-size:.875rem; }
}
.form-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.delivery-status { color:#605e57; font-size:.875rem; }
.button:disabled { opacity:.65; cursor:wait; }
[aria-invalid=true] { border-color:#9d3326!important; }
.field input[type=checkbox] { width:1.2rem; min-height:1.2rem; height:1.2rem; flex:0 0 1.2rem; padding:0; }
.field input,.field select,.field textarea { font-size:1rem; }
.nav-links a { min-height:44px; display:inline-flex; align-items:center; }
.nav-links .button { justify-content:center; }
.faq details { border-top:1px solid #bcb7ad; padding:1.25rem 0; }
.faq summary { font-size:1.1rem; cursor:pointer; color:#292a28; }
.faq details p { max-width:760px; color:#605e57; }
@media(max-width:1040px) { .nav-links { max-height:calc(100dvh - 88px); overflow-y:auto; }.nav-links a { display:flex; } }
@media(max-width:760px) { .nav-links { max-height:calc(100dvh - 72px); } }

/* Preserve reflow with enlarged text and narrow screens. */
fieldset,.field,.fields,.choice-grid,.quote-panel { min-width:0; }
h1,h2,h3,legend,.button { overflow-wrap:anywhere; }
@container (max-width:24em) {
 .summary-list li { grid-template-columns:1fr; gap:.1rem; }
 .summary-list strong { text-align:left; }
}
@media(max-width:760px) {
 .calc-form { padding:clamp(16px,4vw,24px); }
 .calc-summary { padding:16px; }
 .brand { min-width:0; gap:10px; }
 .brand-text { font-size:clamp(12px,3.2vw,16px); }
 .brand-mark { flex-shrink:0; font-size:20px; }
 .menu-toggle { flex-shrink:0; }
}

.facts { grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr)); }
.footer-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr)); }
.fact,.footer-grid>*,.feature,.step { min-width:0; overflow-wrap:anywhere; }
.fact { padding:clamp(16px,3vw,1.6rem); }
.nav { container-type:inline-size; }
@container (max-width:65em) {
 .nav-links { display:none; position:absolute; top:100%; left:0; right:0; padding:1rem; background:#f7f5f0; flex-direction:column; align-items:stretch; max-height:calc(100dvh - 100px); overflow-y:auto; }
 .nav-links.open { display:flex; }
 .nav-links a { display:flex; }
 .menu-button { display:block; flex-shrink:0; }
}
.mobile-contact[hidden]{display:none!important}.mobile-contact{position:fixed;bottom:0;left:0;right:0;z-index:40;background:#f7f5f0;border-top:1px solid #bcb7ad;padding:10px 16px calc(10px + env(safe-area-inset-bottom));}.mobile-contact .button{display:flex;width:100%;justify-content:center;min-height:48px;font-size:1rem}.has-mobile-contact{padding-bottom:calc(78px + env(safe-area-inset-bottom))}.upload-status{font-size:.875rem;color:#605e57}.field input[type=file]{max-width:100%;padding:.75rem 0;border:0;white-space:normal}.field input[type=file]::file-selector-button{font:inherit;padding:.5rem;margin-right:.5rem;background:#e9e6df;border:1px solid #777;color:#292a28}
