:root {
    --bg: #12151A;
    --surface: #1A1E25;
    --ph: #343A42;
    --ph-2: #44494D;
    --text: #F1EEE9;
    --muted: #B9BDC5;
    --accent: #D6362D;
    --accent-hover: #BD2D25;
    --paper: #F1EEE9;
    --ink: #12151A;
    --note: #606771;
    --field-border: #A9ADB5;
    --field-bg: #FFFFFF;
    --field-placeholder: #A9A9A9;
    --line: #343A42;
    --line-strong: #606771;
    --stroke: rgba(241,238,233,.14);
    --glass: rgba(241,238,233,.04);

    --radius-card: 20px;
    --radius-photo: 24px;
    --radius-field: 12px;
    --radius-pill: 999px;
    --container: 1200px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    min-width: 320px;
    background: var(--bg);
    color: var(--text);
    font-family: "APR Text", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.5625;
    font-weight: 400;
}

body.menu-open {
    overflow: hidden;
}

img {
    max-width: 100%;
    display: block;
}

a {
    color: inherit;
}

button,
input,
textarea {
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

:focus-visible {
    outline: 2px solid var(--text);
    outline-offset: 3px;
}

.skip-link {
    position: fixed;
    left: 20px;
    top: 12px;
    z-index: 1000;
    padding: 10px 14px;
    color: var(--ink);
    background: var(--text);
    border-radius: var(--radius-pill);
    transform: translateY(-160%);
    transition: transform .18s ease;
}

.skip-link:focus {
    transform: translateY(0);
}

.container {
    width: min(calc(100% - 40px), var(--container));
    margin-inline: auto;
}

.site-header {
    position: fixed;
    inset: 0 0 auto;
    z-index: 100;
    background: var(--bg);
    border-bottom: 1px solid rgba(241,238,233,.04);
}

.header-inner {
    width: min(calc(100% - 40px), 1680px);
    min-height: 76px;
    margin-inline: auto;
    padding-inline: clamp(0px, 6.25vw - 40px, 80px);
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 20px;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    width: fit-content;
    text-decoration: none;
}

.brand-mark {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    border-radius: 3px;
    background: var(--accent);
}

.brand-name {
    font-size: 13px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: -.02em;
}

.desktop-nav {
    display: flex;
    justify-content: center;
    gap: 4px;
}

.nav-pill {
    padding: 8px 14px;
    border: 1px solid transparent;
    border-radius: var(--radius-pill);
    color: var(--muted);
    font-size: 13px;
    line-height: 1;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
}

.nav-pill:hover {
    background: rgba(241,238,233,.06);
    color: var(--text);
}

.nav-pill.is-active {
    color: var(--text);
    background: rgba(241,238,233,.12);
    border-color: var(--stroke);
}

.header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 18px;
}

.header-phone {
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.button {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 24px;
    border: 1px solid transparent;
    border-radius: var(--radius-pill);
    font-size: 15px;
    line-height: 18px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    transition: background-color .18s ease, color .18s ease, border-color .18s ease, opacity .18s ease;
}

.button--primary {
    color: #fff;
    background: var(--accent);
}

.button--primary:hover {
    background: var(--accent-hover);
}

.button--outline {
    color: var(--text);
    border-color: var(--text);
    background: transparent;
}

.button--outline:hover {
    background: rgba(241,238,233,.08);
}

.button--dark {
    color: var(--paper);
    background: var(--ink);
}

.button--dark:hover {
    background: #252A31;
}

.button:disabled {
    opacity: .5;
    cursor: not-allowed;
}

.button--header {
    min-height: 44px;
    padding-inline: 20px;
}

.icon-button {
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--stroke);
    border-radius: 50%;
    color: var(--text);
    background: transparent;
    cursor: pointer;
}

.burger {
    display: none;
}

.burger span {
    display: block;
    width: 18px;
    height: 1px;
    margin: 4px auto;
    background: currentColor;
}

.mobile-menu {
    position: fixed;
    inset: 76px 0 0;
    padding: 28px 20px;
    background: var(--bg);
    overflow: auto;
}

.mobile-menu nav {
    display: grid;
}

.mobile-menu nav a {
    padding: 16px 0;
    border-bottom: 1px solid var(--stroke);
    font-size: 32px;
    line-height: 1.1;
    text-decoration: none;
}

.mobile-menu .button {
    width: 100%;
    margin-top: 28px;
}

.site-main {
    padding-top: 76px;
}

.section {
    padding-block: 96px;
}

.section--intro {
    padding-top: 48px;
}

.ph {
    display: grid;
    place-items: center;
    min-height: 360px;
    color: var(--muted);
    background: var(--ph);
    border: 1px solid var(--stroke);
    border-radius: var(--radius-photo);
}

.hero-placeholder {
    min-height: 520px;
}

.intro-copy {
    padding-top: 40px;
}

.eyebrow {
    margin: 0 0 14px;
    color: var(--muted);
    font-size: 13px;
    line-height: 19px;
}

.eyebrow--dark {
    color: var(--note);
}

h1,
h2,
h3,
p {
    margin-top: 0;
}

h1 {
    max-width: 900px;
    margin-bottom: 20px;
    font-size: 64px;
    line-height: 64px;
    font-weight: 400;
    letter-spacing: -.02em;
}

h2 {
    margin-bottom: 24px;
    font-size: 40px;
    line-height: 48px;
    font-weight: 400;
    letter-spacing: -.015em;
}

h3 {
    font-size: 24px;
    line-height: 32px;
    font-weight: 500;
}

.lead {
    max-width: 760px;
    margin-bottom: 28px;
    color: var(--muted);
    font-size: 18px;
    line-height: 28px;
}

.button-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.request-card {
    display: grid;
    grid-template-columns: minmax(0, 640px) minmax(240px, 1fr);
    gap: 56px;
    padding: 64px;
    color: var(--ink);
    background: var(--paper);
    border-radius: var(--radius-card);
}

.request-card h2 {
    color: var(--ink);
}

.request-form {
    display: grid;
    gap: 18px;
}

.form-field {
    display: grid;
    gap: 7px;
}

.form-field label {
    color: var(--ink);
    font-size: 14px;
    font-weight: 500;
}

.form-field input,
.form-field textarea {
    width: 100%;
    color: var(--ink);
    background: var(--field-bg);
    border: 1px solid var(--field-border);
    border-radius: var(--radius-field);
}

.form-field input {
    height: 52px;
    padding: 0 16px;
}

.form-field textarea {
    min-height: 90px;
    padding: 14px 16px;
    resize: vertical;
}

.form-field input::placeholder,
.form-field textarea::placeholder {
    color: var(--field-placeholder);
}

.form-field input:focus,
.form-field textarea:focus {
    outline: 2px solid var(--ink);
    outline-offset: 2px;
}

.form-field.is-error input,
.form-field.is-error textarea {
    border-color: var(--accent);
}

.field-error {
    min-height: 0;
    margin: 0;
    color: var(--accent);
    font-size: 13px;
    line-height: 19px;
}

.consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--ink);
    font-size: 13px;
    line-height: 19px;
    cursor: pointer;
}

.consent input {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    margin: 0;
    accent-color: var(--ink);
}

.consent a {
    text-decoration: underline;
}

.button--submit {
    width: 100%;
}

.form-note {
    margin: 0;
    color: var(--note);
    font-size: 13px;
    line-height: 19px;
}

.form-status {
    min-height: 19px;
    color: var(--ink);
    font-size: 14px;
}

.request-contacts {
    align-self: end;
    display: grid;
    gap: 10px;
    padding-bottom: 2px;
}

.request-contact-label {
    margin-bottom: 8px;
    color: var(--note);
    font-size: 13px;
}

.request-contacts a {
    color: var(--ink);
    font-size: 20px;
    font-weight: 700;
    text-decoration: none;
}

.request-contacts p {
    margin: 8px 0 0;
    color: var(--note);
}

.honeypot {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.site-footer {
    padding: 64px 0 24px;
    color: var(--text);
    background: var(--surface);
}

.footer-inner {
    width: min(calc(100% - 40px), 1680px);
    margin-inline: auto;
    padding-inline: clamp(0px, 6.25vw - 40px, 80px);
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr;
    gap: 48px;
}

.footer-brand p,
.footer-contact p {
    margin: 20px 0 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 19px;
}

.footer-nav {
    display: grid;
    align-content: start;
    gap: 10px;
}

.footer-nav a,
.footer-contact a {
    width: fit-content;
    text-decoration: none;
}

.footer-nav a:hover,
.footer-contact a:hover,
.footer-bottom a:hover {
    text-decoration: underline;
}

.footer-phone {
    font-size: 20px;
    font-weight: 700;
}

.footer-bottom {
    width: min(calc(100% - 40px), 1680px);
    margin: 48px auto 0;
    padding: 24px clamp(0px, 6.25vw - 40px, 80px) 0;
    border-top: 1px solid var(--stroke);
    display: flex;
    justify-content: space-between;
    gap: 24px;
}

.footer-bottom p,
.footer-bottom a {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 19px;
}

.footer-bottom a {
    white-space: nowrap;
}

@media (max-width: 1024px) {
    .desktop-nav,
    .header-phone,
    .button--header {
        display: none;
    }

    .header-inner {
        display: flex;
        justify-content: space-between;
    }

    .burger {
        display: block;
    }

    .request-card {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .footer-inner {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 640px) {
    .container {
        width: min(calc(100% - 32px), var(--container));
    }

    .section {
        padding-block: 64px;
    }

    .section--intro {
        padding-top: 32px;
    }

    .hero-placeholder {
        min-height: 280px;
    }

    h1 {
        font-size: 36px;
        line-height: 40px;
    }

    h2 {
        font-size: 28px;
        line-height: 34px;
    }

    .button-row {
        display: grid;
    }

    .button-row .button {
        width: 100%;
    }

    .request-card {
        padding: 24px;
    }

    .footer-inner {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .footer-bottom {
        display: grid;
        padding-inline: 20px;
    }

    .footer-bottom a {
        white-space: normal;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }
}

/* ===== Stage 2: page system ===== */
.page-hero{padding-bottom:48px}.section--tight{padding-top:48px}
.tag{display:inline-flex;width:max-content;margin-bottom:40px;padding:6px 14px;border:1px solid var(--muted);border-radius:999px;color:var(--text);font-size:13px;line-height:19px;font-weight:500}
.hero-panels{display:grid;grid-template-columns:repeat(4,1fr);align-items:start;gap:16px}
.hero-panel{min-height:0;border-radius:24px}.hero-panel--1{height:400px;background:var(--ph)}.hero-panel--2{height:400px;background:var(--ph-2)}.hero-panel--3{height:520px;background:var(--ph)}.hero-panel--4{height:360px;background:var(--ph-2)}
.hero-content{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:60px;margin-top:40px}.hero-content h1{margin-bottom:18px}
.hero-benefits{display:grid;align-content:start;justify-items:end;gap:3px;padding-top:5px;text-align:right}.hero-benefits span{font-size:24px;line-height:32px;font-weight:500}.hero-benefits span:nth-child(even){color:var(--muted)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:80px}.about-intro{margin-bottom:40px}.about-intro p{color:var(--muted)}.about-intro strong{color:var(--text)}
.display-muted{font-size:24px;line-height:32px}
.glass-grid{display:grid;gap:16px}.glass-grid--2{grid-template-columns:repeat(2,1fr)}
.glass-card{padding:28px;background:var(--glass);border:1px solid var(--stroke);border-radius:20px}.image-card{min-height:240px;display:flex;flex-direction:column;justify-content:space-between}
.image-card h3{max-width:580px;margin-bottom:8px;font-size:28px;line-height:34px}.glass-card p{color:var(--muted)}
.button--light-wide{width:100%;min-height:44px;color:var(--ink);background:var(--text);border-radius:999px}.button--light-wide:hover{background:#fff}
.benefit-card{min-height:230px}.line-icon{display:block;width:24px;height:24px;margin-bottom:24px}.line-icon svg{width:100%;height:100%}.benefit-card h3{margin-bottom:8px}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.service-card{overflow:hidden;background:var(--surface);border:1px solid var(--stroke);border-radius:20px}
.service-photo{height:230px;margin:12px;border:0;border-radius:16px}.service-card-body{padding:12px 24px 24px}.service-card-body h3{margin-bottom:10px}.service-card-body strong{font-size:18px}.service-card-body p{color:var(--muted)}.text-link{text-decoration:none}.text-link:hover{text-decoration:underline}
.projects-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:start}.project-card{position:relative;display:block;width:100%;height:390px;padding:0;overflow:hidden;color:var(--text);background:var(--ph);border:1px solid var(--stroke);border-radius:24px;text-align:left;cursor:pointer}
.project-card--down{margin-top:32px}.project-photo{position:absolute;inset:0;min-height:0;border:0;border-radius:0}.project-card:nth-child(2) .project-photo{background:var(--ph-2)}.project-card:nth-child(3) .project-photo{background:#3D4349}.project-card:nth-child(4) .project-photo{background:#4A4E50}
.project-arrow{position:absolute;top:10px;right:10px;width: 28px; height: 28px;display:grid;place-items:center;color:var(--ink);background:var(--text);border-radius:50%;font-size:18px}
.project-overlay{position:absolute;inset:auto 0 0;padding:70px 22px 20px;display:grid;gap:2px;background:linear-gradient(to top,rgba(18,21,26,.85),transparent)}.project-overlay strong{font-size:22px;line-height:27px;font-weight:500}.project-overlay small{color:var(--muted);font-size:14px}.section-action{margin-top:40px}
.process-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.process-step{padding-top:14px;border-top:1px solid var(--muted)}.process-step>span{color:var(--accent);font-size:14px}.process-step h3{margin:10px 0 8px}.process-step p{color:var(--muted);font-size:14px;line-height:21px}
.reviews-row{display:flex;justify-content:space-between;align-items:center;gap:20px}.reviews-row p{color:var(--muted);margin:0}
.service-list{display:grid;gap:16px}.service-row{display:grid;grid-template-columns:minmax(320px,1fr) minmax(0,1fr);gap:40px;padding:24px;background:var(--surface);border:1px solid var(--stroke);border-radius:20px}.service-row:nth-child(even) .service-row-photo{order:2}.service-row-photo{min-height:380px;border-radius:16px}.service-row-content{display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.service-row-content h2{margin-bottom:12px}.service-row-content p{max-width:560px;color:var(--muted)}.price-large{margin:8px 0 24px;font-size:24px}
.work-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.work-tile{min-height:88px;display:flex;align-items:center;justify-content:space-between;padding:24px;color:var(--text);background:var(--surface);border:1px solid var(--stroke);border-radius:20px;font-size:20px;text-decoration:none}.work-tile:hover{background:var(--glass)}
.package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.package-card{min-height:220px;display:flex;flex-direction:column;justify-content:space-between}.package-card strong{font-size:26px}
.price-search{max-width:680px;margin-bottom:24px}.price-search label{display:block;margin-bottom:8px;font-size:14px;line-height:21px;color:var(--muted)}.price-search input{display:block;width:100%;box-sizing:border-box;height:54px;padding:0 16px;border:1px solid #3a414b;border-radius:12px;background:#171a20;color:#f2f0eb;font:500 16px/1.2 "APR Text",Arial,sans-serif}.price-search input::placeholder{color:#8f97a2}.price-accordion [data-price-row][hidden],.price-accordion [data-price-section][hidden]{display:none!important}
.price-accordion{display:grid;gap:8px}.price-accordion details{background:var(--surface);border-radius:12px;overflow:hidden}.price-accordion summary{min-height:72px;display:flex;align-items:center;justify-content:space-between;padding:20px 24px;cursor:pointer;list-style:none;font-size:24px}.price-accordion summary::-webkit-details-marker{display:none}.summary-plus{font-size:28px;color:var(--muted)}
.price-table{padding:0 24px 12px}.price-head,.price-row{display:grid;grid-template-columns:minmax(0,1fr) 140px 160px;gap:16px;align-items:center}.price-head{min-height:48px;color:var(--muted);font-size:13px;border-bottom:1px solid var(--line-strong)}.price-row{min-height:56px;color:var(--muted);border-bottom:1px solid var(--line)}.price-row strong{color:var(--text)}.price-empty{padding:20px 0;color:var(--muted)}
.flamp-wrap{min-height:700px;padding:32px;margin-bottom:20px;color:var(--ink);background:var(--paper);border-radius:20px}.flamp-wrap a.flamp-widget{color:var(--ink)}
.contacts-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.contact-info{display:grid;align-content:start;gap:14px}.contact-info>p{max-width:540px;color:var(--muted)}.contact-phone{font-size:40px;line-height:46px;font-weight:500;text-decoration:none}.contact-email{font-size:18px;text-decoration:none}
.social-row{display:flex;gap:10px;margin-top:12px}.social-button{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--muted);border-radius:50%}.social-button svg{width:20px;height:20px}
.map-placeholder{height:390px;display:grid;place-items:center;padding:20px;text-align:center;color:var(--muted);background:var(--ph);border:1px solid var(--stroke);border-radius:16px}.map-note{margin-top:12px;color:var(--muted);font-size:14px}.requisites{max-width:900px;color:var(--muted)}
.privacy-layout{display:grid;grid-template-columns:240px minmax(0,760px);gap:80px;justify-content:space-between}.privacy-toc{position:sticky;top:100px;align-self:start;display:grid;gap:10px}.privacy-toc a{color:var(--muted);font-size:14px;text-decoration:none}.privacy-toc a:hover{color:var(--text)}.privacy-copy section{scroll-margin-top:110px;margin-bottom:56px}.privacy-copy h2{margin-bottom:12px;font-size:28px;line-height:34px}.privacy-copy p{color:var(--muted)}
.cta-card{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:40px;background:var(--glass);border:1px solid var(--stroke);border-radius:20px}.cta-card h2{margin:0}.page-404{min-height:60vh;display:grid;align-items:center}
.project-dialog{width:min(900px,calc(100% - 32px));padding:24px;color:var(--text);background:var(--surface);border:1px solid var(--stroke);border-radius:20px}.project-dialog::backdrop{background:rgba(0,0,0,.75)}.dialog-close{position:absolute;top:12px;right:12px;width:44px;height:44px;border:0;border-radius:50%;color:var(--ink);background:var(--text);cursor:pointer;font-size:28px}.dialog-photo{min-height:520px}.project-dialog h2{margin:24px 0 4px}.project-dialog p{color:var(--muted)}
@media(max-width:1024px){
 .hero-content{grid-template-columns:1fr;gap:28px}.hero-benefits{justify-items:start;text-align:left;grid-template-columns:1fr 1fr}
 .service-grid,.package-grid{grid-template-columns:1fr 1fr}.process-grid{grid-template-columns:repeat(3,1fr)}
 .service-row{grid-template-columns:1fr}.service-row:nth-child(even) .service-row-photo{order:initial}.privacy-layout{grid-template-columns:1fr;gap:32px}.privacy-toc{position:static;display:flex;flex-wrap:wrap;gap:8px 16px}
}
@media(max-width:640px){
 .hero-panels{grid-template-columns:1fr 1fr;gap:10px}.hero-panel--1{height:220px}.hero-panel--2{height:280px}.hero-panel--3,.hero-panel--4{display:none}
 .hero-content{margin-top:28px}.hero-benefits{grid-template-columns:1fr}.hero-benefits span{font-size:18px;line-height:26px}
 .two-col,.glass-grid--2,.service-grid,.package-grid,.work-tiles,.contacts-grid{grid-template-columns:1fr}
 .process-grid{grid-template-columns:1fr;padding-left:18px;border-left:1px solid var(--muted)}.process-step{border-top:0;border-bottom:1px solid var(--stroke);padding:0 0 20px;margin-bottom:20px}
 .projects-grid{grid-template-columns:1fr 1fr;gap:10px}.project-card{height:300px}.project-card--down{margin-top:16px}.project-overlay{padding:60px 12px 12px}.project-overlay strong{font-size:16px;line-height:21px}.project-overlay small{font-size:12px}
 .service-row-photo{min-height:250px}.contact-phone{font-size:30px;line-height:36px}.price-head{display:none}.price-row{display:grid;grid-template-columns:1fr auto;gap:4px 16px;padding:14px 0}.price-row span:first-child{grid-column:1/-1;color:var(--text)}.price-row strong{text-align:right}.price-table{padding-inline:16px}.price-accordion summary{font-size:20px;padding-inline:16px}.flamp-wrap{min-height:500px;padding:16px}.cta-card{align-items:flex-start;flex-direction:column;padding:24px}.cta-card .button{width:100%}.dialog-photo{min-height:300px}
}

/* ===== Award-level visual layer ===== */
::selection{background:var(--accent);color:#fff}
body{overflow-x:hidden}
.site-main{overflow:clip}
.site-header{transition:background .45s ease,border-color .45s ease,transform .45s cubic-bezier(.22,1,.36,1)}
.site-header.is-scrolled{background:rgba(18,21,26,.72);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-color:rgba(241,238,233,.10)}
.brand-logo{width:30px;height:30px;object-fit:contain;flex:none}
.brand-name{line-height:.85;letter-spacing:-.04em}.brand-name span{color:var(--muted)}
.hero-section{padding-top:118px;min-height:calc(100vh - 20px);display:flex;align-items:center}
.hero-topline{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;margin-bottom:18px;color:var(--muted);font-size:10px;letter-spacing:.16em}.hero-topline-line{height:1px;background:var(--stroke)}
.hero-panels--editorial{grid-template-columns:1.05fr .82fr 1.18fr .82fr;gap:10px}
.hero-panels--editorial .hero-panel{height:clamp(320px,38vw,540px);overflow:hidden;border-radius:18px;background:#252a30}
.hero-panels--editorial .hero-panel:nth-child(2){margin-top:48px}.hero-panels--editorial .hero-panel:nth-child(3){height:clamp(400px,47vw,640px);margin-top:18px}.hero-panels--editorial .hero-panel:nth-child(4){margin-top:86px}
.media-frame{position:relative;overflow:hidden;background:var(--ph)}.media-frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.16,1,.3,1),filter .8s ease}.media-frame:hover img{transform:scale(1.045)}
.hero-panel--office img{object-position:center}.hero-panel--kitchen img{object-position:center}.hero-panel--living img{object-position:center}.hero-panel--house img{object-position:center}
.media-index{position:absolute;left:12px;bottom:12px;padding:5px 8px;border:1px solid rgba(255,255,255,.25);border-radius:99px;color:#fff;background:rgba(0,0,0,.18);font-size:9px;letter-spacing:.12em;backdrop-filter:blur(8px)}
.hero-content{margin-top:34px;grid-template-columns:minmax(0,1fr) 260px;gap:40px}.hero-copy .eyebrow{margin-bottom:18px}
.hero-content h1{font-size:clamp(48px,6vw,92px);line-height:.94;letter-spacing:-.065em;max-width:1000px;margin:0 0 26px;font-weight:600}
.hero-title-line{display:block}.hero-title-line--muted{color:#777d86}
.hero-copy .lead{max-width:620px;font-size:17px;color:#D0D3D8}.hero-copy .button-row{margin-top:28px}
.button{position:relative;overflow:hidden;transition:transform .35s cubic-bezier(.22,1,.36,1),background .35s ease,border-color .35s ease}.button span{display:inline-block;margin-left:12px;transition:transform .35s ease}.button:hover span{transform:translate(3px,-3px)}
.hero-side{display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:8px}.hero-side-number{font-size:86px;line-height:.8;letter-spacing:-.08em;font-weight:500}.hero-side-number span{font-size:.42em;color:var(--accent);vertical-align:top;margin-left:4px}.hero-side p{color:var(--muted);font-size:13px;line-height:1.45;margin-top:20px}.scroll-cue{margin-top:56px;color:var(--muted);font-size:9px;letter-spacing:.18em;display:flex;align-items:center;gap:10px}.scroll-cue span{width:28px;height:1px;background:var(--muted);position:relative}.scroll-cue span:after{content:"";position:absolute;right:0;top:-2px;width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg)}
.section-kicker{display:grid;grid-template-columns:40px 1fr;align-items:center;gap:12px;margin-bottom:44px;color:var(--muted);font-size:10px;letter-spacing:.16em;text-transform:uppercase}.section-kicker span:first-child{color:var(--accent)}
.section-heading-row{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:40px}.section-heading-row h2,.benefit-intro h2{margin:0;font-size:clamp(42px,5vw,72px);line-height:.98;letter-spacing:-.055em;font-weight:500}.section-heading-row h2 em,.benefit-intro h2 em{color:#70757d;font-style:normal}
.under-link{display:inline-flex;gap:10px;align-items:center;color:var(--text);text-decoration:none;font-size:13px;white-space:nowrap;border-bottom:1px solid var(--muted);padding-bottom:6px;transition:border-color .3s ease,color .3s ease}.under-link span{transition:transform .3s ease}.under-link:hover{border-color:var(--text)}.under-link:hover span{transform:translate(3px,-3px)}
.statement-grid{margin-top:34px}.statement-card{position:relative;min-height:330px;padding:28px;overflow:hidden}.statement-card:before{content:"";position:absolute;inset:auto -20% -60% 40%;height:220px;background:radial-gradient(circle,rgba(214,54,45,.18),transparent 65%);pointer-events:none}.statement-card--accent{background:linear-gradient(135deg,rgba(214,54,45,.12),rgba(241,238,233,.025))}
.statement-number{position:absolute;top:24px;right:24px;color:var(--muted);font-size:10px;letter-spacing:.15em}.statement-card h3{font-size:30px;line-height:1.08;letter-spacing:-.035em;max-width:650px}.statement-card p{max-width:560px;color:#C3C7CD}.statement-card .button{position:relative;z-index:2}
.benefit-intro{margin-bottom:42px}.benefits-premium{grid-template-columns:1fr 1fr}.benefit-card--premium{position:relative;min-height:260px;display:flex;flex-direction:column;justify-content:space-between;padding:30px;transition:transform .6s cubic-bezier(.22,1,.36,1),background .4s ease,border-color .4s ease}.benefit-card--premium:hover{transform:translateY(-7px);background:rgba(241,238,233,.065);border-color:rgba(241,238,233,.25)}.benefit-no{position:absolute;top:28px;right:30px;color:var(--muted);font-size:10px;letter-spacing:.15em}.benefit-card--premium .line-icon{margin-bottom:24px}.benefit-card--premium h3{font-size:24px}.benefit-arrow{position:absolute;right:30px;bottom:28px;color:var(--muted);font-size:22px;transition:transform .4s ease,color .4s ease}.benefit-card--premium:hover .benefit-arrow{transform:translate(4px,-4px);color:var(--accent)}
.service-grid--premium{grid-template-columns:repeat(3,1fr);gap:12px}.service-card--premium{display:block;color:var(--text);text-decoration:none;background:transparent;border:0;overflow:visible}.service-card--premium .service-media{height:430px;border-radius:18px;border:1px solid var(--stroke)}.service-card--premium .service-media img{filter:saturate(.82)}.service-card--premium:hover .service-media img{transform:scale(1.055);filter:saturate(1)}.service-card--premium .service-card-body{padding:18px 4px}.service-card--premium h3{font-size:23px;font-weight:500;margin-bottom:8px}.service-card--premium strong{font-size:13px;color:var(--muted);font-weight:500}.service-card--premium p{font-size:13px;line-height:1.5;color:var(--muted);max-width:340px}.service-num{position:absolute;left:14px;top:14px;color:#fff;font-size:10px;letter-spacing:.14em}.media-hover{position:absolute;right:12px;top:12px;width:40px;height:40px;display:grid;place-items:center;color:var(--ink);background:#fff;border-radius:50%;transform:scale(.8);opacity:0;transition:opacity .4s ease,transform .4s cubic-bezier(.22,1,.36,1)}.service-card--premium:hover .media-hover{opacity:1;transform:scale(1)}
.projects-grid--premium{grid-template-columns:repeat(4,1fr);gap:10px}.projects-grid--premium .project-card{height:520px;border-radius:18px}.projects-grid--premium .project-card--down{margin-top:70px}.projects-grid--premium .project-photo{display:block;position:absolute;inset:0}.projects-grid--premium .project-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.16,1,.3,1),filter .7s ease}.projects-grid--premium .project-card:hover .project-photo img{transform:scale(1.055)}.projects-grid--premium .project-card:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,10,12,.88),transparent 48%);pointer-events:none}.projects-grid--premium .project-arrow{z-index:2;transition:transform .4s ease}.projects-grid--premium .project-card:hover .project-arrow{transform:rotate(8deg) scale(1.05)}.projects-grid--premium .project-overlay{z-index:2;padding:90px 18px 20px;background:none}.project-index{color:var(--muted);font-size:9px;letter-spacing:.16em;margin-bottom:5px}.projects-grid--premium .project-overlay strong{font-size:18px}.projects-grid--premium .project-overlay small{font-size:11px}
.process-section{background:linear-gradient(180deg,transparent,rgba(241,238,233,.025),transparent)}.process-grid--premium{grid-template-columns:repeat(5,1fr);gap:0}.process-grid--premium .process-step{position:relative;padding:18px 20px 0 0;border-top:1px solid var(--muted);min-height:240px}.process-line{height:1px;width:0;background:var(--accent);margin:15px 0 30px;transition:width 1s cubic-bezier(.22,1,.36,1)}.process-step.is-visible .process-line{width:100%}.process-grid--premium .process-step h3{font-size:20px}.process-grid--premium .process-step p{max-width:190px}
.review-banner{padding-top:120px;padding-bottom:120px}.review-banner-inner{display:flex;justify-content:space-between;gap:60px;align-items:flex-end;border-top:1px solid var(--stroke);padding-top:70px}.review-banner h2{font-size:clamp(44px,5vw,76px);line-height:.94;letter-spacing:-.055em;font-weight:500;margin:0}.review-banner-side{max-width:310px}.review-banner-side p{color:#C3C7CD;margin-bottom:22px}
.section--form{position:relative}.request-card{position:relative;overflow:hidden}.request-card:before{content:"";position:absolute;inset:-30% -10% auto 55%;height:500px;background:radial-gradient(circle,rgba(214,54,45,.14),transparent 62%);pointer-events:none}.request-card{border-radius:24px}
.project-dialog{border:1px solid rgba(241,238,233,.22);box-shadow:0 40px 120px rgba(0,0,0,.55);overflow:hidden}.dialog-photo{min-height:520px;overflow:hidden;border-radius:14px;background:var(--ph)}.dialog-photo img{width:100%;height:100%;min-height:520px;object-fit:cover}.dialog-meta{display:flex;justify-content:space-between;margin-top:20px;color:var(--muted);font-size:10px;letter-spacing:.14em}.project-dialog h2{font-size:38px;line-height:1;margin-top:10px}
.reveal-init{opacity:0;transform:translateY(35px)}.is-visible{opacity:1!important;transform:none!important;transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .95s cubic-bezier(.22,1,.36,1)}
.hero-copy .hero-title-line{opacity:0;transform:translateY(40px);animation:heroIn 1s cubic-bezier(.22,1,.36,1) forwards}.hero-copy .hero-title-line:nth-child(2){animation-delay:.1s}.hero-copy .eyebrow{animation:fadeIn .8s .15s both}.hero-copy .lead{animation:fadeIn .8s .28s both}.hero-copy .button-row{animation:fadeIn .8s .4s both}.hero-side{animation:fadeIn 1s .5s both}
@keyframes heroIn{to{opacity:1;transform:none}}@keyframes fadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.hero-panels--editorial .hero-panel{opacity:1;clip-path:none;transform:none}

@media(max-width:1024px){.hero-section{min-height:auto}.hero-content{grid-template-columns:1fr 180px}.hero-content h1{font-size:clamp(46px,8vw,72px)}.service-grid--premium{grid-template-columns:1fr 1fr}.projects-grid--premium{grid-template-columns:1fr 1fr}.projects-grid--premium .project-card{height:460px}.process-grid--premium{grid-template-columns:repeat(3,1fr);gap:24px}.review-banner-inner{align-items:flex-start}}
@media(max-width:640px){.hero-section{padding-top:100px}.hero-topline{grid-template-columns:1fr auto}.hero-topline-line{display:none}.hero-topline span:last-child{display:none}.hero-panels--editorial{grid-template-columns:1fr 1fr;gap:7px}.hero-panels--editorial .hero-panel{height:250px!important;margin:0!important}.hero-panels--editorial .hero-panel:nth-child(3){height:330px!important;grid-column:2;grid-row:1 / span 2}.hero-panels--editorial .hero-panel:nth-child(4){display:none}.hero-content{grid-template-columns:1fr;margin-top:24px}.hero-content h1{font-size:clamp(44px,13vw,64px)}.hero-side{display:none}.section-heading-row{display:block}.section-heading-row .under-link{margin-top:22px}.benefits-premium,.service-grid--premium,.projects-grid--premium{grid-template-columns:1fr}.projects-grid--premium .project-card{height:440px}.projects-grid--premium .project-card--down{margin-top:12px}.process-grid--premium{grid-template-columns:1fr}.review-banner-inner{display:block}.review-banner-side{margin-top:28px}.statement-card{min-height:280px}.brand-logo{width:28px;height:28px}.brand-name{font-size:11px}.header-phone{display:none}.hero-copy .button-row{flex-direction:column;align-items:stretch}.hero-copy .button{width:100%}}
@media(max-width:640px){.service-card--premium:hover{transform:none}.projects-grid--premium .project-card:hover{transform:none}}

/* Card lift + hover sound target */
@media (pointer:fine) {
  .service-card--premium {
    transition: transform .48s cubic-bezier(.22,1,.36,1);
    will-change: transform;
  }
  .service-card--premium:hover {
    transform: translateY(-10px);
  }
}

/* ===== APR visual system v7 ===== */
@font-face{font-family:"APR Display";src:url("../fonts/APRDisplay-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"APR Display";src:url("../fonts/APRDisplay-Medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"APR Text";src:url("../fonts/APRText-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"APR Text";src:url("../fonts/APRText-Medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"APR Text";src:url("../fonts/APRText-Semibold.woff2") format("woff2");font-weight:600;font-display:swap}
:root{--muted:#C5C9D0;--note:#747B86}
body{font-family:"APR Text",Arial,sans-serif}
h1,h2,h3,.brand-name,.hero-side-number{font-family:"APR Display","APR Text",Arial,sans-serif}
.eyebrow,.section-kicker,.media-index,.project-index,.service-num,.request-contact-label,.form-note,.field-error,.consent,.process-step p,.service-card--premium p,.service-card--premium strong,.project-overlay small{font-size:14px;line-height:21px}
.eyebrow,.section-kicker,.media-index,.project-index,.service-num{color:#D0D4DA}
.hero-title-line,.section-heading-row h2,.display-muted{clip-path:inset(0 0 100% 0);opacity:0;transform:translateY(12px)}
.hero-title-line.is-visible,.section-heading-row h2.is-visible,.display-muted.is-visible,.mask-reveal{animation:aprMaskReveal .75s cubic-bezier(.22,1,.36,1) var(--mask-delay,0ms) forwards}
@keyframes aprMaskReveal{to{clip-path:inset(0 0 0 0);opacity:1;transform:translateY(0)}}
::view-transition-old(root){animation:aprFadeOut .22s ease both}
::view-transition-new(root){animation:aprFadeIn .42s cubic-bezier(.22,1,.36,1) both}
@keyframes aprFadeOut{to{opacity:0;transform:scale(.992)}}
@keyframes aprFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
html{scroll-padding-top:90px}
.site-header{transition:transform .42s cubic-bezier(.22,1,.36,1),background-color .3s ease}
.site-header.is-hidden{transform:translateY(-100%)}
.site-header.is-visible-nav{transform:translateY(0)}
.brand-logo{width:28px;height:28px;object-fit:contain}
.project-photo img,.hero-panel img,.service-media img,.service-row-photo img{width:100%;height:100%;object-fit:cover}
.project-photo img{transition:transform .8s cubic-bezier(.22,1,.36,1),filter .5s ease}
.project-card:hover .project-photo img{transform:scale(1.045)}
.project-overlay{padding-bottom:22px;background:linear-gradient(to top,rgba(10,12,15,.94) 0%,rgba(10,12,15,.68) 30%,rgba(10,12,15,0) 100%)}
.project-overlay strong{color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.55)}
.project-overlay small{color:#E2E5E9;text-shadow:0 2px 10px rgba(0,0,0,.7)}
.service-card--premium{transition:transform .48s cubic-bezier(.22,1,.36,1)}
.service-card--premium:hover{transform:translateY(-10px)}
.benefit-card--premium{transition:transform .48s cubic-bezier(.22,1,.36,1),background .35s ease,border-color .35s ease}
.benefit-card--premium:hover{transform:translateY(-8px)}
.service-card--premium p,.benefit-card--premium p,.process-step p{color:#C5C9D0}
.work-tile{transition:transform .38s cubic-bezier(.22,1,.36,1),background .25s ease,border-color .25s ease}
.work-tile:hover{transform:translateY(-5px);border-color:rgba(241,238,233,.3)}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-grid-2>div{display:grid;gap:7px}
.form-field select{width:100%;height:52px;padding:0 16px;color:var(--ink);background:var(--field-bg);border:1px solid var(--field-border);border-radius:var(--radius-field)}
.calculator-section{background:linear-gradient(180deg,transparent,rgba(241,238,233,.025),transparent)}
.calculator-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,560px);gap:80px;align-items:start}
.calculator-card{padding:28px;background:var(--surface);border:1px solid var(--stroke);border-radius:24px}
.calc-field{display:grid;gap:10px;margin-bottom:22px}.calc-field>label{font-size:14px;color:#D0D4DA}
.calc-area{height:52px;width:100%;padding:0 16px;color:var(--text);background:var(--bg);border:1px solid var(--stroke);border-radius:12px}
.choice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.choice-grid--3{grid-template-columns:repeat(3,1fr)}
.choice-grid button{min-height:46px;padding:0 10px;color:var(--muted);background:transparent;border:1px solid var(--stroke);border-radius:10px;cursor:pointer;transition:.25s ease}
.choice-grid button:hover,.choice-grid button.is-selected{color:var(--text);background:rgba(241,238,233,.08);border-color:rgba(241,238,233,.4)}
.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check-grid label{font-size:14px;color:var(--muted)}.check-grid input{accent-color:var(--accent)}
.calc-result{display:grid;grid-template-columns:1.6fr 1fr;gap:12px;margin:26px 0}.calc-result div{padding:18px;background:var(--bg);border-radius:14px}.calc-result span{display:block;margin-bottom:5px;color:var(--note);font-size:13px}.calc-result strong{font-size:18px;font-weight:500}
.calc-note{margin:12px 0 0;color:var(--note);font-size:13px}.calculator-card>.button{width:100%}
.reviews-home{background:#15191F}.reviews-home-head{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-bottom:30px}.rating-block{display:grid;grid-template-columns:auto auto;column-gap:8px;align-items:end}.rating-block strong{font-family:"APR Display";font-size:64px;line-height:.9}.rating-block span{color:var(--accent);font-size:28px}.rating-block small{grid-column:1/-1;color:var(--muted);font-size:14px;margin-top:8px}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:28px}.review-card{min-height:330px;display:flex;flex-direction:column;padding:26px;background:var(--glass);border:1px solid var(--stroke);border-radius:20px}.review-stars{color:var(--accent);letter-spacing:.12em;margin-bottom:20px}.review-card blockquote{margin:0;color:#E5E7EA;font-size:16px;line-height:25px}.review-card cite{margin-top:auto;padding-top:22px;color:var(--muted);font-size:14px;font-style:normal}
.map-placeholder{background:linear-gradient(135deg,#232830,#171A20)}
.map-placeholder a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4)}
@media(max-width:1024px){.calculator-layout{grid-template-columns:1fr;gap:35px}.reviews-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.form-grid-2,.choice-grid,.choice-grid--3,.check-grid{grid-template-columns:1fr}.reviews-grid{grid-template-columns:1fr}.reviews-home-head{align-items:flex-start;flex-direction:column}.rating-block strong{font-size:50px}.calculator-card{padding:20px}.calc-result{grid-template-columns:1fr}.brand-logo{width:24px;height:24px}}
@media(prefers-reduced-motion:reduce){
 .hero-title-line,.section-heading-row h2,.display-muted{clip-path:none!important;opacity:1!important;transform:none!important;animation:none!important}
 .site-header,.service-card--premium,.benefit-card--premium,.work-tile{transition:none!important}
 ::view-transition-old(root),::view-transition-new(root){animation:none!important}
}

.service-card--premium .service-card-body{min-height:165px;display:flex;flex-direction:column}.service-card--premium .service-card-body strong{margin-top:auto}.service-card--premium .service-card-body p{margin-top:8px}
.form-field.is-error select{border-color:var(--accent)}

/* Hero images must remain visible even if an entrance animation is interrupted. */
.hero-panels--editorial {
  display:grid !important;
  position:relative;
  z-index:1;
}
.hero-panels--editorial .hero-panel {
  display:block;
  opacity:1 !important;
  clip-path:none !important;
  transform:none !important;
}
.hero-panels--editorial .hero-panel img {
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}

/* Do not hide the hero photo panels while an entrance effect is loading. */
.hero-panels--editorial .hero-panel{
  opacity:1 !important;
  visibility:visible !important;
  clip-path:none !important;
  transform:none !important;
}
.hero-panels--editorial .hero-panel img{
  opacity:1 !important;
  visibility:visible !important;
}

/* v8 cache-bust safety: never leave hero content in an invisible pre-animation state */
.hero-copy .hero-title-line,.hero-copy .eyebrow,.hero-copy .lead,.hero-copy .button-row,.hero-side{opacity:1}



/* ===== Layout + calculator hardening ===== */
.statement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}
.statement-card{height:330px;min-height:330px;display:flex;flex-direction:column}
.statement-card .statement-number{z-index:2}
.statement-card>div:nth-child(2){max-width:760px}
.statement-card>.button{margin-top:auto}
.calculator-layout{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(420px,560px)!important;gap:64px!important;align-items:start!important}
.calculator-card{display:block!important;visibility:visible!important;opacity:1!important;padding:30px!important;background:#1A1E24!important;border:1px solid #343A43!important;border-radius:24px!important}
.calculator-card .calc-field{display:grid!important;gap:10px!important;margin:0 0 22px!important}
.calculator-card .calc-field>label{display:block!important;color:#D7DADE!important;font-size:14px!important;line-height:20px!important}
.calculator-card .choice-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important}
.calculator-card .choice-grid.choice-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.calculator-card .choice-grid button{appearance:none!important;-webkit-appearance:none!important;display:block!important;min-height:48px!important;padding:0 12px!important;color:#C7CBD1!important;background:#15181D!important;border:1px solid #3A4049!important;border-radius:10px!important;font:500 14px/1 "APR Text",Arial,sans-serif!important;cursor:pointer!important;pointer-events:auto!important;transition:background .2s,border-color .2s,color .2s,transform .2s!important}
.calculator-card .choice-grid button:hover,.calculator-card .choice-grid button.is-selected{color:#F5F3EF!important;background:#2A2F37!important;border-color:#F5F3EF!important;transform:translateY(-1px)}
.calculator-card .calc-area{display:block!important;width:100%!important;height:52px!important;box-sizing:border-box!important;padding:0 15px!important;color:#F5F3EF!important;background:#15181D!important;border:1px solid #3A4049!important;border-radius:10px!important;font:500 16px/1 "APR Text",Arial,sans-serif!important}
.calculator-card .calc-area:focus{outline:2px solid rgba(214,54,45,.55);outline-offset:2px}
.calculator-card .check-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:11px 16px!important}
.calculator-card .check-grid label{display:flex!important;align-items:center!important;gap:8px!important;color:#C7CBD1!important;font-size:14px!important;line-height:20px!important;cursor:pointer!important}
.calculator-card .check-grid input{width:16px!important;height:16px!important;margin:0!important;accent-color:#D6362D!important;cursor:pointer!important}
.calculator-card .calc-result{display:grid!important;grid-template-columns:1.6fr 1fr!important;gap:12px!important;margin:26px 0!important}
.calculator-card .calc-result div{min-height:78px!important;box-sizing:border-box!important;padding:16px 18px!important;background:#15181D!important;border:1px solid #2D333C!important;border-radius:14px!important}
.calculator-card .calc-result span{display:block!important;margin-bottom:7px!important;color:#858D98!important;font-size:13px!important}
.calculator-card .calc-result strong{display:block!important;color:#F5F3EF!important;font:500 18px/1.2 "APR Text",Arial,sans-serif!important}
.calculator-card #calc-submit{width:100%!important;pointer-events:auto!important;cursor:pointer!important}
.calculator-card .calc-note{color:#858D98!important;font-size:13px!important}
@media(max-width:1024px){.statement-grid{grid-template-columns:1fr}.calculator-layout{grid-template-columns:1fr!important;gap:35px!important}}
@media(max-width:640px){.calculator-card .choice-grid,.calculator-card .choice-grid.choice-grid--3,.calculator-card .check-grid{grid-template-columns:1fr!important}.calculator-card .calc-result{grid-template-columns:1fr!important}.statement-card{height:auto;min-height:300px}}

/* ===== Reviews + form select polish ===== */
.reviews-home .reviews-home-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:40px;
  align-items:end;
  margin-bottom:42px;
}
.reviews-home .reviews-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.reviews-home .review-card{
  display:flex;
  flex-direction:column;
  min-height:330px;
  padding:28px;
  box-sizing:border-box;
  background:#191d23;
  border:1px solid #343a43;
  border-radius:20px;
}
.reviews-home .review-stars{
  color:#f2eee8;
  font-size:14px;
  letter-spacing:2px;
  margin-bottom:28px;
}
.reviews-home blockquote{
  margin:0;
  color:#d9dce0;
  font-size:15px;
  line-height:1.65;
}
.reviews-home cite{
  display:block;
  margin-top:auto;
  padding-top:28px;
  color:#9da4ae;
  font-size:14px;
  font-style:normal;
}
.reviews-home .rating-block{
  display:flex;
  align-items:baseline;
  gap:7px;
  white-space:nowrap;
}
.reviews-home .rating-block strong{font-size:44px;line-height:1;font-weight:500;color:#f3f0eb}
.reviews-home .rating-block span{color:#d6362d;font-size:18px}
.reviews-home .rating-block small{color:#9da4ae;font-size:13px}
.reviews-home .under-link{
  display:inline-flex;
  gap:8px;
  margin-top:24px;
  color:#d9dce0;
  text-decoration:none;
  border-bottom:1px solid #555c66;
  padding-bottom:7px;
}
.reviews-home .under-link:hover{border-color:#f2eee8}

.request-form select,
.form-field select,
select.apr-select{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:100%!important;
  min-height:54px!important;
  box-sizing:border-box!important;
  padding:0 48px 0 16px!important;
  border:1px solid #3a414b!important;
  border-radius:12px!important;
  color:#f2f0eb!important;
  background-color:#171a20!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23aeb5bf' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 16px center!important;
  background-size:16px!important;
  font:500 15px/1.2 "APR Text",Arial,sans-serif!important;
  cursor:pointer!important;
}
.request-form select:hover,
.form-field select:hover,
select.apr-select:hover{
  border-color:#727a86!important;
  background-color:#1c2027!important;
}
.request-form select:focus,
.form-field select:focus,
select.apr-select:focus{
  outline:2px solid rgba(214,54,45,.45)!important;
  outline-offset:2px!important;
  border-color:#d6362d!important;
}
.request-form select option,
.form-field select option,
select.apr-select option{
  background:#171a20;
  color:#f2f0eb;
}
@media(max-width:900px){
  .reviews-home .reviews-grid{grid-template-columns:1fr}
  .reviews-home .reviews-home-head{grid-template-columns:1fr;gap:20px}
}

/* ===== Stage 2: conversion layer ===== */
.form-submit-hint{margin:0;color:var(--note);font-size:14px;line-height:21px}
.form-submit-hint.is-ready{color:#263226}
.form-field--choice{border:0;padding:0;margin:0}
.form-field--choice legend{padding:0;margin-bottom:7px;color:var(--ink);font-size:14px;font-weight:500}
.channel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.channel-option{position:relative;display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 12px;color:var(--ink);background:var(--field-bg);border:1px solid var(--field-border);border-radius:var(--radius-field);font-size:14px;cursor:pointer}
.channel-option input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.channel-option:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.channel-option:focus-within{outline:2px solid var(--ink);outline-offset:2px}
.consent.is-error{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}
.form-success{display:grid;justify-items:start;gap:14px;min-height:300px;align-content:center;color:var(--ink)}
.form-success h3{margin:0;color:var(--ink);font-size:32px;line-height:38px}
.form-success p{max-width:500px;margin:0;color:#444A52;font-size:16px;line-height:25px}
.form-success-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--paper);background:var(--ink);font-size:24px}
.calculator-intro{max-width:650px}
.calculator-data-note{max-width:620px;margin:22px 0 0;color:var(--muted);font-size:14px;line-height:22px}
.calculator-card .choice-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.calculator-card .choice-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.calculator-card .calc-choice:focus-visible{outline:2px solid #F5F3EF;outline-offset:3px}
.calculator-card .calc-choice.is-selected{transform:none}
.calc-result strong{min-height:22px}
.mobile-sticky-actions{display:none}
.mobile-menu-messengers{display:flex;gap:8px;margin:18px 0}
.mobile-menu-messenger{flex:1;padding:12px 10px;border:1px solid var(--stroke);border-radius:999px;text-align:center}
.footer-messengers{display:flex;gap:8px;margin-top:10px}
.footer-messengers a{display:inline-flex;padding:7px 11px;border:1px solid var(--stroke);border-radius:999px;font-size:13px}
@media(max-width:767px){
    body{padding-bottom:72px}
    .mobile-sticky-actions{position:fixed;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));z-index:1000;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;padding:6px;background:rgba(18,21,26,.96);border:1px solid rgba(255,255,255,.12);border-radius:18px;box-shadow:0 10px 35px rgba(0,0,0,.35);backdrop-filter:blur(14px)}
    .mobile-sticky-actions a{display:grid;place-items:center;min-height:44px;padding:0 8px;color:#F5F3EF;border-radius:12px;font-size:13px;font-weight:600;text-decoration:none}
    .mobile-sticky-actions a:last-child{color:#12151A;background:#F5F3EF}
    .mobile-sticky-actions a:focus-visible{outline:2px solid #fff;outline-offset:2px}
    .channel-grid{grid-template-columns:1fr}
    .request-card{padding:28px 20px;grid-template-columns:1fr;gap:32px}
    .calculator-card .choice-grid,.calculator-card .choice-grid--3{grid-template-columns:1fr 1fr}
    .calculator-card .choice-grid--3{grid-template-columns:1fr}
}
@media(min-width:768px){.mobile-menu-messengers{display:none}}
@media(prefers-reduced-motion:reduce){
    .mobile-sticky-actions{backdrop-filter:none}
    .calculator-card .calc-choice,.channel-option{transition:none!important}
}


/* ===== Stage 3: APR design system ===== */
:root{
  --bg:#12151A;
  --surface:#1A1E25;
  --surface-2:#20252D;
  --text:#F1EEE9;
  --text-soft:#D0D4DA;
  --muted:#AEB5BF;
  --muted-strong:#C5C9D0;
  --accent:#D6362D;
  --accent-hover:#BD2D25;
  --paper:#F1EEE9;
  --ink:#12151A;
  --line:#343A42;
  --line-strong:#606771;
  --stroke:rgba(241,238,233,.14);
  --radius-card:20px;
  --radius-photo:24px;
  --radius-field:12px;
  --radius-pill:999px;
  --container:1200px;
  --space-1:8px;
  --space-2:12px;
  --space-3:16px;
  --space-4:24px;
  --space-5:32px;
  --space-6:48px;
  --space-7:72px;
  --space-8:96px;
  --ease-out:cubic-bezier(.22,1,.36,1);
  --motion-fast:180ms;
  --motion-base:320ms;
  --motion-slow:600ms;
}
body{font-family:"APR Text",Arial,sans-serif;letter-spacing:0;line-height:1.58}
h1,h2,h3,.brand-name,.hero-side-number{font-family:"APR Display","APR Text",Arial,sans-serif}
.hero-copy h1{letter-spacing:-.035em;line-height:.96}
.hero-copy .lead{max-width:650px;letter-spacing:-.005em}
.section-heading-row h2,.benefit-intro h2{letter-spacing:-.035em;line-height:1.02}
/* Hero keeps the original white + muted editorial treatment. Other sections use a distinct accent treatment. */
.section-heading-row h2 em,.benefit-intro h2 em{color:var(--accent);font-style:normal}
.section-heading-row h2 em::before,.benefit-intro h2 em::before{content:"";display:inline-block;width:28px;height:3px;margin:0 14px .22em 0;background:var(--accent);vertical-align:middle;border-radius:99px}
.section-kicker{font-size:14px;line-height:20px;letter-spacing:.12em}
.section-kicker span:first-child{font-weight:700}
.benefit-card--premium{min-height:220px;padding:26px}
.benefit-card--premium h3{font-size:23px;line-height:1.12;letter-spacing:-.02em}
.benefit-card--premium p{margin-bottom:14px}
.benefit-fact{display:inline-block;color:var(--text);font-size:14px;line-height:20px;font-weight:600;padding-top:8px;border-top:1px solid var(--stroke)}
.service-card--premium p,.benefit-card--premium p,.process-step p{font-size:15px;line-height:23px}
.nav-pill,.header-phone,.button,.form-field label,.request-contact-label,.field-error,.consent,.form-note,.calc-field>label,.calc-note,.calculator-data-note{font-size:14px}
.nav-pill{line-height:20px}
.button{letter-spacing:-.005em}
:focus-visible{outline:3px solid var(--paper);outline-offset:3px}
.button:focus-visible,.nav-pill:focus-visible,.under-link:focus-visible{outline-color:var(--accent);outline-offset:4px}
.calculator-card .choice-grid button:focus-visible{outline:3px solid var(--paper);outline-offset:3px}
/* Remove decorative arrows where there is no actual destination. */
.benefit-arrow{display:none}
/* Slightly denser editorial rhythm. */
.section{padding-block:clamp(72px,8vw,112px)}
.section-kicker{margin-bottom:36px}
@media(max-width:640px){
  .section{padding-block:64px}
  .section-kicker{margin-bottom:28px}
  .section-heading-row h2,.benefit-intro h2{font-size:clamp(34px,9vw,48px);line-height:1.02}
  .section-heading-row h2 em::before,.benefit-intro h2 em::before{width:20px;height:2px;margin-right:10px}
  .benefit-card--premium{min-height:0;padding:22px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* Stage 4 — SEO service pages */
.service-detail-hero .container{max-width:980px}
.service-detail-intro{align-items:center}
.service-detail-image{min-height:420px;overflow:hidden;border-radius:var(--radius-photo)}
.service-detail-image img{width:100%;height:100%;display:block;object-fit:cover}
.service-work-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px;margin:28px 0 0;padding:0;list-style:none}
.service-work-list li{padding:14px 16px;border:1px solid var(--border, #343a43);border-radius:12px}
.service-price-group + .service-price-group{margin-top:28px}.service-price-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.service-price-card{display:flex;flex-direction:column;gap:10px}
.service-price-card span{font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted,#a8afb8)}
.service-price-card strong{font-size:clamp(22px,3vw,34px)}
.service-price-card small{font-size:14px;color:var(--muted,#a8afb8)}
.demo-price-note{margin-top:18px;font-size:14px;color:var(--muted,#a8afb8)}
@media (max-width: 760px){.service-work-list,.service-price-cards{grid-template-columns:1fr}.service-detail-image{min-height:280px}}


/* Final polish — service pricing block */
.service-detail-hero + .section{}
.service-price-section{padding-top:96px!important}
.service-price-section .section-heading-row{margin-bottom:40px!important}
.service-price-section .service-price-group{margin-top:0!important}
.service-price-section .service-price-group + .service-price-group{margin-top:40px!important}
.service-price-section .service-price-group > .eyebrow{margin:0 0 14px!important}
.service-price-section .service-price-cards{margin:0!important}
.service-price-section .demo-price-note{margin:28px 0 0!important}
@media(max-width:760px){
  .service-price-section{padding-top:64px!important}
  .service-price-section .section-heading-row{margin-bottom:28px!important}
  .service-price-section .service-price-group + .service-price-group{margin-top:28px!important}
}

/* ===== Defect fixes: calculator / reviews / form / search / portfolio ===== */
.price-accordion details[hidden],
.price-accordion .price-row[hidden]{display:none!important}

/* Keep the two company statement cards on one baseline with equal internal rhythm. */
.statement-grid{align-items:stretch!important}
.statement-card{height:330px!important;min-height:330px!important;display:flex!important;flex-direction:column!important}
.statement-card>div:nth-child(2){min-height:116px}
.statement-card>.button{margin-top:auto!important}

/* Calculator must remain fully styled even if a cached stylesheet misses a later rule. */
.calculator-card{color:var(--text)!important;background:#1A1E24!important;border:1px solid #343A43!important;border-radius:24px!important}
.calculator-card .calc-field{display:grid!important;gap:10px!important;margin-bottom:22px!important}
.calculator-card .choice-grid{display:grid!important;gap:8px!important}
.calculator-card .choice-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.calculator-card .choice-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.calculator-card .calc-choice{appearance:none!important;-webkit-appearance:none!important;min-height:48px!important;padding:0 12px!important;border:1px solid #3A4049!important;border-radius:10px!important;background:#15181D!important;color:#C7CBD1!important;font:500 14px/1.1 "APR Text",Arial,sans-serif!important}
.calculator-card .calc-choice.is-selected,.calculator-card .calc-choice:hover{background:#2A2F37!important;border-color:#F5F3EF!important;color:#F5F3EF!important}
.calculator-card .calc-area{display:block!important;width:100%!important;height:52px!important;box-sizing:border-box!important;background:#15181D!important;color:#F5F3EF!important;border:1px solid #3A4049!important;border-radius:10px!important}
.calculator-card .calc-result{display:grid!important;grid-template-columns:1.6fr 1fr!important;gap:12px!important;margin:26px 0!important}
.calculator-card .calc-result>div{padding:16px 18px!important;background:#15181D!important;border:1px solid #2D333C!important;border-radius:14px!important}
.calculator-card #calc-submit{width:100%!important}

/* Reviews cards on the home page: explicit grid/flex styles as a local fallback. */
.reviews-home .reviews-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}
.reviews-home .review-card{min-height:330px!important;display:flex!important;flex-direction:column!important;padding:26px!important;background:rgba(241,238,233,.04)!important;border:1px solid rgba(241,238,233,.14)!important;border-radius:20px!important}
.reviews-home .review-card blockquote{margin:0!important;color:#E5E7EA!important;font-size:16px!important;line-height:25px!important}
.reviews-home .review-card cite{margin-top:auto!important;padding-top:22px!important;color:#C5C9D0!important;font-size:14px!important}

/* Request form fallback: never fall back to browser-default radio/select layout. */
.request-form select{appearance:none!important;-webkit-appearance:none!important}
.channel-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
.channel-option{position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;min-height:52px!important;padding:0 12px!important;color:#12151A!important;background:#F1EEE9!important;border:1px solid #A9ADB5!important;border-radius:12px!important;font-size:14px!important}
.channel-option input{position:absolute!important;opacity:0!important;inset:0!important;width:100%!important;height:100%!important;margin:0!important}
.channel-option:has(input:checked){border-color:#12151A!important;box-shadow:inset 0 0 0 2px #12151A!important}

/* Preserve the original image aspect ratio in portfolio cards; no distortion. */
.projects-grid--premium .project-photo img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important}
.project-dialog .dialog-photo img{width:100%!important;height:auto!important;max-height:78vh!important;object-fit:contain!important;background:#0F1216!important}

@media(max-width:900px){
  .reviews-home .reviews-grid{grid-template-columns:1fr!important}
  .calculator-card .choice-grid--4{grid-template-columns:1fr 1fr!important}
}
@media(max-width:640px){
  .statement-card{height:auto!important;min-height:280px!important}
  .calculator-card .choice-grid--4,.calculator-card .choice-grid--3,.channel-grid{grid-template-columns:1fr!important}
  .calculator-card .calc-result{grid-template-columns:1fr!important}
}


/* Portfolio image integrity: use source aspect ratio, never force every photo into the same crop. */
.projects-grid--premium .project-card{height:auto!important;min-height:0!important;align-self:start}
.projects-grid--premium .project-card--down{margin-top:70px}
.projects-grid--premium .project-photo{position:relative!important;inset:auto!important;display:block!important;aspect-ratio:var(--project-ratio)!important;min-height:0!important;overflow:hidden!important}
.projects-grid--premium .project-photo img{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;background:#171A20}
.projects-grid--premium .project-overlay{position:absolute;inset:auto 0 0;padding:90px 18px 20px;background:linear-gradient(to top,rgba(8,10,12,.92),transparent 100%)}
@media(max-width:1024px){.projects-grid--premium .project-card--down{margin-top:32px}}
@media(max-width:640px){.projects-grid--premium .project-card--down{margin-top:12px}}



/* ===== Stage 5: performance + responsive hardening ===== */
html, body { overflow-x: clip; }
body { text-rendering: optimizeLegibility; }
img { height: auto; }
.hero-panel img,
.service-media img,
.service-row-photo img { height: 100%; }

/* Keep image transforms on the compositor and avoid layout work. */
@media (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .hero-panel img,
  .service-media img,
  .project-photo img { will-change: transform; }
}

/* The portfolio source and the card now share the same aspect ratio, so cover does not distort/crop. */
.projects-grid--premium .project-photo { aspect-ratio: var(--project-ratio); }
.projects-grid--premium .project-photo picture,
.projects-grid--premium .project-photo img { display:block; width:100%; height:100%; }

/* Avoid expensive hover effects on coarse pointers. */
@media (pointer: coarse) {
  .projects-grid--premium .project-card:hover .project-photo img,
  .service-card--premium:hover .service-media img,
  .benefit-card--premium:hover,
  .work-tile:hover,
  .service-card--premium:hover { transform:none; filter:none; }
  .media-hover { opacity:1; transform:none; }
}

/* Mobile: prevent cards, forms and grids from forcing horizontal overflow. */
@media (max-width: 640px) {
  .container { width:min(calc(100% - 32px), var(--container)); }
  .hero-content, .two-col, .contacts-grid, .privacy-layout,
  .calculator-layout, .service-row { min-width:0; }
  .hero-content h1, .section-heading-row h2, .benefit-intro h2 { overflow-wrap:anywhere; }
  .price-table { min-width:0; overflow:hidden; }
  .project-dialog { max-width:calc(100vw - 24px); }
  .dialog-photo { min-height:0; }
  .project-dialog .dialog-photo img { max-height:70vh; }
}

/* Reduce off-screen rendering cost without changing layout dimensions. */
@media (min-width: 768px) {
  .service-section,
  .projects-section,
  .process-section,
  .reviews-home,
  .calculator-section { content-visibility:auto; contain-intrinsic-size: 720px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-panel img,
  .service-media img,
  .project-photo img { will-change:auto!important; transform:none!important; }
}

/* Portfolio thumbnails: preserve source proportions and prioritize crisp rendering. */
.projects-grid--premium .project-photo img,
.projects-grid--stagger .project-photo img {
  image-rendering: auto;
  backface-visibility: hidden;
}
.projects-grid--premium .project-photo,
.projects-grid--stagger .project-photo {
  background: #171A20;
}

/* Final portfolio fix: fixed editorial card proportions + cover without distortion. */
.projects-grid--premium .project-card,
.projects-grid--stagger .project-card {
  height: 390px !important;
  min-height: 0 !important;
  align-self: start;
}
.projects-grid--premium .project-photo,
.projects-grid--stagger .project-photo {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100%;
  height: 100%;
  aspect-ratio: auto !important;
  overflow: hidden !important;
  background: #171A20;
}
.projects-grid--premium .project-photo picture,
.projects-grid--stagger .project-photo picture {
  display: block;
  width: 100%;
  height: 100%;
}
.projects-grid--premium .project-photo img,
.projects-grid--stagger .project-photo img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center !important;
  transform: none;
}
@media (max-width: 1024px) {
  .projects-grid--premium .project-card,
  .projects-grid--stagger .project-card { height: 360px !important; }
}
@media (max-width: 640px) {
  .projects-grid--premium .project-card,
  .projects-grid--stagger .project-card { height: 300px !important; }
}

/* FINAL PORTFOLIO QUALITY OVERRIDE
   Use the original client JPGs for the visible thumbnails. The previous responsive
   WebP srcset could select the 480px derivative, which made the desktop cards look soft.
   Keep the same editorial card treatment as the homepage and never upscale a thumbnail. */
.projects-grid--premium .project-card,
.projects-grid--stagger .project-card {
  height: 520px !important;
  min-height: 0 !important;
}
.projects-grid--premium .project-photo,
.projects-grid--stagger .project-photo {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: auto !important;
  overflow: hidden !important;
}
.projects-grid--premium .project-photo img,
.projects-grid--stagger .project-photo img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center !important;
  image-rendering: auto !important;
  transform: none;
}
.projects-grid--premium .project-card:hover .project-photo img,
.projects-grid--stagger .project-card:hover .project-photo img {
  transform: scale(1.02);
}
@media (max-width: 1024px) {
  .projects-grid--premium .project-card,
  .projects-grid--stagger .project-card { height: 460px !important; }
}
@media (max-width: 640px) {
  .projects-grid--premium .project-card,
  .projects-grid--stagger .project-card { height: 440px !important; }
}

/* Responsive repair: reveal section headings and tighten mobile vertical rhythm. */
.section.is-visible .section-heading-row h2,
.section.is-visible .benefit-intro h2 {
  clip-path: none;
  opacity: 1;
  transform: none;
  animation: none;
}
@media (max-width: 640px) {
  .section { padding-block: 44px; }
  .section-kicker { margin-bottom: 20px; }
  .section-heading-row { display: flex; flex-direction: column; align-items: flex-start; gap: 0; margin-bottom: 24px; }
  .section-heading-row h2 { display: block; margin: 0 0 16px; font-size: clamp(30px, 8.2vw, 38px); line-height: 1.04; }
  .section-heading-row .under-link { margin-top: 0; }
  .service-grid--premium { gap: 24px; }
  .service-card--premium .service-media { height: clamp(300px, 92vw, 380px); }
  .service-card--premium .service-card-body { min-height: 0; padding: 14px 2px 0; }
  .service-card--premium h3 { font-size: 21px; }
  .projects-grid--premium { gap: 12px; }
  .projects-grid--premium .project-card { height: 390px; }
  .process-grid--premium { gap: 20px; }
  .review-banner { padding-top: 56px; padding-bottom: 56px; }
  .review-banner-inner { padding-top: 32px; gap: 24px; }
  .statement-card { min-height: 230px; }
}


/* ===== Атмосферный фон: glow / grain / blueprint (декоративный слой) ===== */
:root {
    --ambient-red: rgba(214, 54, 45, .24);
    --ambient-amber: rgba(255, 138, 76, .13);
    --ambient-burgundy: rgba(90, 15, 20, .35);
    --blueprint-line: rgba(243, 240, 234, .04);
}
/* Псевдоэлемент не принимает события и находится над фоном, но под содержимым. */
body::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: .06;
    mix-blend-mode: soft-light;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
    background-repeat: repeat;
    background-size: 200px 200px;
}
/* Секции изолируют декор от соседних блоков, контент остаётся выше него. */
.blueprint-section { position: relative; isolation: isolate; overflow: hidden; }
.blueprint-section > .container { position: relative; z-index: 2; }
.glow-layer, .blueprint-grid, .blueprint-ruler, .blueprint-measure {
    position: absolute; pointer-events: none; user-select: none;
}
.glow-layer { inset: 0; z-index: 0; overflow: hidden; contain: paint; }
.glow {
    position: absolute;
    left: var(--glow-x, 50%); top: var(--glow-y, 50%);
    display: block; width: 56vmax; height: 56vmax; max-width: 900px; max-height: 900px;
    border-radius: 50%;
    transform: translate3d(-50%, -50%, 0);
    will-change: transform;
    opacity: .95;
}
.glow--red { background: radial-gradient(circle, var(--ambient-red) 0%, rgba(214,54,45,.12) 28%, rgba(214,54,45,.045) 48%, transparent 70%); animation: glowDriftRed 25s ease-in-out alternate infinite; }
.glow--burgundy { width: 62vmax; height: 62vmax; background: radial-gradient(circle, var(--ambient-burgundy) 0%, rgba(90,15,20,.16) 35%, transparent 70%); animation: glowDriftBurgundy 31s ease-in-out alternate infinite; }
.glow--soft { width: 48vmax; height: 48vmax; background: radial-gradient(circle, rgba(214,54,45,.13) 0%, rgba(214,54,45,.055) 38%, transparent 70%); animation: glowDriftSoft 22s ease-in-out alternate infinite; }
.glow--amber { width: 48vmax; height: 48vmax; background: radial-gradient(circle, var(--ambient-amber) 0%, rgba(255,138,76,.055) 35%, transparent 70%); animation: glowDriftAmber 28s ease-in-out alternate infinite; }
.glow--cta { width: 62vmax; height: 62vmax; }
@keyframes glowDriftRed { from { transform: translate3d(-53%,-48%,0) scale(.96); } to { transform: translate3d(-45%,-53%,0) scale(1.04); } }
@keyframes glowDriftBurgundy { from { transform: translate3d(-48%,-53%,0) scale(1.02); } to { transform: translate3d(-54%,-45%,0) scale(.96); } }
@keyframes glowDriftSoft { from { transform: translate3d(-50%,-48%,0) scale(.97); } to { transform: translate3d(-46%,-54%,0) scale(1.03); } }
@keyframes glowDriftAmber { from { transform: translate3d(-52%,-50%,0) scale(1); } to { transform: translate3d(-46%,-46%,0) scale(1.04); } }
.blueprint-grid {
    z-index: 0; inset: 0; opacity: .9;
    background-image: linear-gradient(to right, var(--blueprint-line) 1px, transparent 1px), linear-gradient(to bottom, var(--blueprint-line) 1px, transparent 1px);
    background-size: 80px 80px;
    -webkit-mask-image: radial-gradient(ellipse at 50% 42%, #000 0%, rgba(0,0,0,.7) 34%, transparent 76%);
    mask-image: radial-gradient(ellipse at 50% 42%, #000 0%, rgba(0,0,0,.7) 34%, transparent 76%);
}
.blueprint-measure { z-index: 1; width: 220px; height: auto; fill: none; stroke: rgba(185,189,197,.38); stroke-width: .8; }
.blueprint-measure text { fill: #747B86; stroke: none; font: 7px/1 Arial, sans-serif; letter-spacing: 1.3px; }
.blueprint-measure .measure-accent { stroke: var(--accent); stroke-width: 1.3; }
.blueprint-measure--hero { top: 138px; right: max(4.5vw, calc((100vw - var(--container)) / 2)); }
.blueprint-measure--about { top: 110px; right: max(5vw, calc((100vw - var(--container)) / 2)); width: 160px; }
.hero-section .blueprint-ruler { z-index: 1; left: 0; top: 22%; bottom: 12%; width: 18px; opacity: .44; background: repeating-linear-gradient(to bottom, transparent 0 11px, rgba(0,0,0,.75) 11px 12px); }
.hero-section .blueprint-ruler::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(to bottom, transparent 0 59px, rgba(0,0,0,.9) 59px 60px); }
.section--form .request-card { position: relative; z-index: 2; }
/* Сохраняем возможность скролла и читаемость на небольших экранах. */
@media (max-width: 640px) {
    .glow { width: 78vmax; height: 78vmax; }
    .blueprint-measure--hero { top: 94px; right: 8px; width: 140px; opacity: .65; }
    .blueprint-measure--about { top: 84px; right: 8px; width: 120px; opacity: .6; }
    .hero-section .blueprint-ruler { width: 10px; opacity: .25; }
    .blueprint-grid { background-size: 64px 64px; }
}
@media (pointer: coarse) { .glow { will-change: auto; } }
@media (prefers-reduced-motion: reduce) {
    .glow { animation: none !important; transform: translate3d(-50%,-50%,0) !important; will-change: auto; }
}

/* Контент и футер выше фиксированного зерна; диалоги остаются в top layer. */
.site-main, .site-footer { position: relative; z-index: 1; }

/* ===== Параллакс и декоративные объекты: только transform/opacity в кадре ===== */
.hero-panels--editorial .hero-panel[data-depth] { will-change: transform; transition: filter 400ms cubic-bezier(.2,.7,.2,1), opacity 400ms cubic-bezier(.2,.7,.2,1), scale 400ms cubic-bezier(.2,.7,.2,1); filter: blur(var(--depth-blur, 0px)); }
.hero-panels--editorial .hero-panel--1,
.hero-panels--editorial .hero-panel--4 { filter: blur(var(--depth-blur, 2px)) brightness(.8); }
.hero-panels--editorial .hero-panel--2,
.hero-panels--editorial .hero-panel--3 { filter: blur(0) brightness(1); }
.hero-panels--editorial.has-hovered-panel .hero-panel:not(:hover) { opacity: .72; }
.hero-panels--editorial .hero-panel:hover { z-index: 4; filter: blur(0) brightness(1); scale: 1.03; }

.floating-object {
    position: absolute; z-index: 1; left: var(--x, 50%); top: var(--y, 50%);
    width: var(--size, 140px); aspect-ratio: 1; pointer-events: none; user-select: none;
    opacity: var(--object-opacity, .8); transform-origin: center; rotate: var(--rot, 0deg);
    filter: blur(var(--depth-blur, 0px)); will-change: transform;
    animation: objectBob var(--float-duration, 7s) ease-in-out infinite alternate;
}
.floating-object img { display: block; width: 100%; height: 100%; object-fit: contain; }
.floating-object--near { --object-opacity: .88; filter: blur(var(--depth-blur, 0px)) drop-shadow(0 18px 16px rgba(0,0,0,.22)); }
.floating-object--mid { --object-opacity: .66; }
.floating-object--far { --object-opacity: .5; }
@keyframes objectBob { from { translate: 0 -4px; } to { translate: 0 6px; } }
.floating-object--hero-tape { --x: 4%; --y: 37%; --size: clamp(74px, 10vw, 145px); --rot: -12deg; --float-duration: 7.2s; }
.floating-object--hero-level { --x: 76%; --y: 26%; --size: clamp(115px, 17vw, 235px); --rot: 13deg; --float-duration: 8.4s; }
.floating-object--hero-roller { --x: 87%; --y: 69%; --size: clamp(66px, 8vw, 112px); --rot: -18deg; --float-duration: 6.5s; }
.floating-object--hero-trowel { --x: -3%; --y: 75%; --size: clamp(100px, 13vw, 180px); --rot: 20deg; --float-duration: 8.8s; }
.floating-object--about-swatch { --x: 83%; --y: 27%; --size: clamp(76px, 9vw, 125px); --rot: 10deg; --float-duration: 7.7s; }
.floating-object--about-tile { --x: -3%; --y: 63%; --size: clamp(105px, 13vw, 185px); --rot: -14deg; --float-duration: 8.2s; }
.floating-object--benefit-lamp { --x: -2%; --y: 30%; --size: clamp(82px, 10vw, 145px); --rot: -12deg; --float-duration: 6.8s; }
.floating-object--benefit-tape { --x: 89%; --y: 60%; --size: clamp(72px, 8vw, 120px); --rot: 16deg; --float-duration: 8.6s; }
.floating-object--form-roller { --x: 2%; --y: 18%; --size: clamp(85px, 11vw, 150px); --rot: -18deg; --float-duration: 7.6s; }
.floating-object--form-trowel { --x: 83%; --y: 62%; --size: clamp(120px, 15vw, 210px); --rot: 22deg; --float-duration: 8.7s; }

.scroll-marquee { position: relative; z-index: 1; overflow-x: clip; overflow-y: hidden; padding: clamp(12px, 2.5vw, 30px) 0; background: var(--bg, #111318); }
.scroll-marquee-track { display: flex; width: max-content; white-space: nowrap; font-size: clamp(5rem, 14vw, 14rem); font-weight: 700; letter-spacing: -.065em; line-height: .88; will-change: transform; }
.scroll-marquee-track span { flex: 0 0 auto; padding-right: .22em; -webkit-text-stroke: 1px rgba(243,240,234,.18); color: transparent; }
.scroll-marquee-track--red { margin-top: .14em; opacity: .35; }
.scroll-marquee-track--red span { -webkit-text-stroke-color: rgba(216,53,47,.85); }
@media (max-width: 768px) {
    .floating-object:not(.floating-object--hero-level):not(.floating-object--hero-trowel) { display: none; }
    .floating-object--hero-level { --x: 77%; --y: 24%; --size: 108px; opacity: .42; }
    .floating-object--hero-trowel { --x: -6%; --y: 78%; --size: 100px; opacity: .38; }
    .scroll-marquee-track { font-size: clamp(4.5rem, 18vw, 8rem); }
    .hero-panels--editorial .hero-panel--1,
    .hero-panels--editorial .hero-panel--4 { filter: brightness(.8); }
}
@media (prefers-reduced-motion: reduce) {
    .floating-object { animation: none !important; }
    .hero-panels--editorial .hero-panel[data-depth] { transition: none !important; }
    .scroll-marquee-track { will-change: auto; }
}

/* ===== Аудит эффектов: безопасные значения производительности и доступности ===== */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--accent, #D8352F);
  outline-offset: 3px;
}
/* Слои не резервируют постоянные GPU-композиторы без необходимости. */
.glow, .floating-object, .scroll-marquee-track, .hero-panels--editorial .hero-panel[data-depth] { will-change: auto; }
.glow { opacity: .82; }
.floating-object { will-change: auto; }
.floating-object img { width: 100%; height: 100%; }
/* Fallback для браузеров без clip/mask/overflow:clip. */
@supports not (overflow: clip) { html, body, .scroll-marquee { overflow-x: hidden; } }
@supports not (mask-image: radial-gradient(black, transparent)) {
  .blueprint-grid { -webkit-mask-image: none; mask-image: none; opacity: .45; }
}
@supports (mask-composite: intersect) { .blueprint-grid { -webkit-mask-composite: source-in; } }
@media (max-width: 768px) {
  body::after { opacity: .035; }
  .glow { width: 48vmax !important; height: 48vmax !important; }
  .floating-object:not(.floating-object--hero-level):not(.floating-object--hero-trowel) { display: none !important; }
  .floating-object--hero-level, .floating-object--hero-trowel { animation-duration: 9s; }
  .hero-panels--editorial { display: flex !important; overflow-x: auto; overflow-y: hidden; gap: 12px; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; padding: 0 4px 12px; }
  .hero-panels--editorial .hero-panel { flex: 0 0 min(72vw, 280px); scroll-snap-align: start; transform: none !important; }
  .hero-panels--editorial .hero-panel--1, .hero-panels--editorial .hero-panel--4 { filter: brightness(.86); }
  .hero-panels--editorial.has-hovered-panel .hero-panel:not(:hover) { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .glow, .floating-object, .scroll-marquee-track, [data-depth] { animation: none !important; transform: none !important; translate: none !important; rotate: var(--rot, 0deg); will-change: auto !important; }
  .hero-title-line, .section-heading-row h2, .display-muted, [data-reveal], .reveal { clip-path: none !important; opacity: 1 !important; transform: none !important; }
}
@media (max-width: 768px) {
  .hero-panels--editorial .hero-panel { display: block !important; height: 250px !important; margin: 0 !important; }
  .hero-panels--editorial .hero-panel:nth-child(3) { height: 250px !important; grid-column: auto !important; grid-row: auto !important; }
  .hero-panels--editorial .hero-panel:nth-child(4) { display: block !important; }
}

/* HOTFIX 2026-10-19: исправление геометрии hero и читаемости blueprint */
.hero-section {
  display: block !important;
  min-height: calc(100vh - 20px);
  padding-bottom: clamp(48px, 6vw, 100px);
}
.hero-section > .container {
  display: block;
  width: min(calc(100% - 40px), var(--container, 1400px));
  max-width: var(--container, 1400px);
  margin-inline: auto;
}
.hero-panels--editorial {
  width: 100%;
  min-width: 0;
  grid-template-columns: minmax(0,1.05fr) minmax(0,.82fr) minmax(0,1.18fr) minmax(0,.82fr);
}
.hero-content {
  display: grid !important;
  width: 100%;
  min-width: 0;
  grid-template-columns: minmax(0,1fr) minmax(180px,260px);
  align-items: end;
}
.hero-copy { min-width: 0; grid-column: 1; }
.hero-copy h1 { max-width: 100%; overflow-wrap: normal; word-break: normal; }
.hero-side { grid-column: 2; min-width: 0; }
.blueprint-measure text { fill: #858B95 !important; stroke: none !important; font-size: 7px !important; }
.blueprint-measure { color: #858B95; }
.floating-object { z-index: 1; }
.hero-section .container { z-index: 3; }
@media (max-width: 1024px) {
  .hero-content { grid-template-columns: minmax(0,1fr) minmax(140px,180px); gap: 24px; }
}
@media (max-width: 640px) {
  .hero-content { grid-template-columns: minmax(0,1fr); }
  .hero-copy, .hero-side { grid-column: 1; }
  .hero-section { padding-bottom: 48px; }
}


/* HOTFIX: hero был flex-контейнером, а .container сжимался до intrinsic width.
   Явно растягиваем контейнер и задаём корректные колонки на всех ширинах. */
.hero-section {
  display: block !important;
  min-width: 0;
  overflow: hidden;
}
.hero-section > .container {
  display: block;
  width: 100%;
  max-width: var(--container, 1280px);
  min-width: 0;
  margin-inline: auto;
  box-sizing: border-box;
}
.hero-panels--editorial {
  width: 100%;
  min-width: 0;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .82fr) minmax(0, 1.18fr) minmax(0, .82fr);
}
.hero-panels--editorial .hero-panel {
  min-width: 0;
}
.hero-content {
  width: 100%;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 260px);
  align-items: end;
}
.hero-copy, .hero-side { min-width: 0; }
.hero-content h1 {
  max-width: 100%;
  overflow-wrap: normal;
  word-break: normal;
}
.hero-title-line { max-width: 100%; }
.blueprint-measure--hero { pointer-events: none; }
.floating-object { pointer-events: none; }

@media (max-width: 1024px) {
  .hero-section { padding-top: 108px; }
  .hero-section > .container { width: min(100%, var(--container, 1280px)); }
  .hero-content { grid-template-columns: minmax(0, 1fr) minmax(150px, 190px); gap: 28px; }
  .hero-panels--editorial { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .hero-section { padding-top: 100px; }
  .hero-content { grid-template-columns: minmax(0, 1fr); }
  .hero-content h1 { font-size: clamp(42px, 11vw, 64px); }
  .hero-panels--editorial { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}




/* APR hero/decor layout — единый источник правил, без повторных hotfix-блоков. */
.hero-section,
.blueprint-section {
  position: relative;
  isolation: isolate;
  overflow: clip;
}
.hero-section > .decor,
.blueprint-section > .decor {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
}
.hero-section > .container,
.blueprint-section > .container {
  position: relative;
  z-index: 1;
  width: min(calc(100% - 40px), var(--container, 1400px));
  max-width: 1400px;
  margin-inline: auto;
  min-width: 0;
  box-sizing: border-box;
}
.decor > .glow-layer,
.decor > .blueprint-grid {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.decor > .blueprint-grid { width: 100%; height: 100%; }
.decor > .blueprint-ruler {
  position: absolute;
  left: 0;
  top: 22%;
  bottom: 12%;
  width: 18px;
  pointer-events: none;
}
.decor .floating-object {
  position: absolute;
  left: var(--x);
  top: var(--y);
  right: auto;
  bottom: auto;
  width: var(--size);
  height: auto;
  max-width: 12vw;
  margin: 0;
  pointer-events: none;
  z-index: 0;
  transform-origin: center;
  filter: blur(var(--depth-blur, 0px));
}
.decor .floating-object--near {
  filter: blur(var(--depth-blur, 0px)) drop-shadow(0 12px 14px rgba(0,0,0,.2));
}
.decor .floating-object--far { opacity: .5; }
.decor .floating-object--mid { opacity: .68; }
.decor .floating-object img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  pointer-events: none;
}
.decor .blueprint-measure {
  position: absolute;
  display: block;
  width: clamp(90px, 10vw, 160px);
  max-width: 160px;
  height: auto;
  color: rgba(243,240,234,.28);
  fill: none;
  stroke: rgba(243,240,234,.28);
  font-size: 7px;
  pointer-events: none;
}
.decor .blueprint-measure--hero { left: 2%; top: 54%; right: auto; }
.decor .blueprint-measure--about { left: auto; right: 2%; top: 8%; width: clamp(90px, 9vw, 145px); }
.decor .blueprint-measure text {
  fill: currentColor;
  stroke: none;
  font-family: Arial, sans-serif;
  font-size: 7px;
  letter-spacing: .12em;
}
.decor .blueprint-measure path { stroke: currentColor; stroke-width: .7; vector-effect: non-scaling-stroke; }
.decor .blueprint-measure .measure-accent { stroke: var(--accent); }
.hero-panels--editorial {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: start;
  gap: clamp(10px, 1.5vw, 22px);
  width: 100%;
  min-width: 0;
}
.hero-panels--editorial .hero-panel {
  display: block;
  flex: 0 0 auto;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.hero-panels--editorial .hero-panel:nth-child(2) { margin-top: 48px; }
.hero-panels--editorial .hero-panel:nth-child(3) { margin-top: 18px; }
.hero-panels--editorial .hero-panel:nth-child(4) { margin-top: 86px; }
.hero-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 260px);
  width: 100%;
  min-width: 0;
  gap: clamp(24px, 4vw, 60px);
}
.hero-copy, .hero-side { min-width: 0; }
.hero-copy h1 { max-width: 100%; overflow-wrap: normal; word-break: normal; }
.hero-title-line { max-width: 100%; }
@media (max-width: 1024px) {
  .hero-content { grid-template-columns: minmax(0, 1fr) 180px; gap: 24px; }
  .hero-panels--editorial { gap: 10px; }
}
@media (max-width: 768px) {
  .hero-panels--editorial { display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; gap: 12px; }
  .hero-panels--editorial .hero-panel { flex: 0 0 min(72vw, 280px); width: min(72vw, 280px); scroll-snap-align: start; transform: none; }
  .hero-content { grid-template-columns: minmax(0, 1fr); }
  .hero-side { display: none; }
  .decor .blueprint-measure { display: none; }
  .decor .floating-object:not(.floating-object--hero-level):not(.floating-object--hero-trowel) { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .decor .glow,
  .decor .floating-object,
  .decor .blueprint-ruler,
  [data-scroll-marquee],
  .hero-panels--editorial .hero-panel[data-depth] {
    animation: none;
    transform: none;
    translate: none;
  }
}


/* ===== FIX 2026-10-19: hero text must never depend on reveal JS =====
   Keep the existing typography/layout; prevent eyebrow, lead and CTA from
   remaining invisible if the reveal observer runs late or fails. */
.hero-copy .eyebrow,
.hero-copy .hero-title-line,
.hero-copy .lead,
.hero-copy .button-row,
.hero-side {
  visibility: visible;
  opacity: 1;
}

/* The title reveal can still animate when JS is available, but its final
   CSS state is readable without JavaScript or IntersectionObserver. */
.hero-copy .hero-title-line {
  clip-path: none;
}

/* If a generic reveal class was applied to hero copy, neutralize only its
   hidden initial state here; do not affect reveal animations elsewhere. */
.hero-copy .reveal-init,
.hero-copy [data-reveal],
.hero-copy .reveal,
.hero-side.reveal-init,
.hero-side[data-reveal],
.hero-side.reveal {
  opacity: 1;
  visibility: visible;
  transform: none;
  clip-path: none;
}

@media (prefers-reduced-motion: reduce) {
  .hero-copy .eyebrow,
  .hero-copy .hero-title-line,
  .hero-copy .lead,
  .hero-copy .button-row,
  .hero-side {
    animation: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    clip-path: none !important;
  }
}


/* ===== FIX v3: keep heading typography; only prevent invisible initial state =====
   Не сбрасываем transform/animation: эти свойства отвечают за исходный стиль
   и reveal. Снимаем только маску и opacity:hidden, из-за которых заголовок
   мог полностью пропадать, если JS-наблюдатель не сработал. */
.section-heading-row h2,
.benefit-intro h2,
.display-muted {
  clip-path: none;
  -webkit-clip-path: none;
  opacity: 1;
  visibility: visible;
}

/* Те же гарантии для элементов с reveal-классами, без сброса типографики,
   transform, transition или animation. */
.section-heading-row h2.reveal-init,
.section-heading-row h2[data-reveal],
.section-heading-row h2.reveal,
.benefit-intro h2.reveal-init,
.benefit-intro h2[data-reveal],
.benefit-intro h2.reveal,
.display-muted.reveal-init,
.display-muted[data-reveal],
.display-muted.reveal {
  clip-path: none;
  -webkit-clip-path: none;
  opacity: 1;
  visibility: visible;
}
