/* Self-hosted variable fonts (SIL OFL 1.1, see static/fonts/LICENSE.txt). */
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400 700;font-display:swap;src:url(/static/fonts/golos-text-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400 700;font-display:swap;src:url(/static/fonts/golos-text-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:400 700;font-display:swap;src:url(/static/fonts/onest-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Onest';font-style:normal;font-weight:400 700;font-display:swap;src:url(/static/fonts/onest-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* Type scale: five sizes for the whole site; the logo lockup keeps its own proportions. */
:root{--fs-display:clamp(44px,5.4vw + 12px,96px);--fs-h2:clamp(30px,3.4vw + 6px,52px);--fs-h3:clamp(20px,1vw + 16px,28px);--fs-body:clamp(15px,.25vw + 13.5px,16px);--fs-small:13px;font-family:'Golos Text',Arial,sans-serif;color:#0b1b33;background:#fff;--ink:#0b1b33;--muted:#4f6782;--line:#bcd6f7;--accent:#1565f0;--pale:#e6f1ff;--lemon:#ffe14d;--lemon-deep:#f5c400;--cyan:#8fd0ff;--sky:#eef5ff;--radius:18px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #53a2f2;outline-offset:4px}
[hidden]{display:none!important}
small{font-size:var(--fs-small)}
.layout{width:min(1200px,calc(100% - 64px));margin-inline:auto}
h1,h2,h3,h4{font-family:Onest,'Golos Text',sans-serif;letter-spacing:-.035em}
p{line-height:1.65}
h2{font-size:var(--fs-h2);font-weight:500;line-height:1.15;margin:12px 0 18px}
.eyebrow{font-size:var(--fs-small);line-height:1.4;color:var(--accent);font-weight:600;margin:0 0 12px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:15px 26px;background:var(--accent);border:1px solid var(--accent);color:#fff;border-radius:12px;font-size:var(--fs-body);font-weight:600}
.button:hover{background:#0f52c7;border-color:#0f52c7}
.button.small{padding:11px 20px;font-size:var(--fs-small)}
.text-link{font-size:var(--fs-body);font-weight:500;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#a5bed7}
.site-header{border-bottom:1px solid var(--line)}
.header-inner{display:flex;gap:24px;align-items:center;height:88px}
.wordmark{display:inline-flex;align-items:center;gap:10px;line-height:1;font-size:var(--fs-body);font-weight:700;white-space:nowrap}
.wordmark small{display:block;font-size:9px;letter-spacing:.2em;margin-top:6px}
.header-inner nav{display:flex;gap:24px;margin:auto;font-size:var(--fs-small)}
.header-inner nav a:hover{color:var(--accent)}
.phone-link{font-size:var(--fs-body);font-weight:600;white-space:nowrap}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center;padding-block:70px 90px}
.hero h1{font-size:var(--fs-display);font-weight:500;line-height:1.06;margin:20px 0 24px}
.hero-description{font-size:var(--fs-body);color:#4f6782;max-width:540px}
.hero-actions{display:flex;align-items:center;gap:24px;margin-top:30px}
.section-heading{max-width:720px;margin-bottom:38px}
.section-heading>p:last-child{font-size:var(--fs-body);color:var(--muted);margin-bottom:0}
.prices-section{background:#e8f3fe;padding-block:80px}
.selection-bar{display:flex;flex-direction:column;gap:26px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.service-options{display:flex;gap:8px}
.service-option{border:1px solid #92c4f8;background:#fff;border-radius:12px;padding:16px 24px;color:var(--ink)}
.service-option strong{font-size:var(--fs-body);font-weight:500}
.service-option[aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent)}
.area-field{padding:0;border:0;margin:0}
.area-field legend{font-size:var(--fs-small);font-weight:600;margin-bottom:10px}
.area-options{display:flex;flex-wrap:wrap;gap:8px}
.area-options button{padding:10px 17px;background:#fff;border:1px solid #92c4f8;border-radius:8px;color:var(--ink);font-size:var(--fs-small)}
.area-options button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:#d6eaff}
.service-summary{font-size:var(--fs-body);color:var(--muted);margin:22px 0}
.package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.package-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;position:relative}
.package-card.is-selected{border-color:var(--accent)}
.package-card h3{font-size:var(--fs-h3);font-weight:500;line-height:1.15;margin:0 0 12px}
.package-description{font-size:var(--fs-small);color:var(--muted);min-height:43px;margin:0 0 24px}
.package-price{font-family:Onest,sans-serif;font-size:var(--fs-h2);font-weight:500;line-height:1.2}
.package-area{font-size:var(--fs-small);color:var(--muted);margin:5px 0 20px}
.package-choice{display:block;width:100%;background:#e6f2ff;border:1px solid #86bef7;color:var(--accent);border-radius:10px;padding:12px;font-size:var(--fs-small);font-weight:600}
.package-choice:hover{background:#d1e6fc}
.package-choice[aria-pressed=true]{color:#fff;background:var(--accent);border-color:var(--accent)}
.package-card ul{list-style:none;padding:22px 0 0;margin:22px 0 0;border-top:1px solid var(--line);display:grid;gap:12px}
.package-card li{font-size:var(--fs-small);line-height:1.5;display:flex;gap:9px}
.package-card li:before{content:'✓';color:var(--accent);font-weight:600;flex:none}
.comparison{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.comparison summary{padding:20px 24px;cursor:pointer;font-size:var(--fs-body);font-weight:600;list-style-position:inside}
.table-scroll{overflow-x:auto;padding:0 24px 24px}
.comparison table{border-collapse:collapse;width:100%;min-width:700px;font-size:var(--fs-small)}
.comparison caption{text-align:left;color:var(--muted);padding:5px 0 18px}
.comparison th,.comparison td{border-bottom:1px solid var(--line);padding:13px 10px}
.comparison thead th{color:var(--accent);font-weight:600;vertical-align:bottom}
.comparison th:first-child{width:40%;text-align:left}
.comparison tbody th{font-weight:400;line-height:1.5}
.comparison td{text-align:center;color:var(--accent);font-size:var(--fs-body)}
.comparison td span[aria-label='Не входит']{color:#7b8a9a}
.price-note{font-size:var(--fs-small);color:var(--muted);margin:22px 0 0}
.booking-panel{margin-top:60px;display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;scroll-margin-top:28px}
.booking-summary{padding:42px;background:#d5e8fc}
.booking-summary h2{font-size:var(--fs-h2)}
.booking-summary dl{margin:32px 0 16px}
.booking-summary dl>div{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid #8ac1f8;font-size:var(--fs-body)}
.booking-summary dt{color:#4f6782}
.booking-summary dd{margin:0;text-align:right;font-weight:500}
.booking-summary dl .quote-total{align-items:center;border-bottom:0;padding-top:22px}
.quote-total dd{font-family:Onest,sans-serif;font-size:var(--fs-h2);letter-spacing:-.035em}
.booking-summary>p:not(.eyebrow){font-size:var(--fs-small);color:#4f6782;max-width:350px}
.booking-phone{font-size:var(--fs-h3);font-weight:600;margin-top:30px}
#lead-form{padding:42px;scroll-margin-top:30px}
#lead-form h3{font-size:var(--fs-h3);font-weight:500;margin:0 0 6px}
#lead-form>p{color:var(--muted);font-size:var(--fs-small);margin:0 0 26px}
#lead-form label{display:block;font-size:var(--fs-small);font-weight:500;margin:18px 0}
#lead-form input:not([type=hidden]):not([type=checkbox]):not([type=radio]),#lead-form select,#lead-form textarea{width:100%;display:block;margin-top:8px;padding:12px 14px;min-height:46px;background:#fff;color:var(--ink);border:1px solid #91c4f8;border-radius:9px;font-size:var(--fs-body)}
#lead-form textarea{resize:vertical}
.comment-disclosure{font-size:var(--fs-small);color:var(--accent);margin:20px 0}
.comment-disclosure summary{cursor:pointer}
#lead-form .consent-line{display:flex;gap:9px;font-size:var(--fs-small);line-height:1.5;font-weight:400;color:var(--muted)}
.consent-line input{width:16px;height:16px;flex:none;accent-color:var(--accent);margin:2px 0 0}
.consent-line a{text-decoration:underline;text-underline-offset:2px}
.submit-button{width:100%}
.submit-button:disabled{opacity:.55;cursor:wait}
.form-status{font-size:var(--fs-small);line-height:1.5;margin-top:12px}
.form-status[data-kind=error]{color:#ac3243}
.form-status[data-kind=success]{color:#16815c}
.results-section{padding-block:90px}
.work-grid{display:grid;gap:26px}
.work-grid figure{margin:0}
.work-grid figcaption{font-size:var(--fs-body);font-weight:500;padding-top:18px}
.work-grid figcaption span{display:block;font-size:var(--fs-small);color:var(--muted);font-weight:400;margin-top:5px}
.reviews-section{background:#e0eefd;padding-block:80px}
.review-layout{display:grid}
.review-layout>div>p:last-child{color:var(--muted);font-size:var(--fs-body)}
.review-list{display:grid;gap:20px}
.review-list blockquote{position:relative;background:#fff;padding:35px 38px;border-radius:20px;margin:0}
.quote-mark{font-family:Georgia,serif;font-size:var(--fs-display);color:#67aaef;line-height:.9;display:block;height:40px}
.review-list blockquote>p{font-size:var(--fs-body);line-height:1.8;margin:12px 0 26px}
.review-list footer{display:grid;grid-template-columns:42px 1fr;column-gap:12px;align-items:center;font-size:var(--fs-small)}
.avatar{grid-row:span 2;background:#d4e9ff;color:var(--accent);width:42px;height:42px;display:grid;place-items:center;border-radius:50%;font-size:var(--fs-h3)}
.review-list footer>span:last-child{font-size:var(--fs-small);color:var(--muted);margin-top:4px}
.faq-section{padding-block:90px}
.faq-list{border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line);padding:23px 0}
.faq-list summary{display:flex;justify-content:space-between;gap:24px;cursor:pointer;list-style:none;font-size:var(--fs-body);font-weight:500}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:after{content:'+';color:var(--accent);font-size:var(--fs-h3);line-height:1}
.faq-list details[open] summary:after{content:'−'}
.faq-list p{color:var(--muted);font-size:var(--fs-body);max-width:750px;margin-bottom:0}
.final-cta{background:#b5d9ff;padding-block:65px}
.final-cta>.layout{display:flex;justify-content:space-between;align-items:center;gap:40px}
.final-cta h2{font-size:var(--fs-h2)}
.final-cta p:last-child{font-size:var(--fs-body);margin-bottom:0}
.final-actions{display:flex;flex-direction:column;gap:18px;align-items:center;flex:none}
.final-phone{font-size:var(--fs-h3);font-weight:600}
.site-footer{background:#0b1b33;color:#fff;padding-block:55px}
.footer-grid{display:grid;gap:40px}
.footer-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.footer-grid p,.footer-grid small,.footer-grid span:not(.mark){font-size:var(--fs-small);color:#c3d8f2;margin:0}
.footer-grid .wordmark>span:not(.mark){color:#fff;font-size:var(--fs-body)}
.footer-grid b{font-size:var(--fs-small);color:#8abff5;margin-bottom:10px;font-weight:500}
.footer-grid a{font-size:var(--fs-body)}
.footer-grid .wordmark{font-size:var(--fs-body)}
.social-links{display:flex;margin-top:8px}
.social-links a{font-size:var(--fs-small);text-underline-offset:4px}
.footer-grid .footer-copy{grid-column:1/-1;border-top:1px solid #3d5a78;padding-top:22px;flex-direction:row;justify-content:space-between;align-items:center;width:100%}
.footer-copy a{font-size:var(--fs-small);text-decoration:underline;text-underline-offset:3px}
.mobile-actions{display:none}
/* Order of work: a clear sequence with an action beside the cards. */
.process-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:58px;align-items:start;padding-block:90px}
.process-intro{position:sticky}
.process-intro h2{font-size:var(--fs-h2);margin:14px 0 20px}
.process-intro>p:not(.eyebrow){font-size:var(--fs-body);color:var(--muted);max-width:360px;margin-bottom:28px}
.process-call{color:var(--accent);font-size:var(--fs-small);text-decoration:underline;text-underline-offset:4px}
.process-cards{display:grid;list-style:none;margin:0;padding:0}
.process-cards li{flex-direction:column}
.process-icon{margin-bottom:25px}
.process-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.process-cards h3{font-size:var(--fs-h3);font-weight:500;line-height:1.2}
.process-cards p{font-size:var(--fs-small);line-height:1.6;color:var(--muted)}
.process-detail{font-size:var(--fs-small);line-height:1.5;font-weight:500;color:#1f5f9f;margin-top:auto}
.comparison-mobile{display:none}
.brand-drop{display:block;position:relative;flex:none;overflow:hidden}
.brand-drop img{top:0;left:50%;max-width:none}
.brand-drop,.footer-grid .brand-drop{background:none;width:40px;height:56px;border-radius:0;overflow:visible}
.brand-drop img,.footer-grid .brand-drop img{position:static;transform:none;display:block;width:100%;height:100%;object-fit:contain}
/* Local design preview: navigation, selection states and the work gallery. */
html{scroll-padding-top:110px}
.site-header{position:sticky;top:0;z-index:40;background:#fffffff2;backdrop-filter:blur(14px);transition:box-shadow .2s,border-color .2s}
.site-header.is-scrolled{box-shadow:0 5px 25px #17374b0c;border-color:#b4d7fa}
.header-inner nav a{position:relative;padding-block:12px;transition:color .18s}
.header-inner nav a:after{content:'';position:absolute;left:0;right:0;bottom:3px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.header-inner nav a[aria-current]{color:var(--accent)}
.header-inner nav a[aria-current]:after{transform:scaleX(1)}
.button,.package-choice,.area-options button,.service-option{transition:background .18s,border-color .18s,box-shadow .18s,transform .18s}
.button:active,.package-choice:active{transform:translateY(1px)}
.package-card{transition:box-shadow .12s,border-color .12s,transform .12s}
.package-card.is-selected{box-shadow:inset 0 4px var(--accent),0 14px 28px #1777a70b}
.package-card.is-selected .package-price{color:var(--accent)}
.package-card.is-selected .package-choice:before{content:'✓';margin-right:8px}
.process-intro{top:120px}
.mobile-book{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
.mobile-book small{font-size:var(--fs-small);line-height:1.2;color:#cbe4ff;font-weight:400}
.mobile-book small:empty{display:none}
/* Small responses to deliberate actions; no continuous motion. */
.package-price,#result-total,[data-mobile-price]{display:block;font-variant-numeric:lining-nums proportional-nums}
.faq-list summary:after{transition:transform .24s,color .24s}
.faq-list details[open] summary{color:var(--accent)}
.faq-list details[open] summary:after{transform:rotate(180deg)}
.package-price,#result-total{letter-spacing:-.02em}
.nav-toggle{display:none}
.nav-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.nav-toggle path{transform-origin:12px 12px;transition:transform .2s,opacity .15s}
.nav-toggle[aria-expanded=true] .menu-top{transform:rotate(45deg) translateY(5px)}
.nav-toggle[aria-expanded=true] .menu-middle{opacity:0}
.nav-toggle[aria-expanded=true] .menu-bottom{transform:rotate(-45deg) translateY(-5px)}
/* Booking details can be edited without starting over. */
.booking-summary dt:has(.summary-edit){display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.summary-edit{font-size:var(--fs-small);font-weight:500;color:var(--accent);text-decoration:underline;text-underline-offset:3px;padding-block:3px}
.summary-edit:hover{color:var(--ink)}
#area-choice,.package-grid{scroll-margin-top:110px}
#lead-form .field-error{display:block;font-size:var(--fs-small);font-weight:400;line-height:1.45;margin-top:7px;color:#ad3447}
#lead-form input[aria-invalid=true]{border-color:#c85b68!important;box-shadow:0 0 0 2px #c85b6810}
#lead-form .contact-methods{border:0;padding:0;margin:21px 0}
.contact-methods legend{font-size:var(--fs-small);font-weight:500;margin-bottom:10px}
.contact-methods>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.contact-methods.two-options>div{grid-template-columns:repeat(2,minmax(0,1fr))}
#lead-form .contact-methods label{position:relative;margin:0;font-weight:400;cursor:pointer}
.contact-methods input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.contact-methods span{display:grid;place-items:center;min-height:45px;border:1px solid #99c8f8;border-radius:9px;font-size:var(--fs-small);color:var(--muted);transition:background .18s,border-color .18s}
.contact-methods input:checked+span{background:#dbecff;border-color:var(--accent);color:var(--accent);font-weight:500}
.contact-methods input:focus-visible+span{outline:3px solid #53a2f2;outline-offset:3px}
#lead-form>.field-error{margin-bottom:14px}
/* Public documents, social links and privacy choices. */
.social-links a{display:inline-flex;align-items:center;gap:7px;text-decoration:none}
.social-links a span{text-decoration:underline;text-underline-offset:4px}
.social-links svg{display:block;width:21px;height:21px;flex:none;color:inherit}
.social-links a[href*="vk.ru"] svg{fill:currentColor}
.legal-links{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;font-size:var(--fs-small);line-height:1.6}
.legal-links a,.legal-links button{text-decoration:underline;text-underline-offset:3px}
.legal-links button{border:0;padding:0;background:none;color:inherit;text-align:left;font-size:inherit}
.legal-page{padding-bottom:0}
.legal-document{max-width:850px;padding-block:65px 90px}
.legal-document h1{font-size:var(--fs-h2);line-height:1.15;font-weight:500;margin:24px 0 16px;overflow-wrap:anywhere}
.legal-document h2{font-size:var(--fs-h3);margin-top:36px;line-height:1.3}
.legal-document p{font-size:var(--fs-body);line-height:1.8;color:#4f6782}
.legal-document .legal-date{font-size:var(--fs-small);color:var(--muted);margin-bottom:32px}
.cookie-banner{position:fixed;left:24px;bottom:24px;z-index:60;width:min(440px,calc(100% - 48px));padding:23px;background:#fff;border:1px solid #8bc1f8;box-shadow:0 8px 40px #17374b1f;border-radius:18px}
.cookie-banner strong{font-family:Onest,sans-serif;font-size:var(--fs-body);font-weight:600}
.cookie-banner p,.cookie-dialog p{font-size:var(--fs-small);color:#4f6782;line-height:1.6;margin:10px 0}
.cookie-policy-link{font-size:var(--fs-small);text-decoration:underline;text-underline-offset:3px;color:var(--accent)}
.cookie-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}
.cookie-button{min-height:42px;border:1px solid #aac9e8;padding:10px 14px;border-radius:9px;background:#e5f1fe;color:#0f52c7;font-size:var(--fs-small);font-weight:600}
.cookie-button:hover{background:#cee5fc;border-color:var(--accent)}
.cookie-text-button{border:0;background:none;color:#0f52c7;font-size:var(--fs-small);text-decoration:underline;text-underline-offset:3px;padding:10px 4px;min-height:42px}
.cookie-dialog{border:1px solid #8bc1f8;border-radius:22px;padding:32px;width:min(530px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;color:var(--ink)}
.cookie-dialog::backdrop{background:#17374b80;backdrop-filter:blur(3px)}
.cookie-dialog h2{font-size:var(--fs-h3);margin:8px 30px 12px 0;line-height:1.2}
.cookie-dialog .eyebrow{color:var(--accent);margin:0;font-weight:600}
.cookie-close{position:absolute;top:16px;right:16px;border:0;border-radius:50%;width:36px;height:36px;background:#e5f1fe;color:var(--ink);font-size:var(--fs-h3);line-height:1}
.cookie-category{display:flex;align-items:flex-start;gap:18px;padding:20px 0;border-top:1px solid var(--line);margin-top:10px}
.cookie-category>div{flex:1}
.cookie-category strong{font-size:var(--fs-body)}
.cookie-category p{font-size:var(--fs-small);margin:5px 0 0}
.cookie-category>span{font-size:var(--fs-small);white-space:nowrap;color:var(--muted);margin-top:3px}
.cookie-category input{width:20px;height:20px;margin:0;accent-color:var(--accent);flex:none}
.cookie-category [data-analytics-off]{color:var(--accent);font-weight:500}
.messenger-links{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.messenger-links a,.messenger-links button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border:1px solid currentColor;border-radius:10px;color:var(--accent);background:transparent;font-size:var(--fs-small);font-weight:500}
.messenger-links svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.site-footer .messenger-links{margin:14px 0 8px}
.site-footer .messenger-links a,.site-footer .messenger-links button{color:#d8ebff}
.footer-grid>.social-note{grid-column:1/-1;font-size:var(--fs-small);color:#86bdf7;margin:0;line-height:1.7;max-width:850px}
.final-cta h2{max-width:700px;margin-top:0;line-height:1.2}
.contact-dialog{border:1px solid #8bc1f8;border-radius:22px;padding:34px;width:min(460px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;color:var(--ink)}
.contact-dialog::backdrop{background:#17374b80;backdrop-filter:blur(3px)}
.contact-dialog h2{font-size:var(--fs-h3);margin:12px 30px 18px 0}
.contact-dialog p{font-size:var(--fs-body);color:var(--muted)}
.contact-dialog .contact-dialog-phone{font-size:var(--fs-h3);font-weight:600;color:var(--ink);white-space:nowrap;letter-spacing:0}
.contact-dialog .copy-status{font-size:var(--fs-small);min-height:19px;margin:10px 0}
/* Reviews stay compact as the collection grows. */
.review-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px;align-items:start}
.review-intro{padding-block:14px}
.review-intro>p:last-of-type{color:var(--muted);font-size:var(--fs-body)}
.review-viewport{min-width:0;border-radius:24px;transition:height .28s ease;outline-offset:6px}
.review-track{display:grid;gap:20px}
.review-slide{min-width:0}
.review-card{margin:0;background:#fff;border-radius:24px}
.review-card .review-text{font-size:var(--fs-body);line-height:1.8;margin:14px 0 24px;white-space:pre-line;overflow-wrap:anywhere}
.reviews-ready .review-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:7;overflow:hidden}
.reviews-ready .is-expanded .review-text{display:block;overflow:visible}
.review-more{align-self:flex-start;border:0;background:none;color:var(--accent);font-size:var(--fs-small);font-weight:500}
.review-card footer{display:flex;align-items:center;gap:12px;padding-top:22px;font-size:var(--fs-small);line-height:1.4}
.review-card footer strong{display:block;font-weight:600}
.review-card footer>div>span{display:block;font-size:var(--fs-small);color:var(--muted);margin-top:5px}
.review-card .avatar{flex:none}
.is-carousel .review-viewport{overflow:hidden;touch-action:pan-y pinch-zoom}
.is-carousel .review-track{display:flex;align-items:flex-start;gap:0;will-change:transform}
.is-carousel .review-slide{flex:0 0 100%;width:100%}
.review-controls{max-width:260px;margin-top:32px}
.review-control-row{display:flex;align-items:center;justify-content:space-between;gap:18px}
.review-navigation{display:flex;align-items:center;gap:15px}
.review-controls button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #8dc2f8;border-radius:50%;background:#fff;color:var(--accent);transition:background .2s,transform .2s}
.review-controls button:hover{background:#c7e1fb;transform:translateY(-2px)}
.review-controls button:disabled{opacity:.45;cursor:default;transform:none}
.review-controls svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.review-count{font-size:var(--fs-small);color:#3e6186;font-variant-numeric:tabular-nums;letter-spacing:.03em;white-space:nowrap}
.review-controls .review-rotation{width:36px;height:36px;background:transparent;border-color:transparent}
.review-controls .review-rotation:hover{background:#c7e1fb}
.review-rotation svg{width:18px;height:18px}
.review-rotation .play-icon{display:none}
.review-rotation[data-paused=true] .play-icon{display:block}
.review-rotation[data-paused=true] .pause-icon{display:none}
.review-progress{height:2px;border-radius:2px;background:#a9d1fa;margin-top:22px;overflow:hidden}
.review-progress span{display:block;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left center}
.form-trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.review-card{display:flex;flex-direction:column}
.review-card footer{margin-top:auto}
/* Touch targets: controls used on phones are at least 44px tall. */
.area-options button,.button.small{min-height:44px}
.review-more{display:inline-flex;align-items:center;min-height:44px;border-bottom:0;padding:0;text-decoration:underline;text-decoration-color:#99bee4;text-underline-offset:5px;margin:-12px 0 12px}
.nav-toggle{min-width:44px;min-height:44px}
.text-link{display:inline-flex;align-items:center;min-height:44px}
/* Block-level links keep their own line; summary keeps its disclosure marker. */
.process-call{display:flex;align-items:center;width:fit-content;min-height:44px;margin-top:6px}
.comment-disclosure summary{display:list-item}
.summary-edit{display:inline-flex;align-items:center;min-height:44px;margin-block:-12px}
.faq-list details{padding-block:0}
.faq-list summary{padding-block:23px}
.faq-list details>p{margin:-8px 0 23px}
#result-total[data-no-price]{font-size:var(--fs-body);font-weight:500;letter-spacing:0}
.package-choice,.messenger-links a,.messenger-links button{min-height:44px}
.booking-phone,.final-phone{display:inline-flex;align-items:center;min-height:44px}
/* Phones: packages scroll sideways so the list stays one card tall; desktop keeps the grid. */
.package-dots{display:none}
/* Preferred time reuses the contact chips; success card replaces the form after sending. */
.preferred-times legend small{font-weight:400;color:var(--muted)}
.lead-success{padding:clamp(24px,4vw,42px)}
.lead-success:focus{outline:none}
.lead-success h3{font-size:var(--fs-h3);font-weight:500;margin:0 0 8px}
.lead-success-text{font-size:var(--fs-small);color:var(--muted);margin:0 0 18px}
.lead-success dl{margin:0 0 22px;display:grid;gap:0}
.lead-success dl>div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);font-size:var(--fs-small)}
.lead-success dt{color:var(--muted)}
.lead-success dd{margin:0;text-align:right;font-weight:500}
.lead-success-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px}
.lead-success-actions .text-link{border:0;background:none;padding:0;color:var(--ink)}
.header-call{display:none}
.contact-methods span{text-align:center;padding-inline:6px;line-height:1.25}
/* 404: same rhythm as the hero; the mascot sits on the pale panel with the code behind it. */
.not-found{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,70px);align-items:center;padding-block:clamp(36px,7vw,90px)}
.not-found h1{font-size:var(--fs-display);font-weight:500;line-height:1.06;margin:16px 0 20px}
.not-found-copy>p:not(.eyebrow){font-size:var(--fs-body);color:var(--muted);max-width:470px}
.not-found-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:28px}
.not-found-call{margin-top:26px;font-size:var(--fs-small)!important}
.not-found-call a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:4px}
.not-found-visual{position:relative;display:flex;align-items:flex-end;justify-content:center;height:clamp(300px,42vw,460px);background:#d5eaff;border-radius:42% 42% 24px 24px;overflow:hidden}
.not-found-code{position:absolute;top:8%;font-family:Onest,sans-serif;font-size:var(--fs-display);font-weight:600;letter-spacing:-.04em;color:#a5cef9;line-height:1}
.not-found-visual img{position:relative;display:block;width:80%;max-height:78%;object-fit:contain;margin-bottom:5%;filter:drop-shadow(0 15px 14px #247ba526)}
.header-action{display:inline-flex;align-items:center;min-height:44px}
/* Before/after pairs framed like the ready-made composites; three tiles a row on wide screens. */
.work-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.work-more{margin:26px 0 0;font-size:var(--fs-body);color:var(--muted)}
.work-more a{color:var(--accent);text-decoration:underline;text-underline-offset:4px;display:inline-flex;align-items:center;min-height:44px}
/* Before/after slider: "after" underneath, "before" clipped to the handle position. */
.before-after{position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:18px;background:#dbedff;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:ew-resize}
.before-after img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.before-after-before{clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.before-after-handle{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 0 1px #17374b26;pointer-events:none}
.before-after-knob{position:absolute;top:50%;left:clamp(22px,var(--pos),calc(100% - 22px));width:44px;height:44px;margin:-22px 0 0 -22px;pointer-events:none;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231565f0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 7-5 5 5 5M15 7l5 5-5 5'/%3E%3C/svg%3E") center/22px no-repeat;box-shadow:0 4px 14px #17374b33}
.before-after-label{position:absolute;top:14px;padding:4px 10px;background:#0f52c7;color:#fff;border-radius:7px;font-size:var(--fs-small);font-weight:600;letter-spacing:.04em;text-transform:uppercase;pointer-events:none}
.before-after-label.is-before{left:14px}
.before-after-label.is-after{right:14px}
.before-after-range{position:absolute;inset:auto 0 0;width:100%;height:1px;margin:0;opacity:0;pointer-events:none}
.before-after:has(.before-after-range:focus-visible) .before-after-knob{outline:3px solid #53a2f2;outline-offset:3px}
/* Mascot: hero, final block, success messages; bubbles only in the hero and the final block. */
.mascot{display:block;height:auto;pointer-events:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 12px 16px #0b1b331f)}
.final-cta{position:relative}
.final-cta-copy{flex:1}
.lead-success{position:relative}
.mascot-success{position:absolute;top:clamp(14px,3vw,26px);right:clamp(14px,3vw,30px);width:clamp(70px,9vw,108px)}
.lead-success>.eyebrow,.lead-success h3{padding-right:clamp(78px,10vw,118px)}
.final-cta{background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20400%20400'%20fill='%23ffffff'%20fill-opacity='.55'%20stroke='%237fb6f2'%20stroke-opacity='.45'%20stroke-width='2'%3E%3Ccircle%20cx='300'%20cy='90'%20r='62'/%3E%3Ccircle%20cx='190'%20cy='40'%20r='22'/%3E%3Ccircle%20cx='360'%20cy='210'%20r='30'/%3E%3Ccircle%20cx='240'%20cy='170'%20r='12'/%3E%3Ccircle%20cx='110'%20cy='110'%20r='9'/%3E%3Ccircle%20cx='330'%20cy='320'%20r='16'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20400%20400'%20fill='%23ffffff'%20fill-opacity='.55'%20stroke='%237fb6f2'%20stroke-opacity='.45'%20stroke-width='2'%3E%3Ccircle%20cx='300'%20cy='90'%20r='62'/%3E%3Ccircle%20cx='190'%20cy='40'%20r='22'/%3E%3Ccircle%20cx='360'%20cy='210'%20r='30'/%3E%3Ccircle%20cx='240'%20cy='170'%20r='12'/%3E%3Ccircle%20cx='110'%20cy='110'%20r='9'/%3E%3Ccircle%20cx='330'%20cy='320'%20r='16'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right -70px top -40px,left -90px bottom -120px;background-size:380px,300px}
/* Footer: social links wrap on phones; grid columns may shrink below their content width. */
.social-links{flex-wrap:wrap;gap:4px 16px}
.footer-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr)}
/* Polish: a livelier hero, numbered steps, blue final block. */
.process-cards{counter-reset:step}
.process-cards li{counter-increment:step}
.process-icon{color:var(--accent);font-family:Onest,sans-serif;font-weight:600;letter-spacing:-.04em;line-height:1}
.process-icon::before{content:counter(step,decimal-leading-zero)}
.process-icon svg{display:none}
.final-cta{background-color:var(--accent);color:#fff}
.final-cta h2{color:#fff}
.final-cta p:last-child{color:#e3eeff}
.final-cta .button{background:#fff;border-color:#fff;color:var(--accent)}
.final-cta .button:hover{background:#e3eeff;border-color:#e3eeff}
.final-phone{color:#fff}
/* Service ticker: tilted brand band between hero and prices; static when motion is reduced. */
.ticker-wrap{overflow:hidden;padding-block:18px;background:linear-gradient(#fff 50%,#e8f3fe 50%)}
.service-ticker{width:104%;margin-left:-2%;transform:rotate(-1.6deg);background:var(--accent);color:#fff;box-shadow:0 10px 24px #1565f033}
.ticker-track{display:flex;width:max-content;animation:ticker 38s linear infinite}
.ticker-track ul{display:flex;flex:none;margin:0;padding:0;list-style:none}
.ticker-track li{display:flex;align-items:center;gap:22px;padding:15px 0 15px 22px;font-family:Onest,sans-serif;font-size:var(--fs-body);font-weight:500;white-space:nowrap}
.ticker-track li::before{content:'';width:14px;height:18px;flex:none;background:#bfe0ff;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M12%202s-7%208.2-7%2013a7%207%200%200%200%2014%200c0-4.8-7-13-7-13Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M12%202s-7%208.2-7%2013a7%207%200%200%200%2014%200c0-4.8-7-13-7-13Z'/%3E%3C/svg%3E") center/contain no-repeat}
@keyframes ticker{to{transform:translateX(-50%)}}
/* Eyebrows carry a small drop, the brand mark, through every section. */
.eyebrow::before{content:'';display:inline-block;width:.72em;height:.92em;margin-right:.45em;vertical-align:-.1em;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M12%202s-7%208.2-7%2013a7%207%200%200%200%2014%200c0-4.8-7-13-7-13Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M12%202s-7%208.2-7%2013a7%207%200%200%200%2014%200c0-4.8-7-13-7-13Z'/%3E%3C/svg%3E") center/contain no-repeat}
/* Sea: the top wave of the final block. It sticks to the bottom of the screen until the block
   scrolls up to it, then rides on the block as its edge. */
.sea{position:sticky;bottom:0;z-index:15;margin-top:calc(-1 * clamp(24px,3vw,40px));height:clamp(24px,3vw,40px);overflow:hidden;pointer-events:none}
.sea span{position:absolute;left:0;bottom:0;width:calc(100% + var(--tile));height:100%;background:var(--sea-color);-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201440%2048'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0%2024C180%204%20540%204%20720%2024S1260%2044%201440%2024V48H0Z'/%3E%3C/svg%3E") 0 0/var(--tile) 100% repeat-x;mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201440%2048'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0%2024C180%204%20540%204%20720%2024S1260%2044%201440%2024V48H0Z'/%3E%3C/svg%3E") 0 0/var(--tile) 100% repeat-x;animation:sea var(--speed) linear infinite}
.sea-back{--sea-color:#8fc2f6;--tile:520px;--speed:24s;opacity:.6;animation-direction:reverse!important}
.sea-front{--sea-color:var(--accent);--tile:380px;--speed:16s;height:64%!important}
@keyframes sea{to{transform:translateX(calc(-1 * var(--tile)))}}
/* Process: a vertical route; the step in the middle of the screen lights up while the intro stays put. */
.process-cards{grid-template-columns:minmax(0,1fr);gap:14px}
.process-cards li{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:22px;align-items:start;padding:22px 24px;background:transparent;border:1px solid transparent;border-radius:20px;box-shadow:none;transition:background .3s,border-color .3s,box-shadow .3s}
.process-cards li:hover{transform:none;box-shadow:none;border-color:transparent}
.process-cards li:not(:last-child)::after{content:'';position:absolute;left:49px;top:78px;bottom:-36px;width:2px;background:linear-gradient(#92c4f8,#d1e7fe)}
.process-icon{grid-row:span 3;display:grid;place-items:center;width:56px;height:56px;margin:0;border:2px solid #b4d7fa;border-radius:50%;background:#fff;font-size:var(--fs-h3);position:relative;z-index:1;transition:background .3s,color .3s,border-color .3s,box-shadow .3s}
.process-cards h3,.process-cards p,.process-detail{grid-column:2}
.process-cards h3{margin:12px 0 8px}
.process-cards p{margin:0 0 14px;max-width:520px}
.process-detail{width:auto;border-top:0;padding-top:0;display:inline-flex;align-self:start;justify-self:start;padding:6px 12px;background:#e6f2ff;border-radius:8px}
.process-cards li.is-active{background:#fff;border-color:#a4cef9;box-shadow:0 16px 36px #0b1b3312}
.process-cards li.is-active .process-icon{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 0 6px #1565f01f}
/* Reviews: quote badge over the card edge, author on a tinted strip. */
.review-card{position:relative;padding:46px 40px 0;border:0;box-shadow:0 18px 44px #0b1b3317}
.review-card .quote-mark{position:absolute;top:-22px;left:34px;display:grid;place-items:center;width:52px;height:52px;padding-top:.28em;border-radius:50%;background:var(--accent);color:#fff;font-size:var(--fs-h2);line-height:1;box-shadow:0 8px 18px #1565f040}
.review-card .review-text{color:var(--ink);margin-top:4px}
.review-card footer{margin:auto -40px 0;padding:18px 40px;background:#e8f3fe;border-top:0;border-radius:0 0 24px 24px}
.review-card .avatar{width:48px;height:48px;background:var(--accent);color:#fff;font-weight:600}
.review-card footer strong{font-size:var(--fs-body)}
.is-carousel .review-slide{padding:26px 1px 2px}
.review-viewport{padding-top:26px}
.is-carousel .review-viewport{padding-top:0}
.review-card{min-height:0}
.is-carousel .review-card{min-height:410px}
/* Both phone action buttons centre their label vertically, whatever the neighbour's height. */
.mobile-actions a{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50px}
/* Phone fixes: preferred-time chips size to their label; small footer and form links reach 44px. */
.footer-grid a[href^="tel:"]{display:inline-flex;align-items:center;min-height:44px}
.social-links a{min-height:44px}
.comment-disclosure summary{padding-block:14px;margin-block:-14px}
/* Callback: outline button beside the main one, a short dialog with phone and consent. */
.button-outline{background:#fff;color:var(--accent);border-color:#86bdf7}
.button-outline:hover{background:#e6f2ff;border-color:var(--accent)}
.callback-link{border:0;background:none;padding:0;min-height:44px;color:#fff;font-size:var(--fs-body);font-weight:500;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#ffffff80;cursor:pointer}
.callback-dialog .callback-field{display:block;margin:20px 0 14px;font-size:var(--fs-small);font-weight:500}
.callback-dialog .callback-field input{display:block;width:100%;margin-top:8px;padding:12px 14px;min-height:48px;border:1px solid #91c4f8;border-radius:9px;font-size:var(--fs-body);color:var(--ink)}
.callback-dialog .consent-line{display:flex;gap:9px;font-size:var(--fs-small);line-height:1.5;color:var(--muted);margin:0 0 6px}
.callback-dialog .consent-line input{width:16px;height:16px;flex:none;margin-top:2px;accent-color:var(--accent)}
.callback-dialog .consent-line a{text-decoration:underline;text-underline-offset:2px}
.callback-dialog .field-error{display:block;color:#ac3243;font-size:var(--fs-small);margin-top:6px}
.callback-dialog .submit-button{width:100%;margin-top:16px}
.callback-dialog [data-callback-step="done"]{text-align:center;outline:none}
.mascot-dialog{width:96px;margin:0 auto 6px}
.callback-dialog [data-callback-step="done"] h2{margin-right:0}
/* Recommended middle package: blue frame and a badge on the top edge. */
.package-card.is-recommended{border:2px solid var(--accent);box-shadow:0 14px 32px #1565f01f}
.package-badge{position:absolute;top:0;left:24px;transform:translateY(-50%);padding:5px 12px;background:var(--accent);color:#fff;border-radius:8px;font-size:var(--fs-small);font-weight:600;letter-spacing:.02em}
.package-grid{padding-top:14px}
.service-options{flex-wrap:wrap}
/* Per-item services: one row per item with its price and a quantity stepper. */
.item-list{display:grid;gap:12px}
.item-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px 28px;padding:20px 24px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);transition:border-color .2s,box-shadow .2s}
.item-row.is-selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.item-info h3{font-size:var(--fs-h3);font-weight:500;margin:0}
.item-info p{font-size:var(--fs-small);color:var(--muted);margin:6px 0 0}
.item-info ul{display:flex;flex-wrap:wrap;gap:4px 16px;list-style:none;margin:10px 0 0;padding:0;font-size:var(--fs-small)}
.item-info li::before{content:'✓ ';color:var(--accent);font-weight:600}
.item-price{font-family:Onest,sans-serif;font-size:var(--fs-h3);font-weight:600;white-space:nowrap;text-align:right}
.item-price small{display:block;font-family:'Golos Text',sans-serif;font-size:var(--fs-small);font-weight:400;color:var(--muted)}
.item-qty{display:flex;align-items:center;border:1px solid #92c4f8;border-radius:12px;overflow:hidden}
.item-qty button{width:44px;height:44px;border:0;background:#eef6ff;color:var(--accent);font-size:var(--fs-h3);line-height:1}
.item-qty button:hover{background:#dbecff}
.item-qty output{min-width:40px;text-align:center;font-weight:600;font-size:var(--fs-body)}
/* FAQ: questions on the right; a short "ask us" card under the heading. Phones stack heading, questions, card. */
.faq-section{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);grid-template-areas:"head list" "ask list";column-gap:clamp(32px,5vw,64px);align-items:start}
.faq-section>.section-heading{grid-area:head;margin-bottom:28px}
.faq-list{grid-area:list}
.faq-ask{grid-area:ask;padding:clamp(22px,3vw,30px);background:#e8f3fe;border:1px solid var(--line);border-radius:var(--radius)}
.faq-ask h3{font-size:var(--fs-h3);font-weight:500;margin:0 0 6px}
.faq-ask p{font-size:var(--fs-body);color:var(--muted);margin:0 0 14px}
.faq-phone{display:inline-flex;align-items:center;min-height:44px;font-size:var(--fs-h3);font-weight:600}
.faq-ask .messenger-links{margin-top:10px}
/* Redesign «Лазурь + лимон»: one bright blue (white on it is 5.1:1), lemon only where the eye
   should land (price, sponge, checks, badge, final button), near-black ink for text. */
h1,h2{font-weight:600}
h2{letter-spacing:-.04em;line-height:1.05}
.button{border-radius:14px}
.eyebrow::before{background:var(--lemon-deep)}
.hero{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:clamp(28px,4vw,64px);padding-block:clamp(20px,4vw,48px) clamp(40px,6vw,80px)}
.hero h1{font-weight:600;line-height:.98;letter-spacing:-.045em;margin:18px 0 26px;color:var(--ink)}
.hero h1 .mark{position:relative;z-index:0;display:inline-block;padding:0 .12em;color:#fff}
.hero h1 .mark::before{content:'';position:absolute;z-index:-1;inset:.1em 0 .02em;background:var(--accent);border-radius:.14em;transform:rotate(-1.5deg) scaleX(0);transform-origin:left;animation:mark-in .7s .35s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes mark-in{to{transform:rotate(-1.5deg) scaleX(1)}}
.hero-description{color:var(--muted);max-width:520px;margin:0 0 32px}
.hero-actions{flex-wrap:wrap;gap:14px;margin-top:0}
.hero-points{display:flex;flex-wrap:wrap;gap:10px 22px;margin:34px 0 0;padding:0;list-style:none;font-size:var(--fs-small);font-weight:500}
.hero-points li{display:flex;align-items:center;gap:8px}
.hero-points li::before{content:'';flex:none;width:18px;height:18px;border-radius:6px;background:var(--lemon) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b1b33' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") center/12px no-repeat}
/* Glass: a bright scene behind fogged glass the visitor wipes. */
.glass{position:relative;isolation:isolate;height:clamp(380px,46vw,600px);overflow:hidden;border-radius:24px;background:var(--accent);touch-action:none;user-select:none;-webkit-user-select:none}
.glass-scene{position:absolute;inset:0}
.glass.is-static .glass-done{display:none}
.glass-price{position:absolute;z-index:3;left:clamp(14px,3vw,30px);top:clamp(14px,3vw,30px);display:flex;flex-direction:column;padding:12px 16px 13px;background:var(--lemon);color:var(--ink);border-radius:14px;transform:rotate(-4deg);box-shadow:0 12px 28px #0a3a8c4d;font-size:var(--fs-small);font-weight:500}
.glass-price b{font-family:Onest,sans-serif;font-size:var(--fs-h3);font-weight:700;letter-spacing:-.03em}
.glass-fog{position:absolute;inset:0;z-index:2;width:100%;height:100%;cursor:none;transition:opacity .9s ease}
.glass.is-clean .glass-fog{opacity:0;pointer-events:none}
.glass-hint{position:absolute;z-index:3;left:50%;bottom:clamp(16px,3vw,28px);display:flex;align-items:center;gap:10px;padding:10px 16px;background:#0b1b33e6;color:#fff;border-radius:12px;font-size:var(--fs-small);font-weight:500;white-space:nowrap;transform:translateX(-50%);transition:opacity .4s,transform .4s;pointer-events:none}
.glass-hint svg{width:22px;height:22px}
.glass.is-wiping .glass-hint,.glass.is-clean .glass-hint{opacity:0;transform:translateX(-50%) translateY(8px)}
.glass-sponge{position:absolute;z-index:4;left:0;top:0;width:64px;height:44px;margin:-22px 0 0 -32px;border-radius:14px;background:var(--lemon);box-shadow:inset 0 -8px 0 var(--lemon-deep),0 8px 18px #0b1b3340;opacity:0;pointer-events:none;transition:opacity .2s}
.glass-sponge::after{content:'';position:absolute;inset:8px 10px 16px;border-radius:6px;background:radial-gradient(circle,#f5c40099 1.6px,transparent 2px) 0 0/8px 8px}
.glass:hover .glass-sponge{opacity:1}
.glass.is-clean .glass-sponge{opacity:0}
.glass-done{position:absolute;z-index:3;right:clamp(14px,3vw,30px);bottom:clamp(14px,3vw,30px);max-width:230px;padding:14px 16px;background:#fff;color:var(--ink);border-radius:14px;font-size:var(--fs-small);line-height:1.45;box-shadow:0 12px 30px #0b1b3333;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .5s .5s,transform .5s .5s,visibility 0s 1s}
.glass-done b{display:block;font-family:Onest,sans-serif;font-size:var(--fs-h3);letter-spacing:-.03em}
.glass-done button{min-height:44px;padding:0;border:0;background:none;color:var(--accent);font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.glass.is-clean .glass-done{opacity:1;visibility:visible;transform:none;transition:opacity .5s .5s,transform .5s .5s,visibility 0s}
.glass-shine{position:absolute;z-index:2;inset:-20% auto -20% -40%;width:30%;background:linear-gradient(100deg,transparent,#ffffffb3,transparent);transform:skewX(-18deg);opacity:0;pointer-events:none}
.glass.is-clean .glass-shine{animation:glass-shine 1.1s .2s ease-out}
@keyframes glass-shine{0%{left:-40%;opacity:1}100%{left:120%;opacity:1}}
/* While fogged, a finger on the glass wipes in any direction; once clean, it scrolls the page again. */
.glass.is-clean{touch-action:pan-y}
/* Glass scene: a real clean room; it settles a touch when the glass clears. */
.glass{background:var(--sky)}
.glass-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 1.4s cubic-bezier(.2,.8,.2,1)}
.glass.is-clean .glass-photo{transform:none}
.glass-price{transform:none}
/* Ticker: light cyan band with lemon drops. */
.ticker-wrap{background:linear-gradient(#fff 50%,var(--sky) 50%)}
.service-ticker{background:var(--cyan);color:var(--ink);box-shadow:0 10px 24px #1565f026}
.ticker-track li::before{background:var(--lemon-deep)}
/* Prices. */
.prices-section{background:var(--sky)}
.package-badge{background:var(--lemon);color:var(--ink)}
.package-card.is-selected{box-shadow:inset 0 4px var(--accent),0 18px 40px #1565f01f}
/* Booking: the summary half is bright blue with a drop that reacts to the choice. */
.booking-panel{border:0;box-shadow:0 24px 60px #1565f024}
.booking-summary{position:relative;background:var(--accent);color:#fff}
.booking-summary h2,.booking-summary .eyebrow,.booking-summary dd,.quote-total dd,.booking-phone{color:#fff}
.booking-summary h2,.booking-summary>.eyebrow{padding-right:clamp(80px,9vw,118px)}
.booking-summary dl>div{border-bottom-color:#ffffff47}
.booking-summary dt,.booking-summary>p:not(.eyebrow){color:#eef5ff}
.summary-edit{color:#fff;text-decoration-color:#ffffff80}
.summary-edit:hover{color:var(--lemon)}
.booking-summary .messenger-links a,.booking-summary .messenger-links button{color:#fff}
.booking-summary :focus-visible{outline-color:#fff}
.booking-mascot{position:absolute;top:clamp(16px,3vw,30px);right:clamp(16px,3vw,30px);width:clamp(70px,8vw,104px);height:auto;filter:drop-shadow(0 10px 14px #0b1b3340);pointer-events:none}
/* Works: lemon knob, dark "before" label, blue "after" label. */
.before-after-knob{background:var(--lemon) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b1b33' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 7-5 5 5 5M15 7l5 5-5 5'/%3E%3C/svg%3E") center/22px no-repeat;box-shadow:0 4px 14px #0b1b3340}
.before-after-label{background:var(--ink)}
.before-after-label.is-after{background:var(--accent)}
/* Reviews on bright blue. */
.reviews-section{background:var(--accent);color:#fff}
.reviews-section h2,.reviews-section .eyebrow{color:#fff}
.review-intro>p:last-of-type{color:#eef5ff}
.reviews-section :focus-visible{outline-color:#fff}
.review-card{color:var(--ink);box-shadow:0 18px 44px #0b1b3333}
.review-card .quote-mark{background:var(--lemon);color:var(--ink);box-shadow:0 8px 18px #0b1b3333}
.review-controls button{border-color:#fff;background:#fff;color:var(--accent)}
.review-controls button:hover{background:var(--sky)}
.review-count{color:#fff}
.review-controls .review-rotation{color:#fff}
.review-controls .review-rotation:hover{background:#ffffff26}
.review-progress{background:#ffffff4d}
.review-progress span{background:var(--lemon)}
/* 404 in the same style as the hero. */
.not-found h1{font-weight:600;line-height:.98;letter-spacing:-.045em}
.not-found-visual{background:var(--accent);border-radius:24px}
.not-found-code{color:#ffffff40}
/* More lemon: pale lemon for calm surfaces, bright lemon where the eye should stop. */
:root{--lemon-pale:#fff6cc;--lemon-line:#f3df8a}
.hero-points li{padding:6px 12px 6px 7px;background:var(--lemon-pale);border-radius:10px}
.price-note{padding:14px 18px;background:#fff;border:1px solid var(--line);border-radius:14px;color:var(--ink)}
.area-options button[aria-pressed=true]{background:var(--lemon);border-color:var(--lemon-deep);color:var(--ink);box-shadow:inset 0 0 0 1px var(--lemon-deep)}
.faq-list summary:after{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:var(--lemon);color:var(--ink);font-size:var(--fs-body);font-weight:700}
.faq-ask{background:var(--sky);border-color:var(--line)}
.process-cards li.is-active .process-icon{background:var(--lemon);border-color:var(--lemon);color:var(--ink);box-shadow:0 0 0 6px #ffe14d4d}
.process-cards li.is-done .process-icon{border-color:var(--accent);color:var(--accent)}
.process-cards li:not(:last-child)::after{background:linear-gradient(var(--accent),var(--accent)) 0 0/100% 0 no-repeat,linear-gradient(#92c4f8,#d1e7fe);transition:background-size .6s ease}
.process-cards li.is-done::after{background-size:100% 100%,auto}
/* Heading marker: a lemon stroke under one word, drawn when the heading appears. */
.hl{position:relative;z-index:0;white-space:nowrap}
.hl::before{content:'';position:absolute;z-index:-1;left:-.06em;right:-.06em;bottom:.04em;height:.36em;background:var(--lemon);border-radius:.1em;transform:rotate(-1deg) scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.hl.is-in::before{transform:rotate(-1deg) scaleX(1)}
/* On blue, white text cannot sit on lemon: the word gets a full lemon plate with dark text. */
.reviews-section .hl,.booking-summary .hl{color:var(--ink);padding:0 .1em}
.reviews-section .hl::before,.booking-summary .hl::before{top:.08em;bottom:0;height:auto;left:0;right:0}
/* Package quiz. */
.quiz{margin:22px 0 4px;padding:18px clamp(16px,2.5vw,24px);background:#fff;border:1px solid var(--line);border-radius:18px}
.quiz-start{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px}
.quiz-start p{margin:0;font-size:var(--fs-body)}
.quiz-progress{display:flex;gap:6px;margin-bottom:14px}
.quiz-progress span{width:28px;height:5px;border-radius:3px;background:var(--line);transition:background .3s}
.quiz-progress span.is-done{background:var(--accent)}
.quiz-question{margin:0 0 14px;font-family:Onest,sans-serif;font-size:var(--fs-h3);font-weight:600;letter-spacing:-.02em;line-height:1.2}
.quiz-answers{display:flex;flex-wrap:wrap;gap:8px}
.quiz-answers button{flex:1 1 200px;min-height:52px;padding:12px 16px;background:var(--sky);border:1px solid var(--line);border-radius:12px;color:var(--ink);font-size:var(--fs-body);font-weight:500;text-align:left;transition:background .15s,border-color .15s,transform .15s}
.quiz-answers button:hover{background:var(--lemon);border-color:var(--lemon-deep)}
.quiz-answers button:active{transform:translateY(1px)}
.quiz-result h3{margin:0 0 8px;font-size:var(--fs-h3)}
.quiz-result p:not(.eyebrow){margin:0 0 16px;color:var(--muted);max-width:640px}
.quiz-result:focus{outline:none}
.quiz-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px}
.quiz-actions .text-link,.quiz-back{border:0;background:none;padding:0;color:var(--ink);cursor:pointer}
.quiz-back{margin-top:10px;font-size:var(--fs-small)}
/* Per-item services: an icon before the name; it hops when an item is added. */
.item-info h3{display:flex;align-items:center;gap:10px}
.item-icon{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:10px;background:var(--lemon-pale);color:var(--ink)}
.item-icon svg{width:20px;height:20px}
.item-row.is-selected .item-icon{background:var(--lemon)}
/* Waves between coloured sections, so the page flows like water. */
.prices-section,.reviews-section{position:relative}
.prices-section::after,.reviews-section::before,.reviews-section::after{content:'';position:absolute;z-index:1;left:0;right:0;height:clamp(16px,2.4vw,34px);background:var(--wave);pointer-events:none}
.prices-section{--wave:var(--sky)}
.reviews-section{--wave:var(--accent)}
.prices-section::after,.reviews-section::after{top:calc(100% - 1px);-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201440%2048'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0%200H1440V24C1260%2044%20900%2044%20720%2024S180%204%200%2024Z'/%3E%3C/svg%3E") 0 0/clamp(420px,50vw,720px) 100% repeat-x;mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201440%2048'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0%200H1440V24C1260%2044%20900%2044%20720%2024S180%204%200%2024Z'/%3E%3C/svg%3E") 0 0/clamp(420px,50vw,720px) 100% repeat-x}
.reviews-section::before{bottom:calc(100% - 1px);-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201440%2048'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0%2024C180%204%20540%204%20720%2024S1260%2044%201440%2024V48H0Z'/%3E%3C/svg%3E") 0 0/clamp(420px,50vw,720px) 100% repeat-x;mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201440%2048'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0%2024C180%204%20540%204%20720%2024S1260%2044%201440%2024V48H0Z'/%3E%3C/svg%3E") 0 0/clamp(420px,50vw,720px) 100% repeat-x}
/* Final block: soap bubbles to pop instead of the static ones. */
.final-cta{background-image:none}
.final-cta-copy,.final-actions{position:relative;z-index:1}
/* Choices answer at once on a phone: the new colour appears without a fade, and the control
   gives under the finger as soon as it is touched. */
.contact-methods span,.area-options button,.service-option,.package-choice,.quiz-answers button,.item-qty button,.button{transition:transform .08s ease-out}
.contact-methods label:active span,.area-options button:active,.service-option:active,.package-choice:active,.quiz-answers button:active,.item-qty button:active,.button:active{transform:scale(.97)}
/* iPhone zooms into any field under 16px when it gets focus, and the zoomed page can then be
   dragged sideways. Fields stay at 16px; the page itself never scrolls horizontally. */
#lead-form input:not([type=hidden]):not([type=checkbox]):not([type=radio]),#lead-form select,#lead-form textarea,.callback-dialog .callback-field input{font-size:16px}
body{overflow-x:clip}
/* Prices order: quiz at the top, then service tabs, its description, the area right above the cards. */
.quiz{margin:0 0 28px}
.selection-bar{padding-bottom:0;border-bottom:0}
.service-summary{margin:18px 0 16px}
.area-field{margin:0 0 6px}
/* Booking hint after a choice: a dark pill at the bottom with a lemon link to the form. */
.pick-toast{position:fixed;z-index:55;left:50%;bottom:24px;display:flex;align-items:center;gap:14px;max-width:calc(100% - 24px);padding:10px 10px 10px 18px;background:var(--ink);color:#fff;border-radius:14px;box-shadow:0 14px 34px #0b1b3340;font-size:var(--fs-body);transform:translateX(-50%);animation:toast-in .2s ease-out}
.pick-toast[hidden]{display:none}
.pick-toast span[data-pick-toast-text]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pick-toast-link{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;background:var(--lemon);color:var(--ink);border-radius:10px;font-weight:700}
@keyframes toast-in{from{opacity:0;transform:translate(-50%,10px)}}
/* Header for readers 30+: the four menu links a little larger (13 -> 15 px). */
.header-inner nav{font-size:15px;font-weight:500}
/* Process. */
.process-detail{background:var(--sky);color:#0f52c7}
/* Final block: bright blue, lemon second line and the one lemon button on the page. */
.final-cta h2 span{color:var(--lemon)}
.final-cta .button{background:var(--lemon);border-color:var(--lemon);color:var(--ink)}
.final-cta .button:hover{background:var(--lemon-deep);border-color:var(--lemon-deep)}
.final-cta :focus-visible{outline-color:#fff}
@media(max-width:1000px){
.header-inner nav{gap:15px}
.header-inner{gap:18px}
.phone-link{display:none}
.header-inner nav{margin-left:auto}
.hero{gap:35px}
.package-card{padding:21px}
.package-card h3{font-size:var(--fs-h3)}
.booking-summary,#lead-form{padding:32px}
.process-section{grid-template-columns:1fr;gap:30px}
.process-intro>p:not(.eyebrow){max-width:570px}
.process-intro h2 br{display:none}
.process-cards h3{font-size:var(--fs-h3)}
.process-intro{position:static}
.faq-section{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "list" "ask"}
.faq-ask{margin-top:32px}
}
@media(max-width:760px){
.layout{width:calc(100% - 36px)}
.header-inner{height:72px;justify-content:space-between}
.header-inner nav{display:none}
.wordmark{font-size:var(--fs-body)}
.wordmark small{font-size:8px}
.button.small{padding:10px 14px;font-size:var(--fs-small)}
.hero{grid-template-columns:1fr;padding-block:45px 55px;gap:35px}
.hero h1{font-size:var(--fs-display);margin-top:16px}
.hero-description{font-size:var(--fs-body);max-width:550px}
.hero-actions{gap:20px;flex-wrap:wrap;margin-top:24px}
.prices-section{padding-block:55px}
.section-heading{margin-bottom:28px}
h2{font-size:var(--fs-h2)}
.section-heading>p:last-child{font-size:var(--fs-body)}
.service-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.service-option{padding:14px 12px;text-align:left}
.service-option strong{font-size:var(--fs-small);line-height:1.4}
.area-options{gap:7px}
.area-options button{padding:10px 12px;font-size:var(--fs-small);flex:1 1 28%}
.package-card{padding:24px}
.package-card h3{font-size:var(--fs-h3)}
.package-description{min-height:0;margin-bottom:16px}
.package-card ul{gap:10px;margin-top:19px;padding-top:19px}
.package-card li{font-size:var(--fs-small)}
.package-price{font-size:var(--fs-h2)}
.package-area{margin-bottom:16px}
.comparison summary{padding:18px;font-size:var(--fs-small)}
.table-scroll{padding:0 16px 18px}
.booking-panel{grid-template-columns:1fr;margin-top:38px;border-radius:18px}
.booking-summary,#lead-form{padding:27px}
.booking-summary h2{font-size:var(--fs-h2)}
.booking-summary dl{margin-top:24px}
.booking-phone{margin-top:18px}
.booking-summary dl>div{font-size:var(--fs-small)}
.quote-total dd{font-size:var(--fs-h2)}
#lead-form h3{font-size:var(--fs-h3)}
.results-section,.process-section,.faq-section{padding-block:60px}
.work-grid{gap:30px}
.work-grid figcaption{padding-top:14px;font-size:var(--fs-body)}
.reviews-section{padding-block:55px}
.review-list blockquote{padding:27px}
.review-list blockquote>p{font-size:var(--fs-body)}
.final-cta>.layout{display:block}
.faq-list summary{font-size:var(--fs-body);line-height:1.5}
.final-cta{padding-block:50px}
.final-actions{align-items:flex-start;margin-top:25px}
.footer-grid{gap:32px 20px}
.footer-grid>div:first-child{grid-column:1/-1}
.footer-grid .footer-copy{align-items:flex-start;flex-direction:column;gap:14px}
.mobile-actions{display:grid;grid-template-columns:1fr 1fr;position:fixed;z-index:20;bottom:0;left:0;right:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:9px;background:#ffffffed;backdrop-filter:blur(12px);border-top:1px solid var(--line)}
.mobile-actions a{font-size:var(--fs-small);text-align:center;padding:12px;border:1px solid #aac9e8;color:var(--accent);border-radius:9px;font-weight:600}
.mobile-actions a:last-child{background:var(--accent);border-color:var(--accent);color:#fff}
body{padding-bottom:73px}
.process-section{padding-block:60px}
.process-intro h2{font-size:var(--fs-h2)}
.comparison .table-scroll{display:none}
.comparison-mobile{display:grid;padding:0 16px 18px;gap:12px}
.comparison-feature{background:#eff6fe;border:1px solid #c0ddfb;border-radius:12px;padding:16px}
.comparison-feature h4{font-size:var(--fs-body);font-weight:500;line-height:1.5;letter-spacing:0;margin:0 0 15px}
.comparison-feature dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}
.comparison-feature dl>div{display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px;border-left:1px solid #bfddfb;padding-inline:4px}
.comparison-feature dl>div:first-child{border:0}
.comparison-feature dt{font-size:var(--fs-small);line-height:1.4;min-height:31px;color:var(--muted);overflow-wrap:anywhere}
.comparison-feature dd{font-size:var(--fs-h3);margin:0;line-height:1.1}
.comparison-feature .included{color:var(--accent)}
.comparison-feature .excluded{color:#7b8a9a}
.brand-drop{width:36px;height:50px}
.brand-drop img,.footer-grid .brand-drop img{width:100%}
html{scroll-padding-top:94px}
#lead-form{scroll-margin-top:94px}
.mobile-actions{min-height:72px}
.mobile-actions a{padding-block:9px}
.header-inner{gap:9px}
.header-inner>.wordmark{margin-right:auto}
.nav-toggle{display:grid;place-items:center;flex:none;width:39px;height:40px;border:1px solid #afd4fa;border-radius:10px;background:#fff;color:var(--ink);padding:0}
.header-inner>nav{display:none;position:absolute;top:calc(100% + 8px);left:18px;right:18px;margin:0;background:#fff;border:1px solid #afd4fa;border-radius:14px;padding:8px;box-shadow:0 12px 35px #17374b20}
.site-header.nav-open .header-inner>nav{display:grid;gap:0}
.header-inner nav a{display:block;padding:15px;border-radius:8px;font-size:var(--fs-body)}
.header-inner nav a:after{display:none}
.header-inner nav a[aria-current]{background:#deeeff}
.header-inner nav a:hover{background:#e6f2fd}
.header-inner>.button.small{padding-inline:12px}
.header-inner .wordmark{gap:7px;font-size:var(--fs-small)}
.header-inner .wordmark small{font-size:7px}
#area-choice,.package-grid{scroll-margin-top:94px}
.booking-summary dd{max-width:65%}
.contact-methods span{font-size:var(--fs-small)}
.cookie-banner{left:12px;bottom:calc(86px + env(safe-area-inset-bottom));width:calc(100% - 24px)}
.legal-page .cookie-banner{bottom:16px}
.cookie-dialog{padding:25px 22px}
.cookie-dialog h2{font-size:var(--fs-h3)}
.legal-document{padding-block:40px 60px}
.cookie-banner p{font-size:var(--fs-small)}
.cookie-actions{gap:8px}
.cookie-button{padding-inline:11px}
.legal-links{align-items:flex-start;flex-direction:column;gap:12px}
.contact-dialog{padding:28px 23px}
.final-cta h2{font-size:var(--fs-h2)}
.footer-grid>.social-note{font-size:var(--fs-small)}
.review-layout{grid-template-columns:minmax(0,1fr);gap:26px}
.review-intro{padding:0}
.review-controls{max-width:none;margin-top:24px}
.review-navigation{gap:20px}
.review-card{border-radius:20px}
.review-card .review-text{font-size:var(--fs-body);line-height:1.8}
.review-progress{margin-top:17px}
.review-viewport{border-radius:20px}
.package-grid{position:relative;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:min(84%,330px);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;margin-inline:-18px;padding:14px 18px 6px;scroll-padding-inline:18px}
.package-grid::-webkit-scrollbar{display:none}
.package-card{scroll-snap-align:start}
.package-dots{display:flex;align-items:center;gap:7px;margin-top:14px}
.package-dots span{width:7px;height:7px;border-radius:50%;background:#92c4f8;transition:background .2s,width .2s}
.package-dots span.is-active{width:20px;border-radius:4px;background:var(--accent)}
.package-dots small{margin-left:8px;font-size:var(--fs-small);color:var(--muted)}
.header-inner>.button.small{display:none}
.header-call{order:1;display:grid;place-items:center;width:44px;height:44px;border:1px solid #afd4fa;border-radius:10px;color:var(--accent)}
.header-call svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.nav-toggle{order:2}
.cookie-banner{padding:13px 15px}
.cookie-banner p{display:none}
.cookie-banner strong{display:inline;font-size:var(--fs-small)}
.cookie-banner .cookie-policy-link{margin-left:8px}
.cookie-actions{margin-top:9px;flex-wrap:nowrap}
.not-found{grid-template-columns:1fr}
.not-found-visual{order:-1;height:250px}
.final-cta{background-size:240px,200px}
.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.sea{position:relative;bottom:auto;height:20px;margin-top:-20px}
.sea-back{--tile:300px}
.sea-front{--tile:220px}
.process-cards li{grid-template-columns:46px minmax(0,1fr);column-gap:14px;padding:18px 16px}
.process-icon{width:46px;height:46px}
.process-cards li:not(:last-child)::after{left:38px;top:64px;bottom:-32px}
.process-cards h3{margin-top:8px}
.review-card{padding:42px 24px 0}
.review-card footer{margin-inline:-24px;padding:16px 24px;border-radius:0 0 20px 20px}
.review-card .quote-mark{left:22px;width:46px;height:46px}
.preferred-times>div{display:flex;flex-wrap:wrap;gap:7px}
.preferred-times label{flex:1 1 auto}
.preferred-times span{padding-inline:14px;white-space:nowrap}
.final-cta{background-position:right -70px top -30px,right -110px bottom -150px}
.package-grid:has(>.package-card:only-child){grid-auto-columns:100%}
.item-row{grid-template-columns:minmax(0,1fr) auto;padding:18px}
.item-info{grid-column:1/-1}
.item-price{text-align:left}
.hero{grid-template-columns:minmax(0,1fr);gap:0}
.hero-copy{display:contents}
.hero-copy>.eyebrow{order:1}
.hero h1{order:2;margin:12px 0 20px}
.glass{order:3;height:min(360px,92vw);margin-bottom:24px;border-radius:20px}
.hero-description{order:4}
.hero-actions{order:5}
.hero-points{order:6}
.hero-actions .button{flex:1 1 auto}
.glass-sponge{display:none}
.booking-mascot{width:56px;top:10px;right:14px}
.booking-panel{grid-template-columns:minmax(0,1fr)}
.booking-summary h2{padding-right:0}
.booking-summary>.eyebrow{padding-right:64px}
.quiz-answers button{flex-basis:100%}
/* "в Челябинске" never wraps: on very narrow screens the headline shrinks to fit. */
.hero h1{font-size:min(var(--fs-display),calc((100vw - 36px) / 6.6))}
.item-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}
.item-info{flex:1 1 100%}
.item-price{flex:1 1 auto}
.item-qty{flex:none}
.glass-done{max-width:190px;padding:10px 12px}
.glass-done b{font-size:var(--fs-body)}
.pick-toast{bottom:calc(84px + env(safe-area-inset-bottom));width:calc(100% - 24px);justify-content:space-between}
.pick-toast span[data-pick-toast-text]{white-space:normal;line-height:1.3}
}
@media(hover:hover) and (pointer:fine){
.package-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px #1b789814}
.package-card.is-selected:hover{box-shadow:inset 0 4px var(--accent),0 14px 34px #1b789818}
}
@media(prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*,*:before,*:after{transition:none!important}
.package-card:hover,.process-cards li:hover{transform:none}
.review-viewport,.review-controls button{transition:none}
.is-carousel .review-track{transition:none!important}
.ticker-track{animation:none}
.sea span{animation:none}
.process-cards li,.process-icon{transition:none}
.glass-fog,.glass-hint,.glass-sponge{display:none}
.hero h1 .mark::before{animation:none;transform:rotate(-1.5deg)}
.glass.is-clean .glass-shine{animation:none}
.hl::before{transition:none}
.process-cards li:not(:last-child)::after{transition:none}
.glass-photo{transform:none;transition:none}
.pick-toast{animation:none}
}
