@font-face { font-family: "Source Serif 4"; src: url("../fonts/source-serif-4-600-latin.woff2") format("woff2"); font-weight: 600; font-display: swap; }
:root { color-scheme: light; --ink:#182f40; --muted:#526372; --blue:#075fa0; --navy:#123a58; --sky:#edf5fa; --paper:#fbfaf7; --line:#d6e0e6; --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; --wrap:min(1220px,calc(100% - 64px)); }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { margin:0; color:var(--ink); background:white; font:18px/1.65 var(--sans); -webkit-font-smoothing:antialiased; }
h1,h2,h3,p,ul,ol,figure,dl { margin:0; }
h1,h2,h3 { line-height:1.15; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
img { display:block; max-width:100%; height:auto; }
a { color:inherit; }
[hidden] { display:none !important; }
::selection { background:#b8dcf4; color:var(--ink); }
:focus-visible { outline:3px solid #b75d25; outline-offset:4px; }
.wrap { width:var(--wrap); margin-inline:auto; }
.narrow { max-width:840px; }
.sr-only,.hp { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:100; top:10px; left:15px; padding:12px 20px; border-radius:8px; background:var(--navy); color:white; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.service-bar { padding:8px 0; color:white; background:var(--navy); font-size:14px; font-weight:550; text-align:center; }
.service-bar span { margin-inline:9px; color:#aacde3; }
.site-header { position:sticky; top:0; z-index:50; border-bottom:1px solid var(--line); background:#fffffffa; }
.site-header.is-stuck { box-shadow:0 3px 18px #17364b0b; }
.header-inner { min-height:92px; display:flex; align-items:center; gap:26px; }
.brand { display:inline-flex; flex-shrink:0; min-width:0; align-items:center; gap:12px; text-decoration:none; }
.brand-mark { display:block; flex-shrink:0; width:76px; height:66px; object-fit:contain; }
.brand-text { min-width:0; color:var(--navy); line-height:1; }
.brand-name { display:block; font:600 35px/1 "Source Serif 4",Georgia,serif; letter-spacing:-1.1px; }
.brand-text small { display:block; margin-top:7px; color:var(--navy); font:750 10px/1.2 var(--sans); letter-spacing:2.65px; text-transform:uppercase; }
.nav { display:flex; align-items:center; gap:24px; margin-left:auto; }
.nav a,.header-phone { display:inline-flex; align-items:center; min-height:44px; font-size:15px; font-weight:600; text-decoration:none; }
.nav a:hover,.footer-nav a:hover { color:var(--blue); text-decoration:underline; text-underline-offset:5px; }
.header-phone { white-space:nowrap; color:var(--blue); }
.btn { display:inline-flex; justify-content:center; align-items:center; gap:17px; min-height:52px; padding:12px 21px; border:1.5px solid transparent; border-radius:8px; font:650 16px/1.35 var(--sans); text-align:center; text-decoration:none; transition:background-color .18s,box-shadow .18s; }
.btn-primary,.btn-accent { color:white; background:var(--blue); border-color:var(--blue); }
.btn-primary:hover,.btn-accent:hover { background:#064b7e; border-color:#064b7e; box-shadow:0 4px 12px #123a5818; }
.btn-secondary,.btn-ghost { color:var(--blue); background:white; border-color:#aac3d4; }
.btn-secondary:hover,.btn-ghost:hover { border-color:var(--blue); background:#f0f7fc; }
.btn-block { width:100%; }
.btn:disabled,fieldset:disabled .btn { color:#637481; background:#e5ecf0; border-color:#d6e0e6; cursor:not-allowed; box-shadow:none; }
.text-link { display:inline-flex; align-items:center; min-height:44px; gap:10px; color:var(--blue); font-size:17px; font-weight:650; text-underline-offset:4px; }
.eyebrow { margin-bottom:15px; color:var(--blue); font-size:14px; font-weight:700; letter-spacing:.4px; }
.hero { padding:42px 0 0; background:linear-gradient(135deg,#f8fbfd,#eef5f8 65%,#f6f7f1); }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); gap:58px; align-items:start; }
.hero-copy { padding-top:7px; }
h1 { margin-bottom:23px; font-size:clamp(39px,4.4vw,58px); font-weight:650; line-height:1.08; letter-spacing:-2.3px; }
h1 > span { color:var(--blue); }
.lede { max-width:570px; color:var(--muted); font-size:18px; line-height:1.65; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin:25px 0; }
.hero-call { display:flex; align-items:center; min-height:44px; margin:-9px 0 19px; color:var(--blue); font-size:17px; font-weight:650; text-underline-offset:4px; }
.business-hours { margin:0 0 24px; color:var(--muted); font-size:15px; line-height:1.6; }
.hero-room { overflow:hidden; border:1px solid #d8e0df; border-radius:18px; background:white; }
.hero-room .room-scene { height:246px; }
.hero-room figcaption { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:13px 18px; font-size:14px; font-weight:600; }
.hero-room figcaption a { display:inline-flex; align-items:center; min-height:44px; color:var(--blue); font-weight:700; text-underline-offset:3px; }
.image-note { margin:6px 0 0; color:#566573; font-size:12px; }
.room-scene { --wall:#e8dfcf; position:relative; overflow:hidden; isolation:isolate; background:linear-gradient(120deg,#ffffff35,transparent 60%),var(--wall); transition:background-color .3s; }
.room-scene::before { content:""; position:absolute; z-index:-1; left:0; right:0; bottom:0; height:21%; border-top:10px solid #f3f0e9; background:linear-gradient(175deg,#c7b299,#b9a489); box-shadow:0 -1px 0 #152f3a18; }
.room-scene img { position:absolute; z-index:2; bottom:-1px; left:0; width:100%; max-width:none; }
.room-wall-line { position:absolute; left:7%; top:0; bottom:21%; width:1px; background:#00000006; }
.palette-white { --wall:#e8dfcf; }
.palette-sage { --wall:#a4b39b; }
.palette-blue { --wall:#9fb8c8; }
.palette-clay { --wall:#c78f73; }
.palette-slate { --wall:#4f6877; }
.quote-card { padding:28px; border:1px solid #d9e2e8; border-radius:16px; background:white; box-shadow:0 15px 45px #123a580a; scroll-margin-top:108px; }
.quote-card .eyebrow { margin-bottom:9px; font-size:13px; }
.quote-card h2 { font-size:30px; letter-spacing:-.8px; font-weight:650; }
.quote-intro { margin:12px 0 20px; font-size:16px; color:var(--muted); line-height:1.55; }
.notice { margin-bottom:18px; padding:13px 15px; border:1px solid; border-radius:8px; font-size:14px; line-height:1.5; }
.notice-title { margin-bottom:3px; font-size:14px; line-height:1.5; }
.notice-warn { color:#725416; background:#faf6e8; border-color:#e8d9b7; }
.notice-ok { color:#24523b; background:#edf8ef; border-color:#b8d9c3; }
.notice-err { color:#8f312a; background:#fff1ee; border-color:#e6b5ac; }
.notice-contact:not(:empty) { margin-top:12px; }
.quote-form fieldset { display:grid; grid-template-columns:1fr 1fr; gap:15px; min-width:0; margin:0; padding:0; border:0; }
.field { min-width:0; }
.field-wide,.field:nth-of-type(4),.quote-form button { grid-column:1/-1; }
.field label { display:block; margin-bottom:6px; font-size:15px; font-weight:650; }
.field input,.field textarea,select { width:100%; min-width:0; min-height:49px; padding:11px 12px; border:1px solid #adbeca; border-radius:7px; background:white; color:var(--ink); font-size:16px; line-height:1.45; }
.field input::placeholder,.field textarea::placeholder { color:#6b7881; }
.field textarea { display:block; min-height:92px; resize:vertical; }
.field input:focus,.field textarea:focus,select:focus { border-color:var(--blue); outline:3px solid #b8dcf47a; outline-offset:1px; }
.field [aria-invalid="true"] { border-color:#ae463a; }
.field input:disabled,.field textarea:disabled { cursor:not-allowed; background:#f5f7f8; color:#657582; }
.hint,.err { margin-top:5px; font-size:13px; line-height:1.45; }
.hint { color:#5e6e78; }
.err { color:#9c392f; font-weight:600; }
.quote-form .btn { min-height:51px; }
.form-privacy { margin:13px auto 0; color:#5b6d79; font-size:13px; line-height:1.5; text-align:center; }
.form-email { margin:10px 0; text-align:center; font-size:14px; }
.form-email, .notice-contact, #footer-contact { overflow-wrap:anywhere; }
.form-call { margin-top:14px; font-size:16px; text-align:center; }
.form-email a,.form-call a,.notice-contact a,#footer-contact a,.footer-legal > a { display:inline-flex; align-items:center; min-height:44px; max-width:100%; overflow-wrap:anywhere; }
.form-email a { display:block; padding-block:11px; }
.reassurance { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:34px; padding:28px 0; border-top:1px solid #d1dfe6; }
.reassurance > div { display:flex; align-items:start; gap:12px; }
.check { display:grid; flex-shrink:0; place-items:center; width:28px; height:28px; border-radius:50%; color:#326550; background:#e0ede4; font-weight:700; font-size:16px; }
.reassurance strong { display:block; font-size:16px; line-height:1.5; }
.reassurance small { display:block; margin-top:3px; font-size:14px; line-height:1.5; color:var(--muted); }

.section { padding:80px 0; }
h2 { font-size:clamp(30px,3.3vw,43px); font-weight:650; letter-spacing:-1.4px; }
h3 { font-size:25px; font-weight:650; letter-spacing:-.6px; }
.section-heading { max-width:780px; margin:0 auto 32px; text-align:center; }
.section-heading > p:last-child { margin:17px auto 0; max-width:680px; color:var(--muted); }
.section-heading .eyebrow { margin-bottom:12px; }
.service-options { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:22px; }
.service-option { display:flex; align-items:center; gap:15px; min-height:74px; padding:14px 20px; border:1.5px solid var(--line); border-radius:10px; background:white; color:var(--ink); font-size:17px; font-weight:600; text-align:left; transition:border-color .18s,background-color .18s; }
.service-option:hover { background:#f5f9fc; border-color:#8eafc7; }
.service-option[aria-pressed="true"] { border-color:var(--blue); background:#edf5fb; color:var(--blue); box-shadow:inset 0 0 0 1px var(--blue); }
.service-icon { flex-shrink:0; width:32px; font-size:30px; line-height:1; text-align:center; color:#6c8a9d; }
.service-option[aria-pressed="true"] .service-icon { color:var(--blue); }
.service-detail { display:grid; grid-template-columns:1.35fr 1fr; border:1px solid var(--line); border-radius:16px; overflow:hidden; }
.service-detail-copy { padding:35px; }
.service-detail-copy > p:not(.eyebrow) { margin:18px 0; color:var(--muted); }
.service-detail-copy ul { margin:20px 0 27px; padding-left:22px; font-size:17px; }
.service-detail-copy li { padding:4px 0; }
.service-detail-copy li::marker { color:var(--blue); }
.service-help { position:relative; padding:35px; background:var(--sky); overflow:hidden; }
.small-heading { margin-bottom:12px; font-size:15px; font-weight:700; color:var(--blue); }
.service-help h3 { margin-bottom:18px; font-size:29px; line-height:1.2; }
.service-help > p:not(.small-heading) { margin-bottom:24px; color:var(--muted); font-size:17px; }
.color-strips { display:flex; align-items:end; gap:8px; height:90px; margin-top:30px; transform:rotate(-5deg); }
.color-strips span { flex:1; height:65px; border:5px solid white; border-radius:4px; background:#9fb8c8; box-shadow:0 5px 15px #17364b0e; }
.color-strips span:nth-child(2) { background:#a4b39b; transform:translateY(-8px); }
.color-strips span:nth-child(3) { background:#c78f73; transform:translateY(-13px); }
.color-strips span:nth-child(4) { background:#4f6877; }
.noscript-note { padding:20px; margin-top:20px; background:var(--sky); }
.color-section { background:var(--paper); border-block:1px solid #e9e6df; }
.color-layout { display:grid; grid-template-columns:.95fr 1.05fr; align-items:center; gap:55px; }
.color-copy h2 { margin-bottom:20px; }
.color-copy > p:not(.eyebrow):not(.tool-note):not(.color-current) { color:var(--muted); }
.color-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:27px 0 17px; padding:0; border:0; }
.color-options legend { margin-bottom:13px; font-size:16px; font-weight:650; }
.color-choice { position:relative; display:flex; align-items:center; gap:10px; min-height:56px; padding:9px 12px; border:1px solid var(--line); border-radius:8px; background:white; font-size:15px; font-weight:550; cursor:pointer; }
.color-choice:has(input:checked) { border-color:var(--blue); box-shadow:inset 0 0 0 1px var(--blue); }
.color-choice:has(input:focus-visible) { outline:3px solid #b75d25; outline-offset:3px; }
.color-choice input { position:absolute; width:1px; height:1px; opacity:0; }
.color-chip { display:block; flex-shrink:0; width:28px; height:28px; border-radius:50%; border:1px solid #00000020; }
.chip-white { background:#e8dfcf; }.chip-sage { background:#a4b39b; }.chip-blue { background:#9fb8c8; }.chip-clay { background:#c78f73; }.chip-slate { background:#4f6877; }
.color-current { margin-bottom:16px; color:var(--muted); font-size:16px; }
.color-current strong { color:var(--ink); }
.tool-note { margin-top:15px; color:#536572; font-size:14px; line-height:1.6; }
.color-preview { overflow:hidden; border:1px solid #d9dedc; border-radius:18px; background:white; }
.color-preview .room-scene { height:440px; }
.color-preview figcaption { padding:15px 19px; color:#526372; font-size:13px; line-height:1.5; }
.planner-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:85px; align-items:center; }
.planner-layout h2 { margin-bottom:22px; }
.planner-layout > div > p:not(.eyebrow) { color:var(--muted); }
.planner-tip { margin-top:28px; padding-left:18px; border-left:3px solid #afcbdc; font-size:17px; }
.planner-tip strong { display:block; color:var(--ink); }
.planner-card { padding:30px; border:1px solid var(--line); border-radius:16px; box-shadow:0 12px 40px #123a5806; }
.planner-fields { display:grid; gap:20px; }
.planner-fields label,.area-layout label { display:block; margin-bottom:8px; font-size:16px; font-weight:650; }
select { min-height:53px; cursor:pointer; }
.planner-summary { margin:25px 0; padding:20px; border-radius:10px; background:var(--sky); font-size:17px; }
.planner-summary .small-heading { margin-bottom:6px; }
.planner-card .tool-note { text-align:center; }
.section-proof { background:var(--sky); }
.section-sub { margin-top:20px; color:var(--muted); }
.spec { margin-top:30px; padding:0; border-top:1px solid var(--line); list-style:none; }
.spec li { display:grid; grid-template-columns:190px 1fr; gap:25px; padding:20px 0; border-bottom:1px solid var(--line); }
.spec strong { font-size:15px; }
.work-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; padding:0; list-style:none; }
.work-grid img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:12px; }
.work-grid figcaption { margin-top:10px; font-size:16px; color:var(--muted); }
.process-section { border-block:1px solid var(--line); background:#f7fafc; }
.process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:35px; padding:8px 0 0; list-style:none; }
.step-number { display:grid; place-items:center; width:50px; height:50px; margin-bottom:22px; border-radius:50%; background:#e1eff8; color:var(--blue); font-size:22px; font-weight:700; }
.process-grid h3 { margin-bottom:15px; font-size:24px; }
.process-grid p { color:var(--muted); font-size:17px; }
.area-layout { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:85px; }
.area-layout h2 { margin-bottom:22px; }
.area-layout > div > p:not(.eyebrow) { color:var(--muted); }
.area-layout label { margin-top:25px; }
.area-layout select { max-width:390px; }
.area-result { min-height:58px; margin:16px 0 22px; font-size:16px; }
.areas { padding:32px; border-radius:16px; background:var(--sky); }
.area-group + .area-group { padding-top:26px; margin-top:26px; border-top:1px solid #cbdde9; }
.area-group h3 { margin-bottom:13px; font-size:23px; }
.area-group p { color:var(--muted); font-size:18px; line-height:1.95; }
.faq-section { border-top:1px solid var(--line); background:var(--paper); }
.faq-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:75px; }
.faq-layout h2 { margin-bottom:20px; }
.faq-layout > div > p:not(.eyebrow) { color:var(--muted); font-size:17px; }
.faq-list { border-top:1px solid #cbd7df; }
.qa { border-bottom:1px solid #cbd7df; }
.qa summary { position:relative; min-height:70px; padding:22px 38px 22px 0; list-style:none; font-size:18px; font-weight:600; cursor:pointer; line-height:1.5; }
.qa summary::-webkit-details-marker { display:none; }
.qa summary::after { content:"+"; position:absolute; right:5px; top:19px; color:var(--blue); font-size:25px; font-weight:400; }
.qa[open] summary::after { content:"−"; }
.qa p { padding:0 30px 25px 0; color:var(--muted); font-size:17px; }
.closing-section { padding:55px 0; color:white; background:var(--navy); }
.closing-inner { display:flex; align-items:center; justify-content:space-between; gap:60px; }
.closing-inner h2 { max-width:600px; font-size:35px; }
.closing-inner .eyebrow { color:#c4deee; }
.closing-inner p:last-child { margin-top:14px; color:#d6e5ee; }
.closing-actions { display:grid; justify-items:center; gap:18px; flex-shrink:0; }
.closing-actions .btn { background:white; color:var(--blue); border-color:white; }
.closing-actions .btn:hover { background:#e5f1fa; }
.closing-actions .text-link { color:white; }
.site-footer { padding-top:45px; background:white; }
.footer-top { display:flex; justify-content:space-between; gap:60px; padding-bottom:37px; }
.footer-line { margin-top:20px; color:var(--muted); font-size:15px; }
.footer-nav { display:grid; grid-template-columns:1fr 1fr; align-content:start; gap:12px 35px; padding-top:8px; }
.footer-nav a { display:flex; align-items:center; min-height:44px; font-size:16px; text-decoration:none; }
#footer-contact { margin-top:16px; }
.footer-legal { display:flex; flex-wrap:wrap; align-items:center; gap:16px; justify-content:space-between; padding:22px 0; border-top:1px solid var(--line); color:var(--muted); font-size:14px; }
.footer-legal a { text-underline-offset:4px; }
.tool-feedback { position:fixed; z-index:80; bottom:24px; left:50%; transform:translateX(-50%); width:min(520px,calc(100% - 32px)); padding:17px 22px; border:1px solid #b6cbd9; border-radius:10px; background:var(--navy); color:white; box-shadow:0 5px 25px #123a5833; font-size:16px; text-align:center; }
.simple { display:grid; align-items:center; min-height:65vh; padding:90px 0; }
.simple .wrap { max-width:820px; }
.simple h1 { font-size:clamp(38px,5vw,62px); }
.simple p:not(.eyebrow) { margin:24px 0; color:var(--muted); }
.simple-actions { display:flex; gap:12px; flex-wrap:wrap; }
.legal-page { width:min(820px,calc(100% - 32px)); margin:40px auto 64px; overflow-wrap:anywhere; }
.legal-page > p { margin:20px 0; }
.legal-page .legal-date { color:var(--muted); font-size:15px; }
.legal-page section { margin:34px 0; }
.legal-page h2 { font-size:28px; letter-spacing:-.6px; }
.legal-page section p,.legal-page li { margin-top:16px; }
.legal-page ul { padding-left:24px; }
.legal-page a:not(.btn) { display:inline-flex; align-items:center; min-height:44px; max-width:100%; text-underline-offset:3px; }
.footer-legal > a { min-width:44px; }
.mobile-quote { display:none; }
.menu { position:relative; display:none; }
.menu summary { display:flex; align-items:center; justify-content:center; gap:9px; min-height:46px; padding:8px 12px; border:1px solid var(--line); border-radius:7px; list-style:none; cursor:pointer; font-size:15px; font-weight:600; }
.menu summary::-webkit-details-marker { display:none; }
.menu-bars,.menu-bars::after { display:block; width:17px; height:2px; background:var(--ink); }
.menu-bars { position:relative; transform:translateY(-3px); }
.menu-bars::after { content:""; position:absolute; top:6px; }
.menu-panel { position:absolute; top:calc(100% + 12px); right:0; display:grid; width:250px; padding:10px; border:1px solid var(--line); border-radius:10px; background:white; box-shadow:0 16px 40px #123a581a; }
.menu-panel a { min-height:47px; padding:10px 12px; border-radius:6px; font-size:16px; text-decoration:none; }
.menu-panel a:hover { background:var(--sky); }
.js-only { display:none; }

@media (max-width:1150px) {
  :root { --wrap:calc(100% - 44px); }
  .header-inner { gap:18px; }
  .nav { gap:18px; }
  .nav a { font-size:14px; }
  .header-cta { font-size:14px; padding-inline:16px; }
  .header-phone { display:none; }
  .hero-grid { gap:35px; grid-template-columns:1fr 1fr; }
  h1 { font-size:46px; }
  .quote-card { padding:24px; }
  .quote-card h2 { font-size:28px; }
  .color-layout,.area-layout,.planner-layout,.faq-layout { gap:40px; }
  .color-preview .room-scene { height:370px; }
}
@media (max-width:900px) {
  .nav { display:none; }
  .header-cta { margin-left:auto; }
  .menu { display:block; }
  .header-inner { min-height:80px; }
  .hero-grid { gap:28px; }
  h1 { font-size:41px; letter-spacing:-1.5px; }
  .hero-copy .lede { font-size:17px; }
  .hero-actions .btn { width:100%; }
  .hero-room .room-scene { height:215px; }
  .hero-room figcaption { align-items:start; flex-direction:column; gap:4px; }
  .quote-card { padding:20px; }
  .quote-form fieldset { grid-template-columns:1fr; }
  .field,.field-wide,.field:nth-of-type(4),.quote-form button { grid-column:auto; }
  .reassurance { gap:18px; }
  .reassurance strong { font-size:15px; }
  .reassurance small { font-size:13px; }
  .service-option { padding:13px; font-size:16px; gap:10px; }
  .service-icon { width:26px; font-size:26px; }
  .service-detail-copy,.service-help { padding:26px; }
  .color-layout { grid-template-columns:1fr; gap:35px; }
  .color-copy { max-width:680px; }
  .color-options { grid-template-columns:repeat(3,1fr); }
  .color-preview .room-scene { height:430px; }
  .planner-layout,.area-layout { grid-template-columns:1fr 1fr; gap:35px; }
  .planner-card { padding:24px; }
  .planner-layout h2,.area-layout h2 { font-size:34px; }
  .areas { padding:25px; }
  .process-grid { gap:25px; }
  .process-grid h3 { font-size:22px; }
  .closing-inner { gap:35px; }
  .closing-inner h2 { font-size:29px; }
}
@media (max-width:680px) {
  :root { --wrap:calc(100% - 32px); }
  html { scroll-padding-top:92px; }
  body { font-size:17px; padding-bottom:82px; }
  .service-bar { font-size:12px; line-height:1.6; padding:7px 0; }
  .service-bar span { margin-inline:3px; }
  .header-inner { min-height:76px; gap:12px; }
  .brand-mark { width:56px; height:49px; }
  .brand { gap:9px; }
  .brand-name { font-size:29px; letter-spacing:-.9px; }
  .brand-text small { margin-top:6px; font-size:9px; letter-spacing:1.9px; }
  .header-cta { display:none; }
  .menu { margin-left:auto; }
  .hero { padding-top:28px; }
  .hero-grid { grid-template-columns:1fr; gap:27px; }
  .hero-copy { padding:0; }
  .hero-copy .eyebrow { margin-bottom:13px; }
  h1 { max-width:500px; margin-bottom:19px; font-size:clamp(36px,9.5vw,49px); line-height:1.1; letter-spacing:-1.6px; }
  .hero-copy .lede { font-size:17px; line-height:1.6; }
  .hero-actions { gap:10px; margin:22px 0 0; }
  .hero-actions .btn { width:auto; flex:.8; padding-inline:12px; font-size:14px; gap:8px; }
  .hero-actions .btn:first-child { flex:1.35; }
  .hero-call { margin:12px 0 0; font-size:16px; }
  .business-hours { margin:8px 0 0; font-size:14px; }
  .hero-room,.image-note { display:none; }
  .quote-card { padding:23px; border-radius:13px; scroll-margin-top:90px; }
  .quote-card h2 { font-size:28px; }
  .quote-card .eyebrow { display:none; }
  .quote-intro { margin-top:12px; font-size:16px; }
  .quote-form fieldset { grid-template-columns:1fr; gap:17px; }
  .field label { font-size:16px; }
  .field input,.field textarea { min-height:51px; }
  .field textarea { min-height:105px; }
  .hint { font-size:14px; }
  .form-privacy { font-size:13px; }
  .reassurance { grid-template-columns:1fr; gap:18px; padding:26px 0; margin-top:27px; }
  .reassurance strong { font-size:16px; }
  .reassurance small { font-size:14px; }
  .section { padding:57px 0; }
  h2 { font-size:32px; letter-spacing:-1px; }
  h3 { font-size:25px; }
  .section-heading { text-align:left; margin-bottom:27px; }
  .section-heading > p:last-child { margin-top:16px; }
  .eyebrow { font-size:14px; }
  .service-options { grid-template-columns:1fr 1fr; gap:9px; margin-bottom:17px; }
  .service-option { flex-direction:column; align-items:start; justify-content:center; gap:9px; padding:14px; min-height:102px; font-size:15px; line-height:1.35; }
  .service-detail { grid-template-columns:1fr; }
  .service-detail-copy { padding:24px; }
  .service-detail-copy > p:not(.eyebrow) { font-size:17px; }
  .service-detail-copy ul { font-size:16px; margin-bottom:22px; }
  .service-detail-copy .btn { width:100%; padding-inline:15px; font-size:15px; }
  .service-help { padding:24px; }
  .service-help h3 { font-size:26px; }
  .color-strips { height:65px; margin-top:22px; }
  .color-strips span { height:48px; }
  .color-layout,.planner-layout,.area-layout,.faq-layout { grid-template-columns:1fr; gap:30px; }
  .color-layout { display:flex; flex-direction:column; align-items:stretch; }
  .color-copy { display:contents; }
  .color-copy .eyebrow { margin:0 0 -14px; order:0; }
  .color-copy h2 { margin:0; order:1; }
  .color-copy > p:not(.eyebrow):not(.color-current):not(.tool-note) { margin:-10px 0 0; order:2; }
  .color-preview { order:3; }
  .color-preview .room-scene { height:280px; }
  .color-preview figcaption { font-size:12px; padding:12px 15px; }
  .color-options { order:4; grid-template-columns:1fr 1fr; margin:0; gap:10px; }
  .color-options legend { margin-bottom:12px; }
  .color-choice { min-height:58px; gap:8px; padding:9px; font-size:14px; }
  .color-chip { width:26px; height:26px; }
  .color-current { order:5; margin:-10px 0 0; }
  #color-quote { order:6; margin-top:-12px; font-size:15px; }
  .color-copy .tool-note { order:7; margin:-12px 0 0; }
  .planner-layout h2,.area-layout h2 { font-size:32px; }
  .planner-tip { margin-top:23px; font-size:16px; }
  .planner-card { padding:22px; }
  .planner-summary { padding:17px; font-size:16px; }
  .planner-card .btn { font-size:15px; }
  .process-grid { grid-template-columns:1fr; gap:29px; }
  .process-grid li { position:relative; padding-left:65px; }
  .step-number { position:absolute; left:0; top:0; width:44px; height:44px; font-size:20px; }
  .process-grid h3 { font-size:24px; }
  .process-grid p { font-size:17px; }
  .areas { padding:25px; }
  .area-group h3 { font-size:24px; }
  .area-group p { font-size:17px; }
  .area-result { min-height:auto; }
  .faq-layout { gap:25px; }
  .faq-layout h2 { margin-bottom:16px; }
  .qa summary { font-size:17px; padding-block:21px; }
  .qa p { font-size:17px; padding-right:12px; }
  .closing-inner { align-items:start; flex-direction:column; gap:25px; }
  .closing-inner h2 { font-size:32px; }
  .closing-actions { width:100%; justify-items:stretch; }
  .footer-top { flex-direction:column; gap:27px; padding-bottom:30px; }
  .footer-nav { gap:13px 30px; }
  .footer-line { font-size:15px; }
  .footer-legal { font-size:13px; gap:20px; }
  .mobile-quote { position:fixed; z-index:40; bottom:max(12px,env(safe-area-inset-bottom)); left:14px; right:14px; display:flex; justify-content:center; align-items:center; gap:30px; min-height:54px; border:1px solid #ffffff55; border-radius:9px; color:white; background:var(--blue); box-shadow:0 5px 24px #123a5830; font-size:17px; font-weight:650; text-decoration:none; }
  body:has(.quote-card:focus-within) .mobile-quote { visibility:hidden; }
  .tool-feedback { bottom:86px; font-size:15px; }
  .work-grid { grid-template-columns:1fr; }
  .spec li { grid-template-columns:1fr; gap:8px; }
}
@media (max-width:360px) {
  .service-bar { font-size:11px; }
  .brand-text { font-size:19px; }
  .menu summary { gap:7px; padding-inline:9px; font-size:14px; }
  .hero-actions { flex-direction:column; }
  .hero-actions .btn { width:100%; flex:auto; font-size:16px; }
  .quote-card { padding:20px; }
  .quote-card h2 { font-size:26px; }
  .color-preview .room-scene { height:245px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none !important; animation:none !important; }
}

@media (forced-colors:active) {
  :focus-visible,.field input:focus,.field textarea:focus,select:focus { outline:3px solid Highlight; }
  .btn,.service-option,.color-choice,.menu summary,.mobile-quote { border:2px solid ButtonText; }
  .service-option[aria-pressed="true"],.color-choice:has(input:checked) { outline:3px solid Highlight; outline-offset:2px; }
  .color-choice input { position:static; width:20px; height:20px; opacity:1; }
  .color-chip { forced-color-adjust:none; }
}

@media print {
  @page { margin:18mm; @bottom-right { content:"Page " counter(page); } }
  html { scroll-behavior:auto; }
  body { padding:0; color:#000; background:#fff; font-size:11pt; }
  *,*::before,*::after { box-shadow:none !important; text-shadow:none !important; }
  .site-header { position:static; border-bottom:1px solid #888; }
  .nav,.menu,.header-cta,.header-phone,.mobile-quote,.skip-link,.tool-feedback,
  .hero-actions,.quote-form,.service-options,.color-options,.planner-fields,
  .btn,.closing-actions,.footer-nav,select,label[for="area-city"] { display:none !important; }
  .hero,.section,.closing-section,.site-footer,.simple { padding:14pt 0; min-height:0; background:#fff; color:#000; }
  .hero-grid,.color-layout,.planner-layout,.area-layout,.faq-layout,.process-grid,.reassurance { display:block; }
  .wrap { width:100%; }
  .legal-page { width:100%; margin:0; }
  .quote-card,.planner-card,.areas,.service-help,.service-detail { padding:12pt; background:#fff; color:#000; border:1px solid #aaa; }
  h1 { font-size:25pt; } h2 { font-size:21pt; } h3 { font-size:16pt; }
  p,li,small,.lede,.tool-note,.hint,.eyebrow,.brand-text,.brand-text small,.text-link { color:#000 !important; }
  .service-detail,.color-layout,.planner-layout,.area-layout,.faq-layout { display:block; }
  .hero-room,.color-preview,.color-strips { display:none; }
  .qa::details-content { content-visibility:visible; }
  .qa p { display:block; }
  h1,h2,h3 { break-after:avoid; }
  .quote-card,.planner-card,.area-group,.process-grid li,.qa { break-inside:avoid; }
  a[href^="https:"]::after,a[href^="mailto:"]::after { content:" (" attr(href) ")"; font-size:9pt; overflow-wrap:anywhere; }
  #footer-contact { display:block !important; }
}
