/* BAS’ART · shared visual system, desktop / tablet / phone */
:root {
  --ink:#292a24; --muted:#505449; --gold:#705027; --gold-light:#c6a46b;
  --paper:#f5f3ec; --line:#d8d6ca; --serif:Georgia,'Times New Roman',serif;
  --sans:'DM Sans',Arial,sans-serif; --display:'Manrope',Arial,sans-serif;
  --gutter:clamp(24px,4.5vw,72px); --header-height:92px; --ease:cubic-bezier(.2,.7,.2,1);
}
* {box-sizing:border-box}
html {scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 24px)}
body {margin:0;color:var(--ink);background:var(--paper);font:16px/1.7 var(--sans);-webkit-font-smoothing:antialiased;isolation:isolate}
a {color:inherit;text-decoration:none}button,input,textarea {font:inherit}
button {color:inherit;cursor:pointer;border:0;background:none}button,a {-webkit-tap-highlight-color:transparent;touch-action:manipulation}
img,svg {display:block}img {max-width:100%}h1,h2,h3,p,figure {margin:0}ul,ol {margin:0;padding:0}
h1,h2,h3 {font-family:var(--display);font-weight:600;line-height:1.15;letter-spacing:-.045em;text-wrap:balance}
h2 {font-size:clamp(34px,3.6vw,52px)}h2 em {font-family:var(--serif);font-weight:400;letter-spacing:-.04em}
::selection {background:#ddc69c;color:#20221e}
:where(a,button,summary,input,textarea):focus-visible {outline:2px solid var(--gold);outline-offset:5px}
:where(input,textarea):focus-visible {outline-offset:3px}
[hidden] {display:none!important}
.wrap {width:min(1240px,calc(100% - var(--gutter)*2));margin-inline:auto}
.section {padding-block:clamp(72px,8vw,114px)}
.eyebrow {font-size:11px;line-height:1.6;font-weight:600;letter-spacing:.13em;text-transform:uppercase}
.section-label {color:var(--gold);margin-bottom:24px}
.icon {width:22px;height:22px;flex:0 0 auto;overflow:visible;pointer-events:none}
.icon path {vector-effect:non-scaling-stroke}
.skip-link {position:fixed;z-index:100;top:10px;left:10px;padding:14px;background:var(--ink);color:white;transform:translateY(-160%)}
.skip-link:focus {transform:none}
.scroll-progress {position:fixed;z-index:101;inset:0 0 auto;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;pointer-events:none}

/* One continuous wall. Relief and finish change with the reading journey. */
.wall-surface {position:fixed;inset:0;height:100vh;height:100lvh;z-index:-1;pointer-events:none;overflow:hidden;contain:strict;background:#eeece4}
.wall-pass {position:absolute;inset:0;opacity:0;contain:paint;background-repeat:repeat;background-size:780px 780px}.wall-plaster {opacity:1;background-color:#eeece4;background-image:url('assets/wall-crepi.webp')}.wall-mineral {background-color:#e1d7c5;background-image:url('assets/wall-enduit.webp')}.wall-matte {background-color:#e5e9df;background-image:url('assets/wall-mat.webp')}
.wall-plaster:after {content:'';position:absolute;inset:0;background:#f5f3ec99}
.wall-daylight {position:absolute;inset:-24px;z-index:3;background:linear-gradient(115deg,#fff9 0%,#fff0 50%),radial-gradient(ellipse at 100% 80%,#8e79510a,transparent 70%);opacity:.4}
.material-story {display:flex;align-items:center;gap:10px;letter-spacing:.025em}
.material-story i {width:24px;height:24px;border-radius:50%;background:#b2a58d url('assets/wall-grain.svg');box-shadow:inset 1px 1px 2px #fff8,inset -1px -1px 3px #463b2540}

/* Navigation and directional icons */
.site-header {height:var(--header-height);position:sticky;top:0;z-index:40;background:#fffef9f5;border-bottom:1px solid #deddd080;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.header-inner {height:100%;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand {width:188px;display:block;flex-shrink:0}.brand img {width:100%;height:auto;mix-blend-mode:multiply}
.desktop-nav {display:flex;align-items:center;gap:28px;font-size:13px;font-weight:500}
.desktop-nav a {position:relative;padding-block:12px}
.desktop-nav a:after {content:'';position:absolute;left:0;right:0;bottom:7px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.desktop-nav a:hover:after,.desktop-nav a[aria-current="location"]:after {transform:scaleX(1)}
.header-cta {display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:48px;padding:12px 17px;border:1px solid var(--ink);font-size:12px;font-weight:600;transition:background .2s,color .2s}
.header-cta .icon {width:18px;height:18px}.header-cta:hover {background:var(--ink);color:white}
.menu-button,.mobile-nav {display:none}
.button {display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:56px;padding:17px 22px;font-size:14px;font-weight:600;line-height:1.4;transition:background .25s,box-shadow .25s}
.button-dark {background:var(--ink);color:#fffef9}.button-dark:hover {background:#44463b;box-shadow:0 5px 16px #282b2414}
:where(.button,.header-cta,.text-link,.round-link,.footer-top>a,.mobile-contact>a) .icon-arrow-right {transition:transform .3s var(--ease)}
@media(hover:hover) {
 :where(.button,.header-cta,.text-link,.round-link,.footer-top>a,.mobile-contact>a):hover .icon-arrow-right {transform:translateX(3px)}
 :where(.contact-phone,.contact-email):hover {color:var(--gold)}
}
.text-link {display:inline-flex;align-items:center;justify-content:space-between;gap:20px;max-width:100%;min-height:44px;border-bottom:1px solid var(--gold-light);padding-bottom:8px;font-size:14px;font-weight:500;line-height:1.5}
.text-link:hover {color:var(--gold)}.text-link .icon {width:20px;height:20px}

/* Intro: tactile samples with no cropped edges at any breakpoint */
.hero {position:relative;overflow:clip;isolation:isolate;background:transparent}
.hero-grid {display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(32px,4vw,64px);align-items:center;min-height:680px;padding-block:58px 42px}
.hero-copy {min-width:0;padding-bottom:12px;position:relative;z-index:2}
.hero-copy .eyebrow {display:flex;align-items:center;gap:8px;margin-bottom:28px;font-size:11px;letter-spacing:.08em}
.hero-copy .eyebrow .icon {width:17px;height:17px;color:var(--gold)}
h1 {font-size:clamp(58px,6.1vw,84px);line-height:1.09;letter-spacing:-.055em;font-weight:550}
h1>span {font-family:var(--serif);font-weight:400;font-style:italic;color:var(--gold);letter-spacing:-.05em;margin-left:.025em}
.hero-lead {font-size:16px;line-height:1.8;color:var(--muted);max-width:445px;margin-top:28px}
.hero-actions {display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:32px}
.hero-actions .button {font-size:13px;padding-inline:20px;gap:20px}
.phone-link {display:flex;align-items:center;gap:10px;min-height:44px;font-size:15px;line-height:1.35;font-weight:600}
.phone-link svg {width:21px;height:21px;flex-shrink:0}.phone-link small {display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:4px}
.hero-local {display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;margin-top:25px;line-height:1.6}
.hero-local>span {width:5px;height:5px;border-radius:50%;background:var(--gold);flex-shrink:0}
.material-stage {min-width:0;width:100%;max-width:580px;justify-self:end}
.stage-caption {display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding-inline:4px}
.scene {position:relative;width:100%;aspect-ratio:1.18;perspective:1400px;touch-action:pan-y}
.ground-shadow {position:absolute;left:18%;right:13%;bottom:9%;height:11%;border-radius:50%;background:#4c4839;filter:blur(23px);opacity:.14;transform:rotate(-3deg);pointer-events:none}
.sample-stack {position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(var(--rx,4deg)) rotateY(var(--ry,-6deg));will-change:transform}
.sample {position:absolute;top:47%;left:46%;width:54%;aspect-ratio:4/5;border-radius:2px;background:#d1c6b3 url('assets/grain.svg');border:1px solid #ffffff70;overflow:hidden;backface-visibility:hidden;box-shadow:1px 1px 0 #e4ded2,2px 2px 0 #b2a995,3px 3px 0 #b2a995,4px 4px 0 #ada390,10px 14px 24px #38332914,24px 28px 44px #38332912}
.sample:after {content:'';position:absolute;inset:0;box-shadow:inset 1px 1px 1px #fff6,inset -1px -1px 2px #4b40261a;pointer-events:none}
.sample-back {left:39%;top:48%;background-color:#42483e;transform:translate3d(-50%,-50%,-34px) rotate(-14deg)}
.sample-middle {left:62%;top:51%;background-color:#b78368;transform:translate3d(-50%,-50%,0) rotate(11deg)}
.sample-front {transform:translate3d(-50%,-50%,40px) rotate(-5deg)}
.texture-canvas {display:block;width:100%;height:100%;object-fit:cover}
.sample-light {position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at var(--lx,25%) var(--ly,20%),#fff9,transparent 65%),linear-gradient(125deg,#fff3,transparent 45%,#2c291c1a);mix-blend-mode:soft-light;opacity:.5}
.material-controls {border-top:1px solid #aaa58e55;padding-top:17px}
.material-name {display:flex;align-items:baseline;justify-content:space-between;gap:16px;min-height:29px}
.material-name small {font-size:11px;color:var(--muted)}.material-name strong {font:600 18px/1.4 var(--display);letter-spacing:-.025em;text-align:right}
.swatches {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:15px}
.swatch {display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:9px 7px;border:1px solid #c9c5b6;background:#f7f5ef50;font-size:12px;font-weight:500;line-height:1.3;transition:background .2s,border-color .2s,box-shadow .2s}
.swatch[aria-pressed="true"] {border-color:#927441;background:#fffdf3b3;box-shadow:inset 0 -2px 0 #a98b54}
.swatch:hover {background:#fffdf3b3;border-color:#a39578}
.swatch-color {width:22px;height:22px;border-radius:50%;flex-shrink:0;background-image:url('assets/grain.svg');border:1px solid #0000000d;box-shadow:inset 1px 1px 2px #0001}
.mineral .swatch-color {background-color:#c8bda5}.clay .swatch-color {background-color:#b78368}.plaster .swatch-color {background-color:#dad8cc}
.sample-note {font-size:11px;color:var(--muted);text-align:right;margin-top:11px}
.hero-bottom {border-top:1px solid #c8c5b755;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:65px;font-size:11px;color:var(--muted)}
.hero-bottom a {display:flex;align-items:center;gap:16px;min-height:44px}.hero-bottom .icon {width:18px;height:18px}

/* Services and the painter's materials */
.expertise {background:transparent;border-top:1px solid #9689731a}
.section-heading {display:grid;grid-template-columns:1.3fr 1fr;align-items:end;gap:60px;margin-bottom:52px}
.section-heading>p {max-width:350px;justify-self:end;color:var(--muted);font-size:15px;line-height:1.85}
.expertise-grid {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:stretch}
.ambience {position:relative;overflow:hidden;min-height:490px;background:#d5c8b2;isolation:isolate}
.ambience>img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.ambience:after {content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#29251fb3);pointer-events:none}
.ambience figcaption {position:absolute;z-index:1;left:30px;right:24px;bottom:28px;color:white}
.ambience figcaption>span {display:block;font:italic 32px/1.2 var(--serif);letter-spacing:-.025em}
.ambience figcaption small {display:block;font-size:10px;margin-top:16px;opacity:.9;line-height:1.6}
.service {border-top:1px solid var(--line)}.service:last-child {border-bottom:1px solid var(--line)}
summary {list-style:none;cursor:pointer}summary::-webkit-details-marker {display:none}
.service summary {display:flex;align-items:center;gap:18px;min-height:88px;padding:25px 0}
.service-number {font-size:11px;color:var(--gold);min-width:20px}.service h3 {font-size:29px;font-weight:550}
.disclosure-icon {display:grid;place-items:center;width:28px;height:28px;flex-shrink:0;margin-left:auto}
.disclosure-icon .icon {width:18px;height:18px;transition:transform .25s var(--ease)}
details[open] .disclosure-icon .icon {transform:rotate(45deg)}
.service-content {padding:0 0 30px 38px;animation:content-in .28s var(--ease)}
.service-content p {font-size:15px;line-height:1.85;color:var(--muted)}
.service-content ul {display:flex;flex-wrap:wrap;gap:6px 18px;list-style:none;font-size:12px;color:var(--muted);margin:20px 0}
.service-content li:before {content:'·';color:var(--gold);padding-right:6px}
.texture-band {position:relative;isolation:isolate;overflow:hidden;background:#3b4035;color:#fffdf7;padding:76px 0}
.band-canvas {position:absolute;inset:0;z-index:-2;opacity:.5}
.texture-band:after {content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,#22271fb3,transparent)}
.texture-band-inner {display:grid;grid-template-columns:1fr 2.7fr 64px;align-items:center;gap:36px}
.texture-band .eyebrow {font-size:11px;font-weight:400;color:#ddd3bf;line-height:1.9}
.texture-band h2 {font-size:clamp(30px,3.2vw,46px);font-weight:400;line-height:1.3}.texture-band h2 em {color:#d6bb8d}
.round-link {width:64px;height:64px;border:1px solid #e4d0a980;border-radius:50%;display:grid;place-items:center;transition:background .25s}
.round-link .icon {width:24px;height:24px}.round-link:hover {background:#cbb68025}

/* Method and local presence */
.process-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;list-style:none;margin-top:56px}
.process-grid li {position:relative;border-top:1px solid var(--line);padding-top:24px}
.process-grid li:before {content:'';position:absolute;top:-1px;left:0;width:38px;height:1px;background:var(--gold)}
.step-number {font-size:12px;color:var(--gold)}.process-grid h3 {font-size:25px;margin:23px 0 18px}
.process-grid p {font-size:14px;line-height:1.85;color:var(--muted);max-width:320px}
.local-section {background:#c5c7b30d;overflow:hidden;border-block:1px solid #8b8c751c}.local-grid {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:72px;padding-block:88px}
.local-art {position:relative;height:380px;overflow:hidden;background-image:url('assets/grain.svg');-webkit-mask-image:linear-gradient(90deg,transparent,#000 15%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 15%,#000 90%,transparent)}
.map-orbit {position:absolute;left:48%;top:53%;border:1px solid #a6a38c40;border-radius:50%;transform:translate(-50%,-50%)}
.orbit-1 {width:42%;aspect-ratio:1}.orbit-2 {width:70%;aspect-ratio:1}.orbit-3 {width:98%;aspect-ratio:1}
.landscape {position:absolute;width:100%;height:100%;stroke:#9c9984;stroke-width:.8;opacity:.8}
.local-dot {position:absolute;left:44%;top:49%;display:flex;align-items:flex-start;gap:15px}
.local-dot i {width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 7px #b6945826;flex-shrink:0;margin-top:6px}
.local-dot>span {font-size:13px;font-weight:600;white-space:nowrap}.local-dot small {display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:3px}
.local-art-caption {position:absolute;bottom:25px;left:20%;font-size:11px;color:var(--muted)}
.local-copy>p:not(.eyebrow) {font-size:15px;line-height:1.85;color:var(--muted);margin-top:24px;max-width:440px}
.local-copy .local-towns {font-size:13px!important;color:#645237!important;margin-top:20px!important}
.local-copy .text-link {margin-top:24px}

/* Contact: comfortable text sizes and touch targets */
.contact {background:transparent}.contact-grid {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:76px;align-items:start}
.contact-copy>p:not(.eyebrow) {font-size:15px;line-height:1.85;color:var(--muted);max-width:390px;margin-top:24px}
.person {display:flex;align-items:center;gap:16px;margin-top:32px}.person-line {width:28px;height:1px;background:var(--gold)}
.person strong {display:block;font-size:15px;font-weight:600}.person div>span {display:block;font-size:12px;color:var(--muted);margin-top:2px}
.contact-phone {display:flex;align-items:center;justify-content:space-between;gap:22px;font:550 clamp(28px,2.8vw,36px)/1.4 var(--display);letter-spacing:-.045em;max-width:350px;min-height:54px;margin-top:28px}
.contact-phone .icon,.contact-email .icon {color:var(--gold);width:22px;height:22px}
.contact-email {display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:350px;min-height:50px;font-size:18px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-top:8px}
.contact-copy .contact-hint {font-size:12px!important;max-width:350px;margin-top:18px!important}
.quote-panel {padding:36px;background:#fffef5b8;border:1px solid #d4cfc0;min-width:0;box-shadow:0 10px 32px #40392305}
.quote-panel h3 {font-size:27px;line-height:1.3}.form-intro {font-size:14px;color:var(--muted);margin-top:9px}
.quote-panel fieldset {border:0;padding:0;margin:28px 0 25px}
.quote-panel legend,.field>label {display:block;font-size:13px;font-weight:500;margin-bottom:10px}.field>label>span {font-size:11px;color:var(--muted);font-weight:400}
.project-options {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.project-options label {position:relative;cursor:pointer}.project-options input {position:absolute;opacity:0;width:1px;height:1px}
.project-options span {display:grid;place-items:center;text-align:center;min-height:46px;padding:10px 5px;border:1px solid #cbc8bc;font-size:12px;line-height:1.3;transition:background .2s,border-color .2s}
.project-options input:checked+span {background:#e8dfce;border-color:#9e7c42;color:#654a24}.project-options input:focus-visible+span {outline:2px solid var(--gold);outline-offset:3px}
.field-row {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.field {min-width:0;margin-bottom:24px}
.field input,.field textarea {width:100%;border:0;border-bottom:1px solid #c3c1b4;border-radius:0;background:transparent;padding:10px 0 12px;font-size:16px;color:var(--ink);line-height:1.6}
.field input::placeholder,.field textarea::placeholder {color:#64675b;font-size:14px}.field textarea {min-height:120px;resize:vertical}
.form-submit {width:100%;font-size:14px}.form-submit:disabled {opacity:.55;cursor:not-allowed}.form-note {font-size:12px;color:var(--muted);line-height:1.8;margin-top:16px}
.email-ready {margin-top:24px;padding-top:24px;border-top:1px solid var(--line);font-size:14px}.email-ready p {margin-top:8px;color:var(--muted)}
.email-ready p a {text-decoration:underline;text-underline-offset:4px}
.message-copy {width:100%;min-height:220px;font:14px/1.8 var(--sans);background:#fffef9;color:var(--ink);padding:14px;border:1px solid var(--line);border-radius:0;margin-top:16px;resize:vertical}
.ready-actions {display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;font-size:12px}.ready-actions button,.ready-actions a {display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 12px;border:1px solid #c6bb9f}
.ready-actions .icon {width:16px;height:16px}
.faq {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:65px;padding-block:0 100px}
.faq>h2 {font-size:28px;margin-top:20px}.faq-list details {border-bottom:1px solid var(--line)}
.faq-list summary {display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:74px;padding:20px 0;font-size:15px;font-weight:500;line-height:1.6}
.faq-list p {font-size:14px;line-height:1.85;color:var(--muted);padding:0 35px 25px 0}

/* Footer, phone actions and modal */
.site-footer {border-top:1px solid #b8b29f66;padding-top:46px;background:#eeece34d}
.footer-top {display:grid;grid-template-columns:190px 1fr 1.15fr;gap:42px;align-items:center;padding-bottom:42px}.footer-brand {width:180px}
.footer-top>p {font:italic 24px/1.3 var(--serif);letter-spacing:-.025em}.footer-top>a:last-child {display:flex;align-items:center;gap:18px;font-size:12px;justify-self:end;line-height:1.6}.footer-top>a:last-child .icon {color:var(--gold)}
.footer-bottom {border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:24px;padding-block:20px;color:#66695c;font-size:11px;line-height:1.6}
.footer-bottom>div {display:flex;gap:28px;align-items:center}.footer-bottom a {display:flex;align-items:center;gap:10px;min-height:44px;white-space:nowrap}.footer-bottom .icon {width:16px;height:16px}
.site-credit {margin:0;border-top:1px solid var(--line);padding:8px 0 14px;text-align:right;font-size:11px;line-height:1.6;color:#565b50}
.site-credit a {display:inline-flex;align-items:center;gap:.35em;min-height:44px;text-underline-offset:4px}
.site-credit a:hover,.site-credit a:focus-visible {text-decoration:underline}
.site-credit strong {font-weight:600}
@media(max-width:600px) {.site-credit {text-align:left}}
.legal-toggle {font-size:11px;color:inherit;padding:8px 0;min-height:44px;text-align:left}.mobile-contact {display:none}
dialog {border:1px solid var(--line);padding:34px;max-width:630px;width:calc(100% - 36px);max-height:85svh;background:var(--paper);color:var(--ink);box-shadow:0 25px 100px #0004}
dialog::backdrop {background:#29271dad;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.dialog-heading {display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.dialog-heading h2 {font-size:27px;line-height:1.3}
.close-dialog {display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;margin-top:-7px;margin-right:-10px}.close-dialog .icon {width:22px;height:22px}
dialog h3 {font-size:17px;letter-spacing:-.02em;margin:25px 0 10px}dialog p {font-size:14px;line-height:1.85;color:var(--muted)}dialog p a {text-decoration:underline;text-underline-offset:3px}
.reveal {opacity:1;transform:none;transition:opacity .6s var(--ease),transform .6s var(--ease)}.reveal.is-pending {opacity:.75;transform:translateY(15px)}
@keyframes content-in {from{opacity:.55;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* Tablet: dedicated spacing, no miniaturised desktop text. */
@media (max-width:1100px) {
 :root {--gutter:40px;--header-height:84px}
 .header-inner {gap:22px}.brand {width:170px}.desktop-nav {gap:20px;font-size:12px}.header-cta {font-size:11px;gap:14px}
 .hero-grid {min-height:630px;gap:30px;padding-block:52px 36px}h1 {font-size:clamp(52px,6.1vw,68px)}
 .hero-copy .eyebrow {font-size:11px;letter-spacing:.05em}.hero-lead {font-size:15px}.hero-actions {gap:16px}
 .hero-actions .button {font-size:13px;gap:18px}.phone-link {font-size:14px}.hero-local {font-size:10px}
 .material-name {display:block;min-height:55px}.material-name strong {display:block;text-align:left;margin-top:3px;font-size:18px}.swatches {gap:7px}.swatch {gap:7px;font-size:12px}.swatch-color {width:20px;height:20px}
 .section-heading {gap:40px}.expertise-grid {gap:36px}.service h3 {font-size:27px}.service summary {gap:12px}.service-content {padding-left:32px}.ambience {min-height:500px}
 .texture-band-inner {grid-template-columns:1fr 2.8fr 56px;gap:28px}.round-link {width:56px;height:56px}
 .process-grid {gap:30px}.local-grid {gap:40px}.local-dot {left:34%}
 .contact-grid {gap:40px;grid-template-columns:1fr 1.15fr}.quote-panel {padding:28px}.field-row {grid-template-columns:1fr;gap:0}
 .faq {gap:35px}.footer-top {gap:28px;grid-template-columns:170px 1fr 1fr}
}
@media (max-width:960px) {
 .desktop-nav {display:none}.header-cta {margin-left:auto;font-size:12px}
 .menu-button {display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:44px;height:44px;padding:10px;flex-shrink:0}
 .menu-button span {display:block;width:21px;height:1.5px;background:var(--ink);transition:transform .25s var(--ease)}
 .menu-button[aria-expanded="true"] span:first-child {transform:translateY(3.75px) rotate(45deg)}.menu-button[aria-expanded="true"] span:last-child {transform:translateY(-3.75px) rotate(-45deg)}
 .mobile-nav:not([hidden]) {display:flex;flex-direction:column;position:absolute;inset:var(--header-height) 0 auto;padding:14px var(--gutter) 22px;max-height:calc(100dvh - var(--header-height) - 75px);overflow-y:auto;overscroll-behavior:contain;background:#fffef9;border-bottom:1px solid var(--line);box-shadow:0 20px 35px #24251b0d}
 .mobile-nav a {display:block;padding:15px 0;border-bottom:1px solid #e4e1d7;font-size:15px}.mobile-nav a:last-child {border:0;color:var(--gold)}
 .hero-grid {gap:26px}.hero-copy .eyebrow {align-items:flex-start;max-width:270px;line-height:1.7}.hero-copy .eyebrow .icon {margin-top:1px}
 .hero-lead {font-size:15px;margin-top:23px}.hero-actions {margin-top:25px}.hero-actions .button {width:100%;max-width:300px}
 .stage-caption {font-size:9px;letter-spacing:.07em}.scene {aspect-ratio:1.04}.sample {width:57%}.sample-back {left:37%}.sample-middle {left:61%}.sample-front {left:45%}
 .sample-note {font-size:10px;line-height:1.7}.section-heading {grid-template-columns:1.2fr 1fr;gap:30px}.section-heading>p {font-size:15px}
 .expertise-grid {gap:32px}.service-content {padding-left:0}.service-content ul {font-size:12px}.ambience figcaption {left:24px;bottom:25px}.ambience figcaption>span {font-size:29px}
 .texture-band-inner {grid-template-columns:1fr 56px}.texture-band .eyebrow {grid-column:1/-1}.texture-band h2 {font-size:38px}
 .process-grid h3 {font-size:23px}.process-grid p {font-size:14px}.local-art {height:340px}.local-copy .text-link {font-size:13px}
 .contact-grid {grid-template-columns:1fr;gap:38px}.contact-copy {max-width:650px}.contact-copy>p:not(.eyebrow) {max-width:540px}.contact-copy .contact-hint {display:none}
 .quote-panel {padding:36px}.field-row {grid-template-columns:1fr 1fr;gap:24px}.project-options span {font-size:14px}
 .faq {grid-template-columns:1fr;gap:20px}.faq>h2 {margin-top:0}.footer-top {grid-template-columns:1fr 1fr}.footer-top>a:last-child {grid-column:2;justify-self:start}.footer-top>p {justify-self:start}
 .footer-bottom {font-size:10px;gap:15px}.footer-bottom>div {gap:16px}
}

/* Phone: larger controls, balanced sample composition, no horizontal overflow. */
@media (max-width:700px) {
 :root {--gutter:24px;--header-height:78px}
 h2 {font-size:clamp(32px,7.8vw,42px);line-height:1.18}.section {padding-block:68px}.section-label {font-size:10px;margin-bottom:18px}
 .brand {width:170px}.header-cta {display:none}.menu-button {margin-left:auto}
 .hero-grid {grid-template-columns:1fr;gap:34px;padding-block:35px 28px;min-height:0}.hero-copy {padding:0}.hero-copy .eyebrow {font-size:11px;max-width:none;gap:7px;margin-bottom:22px;letter-spacing:.04em}
 h1 {font-size:clamp(46px,12vw,64px);line-height:1.08;letter-spacing:-.052em}.hero-lead {font-size:15px;line-height:1.8;margin-top:23px;max-width:480px}
 .hero-actions {display:grid;grid-template-columns:1fr;gap:14px;margin-top:25px}.hero-actions .button {font-size:14px;max-width:none;min-height:54px;padding:15px 19px}
 .phone-link {font-size:15px;min-height:46px}.phone-link small {font-size:11px}.hero-local {font-size:11px;margin-top:18px}
 .material-stage {width:100%;max-width:480px;justify-self:center}.stage-caption {font-size:10px;letter-spacing:.08em}.scene {aspect-ratio:1.17;margin-top:10px}
 .sample {width:53%}.sample-back {left:39%;top:48%}.sample-middle {left:61%;top:51%}.sample-front {left:45%;top:47%}
 .ground-shadow {filter:blur(18px)}.material-name {display:flex;min-height:26px;gap:15px}.material-name strong {font-size:17px;margin:0;text-align:right}.material-name small {font-size:10px}
 .swatches {gap:8px;margin-top:14px}.swatch {font-size:12px;gap:8px;min-height:48px}.swatch-color {width:21px;height:21px}.sample-note {font-size:10px;margin-top:12px}
 .hero-bottom {min-height:66px;font-size:10px;gap:20px}.hero-bottom>span {max-width:160px}.hero-bottom a {gap:10px}.hero-bottom .icon {width:17px;height:17px}
 .section-heading {grid-template-columns:1fr;gap:22px;margin-bottom:32px}.section-heading>p {max-width:480px;justify-self:start;font-size:15px}
 .expertise-grid {grid-template-columns:1fr;gap:30px}.ambience {min-height:0;height:auto;aspect-ratio:1.08}.ambience figcaption {left:24px;bottom:24px}.ambience figcaption>span {font-size:31px}.ambience figcaption small {font-size:10px}
 .service summary {min-height:82px;padding-block:23px}.service h3 {font-size:28px}.service-content {padding:0 0 27px 0}.service-content p {font-size:15px}.service-content ul {font-size:12px}.text-link {font-size:14px}
 .texture-band {padding-block:48px 54px}.texture-band-inner {grid-template-columns:minmax(0,1fr) 48px;gap:25px 18px}.texture-band .eyebrow {font-size:10px;line-height:1.7}.texture-band h2 {font-size:clamp(27px,6.3vw,36px)}.round-link {width:48px;height:48px}.round-link .icon {width:22px;height:22px}
 .process-grid {grid-template-columns:1fr;gap:28px;margin-top:36px}.process-grid li {padding:25px 0 0 43px}.step-number {position:absolute;top:29px;left:0}.process-grid h3 {font-size:25px;margin:0 0 13px}.process-grid p {font-size:15px;max-width:none}
 .local-grid {display:flex;flex-direction:column-reverse;gap:20px;align-items:stretch;padding-block:60px 25px}.local-copy>p:not(.eyebrow) {font-size:15px}.local-copy .local-towns {font-size:13px!important}.local-copy .text-link {font-size:14px}
 .local-art {height:255px;width:100%;max-width:470px;margin-inline:auto}.local-dot {left:39%;top:46%;gap:12px}.local-dot>span {font-size:12px}.local-dot small {font-size:10px}.local-art-caption {bottom:12px;left:20%;font-size:11px}
 .contact-grid {gap:34px}.contact-copy>p:not(.eyebrow) {font-size:15px}.person {margin-top:27px}.contact-phone {font-size:32px;margin-top:24px;max-width:none}.contact-email {font-size:18px;max-width:none}
 .quote-panel {padding:26px 22px}.quote-panel h3 {font-size:25px}.form-intro {font-size:13px}.field-row {grid-template-columns:1fr;gap:0}.project-options {gap:7px}.project-options span {font-size:12px}.field>label {font-size:13px}.field>label>span {font-size:11px}.field input,.field textarea {font-size:16px}.form-submit {font-size:14px}.form-note {font-size:11px}
 .faq {gap:12px;padding-bottom:64px}.faq>h2 {font-size:29px}.faq-list summary {font-size:14px;gap:15px}.faq-list p {font-size:14px;padding-right:10px}
 .site-footer {padding-top:34px;padding-bottom:calc(78px + env(safe-area-inset-bottom))}.footer-top {display:flex;flex-direction:column;align-items:flex-start;gap:24px;padding-bottom:28px}.footer-top>p {font-size:26px}.footer-top>a:last-child {font-size:13px;gap:20px}.footer-brand {width:180px}
 .footer-bottom {display:flex;flex-direction:column;align-items:stretch;gap:14px;font-size:11px;padding-block:22px}.footer-bottom>div {justify-content:space-between;gap:16px}.legal-toggle {font-size:11px}
 .mobile-contact {display:grid;grid-template-columns:1fr 1.15fr;gap:12px;position:fixed;inset:auto 0 0;z-index:35;padding:10px max(14px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:#fffef9f5;border-top:1px solid var(--line);box-shadow:0 -5px 20px #25271e06;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
 html {scroll-padding-bottom:100px}.quote-panel input,.quote-panel textarea,.ready-actions a {scroll-margin-bottom:100px}
 .mobile-contact>a {display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;line-height:1.45;font-size:12px}.mobile-contact>a:first-child>.icon {width:19px;height:19px}.mobile-contact strong {display:block;font-size:12px;font-weight:600}.mobile-contact>a:last-child {justify-content:space-between;padding-inline:17px;background:var(--ink);color:#fffdf5;font-size:13px;font-weight:500}.mobile-contact>a:last-child>.icon {width:19px;height:19px}
 dialog {padding:25px;max-height:82svh}.dialog-heading h2 {font-size:24px}dialog p {font-size:14px}
}
@media (max-width:370px) {
 :root {--gutter:20px}.hero-lead {font-size:15px}.hero-local {font-size:11px}
 .material-name {display:block}.material-name strong {text-align:left;margin-top:3px}.swatch {font-size:11px;gap:6px}.swatch-color {width:18px;height:18px}
 .quote-panel {padding:25px 18px}.project-options {gap:5px}.project-options span {font-size:11px}.contact-phone {font-size:30px}
 .mobile-contact {grid-template-columns:1fr 1fr;gap:8px}.mobile-contact>a {gap:7px}.mobile-contact>a:last-child {padding-inline:13px}
}
@media(prefers-reduced-motion:reduce) {
 html {scroll-behavior:auto}*,*:before,*:after {animation:none!important;transition:none!important}
 .reveal.is-pending {opacity:1;transform:none}.sample-stack {will-change:auto;transform:rotateX(4deg) rotateY(-6deg)}.scroll-progress {display:none}
}
@media print {
 .wall-surface,.site-header,.mobile-contact,.scroll-progress,.hero-bottom,.texture-band,.skip-link {display:none!important}
 body,.hero,.expertise,.contact,.local-section,.site-footer {background:#fff!important;color:#222}
 .reveal.is-pending {opacity:1;transform:none}a[href^="tel"],a[href^="mailto"] {color:#222}
}
