/* КСУ 2.0 — readable by default. Local system fonts; no UI framework. */
:root {
  --paper:#f5f3ed; --white:#fffefa; --ink:#202a25; --muted:#535e52;
  --line:#cdd1c4; --gold:#795a2e; --brass:#c6aa7b; --dark:#1e2923; --soft:#e9e8df;
  --serif:Georgia,'Times New Roman',serif;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
  --radius:6px; --header-height:96px; --dock-height:88px;
  --text:1.125rem; --small:1rem; --label:.875rem;
}
* { box-sizing:border-box }
html { font-size:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--header-height) + 24px); -webkit-text-size-adjust:100% }
body { margin:0; padding-left:env(safe-area-inset-left,0px); padding-right:env(safe-area-inset-right,0px); background:var(--paper); color:var(--ink); font:var(--text)/1.65 var(--sans); -webkit-font-smoothing:antialiased }
body.menu-open { overflow:hidden }
img { max-width:100%; height:auto; display:block }
button,input,textarea,select { font:inherit }
button { cursor:pointer; color:inherit }
a { color:inherit; text-decoration:none }
a,button { touch-action:manipulation; -webkit-tap-highlight-color:#a4814f30 }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex='-1']:focus-visible { outline:3px solid #8c591d; outline-offset:4px }
button[disabled] { opacity:.65; cursor:wait }
[hidden] { display:none!important }
h1,h2,h3,p { margin-top:0; overflow-wrap:anywhere }
h1,h2 { font-family:var(--serif); font-weight:400; letter-spacing:-.035em; line-height:1.12 }
h1 { font-size:clamp(2.5rem,2rem + 3vw,5rem); margin-bottom:1.5rem }
h2 { font-size:clamp(2rem,1.7rem + 1.8vw,3.5rem); margin-bottom:1.5rem }
h3 { font-size:1.375rem; line-height:1.35; font-weight:600; margin-bottom:1rem }
p { margin-bottom:1.25rem }
small,.small { font-size:var(--small); line-height:1.65; color:var(--muted) }
svg { display:block; width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0 }
.wrap { width:min(1440px,calc(100% - 80px)); margin-inline:auto }
.section { padding-block:88px }
.section-topless { padding-top:0 }
.compact-section { padding-top:48px }
.eyebrow { font-size:var(--label); font-weight:600; letter-spacing:.1em; line-height:1.6; text-transform:uppercase; margin-bottom:1.25rem; color:var(--muted) }
.tiny-line { display:inline-block; width:24px; height:2px; background:var(--gold); margin-right:12px; vertical-align:middle }
.skip-link { position:fixed; left:16px; top:-100px; z-index:100; background:var(--white); padding:14px 22px; border:2px solid var(--ink) }
.skip-link:focus { top:10px }
.topline { background:var(--dark); color:#e7e7de; font-size:var(--label) }
.topline .wrap { display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:44px }
.topline-right { display:flex; gap:24px; align-items:center; flex-wrap:wrap }
.topline-phone { font-size:1rem; font-weight:600 }
.topline a { color:#e8d9bd; padding:10px 0 }
.header { position:sticky; top:0; z-index:40; background:var(--paper); border-bottom:1px solid var(--line) }
.header-inner { min-height:var(--header-height); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px 24px; padding-block:12px }
.brand { display:inline-flex; align-items:center; gap:14px; flex-shrink:0; line-height:1.4 }
.brand>span { font-size:.875rem; letter-spacing:.045em; font-weight:600; border-left:1px solid var(--line); padding-left:14px }
.brand-city { display:block; font-size:.75rem; color:var(--muted); letter-spacing:.04em; margin-top:4px }
.desktop-nav { display:flex; flex:1; flex-wrap:wrap; min-width:0; justify-content:center; gap:8px 20px; align-items:center; font-size:1rem }
.desktop-nav a { position:relative; display:flex; align-items:center; min-height:48px; text-align:center; line-height:1.35 }
.desktop-nav a::after { content:''; position:absolute; bottom:2px; left:0; width:100%; height:2px; transform:scaleX(0); transform-origin:left; background:var(--gold); transition:transform .2s }
.desktop-nav a[aria-current]::after { transform:scaleX(1) }
.header-actions { display:flex; gap:12px; align-items:center; flex-shrink:0 }
.header-phone { display:none; font-size:1rem; font-weight:600; white-space:nowrap; padding-block:12px }
.header-actions .header-quote { display:inline-flex }
.icon-button { border:0; background:transparent; padding:12px; position:relative; display:grid; place-items:center; min-width:48px; min-height:48px }
.count {
  position:absolute;
  top:5px;
  right:5px;
  z-index:1;
  width:20px;
  height:20px;
  min-width:20px;
  display:grid;
  place-items:center;
  border:2px solid var(--paper);
  border-radius:50%;
  background:var(--gold);
  color:white;
  font-size:.6875rem;
  font-weight:700;
  line-height:1;
  pointer-events:none;
}
.menu-toggle { display:none }
.menu-toggle .menu-label { font-size:.875rem; font-weight:600 }
.mobile-menu { border-top:1px solid var(--line); max-height:calc(100vh - var(--header-height)); max-height:calc(100dvh - var(--header-height)); overflow:auto; overscroll-behavior:contain; background:var(--paper) }
.mobile-menu .wrap { padding-block:12px 32px }
.mobile-menu a { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:16px 0; min-height:56px; border-bottom:1px solid var(--line); font-size:1.25rem; line-height:1.4 }
.button { background:var(--ink); border:2px solid var(--ink); color:var(--white); display:inline-flex; align-items:center; justify-content:center; gap:16px; padding:14px 22px; font-size:1.0625rem; font-weight:600; line-height:1.4; min-height:56px; max-width:100%; border-radius:var(--radius); transition:transform .18s ease; text-align:center; overflow-wrap:anywhere }
.button span { font-size:1.4rem; line-height:1; flex-shrink:0 }
.button:active { transform:translateY(1px) }
.button-light { background:var(--paper); border-color:var(--paper); color:var(--ink) }
.button-outline { background:transparent; color:var(--ink); border-color:#7a8575 }
.button-small { padding:11px 16px; min-height:48px; font-size:1rem }
.underlined-link,.text-button { display:inline-flex; align-items:center; gap:16px; min-height:48px; padding:10px 0; font-size:1rem; font-weight:500; line-height:1.5; text-align:left; overflow-wrap:anywhere }
.underlined-link { border-bottom:2px solid var(--gold); justify-content:space-between }
.underlined-link span { font-size:1.25rem }
.text-button { border:0; background:transparent; text-decoration:underline; text-underline-offset:4px }
.full-width { width:100% }
.button-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px }
.hero { display:grid; grid-template-columns:1fr 1.05fr; gap:56px; padding-block:40px; align-items:stretch }
.hero-copy { padding-block:28px 8px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; min-width:0 }
.hero h1 { font-size:clamp(3rem,2rem + 3.3vw,5.5rem); line-height:1.06; margin-bottom:28px }
.hero-description { font-size:1.25rem; line-height:1.7; max-width:32em; color:var(--muted) }
.hero-buttons { display:flex; gap:12px; align-items:stretch; flex-wrap:wrap; margin-top:8px }
.hero-foot { margin-top:36px; padding-top:24px; border-top:1px solid var(--line); width:100%; display:flex; align-items:center; gap:22px; font-size:1rem; line-height:1.6; color:var(--muted) }
.hero-foot svg { margin-left:auto; color:var(--gold); width:32px; height:32px }
.small-index { font-size:.875rem; color:var(--gold); letter-spacing:.05em }
.hero-art { position:relative; min-height:580px; overflow:hidden; background:#303e34; isolation:isolate }
.hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .45s ease }
.hero-art::after { content:''; position:absolute; inset:35% 0 0; background:linear-gradient(transparent,#142019ed); pointer-events:none }
.art-label { position:absolute; top:24px; left:24px; right:24px; width:fit-content; max-width:calc(100% - 48px); border:1px solid #c9c8b7; background:#25372e; color:#f2eee2; padding:8px 12px; font-size:.875rem; letter-spacing:.05em; z-index:1 }
.art-caption { position:absolute; left:30px; right:30px; bottom:56px; display:flex; align-items:flex-end; justify-content:space-between; gap:16px; color:var(--white); z-index:2 }
.art-caption>div>span { font-size:.875rem; letter-spacing:.08em; color:#e0dfd3; display:block; margin-bottom:14px }
.art-caption strong { font:400 clamp(1.5rem,1.2rem + 1vw,2.125rem)/1.25 var(--serif); letter-spacing:-.02em }
.round-link { border-radius:50%; border:1px solid #dce0d3; min-width:52px; min-height:52px; display:grid; place-items:center; font-size:1.75rem }
.art-coordinate { position:absolute; bottom:20px; left:30px; right:20px; font-size:.75rem; letter-spacing:.06em; color:#d9ddce; z-index:1 }
.assurance-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-block:1px solid var(--line); padding-block:24px; gap:24px }
.assurance-strip>div { display:flex; gap:16px; align-items:center; border-right:1px solid var(--line); padding-right:16px }
.assurance-strip>div>span { font-size:.875rem; color:var(--gold) }
.assurance-strip p,.assurance-strip>a { font-size:1rem; line-height:1.6; margin:0 }
.assurance-strip strong { font-weight:600; color:var(--ink) }
.assurance-strip>a { justify-self:end; align-self:center; padding-block:6px }
.section-heading { display:flex; justify-content:space-between; gap:48px; align-items:flex-end; margin-bottom:36px }
.section-heading h2 { margin-bottom:0 }
.section-heading>p,.section-heading>div:nth-child(2) { max-width:420px; color:var(--muted); font-size:1.125rem }
.section-heading>p { margin-bottom:0 }
.category-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px }
.category-card { min-width:0 }
.category-image { overflow:hidden; background:#e2e2d7; aspect-ratio:4/3 }
.category-image img { width:100%; height:100%; object-fit:cover; transition:transform .35s }
.category-card>div:last-child { padding:18px 0; display:flex; align-items:center; gap:12px; border-bottom:1px solid var(--line) }
.category-card h3 { font:400 1.6rem/1.25 var(--serif); margin:0 }
.category-card .arrow { margin-left:auto; font-size:1.5rem }
.collection-section { background:#edece4 }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 28px }
.product-card { min-width:0; display:flex; flex-direction:column; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden }
.product-picture { position:relative; aspect-ratio:4/3; background:#dfded5; overflow:hidden }
.product-picture>a { display:block; width:100%; height:100% }
.product-picture img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease }
.product-card-body { padding:24px; display:flex; flex-direction:column; flex:1; min-width:0 }
.image-label { position:absolute; left:14px; bottom:14px; background:var(--paper); padding:7px 10px; font-size:.875rem; letter-spacing:.025em; line-height:1.5; max-width:calc(100% - 28px); pointer-events:none }
.favorite-button { position:absolute; right:12px; top:12px; border:1px solid #7a8575; background:var(--white); border-radius:50%; width:48px; height:48px; display:grid; place-items:center }
.favorite-button[aria-pressed=true] { background:var(--ink); color:var(--white); border-color:var(--ink) }
.favorite-button[aria-pressed=true] svg { fill:currentColor }
.favorite-text[aria-pressed=true] { color:#725020; font-weight:600 }
.product-meta { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; font-size:.875rem; color:var(--muted) }
.product-title-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px }
.product-title-row h3 { font:400 2rem/1.2 var(--serif); margin:0 }
.product-title-row h3 a { display:inline-flex; align-items:center; min-height:48px }
.card-arrow { font-size:1.75rem; display:grid; place-items:center; min-width:48px; min-height:48px }
.product-summary { font-size:1rem; line-height:1.65; color:var(--muted); margin-block:14px }
.tags { display:flex; gap:8px; flex-wrap:wrap; margin-block:14px }
.tags a { display:inline-flex; align-items:center; border:1px solid #b9c0b0; border-radius:24px; padding:10px 14px; min-height:44px; font-size:1rem; line-height:1.4; color:#394b39; max-width:100%; overflow-wrap:anywhere }
.product-price { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; align-items:baseline; border-top:1px solid var(--line); padding-top:18px; margin-top:auto; font-size:1rem }
.product-price strong { font-size:1.5rem; font-weight:600 }
.product-price small { font-size:.875rem }
.product-card-actions { display:grid; grid-template-columns:1fr; gap:10px; margin-top:18px }
.product-card-actions .button { width:100%; min-height:52px; padding:12px 16px; font-size:1rem }
.price-note { font-size:1rem; color:var(--muted); margin-top:28px; max-width:850px; line-height:1.7 }
.price-note strong { font-weight:600 }
.custom-banner { display:grid; grid-template-columns:1.05fr 1fr; border:1px solid var(--line); align-items:stretch }
.custom-drawing { background:#e7e6dd; overflow:hidden; display:grid; place-items:center }
.custom-drawing img { width:100%; height:100%; object-fit:cover }
.custom-banner>div:last-child { padding:52px }
.custom-banner p:not(.eyebrow) { color:var(--muted); font-size:1.125rem }
.custom-banner .small { display:block; margin-top:20px }
.process-section { background:var(--dark); color:#f2f2e9 }
.process-section .eyebrow,.process-section .section-heading>p { color:#cbd3c6 }
.process-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px }
.process-grid article { border-top:1px solid #697362; padding-top:25px; min-width:0 }
.step-number { display:block; font:400 2.75rem/1 var(--serif); color:var(--gold); margin-bottom:24px }
.process-section .step-number { color:var(--brass) }
.process-grid h3 { font-size:1.25rem }
.process-grid p { font-size:1rem; line-height:1.8; margin:0 }
.process-section .process-grid p { color:#d1d8ca }
.project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px }
.project-picture { position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--soft); margin-bottom:20px }
.project-picture img { width:100%; height:100%; object-fit:cover; transition:transform .35s }
.project-card .eyebrow { display:block; margin-bottom:12px }
.project-card h3 { display:flex; gap:20px; justify-content:space-between; font:400 1.75rem/1.3 var(--serif) }
.project-card h3 span { font:1.5rem var(--sans) }
.faq-section { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px }
.faq-section>div:first-child>p:not(.eyebrow) { font-size:1.125rem; color:var(--muted); max-width:32em }
.faq { border-top:1px solid var(--line) }
.faq:last-child { border-bottom:1px solid var(--line) }
.faq summary { list-style:none; cursor:pointer; font-size:1.125rem; font-weight:500; padding:22px 0; min-height:56px; display:flex; justify-content:space-between; gap:24px; line-height:1.55 }
.faq summary::-webkit-details-marker { display:none }
.faq summary span { font-size:1.5rem; font-weight:400; line-height:1.2; flex-shrink:0; transition:transform .18s }
.faq[open] summary span { transform:rotate(45deg) }
.faq p { font-size:1.0625rem; color:var(--muted); padding-right:24px; margin-bottom:26px; line-height:1.8 }
.closing { background:#dce0d2; padding-block:64px }
.closing-inner { display:flex; align-items:center; justify-content:space-between; gap:48px }
.closing h2 { margin-bottom:18px }
.closing p:last-child { color:#46533f; font-size:1.125rem; margin-bottom:0 }
.closing .button { flex-shrink:0 }
.footer { background:#eeeee6; padding-top:64px }
.footer-top { display:grid; grid-template-columns:1.15fr .8fr .9fr 1.1fr; gap:36px; padding-bottom:44px }
.footer-top>div { min-width:0 }
.footer-statement { font:1.6rem/1.4 var(--serif); margin-top:22px }
.footer h3 { font:600 1rem/1.5 var(--sans); margin-bottom:18px }
.footer-top>div>a:not(.brand) { display:flex; align-items:center; min-height:44px; font-size:1rem; padding:6px 0; overflow-wrap:anywhere }
.footer-top .footer-phone { font-size:1.25rem!important; font-weight:600 }
.footer-top>div>p.small { margin-block:18px }
.footer-bottom { border-top:1px solid var(--line); padding-block:22px 28px; font-size:.875rem; color:var(--muted); display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap }
.footer-bottom>div { display:flex; gap:20px; align-items:center; flex-wrap:wrap }
.footer-bottom a,.footer-bottom .text-button { display:inline-flex; align-items:center; min-height:44px; font-size:.875rem }
.footer-bottom>p { flex-basis:100%; margin:0; font-size:.875rem; max-width:90ch }
.mobile-dock { display:none }
.cookie-panel { position:fixed; bottom:24px; left:24px; z-index:90; width:min(560px,calc(100% - 48px)); max-height:calc(100vh - 48px); overflow:auto; background:var(--white); box-shadow:0 8px 36px #18291f26; padding:24px; border:1px solid #78846f; border-radius:var(--radius) }
.cookie-panel strong { font-size:1.125rem }
.cookie-panel p { font-size:1rem; line-height:1.6; color:var(--muted); margin-block:10px 18px }
.cookie-panel p a { text-decoration:underline }
.cookie-buttons { display:grid; grid-template-columns:1fr 1fr; gap:12px }
.cookie-buttons .button { font-size:1rem; padding-inline:12px }
.toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:95; background:var(--dark); color:var(--white); padding:14px 24px; border:1px solid #e9e8df44; font-size:1rem; max-width:calc(100% - 32px); width:max-content; text-align:center; pointer-events:none }
.page-heading { padding-block:56px 40px }
.page-heading h1 { max-width:1100px }
.page-heading>p:last-child { max-width:760px; color:var(--muted); font-size:1.25rem }
.breadcrumbs { padding-top:20px; color:var(--muted); font-size:.875rem }
.breadcrumbs ol { list-style:none; display:flex; gap:6px 12px; flex-wrap:wrap; padding:0; margin:0; align-items:center }
.breadcrumbs li { overflow-wrap:anywhere }
.breadcrumbs li:not(:last-child)::after { content:'/'; margin-left:12px; color:#727e68 }
.breadcrumbs a { display:inline-flex; align-items:center; min-height:44px }
.catalog-section { padding-bottom:80px }
.category-tabs { display:flex; gap:10px; flex-wrap:wrap; border-bottom:1px solid var(--line); padding-bottom:24px; margin-bottom:28px }
.category-tabs a { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:10px 18px; border:1px solid #9fa992; border-radius:28px; font-size:1rem; line-height:1.45; text-align:center; max-width:100% }
.category-tabs .active { background:var(--ink); border-color:var(--ink); color:var(--white) }
.catalog-filters { display:flex; align-items:flex-end; gap:16px; flex-wrap:wrap; background:#e8ebdf; border:1px solid var(--line); padding:24px; border-radius:var(--radius) }
.catalog-filters>div { flex:1 1 170px; min-width:0 }
.catalog-filters .search-field { flex:2 1 260px }
label { display:block; font-size:1rem; font-weight:500; color:var(--ink); margin-bottom:10px; line-height:1.5 }
input:not([type=checkbox]):not([type=radio]),select,textarea { border:1px solid #8e9b85; background:var(--white); color:var(--ink); padding:14px; border-radius:var(--radius); width:100%; min-height:56px; font-size:1.0625rem; line-height:1.45; max-width:100% }
input::placeholder,textarea::placeholder { color:#65705f; opacity:1 }
input[type=checkbox],input[type=radio] { accent-color:var(--ink); width:22px; height:22px; flex:0 0 22px; margin:2px 0 0 }
textarea { resize:vertical; min-height:150px }
select { padding-right:28px }
.catalog-filters .button { min-height:56px }
.catalog-count { display:flex; gap:12px 24px; justify-content:space-between; flex-wrap:wrap; align-items:center; margin-block:24px 32px; font-size:1rem; color:var(--muted) }
.catalog-count a { text-decoration:underline; padding:10px 0; min-height:44px }
.pagination { display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap; font-size:1rem; margin-top:40px }
.pagination a { border:1px solid #8e9b85; padding:12px 18px; min-height:48px }
.empty-state { padding:40px; background:var(--soft); grid-column:1/-1; width:100% }
.empty-state p { max-width:650px; color:var(--muted); font-size:1.125rem }
.product-detail { display:grid; grid-template-columns:1.08fr 1fr; gap:56px; padding-block:32px 56px; align-items:start }
.product-detail>* { min-width:0 }
.gallery-main { position:relative; background:var(--soft); aspect-ratio:1.15 }
.zoom-button { width:100%; height:100%; border:0; padding:0; background:transparent; cursor:zoom-in }
.zoom-button img { width:100%; height:100%; object-fit:cover }
.gallery>.small { margin-top:18px }
.gallery-thumbs { display:flex; gap:12px; margin-top:14px; flex-wrap:wrap }
.gallery-thumbs button { border:2px solid var(--line); background:transparent; padding:4px; width:90px; min-height:72px }
.gallery-thumbs button[aria-pressed=true] { border-color:var(--gold) }
.gallery-thumbs img { height:66px; width:100%; object-fit:cover }
.product-info .eyebrow { margin-bottom:14px }
.product-info h1 { font-size:clamp(2.75rem,2rem + 2vw,4rem); margin-bottom:18px }
.intro { font-size:1.25rem; line-height:1.75; color:var(--muted) }
.detail-price { margin-top:28px; padding-top:24px; border-top:1px solid var(--line) }
.detail-price>span { font-size:1rem; color:var(--muted); display:block; margin-bottom:6px }
.detail-price>strong { font-size:clamp(1.75rem,1.3rem + 1.2vw,2.25rem); font-weight:600; line-height:1.4 }
.detail-price small { font-size:1rem }
.product-info .price-note { margin-top:8px }
.stack-buttons { display:grid; gap:12px }
.favorite-text { margin-top:14px }
.specs { margin-top:24px; font-size:1rem }
.specs>div { display:grid; grid-template-columns:.7fr 1fr; gap:20px; border-top:1px solid var(--line); padding:15px 0 }
.specs dt { color:var(--muted) }
.specs dd { margin:0; overflow-wrap:anywhere }
.product-description { display:grid; grid-template-columns:1.1fr 1fr; gap:70px; border-top:1px solid var(--line); padding-top:60px }
.prose { font-size:1.1875rem; line-height:1.85; color:#404d3d; max-width:72ch; overflow-wrap:anywhere }
.prose p { margin-bottom:28px }
.inclusion-card { padding:28px; background:#e2e7d9; margin-bottom:20px }
.inclusion-card.subtle { background:#eeece3 }
.inclusion-card h3 { font-size:1.25rem }
.inclusion-card ul { margin:0; padding-left:22px; font-size:1.0625rem; line-height:1.8 }
.image-dialog { padding:12px; background:var(--paper); border:0; width:min(1100px,94vw); max-height:90vh; max-height:90dvh; overflow:auto }
.image-dialog::backdrop { background:#152018ed }
.image-dialog>img { width:100%; max-height:80vh; object-fit:contain }
.dialog-close { position:absolute; right:18px; top:18px; background:var(--white); border:1px solid #78846f; width:52px; height:52px; font-size:2rem }
.editorial-layout { display:grid; grid-template-columns:1.5fr .7fr; gap:64px; padding-bottom:80px; align-items:start }
.editorial-aside { border:1px solid var(--line); min-width:0 }
.editorial-aside>img { width:100%; aspect-ratio:1; object-fit:cover }
.editorial-aside>div { padding:28px }
.editorial-aside h3 { font:400 1.875rem/1.3 var(--serif) }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px }
.contact-card,.address-card { padding:40px; background:var(--white); border:1px solid var(--line); min-width:0 }
.contact-card>a:not(.button) { display:flex; align-items:center; min-height:52px; font-size:clamp(1.375rem,1rem + 1vw,1.875rem); line-height:1.6; overflow-wrap:anywhere }
.contact-card .button { margin-top:28px }
.contact-subtitle { margin-top:28px }
.address-card { background:#e6e9df; overflow:hidden; position:relative }
.address-card h2 { font-size:2rem; line-height:1.35 }
.address-card>p:not(.eyebrow) { font-size:1.0625rem; color:var(--muted) }
.map-illustration { height:185px; position:relative; margin:30px -40px -40px; background:repeating-linear-gradient(0deg,transparent 0,transparent 38px,#b8c4ac 39px,#b8c4ac 40px),repeating-linear-gradient(90deg,#d4ddca 0,#d4ddca 70px,#b8c4ac 71px,#b8c4ac 72px); overflow:hidden }
.map-road { position:absolute; height:14px; background:#eeeee2; border:1px solid #bec4b6; width:140%; transform:rotate(-24deg); top:65px; left:-30px }
.road-two { transform:rotate(35deg); top:110px }
.road-three { transform:rotate(-24deg); top:160px }
.map-point { position:absolute; left:54%; top:50px; background:var(--ink); color:var(--white); padding:12px; border-radius:50%; font-size:1rem }
.map-caption { position:absolute; bottom:10px; left:16px; right:16px; font-size:.75rem; line-height:1.5; color:#30412f }
.legal-section { display:grid; grid-template-columns:1fr 1.2fr; gap:64px }
.legal-section>div>p:not(.eyebrow) { font-size:1.125rem; color:var(--muted) }
.legal-details { font-size:1.0625rem; overflow-wrap:anywhere; margin:0 }
.legal-details>div { display:grid; grid-template-columns:.7fr 1fr; padding:16px 0; gap:24px; border-bottom:1px solid var(--line) }
.legal-details dt { color:var(--muted) }
.legal-details dd { margin:0; min-width:0 }
.project-detail { padding-bottom:80px }
.project-cover { width:100%; max-height:700px; object-fit:cover; background:var(--soft) }
.project-detail>.prose { margin-block:40px }
.project-extra-gallery { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:40px }
.offer-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px }
.offer-card { padding:36px; background:var(--soft); min-width:0 }
.offer-percent { font:4rem/1 var(--serif); color:#4f603f }
.offer-card h2 { font-size:2.25rem; margin-top:24px }
.offer-card p { font-size:1.0625rem }
.calculator-layout { display:grid; grid-template-columns:1.2fr 1fr; gap:48px; align-items:start }
.calculator-layout>* { min-width:0 }
.calculator-form fieldset { border:0; margin:0 0 28px; padding:24px 0 4px; border-top:1px solid var(--line); min-width:0 }
.calculator-form legend { font-size:1.375rem; font-weight:600; padding:0 14px 0 0; line-height:1.5 }
.calculator-form legend>span { font-size:1rem; color:var(--gold); margin-right:10px }
.field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px }
.field-grid.three { grid-template-columns:repeat(3,minmax(0,1fr)) }
.field { margin-bottom:22px; min-width:0 }
.field-hint { font-size:1rem; color:var(--muted); line-height:1.65; display:block; margin-top:9px }
.check-option { border-top:1px solid var(--line); padding-top:12px; margin-top:12px }
.check-option label { display:flex; align-items:flex-start; gap:14px; padding-block:10px; min-height:48px; font-size:1.125rem; cursor:pointer }
.check-option small { display:block; font-size:1rem; margin-top:6px }
.check-option input { margin-top:4px }
.promo-field { margin-top:24px }
.calculator-form>.button { width:100% }
.calculator-form>.small { margin-top:16px }
.estimate-panel { background:var(--dark); color:var(--white); padding:32px; border-radius:var(--radius) }
.estimate-panel>.eyebrow { color:#d4d9ca }
.estimate-empty { padding:12px 0 24px }
.estimate-empty svg { color:var(--brass); width:40px; height:40px; margin-bottom:24px }
.estimate-empty h2 { font-size:2.5rem }
.estimate-empty p { font-size:1.125rem; color:#d2dbcc }
.estimate-range>span { font-size:1rem; color:#d2dbcc; display:block }
.estimate-range strong { font:400 clamp(1.875rem,1.5rem + 1vw,2.75rem)/1.25 var(--serif); display:block; margin-block:20px 12px; overflow-wrap:anywhere }
.estimate-range>p { font-size:1.125rem; color:#e1e6d9 }
.estimate-lines { border-top:1px solid #697462; font-size:1rem; padding-top:8px }
.estimate-lines>div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 18px; padding:10px 0 }
.estimate-lines dt { color:#d2dbcc; flex:1 1 160px }
.estimate-lines dd { margin:0; white-space:nowrap; font-variant-numeric:tabular-nums }
.estimate-submit { width:100%; margin-top:12px }
.estimate-panel .small { color:#ced8c5; font-size:1rem; margin-top:16px }
.estimate-disclaimer { font-size:1rem; line-height:1.7; color:#d2dbcc; border-top:1px solid #697462; padding-top:22px; margin-top:26px }
.demo-notice { font-size:1rem; line-height:1.65; color:#f0d9b2; background:#ffffff08; padding:16px; border-left:3px solid #c6aa7b }
.estimate-custom-link { display:inline-flex; align-items:center; min-height:48px; font-size:1rem; text-decoration:underline; text-underline-offset:4px; color:#edf0e5 }
.print-button { color:#e0e6d5; font-size:1rem; margin-top:12px }
.promo-message { font-size:1rem; color:#e4c697 }
.info-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; border-top:1px solid var(--line); padding-top:32px }
.info-columns h3 { font-size:1.25rem }
.info-columns p { color:var(--muted); font-size:1.0625rem }
.form-errors { background:#f5e5df; color:#70291c; border-left:4px solid #a94b38; padding:20px; margin-bottom:24px; font-size:1rem; overflow-wrap:anywhere }
.form-errors p { margin-block:8px }
.form-errors ul { padding-left:20px }
.form-errors .small { color:inherit }
.request-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:64px; padding-block:56px 80px; align-items:start }
.request-layout>* { min-width:0 }
.request-intro h1 { font-size:clamp(2.5rem,2rem + 2vw,4.25rem) }
.request-intro>.intro { max-width:32em }
.request-context { padding:24px; background:var(--soft); margin-top:24px; font-size:1rem }
.request-context>* { display:block; margin-bottom:8px }
.request-context strong { font:400 1.75rem/1.3 var(--serif); overflow-wrap:anywhere }
.request-context a { min-height:44px; padding:10px 0; font-size:1rem; text-decoration:underline; text-underline-offset:4px }
.direct-contact { margin-block:32px }
.direct-contact>p { font-size:1rem; color:var(--muted); margin-bottom:10px }
.direct-contact a { display:flex; align-items:center; min-height:48px; font-size:clamp(1.375rem,1.1rem + .7vw,1.75rem); overflow-wrap:anywhere }
.direct-contact .contact-email { font-size:1.125rem; margin-top:6px }
.request-art { max-width:500px; background:var(--soft) }
.request-art img { aspect-ratio:5/3; object-fit:cover }
.lead-form { background:var(--white); padding:32px; border:1px solid var(--line); border-radius:var(--radius) }
.lead-form-title { font-size:1.5rem; font-family:var(--sans); font-weight:600; letter-spacing:0; line-height:1.4; margin-bottom:8px }
.lead-form .contact-method-field { margin-bottom:24px }
.optional-fields { margin-bottom:24px; border-block:1px solid var(--line) }
.optional-fields summary { cursor:pointer; padding:16px 0; font-size:1rem; min-height:52px }
.optional-fields[open] summary { margin-bottom:10px }
.upload-field { padding:20px; border:1px dashed #78896d; background:#f4f5ee; margin-block:12px 24px }
.upload-field label { display:flex; flex-direction:column; align-items:center; gap:10px; cursor:pointer; margin-bottom:16px; text-align:center }
.upload-field svg { color:var(--gold) }
.upload-field label strong { font-size:1.125rem }
.upload-field label span { font-size:1rem; color:var(--muted) }
.upload-field input[type=file] { font-size:1rem; padding:8px; background:var(--white); overflow:hidden }
.upload-field input::file-selector-button { border:0; padding:12px; min-height:44px; background:#dce3d3; font:inherit; cursor:pointer; margin-right:10px; color:var(--ink) }
.upload-field .field-hint { font-size:1rem; margin-bottom:0 }
.honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden }
.math-check { max-width:260px }
.consent-label { display:flex; gap:14px; align-items:flex-start; font-size:1rem; font-weight:400; line-height:1.7; color:var(--muted); margin-block:24px; cursor:pointer; padding-block:6px }
.consent-label a { text-decoration:underline; text-underline-offset:3px }
.lead-form>.small { font-size:1rem; margin:16px 0 }
.captcha-placeholder { min-height:100px; max-width:100% }
.thank-you { padding-block:80px 100px; text-align:center; max-width:900px }
.thank-you>p:not(.eyebrow) { color:var(--muted); font-size:1.125rem; margin-inline:auto; max-width:620px }
.thank-you p>a { text-decoration:underline }
.thank-you>.button { margin-top:20px }
.success-symbol { display:grid; place-items:center; width:72px; height:72px; margin:0 auto 30px; border:1px solid #798b6b; color:#455f3a; border-radius:50%; font-size:2rem }
.is-loading { opacity:.7 }
/* Useful landing content, without duplicate city pages or heavy widgets. */
.category-landing { display:grid; grid-template-columns:1.2fr .8fr; gap:48px; align-items:center; padding-block:40px 48px }
.category-landing h1 { font-size:clamp(2.5rem,1.75rem + 2.75vw,4.25rem) }
.category-landing .intro { max-width:38em }
.category-landing-visual { position:relative; background:var(--soft); aspect-ratio:4/3; overflow:hidden }
.category-landing-visual img { width:100%; height:100%; object-fit:cover }
.category-landing .small { margin-top:18px; margin-bottom:0 }
.category-brief { display:grid; grid-template-columns:1fr 1fr; gap:48px; padding:36px; border:1px solid var(--line); background:var(--white); margin-top:40px }
.category-brief h2 { font-size:2rem }
.checklist { list-style:none; padding:0; margin:0; font-size:1.0625rem }
.checklist li { display:flex; align-items:flex-start; gap:12px; padding:10px 0; border-bottom:1px solid var(--line) }
.checklist li::before { content:'✓'; font-weight:600; color:#435d37; flex-shrink:0 }
.planning-section { background:#e6eade; border-block:1px solid var(--line) }
.planning-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px }
.planning-grid article { padding-top:24px; border-top:1px solid #abb7a0 }
.planning-grid h3 { font-size:1.375rem }
.planning-grid p { font-size:1.125rem; color:var(--muted) }
.planning-grid .step-number { font-size:2rem; margin-bottom:18px }
.regional-note { display:flex; gap:32px; align-items:center; justify-content:space-between; border-top:1px solid #abb7a0; margin-top:32px; padding-top:28px }
.regional-note p { font-size:1.0625rem; max-width:58ch; margin:0 }
.regional-note .button { flex-shrink:0 }
.compare-details { margin-block:20px 32px; border-block:1px solid var(--line) }
.compare-details>summary { min-height:56px; padding:18px 0; font-weight:600; cursor:pointer }
.compare-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-bottom:28px }
.compare-card { background:var(--white); padding:24px; border:1px solid var(--line); min-width:0 }
.compare-card h2 { font-size:1.875rem }
.compare-card dl { font-size:1rem }
.compare-card dt { color:var(--muted); margin-top:16px }
.compare-card dd { margin:4px 0 0; overflow-wrap:anywhere }
/* Motion never hides content and never delays the first screen. */
@media(hover:hover) and (pointer:fine) {
  .button:hover { background:#36483b; color:var(--white); transform:translateY(-2px) }
  .button-light:hover { background:#e1dfd3; color:var(--ink) }
  .button-outline:hover { background:#e0e5d7; color:var(--ink) }
  .desktop-nav a:hover::after { transform:scaleX(1) }
  .tags a:hover,.category-tabs a:not(.active):hover { background:#dce2d2 }
  .product-card:hover .product-picture img,.category-card:hover img,.project-card:hover img { transform:scale(1.025) }
  .hero-art:hover .hero-image { transform:scale(1.02) }
  .footer a:hover,.breadcrumbs a:hover { text-decoration:underline; text-underline-offset:4px }
}
@media(prefers-reduced-motion:no-preference) {
  .is-revealing { animation:section-enter .38s ease-out }
  @keyframes section-enter { from { transform:translateY(10px); opacity:.85 } to { transform:none; opacity:1 } }
}
@media(any-pointer:coarse) { .tags a { min-height:48px } }
/* Break at available space, not at a particular phone brand. */
@media(min-width:1500px) { .header-phone { display:block } .header-actions .header-quote { display:inline-flex } .hero-art { min-height:640px } }
@media(max-width:1250px) {
  :root { --header-height:84px }
  .wrap { width:calc(100% - 64px) }
  .desktop-nav { display:none }
  .menu-toggle { display:flex; gap:8px }
  .header-actions .header-quote { display:inline-flex }
  .hero { gap:32px }
  .hero h1 { font-size:clamp(3rem,5vw,4.5rem) }
  .hero-art { min-height:560px }
  .hero-description { font-size:1.125rem }
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px }
  .process-grid,.project-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .footer-top { grid-template-columns:1fr 1fr; gap:40px }
  .calculator-layout,.product-detail { gap:32px }
  .field-grid.three { grid-template-columns:1fr 1fr }
  .field-grid.three>div:last-child { grid-column:1/-1 }
  .request-layout,.editorial-layout { gap:36px }
  .lead-form .field-grid { grid-template-columns:1fr; gap:0 }
  .custom-banner>div:last-child { padding:36px }
  .compare-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media(max-width:1000px) {
  .header-phone { display:none }
  .hero,.category-landing { grid-template-columns:1fr; gap:30px }
  .hero h1 { font-size:clamp(3rem,6.5vw,4.5rem) }
  .hero-copy { padding:0 }
  .hero-description { font-size:1.25rem; max-width:42em }
  .hero-foot { margin-top:24px }
  .hero-art { min-height:0; aspect-ratio:1.7; max-height:540px }
  .category-landing-visual { aspect-ratio:2; max-height:400px }
  .assurance-strip { grid-template-columns:1fr 1fr; gap:24px }
  .assurance-strip>div:nth-child(2) { border-right:0 }
  .assurance-strip>a { justify-self:start }
  .section { padding-block:64px }
  .section-heading { align-items:flex-start; gap:32px }
  .section-heading>p,.section-heading>div:nth-child(2) { max-width:45% }
  .calculator-layout,.request-layout { grid-template-columns:1fr; gap:32px }
  .request-intro>.intro { max-width:40em }
  .request-art { display:none }
  .lead-form .field-grid { grid-template-columns:1fr 1fr; gap:20px }
  .field-grid.three { grid-template-columns:repeat(3,minmax(0,1fr)) }
  .field-grid.three>div:last-child { grid-column:auto }
  .product-detail { grid-template-columns:1fr 1fr; gap:28px }
  .specs>div { grid-template-columns:1fr; gap:5px }
  .faq-section,.product-description,.legal-section { grid-template-columns:1fr; gap:32px }
  .faq-section>div:first-child>p:not(.eyebrow) { max-width:40em }
  .closing-inner,.regional-note { flex-direction:column; align-items:flex-start; gap:24px }
  .editorial-layout { grid-template-columns:1.4fr .7fr }
  .editorial-aside>div { padding:20px }
  .contact-card,.address-card { padding:28px }
  .map-illustration { margin-inline:-28px; margin-bottom:-28px }
  .planning-grid,.info-columns { gap:24px }
  .section-topless { padding-top:0 }
}
@media(max-width:760px) {
  :root { --header-height:80px; --text:1.0625rem }
  .wrap { width:calc(100% - 40px) }
  .header-phone,.header-actions .header-quote { display:none }
  .header-inner { gap:12px }
  .header-actions { gap:4px }
  .topline a { display:none }
  .topline .wrap { min-height:36px; padding-block:6px; font-size:.875rem }
  .brand img { width:50px; height:auto }
  .brand { gap:10px }
  .brand>span { font-size:.8125rem; padding-left:10px }
  .brand-city { font-size:.75rem }
  body { padding-bottom:calc(var(--dock-height) + env(safe-area-inset-bottom,0px)) }
  .mobile-dock { position:fixed; bottom:0; left:0; right:0; z-index:50; display:grid; grid-template-columns:1fr 1fr 1.15fr; gap:8px; min-height:var(--dock-height); background:var(--paper); border-top:1px solid #9da98e; padding:10px max(12px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left)) }
  .mobile-dock>a { display:flex; align-items:center; justify-content:center; flex-direction:column; gap:4px; min-height:64px; padding:6px; font-size:.875rem; font-weight:600; line-height:1.35; border:1px solid #c4cdb9; border-radius:var(--radius); text-align:center }
  .mobile-dock svg { width:22px; height:22px }
  .mobile-dock .dock-primary { background:var(--ink); color:var(--white); border-color:var(--ink); font-size:1rem }
  body.menu-open .mobile-dock,body.input-active .mobile-dock,body.menu-open .cookie-panel { display:none }
  .cookie-panel { left:12px; bottom:calc(var(--dock-height) + 12px + env(safe-area-inset-bottom,0px)); width:calc(100% - 24px); padding:20px; max-height:calc(100vh - var(--dock-height) - 40px); max-height:calc(100dvh - var(--dock-height) - 40px) }
  .toast { bottom:calc(var(--dock-height) + 14px + env(safe-area-inset-bottom,0px)) }
  .hero { padding-top:32px; padding-bottom:30px }
  .hero h1 { font-size:clamp(2.75rem,1.5rem + 5vw,4rem); line-height:1.1 }
  .hero-description { font-size:1.125rem; line-height:1.75 }
  .hero-buttons { display:grid; grid-template-columns:1fr; width:100% }
  .hero-art { aspect-ratio:1.22 }
  .hero-foot { font-size:1rem; gap:16px }
  .art-label { left:18px; top:18px; max-width:calc(100% - 36px) }
  .art-caption { left:22px; right:22px; bottom:54px }
  .art-caption strong { font-size:1.75rem }
  .art-caption>div>span { font-size:.8125rem; letter-spacing:.03em }
  .art-coordinate { left:22px; bottom:16px; font-size:.75rem }
  .section { padding-block:52px }
  .section-heading { display:block; margin-bottom:28px }
  .section-heading h2 { margin-bottom:18px }
  .section-heading>p,.section-heading>div:nth-child(2) { max-width:100%; font-size:1.125rem }
  .product-grid,.project-grid { grid-template-columns:1fr; gap:28px }
  .product-card-body { padding:24px }
  .product-card-actions { grid-template-columns:1fr 1fr }
  .category-grid { gap:24px 18px }
  .category-card>div:last-child { gap:8px }
  .category-card h3 { font-size:1.375rem }
  .category-card .small-index { display:none }
  .category-image { aspect-ratio:1.15 }
  .custom-banner { grid-template-columns:1fr }
  .custom-drawing { max-height:320px }
  .custom-banner>div:last-child { padding:28px }
  .process-grid { gap:28px 24px }
  .closing { padding-block:48px }
  .footer { padding-top:48px }
  .footer-top { gap:32px; grid-template-columns:1fr 1fr }
  .footer-top>div:first-child,.footer-top>div:last-child { grid-column:1/-1 }
  .footer-top>div:last-child { border-top:1px solid var(--line); padding-top:24px }
  .footer-bottom>div { gap:8px 20px }
  .footer-top .footer-phone { font-size:1.5rem!important }
  .page-heading { padding-block:36px 28px }
  .page-heading>p:last-child { font-size:1.125rem }
  .breadcrumbs { padding-top:12px }
  .catalog-section { padding-bottom:52px }
  .catalog-filters { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:20px }
  .catalog-filters .search-field { grid-column:1/-1 }
  .catalog-filters>div { min-width:0 }
  .category-tabs { gap:8px }
  .category-tabs a { padding:10px 14px }
  .product-detail { grid-template-columns:1fr; gap:28px; padding-top:24px }
  .gallery-main { aspect-ratio:1.2 }
  .specs>div { grid-template-columns:.7fr 1fr; gap:16px }
  .prose { font-size:1.125rem }
  .editorial-layout { display:block; padding-bottom:52px }
  .editorial-aside { margin-top:32px; display:grid; grid-template-columns:.7fr 1fr; align-items:center }
  .contact-grid,.offer-grid,.project-extra-gallery { grid-template-columns:1fr }
  .legal-details>div { grid-template-columns:1fr; gap:6px }
  .request-layout { padding-block:36px 52px }
  .lead-form { padding:24px }
  .lead-form .field-grid { grid-template-columns:1fr; gap:0 }
  .field-grid.three { grid-template-columns:1fr 1fr }
  .field-grid.three>div:last-child { grid-column:1/-1 }
  .estimate-panel { padding:28px }
  .estimate-range strong { font-size:clamp(1.875rem,1.25rem + 3vw,2.75rem) }
  .info-columns,.planning-grid { grid-template-columns:1fr; gap:20px }
  .planning-grid p { margin-bottom:0 }
  .category-landing { gap:28px; padding-block:32px 36px }
  .category-landing-visual { aspect-ratio:1.6 }
  .category-brief { grid-template-columns:1fr; gap:24px; padding:28px }
  .compare-grid { grid-template-columns:1fr }
  .thank-you { padding-block:56px 64px }
  .section-topless { padding-top:0 }
}
@media(max-width:420px) {
  .wrap { width:calc(100% - 32px) }
  .brand img { width:42px }
  .brand>span { font-size:.75rem; letter-spacing:0; padding-left:8px }
  .brand-city { display:none }
  .menu-toggle { flex-direction:column; gap:0; padding:6px; font-size:.75rem }
  .menu-toggle .menu-label { font-size:.75rem }
  .header-inner { gap:8px }
  .header-actions { gap:0 }
  .hero h1 { font-size:2.75rem }
  .hero-art { aspect-ratio:1 }
  .art-caption strong { font-size:1.5rem }
  .art-caption { gap:10px; left:18px; right:18px }
  .art-caption>div>span { letter-spacing:0; font-size:.75rem }
  .assurance-strip { gap:18px 14px }
  .assurance-strip>div { border:0; padding:0; gap:10px; align-items:flex-start }
  .assurance-strip>div>span { display:none }
  .assurance-strip p,.assurance-strip>a { font-size:1rem }
  .category-grid { grid-template-columns:1fr }
  .category-card .small-index { display:block }
  .category-image { aspect-ratio:1.7 }
  .category-card h3 { font-size:1.6rem }
  .product-card-body { padding:20px }
  .product-card-actions { grid-template-columns:1fr }
  .catalog-filters,.field-grid,.field-grid.three { grid-template-columns:1fr }
  .catalog-filters .search-field,.field-grid.three>div:last-child { grid-column:auto }
  .catalog-filters { padding:18px }
  .process-grid,.footer-top { grid-template-columns:1fr }
  .cookie-panel { padding:16px }
  .cookie-buttons { grid-template-columns:1fr; gap:8px }
  .button { padding-inline:18px }
  .lead-form,.estimate-panel,.category-brief,.empty-state { padding:20px }
  .upload-field { padding:14px }
  .specs>div { grid-template-columns:1fr; gap:5px }
  .editorial-aside { grid-template-columns:1fr }
  .editorial-aside>img { max-height:200px }
  .contact-card,.address-card { padding:24px }
  .map-illustration { margin-inline:-24px; margin-bottom:-24px }
}
@media(max-width:340px) {
  .wrap { width:calc(100% - 24px) }
  .brand>span { max-width:145px; overflow-wrap:anywhere }
  .hero h1 { font-size:2.5rem }
  .mobile-dock { padding-inline:8px; gap:6px }
  .mobile-dock>a { font-size:.8125rem }
  .mobile-dock .dock-primary { font-size:.9375rem }
}
@media(max-height:540px) and (max-width:1000px) {
  .header { position:relative }
  .mobile-dock { position:static }
  body { padding-bottom:0 }
  .cookie-panel { bottom:12px; max-height:calc(100dvh - 24px) }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto }
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important }
  .button,.hero-image,.product-picture img,.category-image img,.project-picture img { transform:none!important }
}
@media(prefers-contrast:more) { :root { --muted:#29382a; --line:#7a8670 } .button-outline,.tags a,.category-tabs a { border-width:2px } }
@media print {
  body { background:white; color:#000; padding:0 }
  .topline,.header,.footer,.closing,.mobile-dock,.cookie-panel,.toast,.calculator-form,.estimate-submit,.print-button,.estimate-custom-link,.info-columns { display:none!important }
  .wrap { width:100% }
  .page-heading { padding:20px 0 }
  .page-heading h1 { font-size:2rem }
  .calculator-layout { display:block }
  .estimate-panel { position:static; background:white; color:black; border:1px solid #aaa; padding:24px }
  .estimate-panel * { color:#222!important }
  .estimate-lines,.estimate-disclaimer { border-color:#aaa }
  .demo-notice { background:#eee; border-left:2px solid #777 }
  .estimate-range strong { font-size:2rem }
  .section { padding:16px 0 }
  a { text-decoration:none }
}
