@font-face { font-family: "Kontur Sans"; src: url("fonts/NotoSans-Regular.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Kontur Sans"; src: url("fonts/NotoSans-Bold.ttf") format("truetype"); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: "Kontur Display"; src: url("fonts/NotoSans-CondensedExtraBold.ttf") format("truetype"); font-style: normal; font-weight: 800; font-display: swap; }
:root {
  --ink: #171916;
  --paper: #f4f4f1;
  --paper-deep: #e4e3dd;
  --rust: #8a3c28;
  --rust-dark: #6d2e1f;
  --muted: #4e534c;
  --dark-muted: #d6d7d1;
  --line: rgba(23, 25, 22, .30);
  --white: #fffdf8;
  --error: #8f1711;
  --max: 1280px;
  --gutter: clamp(20px, 4vw, 48px);
  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 24px;
  --s6: 32px; --s7: 48px; --s8: 64px; --s9: 80px; --s10: 120px;
  --radius-control: 4px;
  --radius-surface: 8px;
  --ease: cubic-bezier(.22, 1, .36, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 17px/1.65 "Kontur Sans", Arial, sans-serif; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { text-decoration-thickness: .13em; }
img { display: block; max-width: 100%; outline: 1px solid rgba(0,0,0,.1); outline-offset: -1px; }
button, input, textarea { font: inherit; }
:focus-visible { outline: 3px solid #e98668; outline-offset: 4px; }
button:disabled, input:disabled, textarea:disabled { cursor: not-allowed; opacity: .55; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 100; padding: 12px 18px; background: var(--white); color: var(--ink); }
.skip-link:focus { top: 16px; }

.site-header { position: absolute; inset: 0 0 auto; z-index: 10; min-height: 88px; display: flex; align-items: center; gap: clamp(18px,2vw,34px); padding: 0 max(var(--gutter),calc((100vw - var(--max))/2)); color: var(--white); border-bottom: 1px solid rgba(255,255,255,.22); background: rgba(15,17,14,.96); }
.brand { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-decoration: none; }
.brand-mark { width: 29px; height: 18px; color: #b95538; border-top: 4px solid currentColor; border-right: 4px solid currentColor; transform: skewY(-25deg); }
.nav { margin-left: auto; display: flex; align-items: center; gap: clamp(14px, 1.8vw, 28px); }
.nav a { min-height: 44px; display: inline-flex; align-items: center; font-size: 15px; font-weight: 700; text-decoration: none; transition: color .2s var(--ease); }
.nav a:hover { color: #f1b8a5; }
.nav a:active { color: #e98668; }
.nav a[aria-current="page"] { color: #f1b8a5; box-shadow: inset 0 -2px 0 var(--rust); }
.menu-button { display: none; margin-left: auto; min-width: 54px; min-height: 44px; color: inherit; border: 1px solid rgba(255,255,255,.4); border-radius: var(--radius-control); background: transparent; cursor: pointer; }
.header-contact{display:grid;line-height:1.2;white-space:nowrap}.header-contact a{font-size:15px;font-weight:700;text-decoration:none}.header-contact span{font-size:11px;color:var(--dark-muted)}
.header-action{min-height:44px;display:inline-flex;align-items:center;padding:0 18px;background:var(--rust);color:var(--white);border-radius:var(--radius-control);font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap;transition:background .2s var(--ease),scale .2s var(--ease)}.header-action:hover{background:var(--rust-dark)}.header-action:active{scale:.96}

.hero { position: relative; min-height: 100svh; display: grid; align-items: end; isolation: isolate; overflow: hidden; color: var(--white); }
.hero-image, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-image { z-index: -3; object-fit: cover; object-position: center 55%; }
.hero-shade { z-index: -2; background: linear-gradient(90deg, rgba(8,10,8,.9) 0%, rgba(8,10,8,.52) 46%, rgba(8,10,8,.08) 80%), linear-gradient(0deg, rgba(8,10,8,.75), transparent 52%); }
.hero-copy { width: min(calc(100% - 2 * var(--gutter)), var(--max)); margin: 0 auto; padding: 150px 0 clamp(88px, 11vh, 130px); }
.hero-context, .section-number { margin: 0 0 26px; font-size: 12px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.hero-context { position: relative; grid-column:1; margin:0; color:var(--dark-muted); font-size:14px; font-weight:400; letter-spacing:0; text-transform:none; }
.hero-context::before { display:none; }
.hero h1 { max-width: 920px; margin: 0; font-family: "Kontur Display", sans-serif; font-size: clamp(3.5rem, 7.2vw, 6rem); font-weight: 800; line-height: .96; letter-spacing: -.035em; text-transform: uppercase; text-wrap: balance; }
.hero-bottom { display: grid; grid-template-columns: minmax(280px, 650px) auto; align-items: start; gap: 18px clamp(30px,6vw,96px); margin-top: 42px; }
.hero-bottom p { margin: 0; font-size: clamp(1rem, 1.4vw, 1.25rem); }
.hero-inline-link { width: fit-content; min-height: 52px; display: inline-flex; align-items: center; justify-content:center; padding:0 24px; color: var(--ink); background:var(--white); border:2px solid var(--white); border-radius:var(--radius-control); font-size: 15px; font-weight: 700; text-decoration:none; transition:color .2s var(--ease),background .2s var(--ease),scale .2s var(--ease); }
.hero-inline-link:hover { color:var(--white); background:transparent; }
.hero-inline-link:active { scale:.96; }
.hero-inline-link span { color: #f1b8a5; }
.scroll-note { position: absolute; right: clamp(20px, 4vw, 64px); bottom: 30px; min-height: 44px; display: flex; align-items: center; font-size: 12px; text-decoration: none; text-transform: uppercase; letter-spacing: .08em; }
.hero-image-note { position:absolute; z-index:-1; right:var(--gutter); bottom:24px; margin:0; color:rgba(255,255,255,.78); font-size:11px; letter-spacing:.04em; text-transform:uppercase; }

.button { min-height: 52px; display: inline-flex; justify-content: center; align-items: center; width: fit-content; padding: 0 24px; border: 2px solid currentColor; border-radius: var(--radius-control); font-size: 15px; font-weight: 700; text-decoration: none; white-space:nowrap; cursor: pointer; transition: color .2s var(--ease), background .2s var(--ease), border-color .2s var(--ease), scale .2s var(--ease); }
.button:active { scale:.96; }
.button-light { background: var(--white); color: var(--ink); border-color: var(--white); }
.button-light:hover { background: transparent; color: var(--white); }
.button-dark { background: var(--ink); color: var(--white); border-color: var(--ink); }
.button-dark:hover { background: var(--rust); border-color: var(--rust); }
.button-dark:active { background: var(--rust-dark); border-color: var(--rust-dark); }

.proof-strip { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--line); }
.proof-strip p { min-height: 78px; margin: 0; padding: 20px clamp(18px, 3vw, 42px); display: flex; align-items: center; gap: 16px; border-right: 1px solid var(--line); font-size: 14px; font-weight:700; }
.proof-strip p:last-of-type { border-right: 0; }
.proof-cta { min-height: 78px; padding: 14px clamp(18px, 2.5vw, 34px); display: flex; flex-direction: column; justify-content: center; background: var(--rust); color: var(--white); text-decoration: none; transition: background .2s var(--ease); }
.proof-cta:hover { background: var(--rust-dark); }
.proof-cta span { font-size: 14px; font-weight: 700; }
.proof-cta small { margin-top: 4px; color: #f3d8cf; font-size: 11px; }
.section-shell { width: min(calc(100% - 2 * var(--gutter)), var(--max)); margin-inline: auto; }
.services { padding: clamp(90px, 12vw, 170px) 0; }
.service-intro { display: grid; grid-template-columns: minmax(480px, 1.25fr) minmax(320px, .75fr); gap: clamp(32px, 5vw, 84px); align-items: start; margin-bottom: 92px; }
.service-intro h2 { max-width: 14ch; font-size: clamp(2.5rem, 3.8vw, 4rem); }
.section-number { color: var(--rust); }
h2 { max-width:16ch; margin: 0; font-family: "Kontur Display", sans-serif; font-size: clamp(2.25rem, 4.5vw, 4.75rem); font-weight: 800; line-height: 1.02; letter-spacing: -.035em; text-wrap: balance; }
h3 { text-wrap: balance; }
p, li { text-wrap: pretty; }
.intro-copy { margin: 5px 0 0; font-size: 17px; }
.service-list { margin-left: 25%; border-top: 1px solid var(--line); }
.service-list article { display: grid; grid-template-columns: 1fr 1.2fr; column-gap: 38px; padding: 34px 20px 30px; margin-inline:-20px; border-bottom: 1px solid var(--line); transition:background-color .2s var(--ease); }
.service-list article:hover { background-color:rgba(255,255,255,.58); }
.service-list h3 { margin: 0; font-size: clamp(1.35rem, 2vw, 2rem); line-height: 1.1; }
.service-list p { margin: 0; max-width: 540px; }
.service-list a { grid-column: 2; margin-top: 18px; width: fit-content; min-height: 44px; display: flex; align-items: center; font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.all-services-link { margin: 30px 0 0 25%; min-height: 48px; width: fit-content; display: inline-flex; align-items: center; gap: 12px; font-weight: 700; text-underline-offset: 5px; }
.all-services-link span { color: var(--rust); }

.inspection { display: grid; grid-template-columns: 1fr 1fr; min-height: 900px; background: var(--ink); color: var(--white); }
.inspection-photo { position: relative; margin: 0; min-height: 750px; }
.inspection-photo img { width: 100%; height: 100%; object-fit: cover; }
.inspection-photo figcaption { position: absolute; left: 22px; right: 22px; bottom: 22px; padding: 12px 14px; background: rgba(14,16,14,.94); border-radius:var(--radius-control); font-size: 13px; }
.inspection-copy { align-self: center; padding: clamp(60px, 8vw, 130px); }
.inspection-copy > p:not(.section-number) { max-width: 590px; margin: 34px 0 62px; font-size: 19px; color: var(--dark-muted); }
.inspection dl { margin: 0; border-top: 1px solid rgba(255,255,255,.24); }
.inspection dl div { display: grid; grid-template-columns: 140px 1fr; gap: 25px; padding: 20px 0; border-bottom: 1px solid rgba(255,255,255,.24); }
.inspection dt { font-weight: 700; }
.inspection dd { margin: 0; color: var(--dark-muted); }

.estimate { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(50px, 9vw, 150px); padding: clamp(100px, 13vw, 180px) 0; }
.estimate-body > p { margin: 41px 0 48px; font-size: 19px; }
.estimate-body ul { list-style: none; margin: 0 0 42px; padding: 0; border-top: 1px solid var(--line); }
.estimate-body li { padding: 18px 0; border-bottom: 1px solid var(--line); }

.layers { position: relative; min-height: min(82vw, 950px); display: flex; align-items: end; color: var(--white); background: var(--ink); overflow: hidden; }
.layers > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.layers::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8,10,8,.9), rgba(8,10,8,.05) 68%); }
.layers-caption { position: relative; z-index: 1; width: min(100% - 40px, var(--max)); margin: 0 auto; padding-bottom: clamp(60px, 8vw, 110px); display: grid; grid-template-columns: 1fr 3fr; gap: 30px; align-items: end; }
.layers-caption p { margin: 0; font-size: 12px; font-weight: 700; text-transform: uppercase; }
.layers-caption h2 { max-width: 950px; }

.process { padding: clamp(100px, 13vw, 180px) 0; }
.process header { display: grid; grid-template-columns: minmax(0, 780px); gap: 30px; margin-bottom: 80px; }
.process header h2 { max-width: 16ch; font-size: clamp(2.5rem, 3.8vw, 4rem); }
.process ol { margin: 0 0 0 25%; padding: 0; list-style: none; border-top: 1px solid var(--line); counter-reset:process; }
.process li { display: grid; grid-template-columns:56px 1fr 1.5fr 1fr; gap: 25px; align-items: start; padding: 28px 0; border-bottom: 1px solid var(--line); counter-increment:process; }
.process li::before { content:counter(process, decimal-leading-zero); color:var(--rust); font-size:14px; font-weight:700; font-variant-numeric:tabular-nums; }
.process li > span { color: var(--rust); font-size: 12px; font-weight: 700; }
.process h3, .process p, .process b { margin: 0; }
.process h3 { font-size: 21px; }
.process b { font-size: 13px; }

.limits { display: grid; grid-template-columns: 1fr 1fr; background: var(--paper-deep); }
.limits-image { min-height: 760px; }
.limits-image img { width: 100%; height: 100%; object-fit: cover; }
.limits-copy { align-self: center; padding: clamp(60px, 8vw, 130px); }
.limits-copy > p:not(.section-number) { max-width: 610px; margin: 40px 0 0; font-size: 18px; }
.limits-note { padding: 24px 0 0; border-top: 1px solid var(--line); font-weight: 700; }

.contact { display: grid; grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr); gap: clamp(55px, 8vw, 120px); padding: clamp(100px, 13vw, 180px) 0; align-items: start; }
.contact-copy > p:not(.section-number) { max-width: 610px; margin: 36px 0; font-size: 18px; }
.contact-status { padding-top: 22px; border-top: 1px solid var(--line); font-size: 14px !important; }
.contact-form { position: relative; display: grid; gap: 22px; margin-top: 54px; padding: 40px; background: var(--paper-deep); border-radius:var(--radius-surface); box-shadow:0 18px 32px -28px rgba(23,25,22,.7); }
.contact-form::before { content: "ЗАЯВКА НА ОЦЕНКУ"; position: absolute; left: 40px; top: -32px; color: var(--rust); font-size: 11px; font-weight: 700; letter-spacing: .09em; }
.contact-form label:not(.consent) { display: grid; gap: 8px; font-size: 15px; font-weight: 700; }
.form-note { margin:0 0 4px; max-width:48ch; color:var(--muted); }
.contact-form input:not([type="checkbox"]), .contact-form textarea, .contact-form select { width: 100%; min-height: 52px; padding: 12px; color: var(--ink); border: 2px solid #55584f; border-radius: var(--radius-control); background: var(--white); transition:border-color .2s var(--ease),box-shadow .2s var(--ease); }
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus { border-color:var(--rust); box-shadow:0 0 0 3px rgba(138,60,40,.16); }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: #62665e; opacity: 1; }
.contact-form input:hover, .contact-form textarea:hover, .contact-form select:hover { border-color: var(--ink); }
.contact-form textarea { resize: vertical; }
.contact-form input[aria-invalid="true"], .contact-form textarea[aria-invalid="true"] { border-color: var(--error); }
.consent { display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; font-size: 13px; }
.consent input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--rust); }
.form-result { min-height: 24px; margin: 0; font-weight: 700; }
.honeypot { position:absolute!important; width:1px!important; height:1px!important; margin:-1px!important; padding:0!important; overflow:hidden!important; clip:rect(0 0 0 0)!important; clip-path:inset(50%)!important; white-space:nowrap!important; border:0!important; }

.mobile-contact-bar { display:none; }
.analytics-consent { position:fixed; z-index:60; right:18px; bottom:18px; width:min(440px,calc(100% - 36px)); padding:18px; color:var(--white); background:#151714; border:1px solid #4b4e48; box-shadow:0 18px 42px rgba(0,0,0,.3); }
.analytics-consent p { margin:0; font-size:14px; line-height:1.5; }
.analytics-consent div { display:flex; justify-content:flex-end; gap:8px; margin-top:14px; }
.analytics-consent button { min-height:44px; padding:0 16px; color:var(--white); background:transparent; border:1px solid #6b6e67; border-radius:var(--radius-control); cursor:pointer; }
.analytics-consent button:last-child { background:var(--rust); border-color:var(--rust); font-weight:700; }
.leads-content { max-width:980px; }
.leads-list { display:grid; gap:16px; }
.lead-entry { padding:24px; border:1px solid var(--line); background:var(--white); }
.lead-entry-head { display:flex; justify-content:space-between; gap:24px; align-items:start; }
.lead-entry h2 { margin:0; font-size:clamp(1.45rem,3vw,2rem); }
.lead-entry time,.lead-entry dt { color:var(--muted); font-size:13px; }
.lead-entry dl { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:20px 0; }
.lead-entry dl div { min-width:0; }
.lead-entry dd { margin:4px 0 0; overflow-wrap:anywhere; }
.lead-entry p { margin:0; white-space:pre-wrap; }

.footer { background:#151714; color:var(--white); border-top:1px solid #333631; }
.footer-main { width:min(calc(100% - 2 * var(--gutter)),var(--max)); margin-inline:auto; padding:44px 0 38px; display:grid; grid-template-columns:minmax(260px,1.15fr) minmax(190px,.75fr) minmax(280px,1.15fr); gap:clamp(40px,7vw,108px); align-items:start; }
.footer a { color:inherit; text-decoration:none; }
.footer-logo { min-height:44px; display:inline-flex; align-items:center; gap:12px; width:fit-content; font-size:14px; font-weight:700; letter-spacing:.045em; }
.footer-logo .brand-mark { flex:0 0 auto; }
.footer-description { max-width:360px; margin:14px 0 20px; color:var(--dark-muted); font-size:14px; line-height:1.55; }
.footer-description strong,.footer-description span { display:block; }
.footer-description strong { color:var(--white); font-weight:700; }
.footer-cta { min-height:44px; width:fit-content; display:inline-flex; align-items:center; padding:0 17px; border-radius:var(--radius-control); background:var(--rust); font-size:14px; font-weight:700; transition:background-color .2s var(--ease),scale .2s var(--ease); }
.footer-cta:hover { background:var(--rust-dark); }
.footer-cta:active { scale:.96; }
.footer-links,.footer-contact { display:grid; align-content:start; gap:0; }
.footer-links b,.footer-contact>b { min-height:36px; display:flex; align-items:flex-start; color:var(--white); font-size:16px; }
.footer-links a { min-height:44px; width:fit-content; display:flex; align-items:center; color:var(--dark-muted); font-size:14px; line-height:1.8; transition:color .2s var(--ease),transform .2s var(--ease); }
.footer-links a:hover { color:#f1b8a5; transform:translateX(5px); }
.footer-contact { margin:0; font-style:normal; }
.footer-contact p { margin:8px 0 0; color:var(--dark-muted); font-size:14px; line-height:1.5; }
.footer-phone { min-height:44px; width:fit-content; display:inline-flex; align-items:center; gap:10px; font-size:clamp(1.15rem,1.5vw,1.35rem); font-weight:700; transition:color .2s var(--ease); }
.footer-phone:hover { color:#f1b8a5; }
.footer-phone svg { flex:0 0 auto; color:#d36a4d; }
.sub-footer { min-height:50px; padding:0 max(var(--gutter),calc((100vw - var(--max))/2)); display:flex; align-items:center; justify-content:space-between; gap:24px; background:#10110f; color:#aaada6; font-size:13px; }
.sub-footer nav { display:flex; flex-wrap:wrap; align-items:center; gap:8px 28px; }
.sub-footer a { min-height:44px; display:inline-flex; align-items:center; transition:color .2s var(--ease); }
.sub-footer a:hover { color:var(--white); }
/* Cache-safe fallback: old HTML can briefly arrive with the new stylesheet. */
.footer:not(:has(.footer-main)) { padding:40px max(var(--gutter),calc((100vw - var(--max))/2)); display:grid; grid-template-columns:1.2fr .8fr 1fr; gap:clamp(32px,6vw,88px); align-items:start; }
.footer:not(:has(.footer-main)) .footer-brand { min-height:44px; display:inline-flex; align-items:center; color:var(--white); font-weight:800; text-decoration:none; }
.footer:not(:has(.footer-main)) p { margin:12px 0 0; color:var(--dark-muted); font-size:14px; }
.footer:not(:has(.footer-main)) .footer-links,.footer:not(:has(.footer-main)) .footer-meta { display:grid; gap:0; }
.footer:not(:has(.footer-main)) .footer-links a,.footer:not(:has(.footer-main)) .footer-meta a,.footer:not(:has(.footer-main)) .footer-meta span { min-height:44px; display:flex; align-items:center; color:var(--dark-muted); text-decoration:none; }

@media (max-width: 1100px) {
  .site-header { min-height: 68px; }
  .header-contact{display:none}.header-action{margin-left:auto}.menu-button{order:4;margin-left:0}
  .menu-button { display: block; }
  .nav { display: none; position: absolute; z-index: 20; top: 100%; left: 0; right: 0; height: calc(100dvh - 68px); padding: 0 20px; background-color: #151714; flex-direction: column; align-items: stretch; gap: 0; overflow-y: auto; }
  .nav.open { display: flex; background-color: #151714; }
  .nav a { min-height: 64px; padding: 0; flex: 0 0 auto; font-size: 22px; border-bottom: 1px solid rgba(255,255,255,.25); background-color: #151714; }
  .hero-copy { padding-top: 120px; }
  .proof-strip { grid-template-columns: 1fr 1fr; }
  .proof-strip p:nth-child(2) { border-right: 0; }
  .proof-strip p:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .proof-cta { grid-column: 1 / -1; }
  .service-intro, .estimate, .contact { grid-template-columns: 1fr; }
  .service-intro { gap: 20px; }
  .service-list { margin-left: 0; }
  .all-services-link { margin-left: 0; }
  .inspection, .limits { grid-template-columns: 1fr; }
  .inspection-photo, .limits-image { min-height: 640px; }
  .inspection-copy, .limits-copy { padding: 80px 20px; }
  .process ol { margin-left: 0; }
  .process li { grid-template-columns:56px 1fr 1.5fr 1fr; }
  .process li b { grid-column: auto; }
  .footer-main { grid-template-columns:1.1fr .8fr 1fr; gap:36px; }
  .footer:not(:has(.footer-main)) { grid-template-columns:1fr 1fr; }
}

@media (max-width: 620px) {
  .header-action{display:none}
  .button { width: 100%; height: auto; min-height: 52px; padding-block: 12px; white-space: normal; text-align: center; }
  .hero { min-height: 100svh; }
  .hero-image { object-position: 62% center; }
  .hero-shade { background: linear-gradient(0deg, rgba(8,10,8,.92), rgba(8,10,8,.15) 95%); }
  .hero h1 { max-width: none; font-size: clamp(2.25rem, 9.2vw, 3rem); line-height: 1.01; }
  .hero-bottom { grid-template-columns: 1fr; gap: 24px; }
  .hero-context { grid-column:1; order:3; }
  .hero-bottom .button { width: 100%; }
  .scroll-note { display: none; }
  .proof-strip { grid-template-columns: 1fr 1fr; }
  .proof-strip p { border-right: 0; border-bottom: 1px solid var(--line); }
  .proof-strip p:nth-child(odd) { border-right: 1px solid var(--line); }
  .proof-strip p:last-of-type { grid-column: 1 / -1; border-right: 0; }
  .proof-cta { grid-column: 1 / -1; }
  .service-intro { margin-bottom: 58px; }
  .service-intro h2,.process header h2 { font-size:clamp(2.25rem,10vw,3.2rem); }
  .service-list article { grid-template-columns: 1fr; row-gap: 14px; }
  .service-list article p, .service-list article a { grid-column: 1; }
  .inspection-photo, .limits-image { min-height: 520px; }
  .inspection dl div { grid-template-columns: 1fr; gap: 7px; }
  .layers { min-height: 64svh; }
  .layers-caption, .process header { grid-template-columns: 1fr; }
  .process li { grid-template-columns:40px 1fr; }
  .process li h3,.process li p,.process li b { grid-column:2; }
  .process li { gap: 10px 18px; padding: 20px 0; }
  .process li p { font-size: 16px; line-height: 1.55; }
  .contact-form { margin-top: 34px; padding: 30px 20px; }
  .contact-form::before { left: 20px; }
  .contact-form .button { width: 100%; }
  .footer-main { padding:34px 0 30px; grid-template-columns:1fr; gap:28px; }
  .footer-description { margin-block:10px 16px; }
  .footer-links { grid-template-columns:1fr 1fr; column-gap:20px; }
  .footer-links b { grid-column:1 / -1; }
  .sub-footer { padding-block:12px; flex-direction:column; align-items:flex-start; gap:0; }
  .sub-footer nav { gap:0 24px; }
  .footer:not(:has(.footer-main)) { grid-template-columns:1fr; gap:24px; }
  body:not(.leads-page) { padding-bottom:64px; }
  .mobile-contact-bar { position:fixed; z-index:50; inset:auto 0 0; min-height:64px; display:grid; grid-template-columns:1fr 1.25fr; padding:8px max(10px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left)); gap:8px; background:rgba(16,17,15,.97); border-top:1px solid #333631; }
  .mobile-contact-bar a { min-height:48px; display:flex; align-items:center; justify-content:center; padding:8px 12px; color:var(--white); border:1px solid rgba(255,255,255,.45); border-radius:var(--radius-control); font-size:14px; font-weight:700; text-decoration:none; }
  .mobile-contact-bar a:last-child { background:var(--rust); border-color:var(--rust); }
  .analytics-consent { right:10px; bottom:74px; width:calc(100% - 20px); }
  .analytics-consent div { display:grid; grid-template-columns:1fr 1fr; }
  .hero-image-note { display:none; }
  .lead-entry-head { display:grid; gap:6px; }
  .lead-entry dl { grid-template-columns:1fr; gap:12px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}
