/*
Theme Name: DVK Roofing
Theme URI: https://dvk-stroi.ru/
Author: DVK-Stroi
Description: Landing theme for roofing services with lead capture.
Version: 1.0.0
Text Domain: dvk-roofing
Requires at least: 6.6
Requires PHP: 8.1
*/

:root { --dvk-ink:#1d2228; --dvk-muted:#606975; --dvk-accent:#ed6930; --dvk-accent-contrast:#a74616; --dvk-paper:#f5f6f7; }
* { box-sizing:border-box; }
body { margin:0; color:var(--dvk-ink); background:var(--dvk-paper); font:16px/1.55 'Geologica',Arial,sans-serif; }
a { color:inherit; }
.shell { width:min(1300px,calc(100% - 48px)); margin:0 auto; }
.dvk-basic-header { color:#2c2c2c; background:#fff; }
.dvk-basic-header a { text-decoration:none; }
.dvk-basic-top .shell { min-height:44px; display:flex; align-items:center; gap:42px; font-size:14px; }
.dvk-basic-top a { margin-left:auto; }
.dvk-basic-main .shell { min-height:124px; display:flex; align-items:flex-start; justify-content:space-between; gap:28px; padding-top:14px; }
.dvk-basic-brand { display:flex; align-items:center; }
.dvk-basic-brand img { width:140px; height:94px; object-fit:contain; }
.dvk-basic-brand b { display:block; font-size:23px; line-height:1.1; }
.dvk-basic-brand small { display:block; margin-top:5px; font-size:14px; }
.dvk-basic-contact { margin-left:auto; padding-top:7px; text-align:right; }
.dvk-basic-contact > a:first-child { display:block; font-size:24px; line-height:1.1; font-weight:700; }
.dvk-basic-contact .dvk-basic-callback { display:block; min-height:24px; margin-top:8px; padding:3px 0; color:var(--dvk-accent-contrast); font-size:14px; font-weight:700; }
.dvk-city-switcher { display:flex; min-width:150px; flex-direction:column; align-items:flex-start; justify-content:center; gap:1px; padding:8px 32px 8px 12px; position:relative; border:1px solid #e1e5e8; border-radius:8px; color:var(--dvk-ink); background:#fff; text-align:left; cursor:pointer; }
.dvk-city-switcher:hover,.dvk-city-switcher:focus-visible { border-color:var(--dvk-accent); outline:0; }
.dvk-city-switcher-label { color:var(--dvk-accent-contrast); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.dvk-city-switcher strong { font-size:14px; line-height:1.25; }
.dvk-city-switcher > .dvk-icon { position:absolute; top:50%; right:11px; width:12px; height:12px; transform:translateY(-50%) rotate(90deg); }
.dvk-city-dialog { width:min(860px,calc(100% - 28px)); max-height:calc(100vh - 28px); padding:0; border:0; border-radius:16px; color:var(--dvk-ink); background:#fff; box-shadow:0 24px 80px rgba(0,0,0,.28); }
.dvk-city-dialog::backdrop { background:rgba(17,22,27,.62); }
.dvk-city-dialog-card { position:relative; padding:54px 48px 42px; border-top:5px solid var(--dvk-accent); }
.dvk-city-dialog-close { position:absolute; top:14px; right:18px; width:38px; height:38px; display:grid; place-items:center; border:0; color:var(--dvk-muted); background:transparent; cursor:pointer; }
.dvk-city-dialog-close .dvk-icon { width:20px; height:20px; }
.dvk-city-dialog-eyebrow { margin:0 0 13px; color:var(--dvk-accent-contrast); font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.dvk-city-dialog h2 { max-width:700px; margin:0 0 10px; font-size:32px; line-height:1.15; }
.dvk-city-dialog-lead { margin:0 0 24px; color:var(--dvk-muted); }
.dvk-city-search { position:relative; display:block; margin-bottom:24px; }
.dvk-city-search input { width:100%; min-height:54px; padding:0 46px 0 16px; border:1px solid #d9dee4; border-radius:8px; color:var(--dvk-ink); background:#f7f8fa; }
.dvk-city-search input:focus { border-color:var(--dvk-accent); outline:2px solid rgba(237,105,48,.18); }
.dvk-city-search-icon { position:absolute; top:50%; right:18px; width:15px; height:15px; border:2px solid var(--dvk-muted); border-radius:50%; transform:translateY(-60%); pointer-events:none; }
.dvk-city-search-icon::after { content:""; position:absolute; right:-5px; bottom:-4px; width:7px; height:2px; background:var(--dvk-muted); transform:rotate(45deg); transform-origin:left center; }
.dvk-city-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; max-height:min(48vh,470px); overflow:auto; padding:2px; }
.dvk-city-option { position:relative; display:flex; min-height:70px; flex-direction:column; justify-content:center; padding:10px 32px 10px 15px; border:1px solid transparent; border-radius:8px; text-decoration:none; }
.dvk-city-option:hover,.dvk-city-option:focus-visible { border-color:#e7a487; background:#fff8f4; outline:0; }
.dvk-city-option.is-current { border-color:var(--dvk-accent); background:var(--dvk-accent); color:#fff; }
.dvk-city-option strong { font-size:15px; line-height:1.25; }
.dvk-city-option span { margin-top:3px; color:var(--dvk-muted); font-size:12px; }
.dvk-city-option.is-current span { color:rgba(255,255,255,.78); }
.dvk-city-option b { position:absolute; top:50%; right:12px; transform:translateY(-50%); }
.dvk-city-option b .dvk-icon { width:17px; height:17px; }
.dvk-city-empty { margin:15px 0 0; color:var(--dvk-muted); }
.screen-reader-text { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.dvk-basic-side-actions { position:fixed; z-index:20; top:166px; right:0; display:flex; flex-direction:column; width:66px; }
.dvk-basic-side-actions a { min-height:66px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; color:#fff; text-align:center; font-size:9px; font-weight:700; line-height:1.15; }
.dvk-basic-side-actions svg { width:20px; height:20px; fill:currentColor; }
.dvk-basic-side-actions .dvk-side-price { background:#0aa566; border-radius:11px 0 0 0; }
.dvk-basic-side-actions .dvk-side-call { background:var(--dvk-accent-contrast); }
.dvk-basic-side-actions .dvk-side-whatsapp { background:#0aa566; border-radius:0 0 0 11px; }
.dvk-floating-messengers { position:fixed; right:18px; bottom:20px; z-index:35; display:flex; align-items:center; gap:8px; }
.dvk-floating-messenger { width:46px; height:46px; display:grid; place-items:center; border-radius:50%; color:#fff; box-shadow:0 8px 22px rgba(25,31,36,.2); transition:transform .2s ease,box-shadow .2s ease; }
.dvk-floating-messenger:hover { color:#fff; transform:translateY(-3px); box-shadow:0 12px 26px rgba(25,31,36,.28); }
.dvk-floating-messenger svg { width:24px; height:24px; fill:currentColor; }
.dvk-floating-whatsapp { background:#0aa566; }
.dvk-floating-telegram { background:#159bd7; }
.dvk-floating-max { background:#fff; }
.dvk-floating-max img { width:25px; height:25px; display:block; }
.dvk-price-dialog { width:min(620px,calc(100% - 30px)); max-height:calc(100vh - 30px); overflow:auto; border:0; border-radius:14px; padding:0; color:var(--dvk-ink); background:#fff; box-shadow:0 24px 80px rgba(0,0,0,.28); }
.dvk-price-dialog::backdrop { background:rgba(17,22,27,.58); }
.dvk-price-modal { position:relative; padding:38px 42px 30px; border-top:5px solid var(--dvk-accent); border-radius:14px; }
.dvk-price-modal .dvk-price-title { margin:0 0 10px; text-align:center; font-size:31px; font-weight:700; line-height:1.1; }
.dvk-price-modal > p { max-width:470px; margin:0 auto 20px; color:var(--dvk-muted); text-align:center; }
.dvk-price-messengers { display:flex; justify-content:center; gap:12px; margin:0 0 20px; }
.dvk-price-messengers a { display:flex; width:50%; min-height:44px; align-items:center; justify-content:center; gap:7px; border-radius:8px; color:#fff; font-size:14px; font-weight:700; }
.dvk-price-messengers a.telegram { background:#039be5; }
.dvk-price-messengers a.whatsapp { background:#0aa566; }
.dvk-price-messengers .dvk-icon { width:18px; height:18px; }
.dvk-price-form label { display:block; margin:0 0 6px; color:var(--dvk-muted); font-size:13px; }
.dvk-price-form input:not([type=checkbox]) { width:100%; min-height:52px; margin:0 0 12px; padding:0 15px; border:1px solid #d9dee4; border-radius:6px; color:var(--dvk-ink); background:#f7f8fa; font-size:16px; }
.dvk-price-form .dvk-price-submit { width:100%; min-height:54px; border:0; border-radius:6px; color:#fff; background:var(--dvk-accent-contrast); font:700 17px/1.2 'Geologica',Arial,sans-serif; cursor:pointer; }
.dvk-price-form .dvk-price-submit:hover { background:#e15012; }
.dvk-price-form .dvk-price-consent { margin:13px 0 0; color:var(--dvk-muted); font-size:12px; }
.dvk-price-form .dvk-price-consent input { width:auto; min-height:0; margin:0 8px 0 0; }
.dvk-price-form .dvk-price-consent a { color:var(--dvk-accent-contrast); text-decoration:underline; }
.dvk-price-close { position:absolute; top:10px; right:16px; width:36px; height:36px; display:grid; place-items:center; border:0; color:var(--dvk-muted); background:transparent; cursor:pointer; }
.dvk-price-close .dvk-icon { width:20px; height:20px; }
.dvk-price-notice { min-height:22px; margin:10px 0 0; color:var(--dvk-muted); font-size:13px; }
.dvk-price-form.is-loading .dvk-price-submit { position:relative; color:transparent; pointer-events:none; }
.dvk-price-form.is-loading .dvk-price-submit::after { content:""; position:absolute; left:50%; top:50%; width:18px; height:18px; border:2px solid rgba(255,255,255,.45); border-top-color:#fff; border-radius:50%; transform:translate(-50%,-50%); animation:dvk-spin .7s linear infinite; }
@keyframes dvk-spin { to { transform:translate(-50%,-50%) rotate(360deg); } }
.dvk-basic-footer { padding:30px 0; color:#d7dde2; background:#1d2228; }
.dvk-basic-footer p { margin:0; }
.page .shell article { padding:38px; background:#fff; }
.page h1 { margin-top:0; line-height:1.2; }
@media (max-width:640px) { .dvk-basic-top { display:none; } .dvk-basic-main .shell { min-height:88px; align-items:center; padding-top:0; } .dvk-basic-brand img { width:78px; height:62px; } .dvk-basic-contact { padding-top:0; } .dvk-basic-contact > a:first-child { font-size:16px; } .dvk-basic-contact .dvk-basic-callback { font-size:12px; } .dvk-basic-side-actions { display:none; } .dvk-floating-messengers { right:12px; bottom:14px; gap:7px; } .dvk-floating-messenger { width:43px; height:43px; } .dvk-price-modal { padding:38px 20px 24px; } .dvk-price-modal .dvk-price-title { font-size:27px; } .dvk-price-messengers { gap:8px; } .dvk-price-messengers a { font-size:13px; } .page .shell article { padding:24px; } .dvk-city-switcher { min-width:112px; padding-right:27px; } .dvk-city-switcher-label { font-size:9px; } .dvk-city-switcher strong { font-size:13px; } .dvk-city-dialog-card { padding:48px 18px 24px; } .dvk-city-dialog h2 { font-size:25px; } .dvk-city-list { grid-template-columns:repeat(2,minmax(0,1fr)); max-height:55vh; } .dvk-city-option { min-height:62px; padding-left:11px; } }
@media (max-width:780px) { header .head-row.shell { width:100%; margin:0; padding-left:12px; padding-right:12px; } }
.virtual-page { min-height:calc(100vh - 180px); padding:150px 0 90px; background:#f4f7fb; }
.virtual-page h1 { max-width:780px; margin:20px 0 16px; font-size:52px; line-height:1.08; }
.virtual-back { display:inline-flex; align-items:center; gap:8px; color:#ed6930; font-weight:700; }
.virtual-back .dvk-icon { width:8px; height:14px; }
.virtual-lead { max-width:700px; margin:0 0 36px; color:#606975; font-size:20px; }
.virtual-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.virtual-grid article { padding:28px; border-radius:16px; background:#fff; }
.virtual-grid h2 { margin:0 0 10px; }
.virtual-grid p { color:#606975; }
.virtual-btn { display:inline-flex; min-height:46px; align-items:center; padding:0 18px; border-radius:5px; color:#fff; background:#ed6930; font-weight:700; }
.privacy-page { min-height:calc(100vh - 180px); padding:17px 0 80px; background:#fff; }
.privacy-shell { width:min(1340px,calc(100% - 40px)); }
.privacy-breadcrumb { display:flex; gap:10px; align-items:center; margin:0 0 24px; color:#444; font-size:16px; line-height:24px; }
.privacy-breadcrumb a { color:#30343d; font-weight:700; }
.privacy-document { max-width:none; margin:0; color:#2c2c2c; font-size:16px; line-height:24px; }
.privacy-document h1 { margin:0 0 32px; color:#2c2c2c; font-size:52px; line-height:1.2; font-weight:700; }
.privacy-document h2.privacy-section-title { margin:22px 0; color:#2c2c2c; font-size:13.28px; line-height:19.92px; font-weight:700; }
.privacy-intro p { margin:24px 0 16px; color:#2c2c2c; font-size:28px; line-height:42px; }
.privacy-section { margin:0 0 24px; }
.privacy-intro { margin-bottom:24px; }
.privacy-document p { margin:0; color:#2c2c2c; font-size:16px; line-height:24px; }
.privacy-descr { margin-bottom:0; }
.privacy-list { margin:0; }
.privacy-list p + p { margin-top:0; }
.privacy-document a { color:#ed6930; }
.privacy-table-wrap { overflow-x:auto; }
.privacy-purpose-table { width:100%; border-collapse:separate; border-spacing:0; font-size:16px; line-height:24px; }
.privacy-purpose-table th,.privacy-purpose-table td { padding:16px 10px; vertical-align:middle; }
.privacy-purpose-table th { width:33.6%; background:#f9f9f9; border-right:1px solid #e3e3e3; text-align:center; font-weight:400; }
.privacy-purpose-table td { width:66.4%; }
.footer-bottom a { margin-left:12px; color:#d7dde2; }
@media (max-width:780px) { .privacy-page { padding:24px 0 60px; } .privacy-shell { width:calc(100% - 32px); } .privacy-document h1 { max-width:100%; font-size:32px; line-height:1.2; overflow-wrap:anywhere; } .privacy-intro p { font-size:20px; line-height:30px; } .privacy-document p,.privacy-purpose-table { font-size:15px; line-height:22px; } .privacy-purpose-table th,.privacy-purpose-table td { padding:12px 8px; } }
@media (max-width:780px) { .virtual-page { padding:108px 0 60px; } .virtual-page h1 { font-size:36px; } .virtual-lead { font-size:18px; } .virtual-grid { grid-template-columns:1fr; } }
@media (max-width:640px) { .dvk-basic-brand img { width:88px; height:64px; } }

/* Full internal-page system. */
body { background:#fff; font-family:'Geologica',Arial,sans-serif; }
.dvk-icon { display:inline-block; fill:currentColor; }
.hp { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.dvk-turnstile { width:100%; min-height:65px; margin:10px 0; }
.quiz-error { color:#b42318; font-size:14px; margin:8px 0 0; }
.dvk-basic-header { position:sticky; top:0; z-index:60; box-shadow:0 4px 20px rgba(22,30,38,.08); }
#scroll-progress { position:fixed; top:0; left:0; z-index:120; width:0; height:4px; background:var(--dvk-accent); box-shadow:0 1px 4px rgba(237,105,48,.35); transition:width .12s linear; pointer-events:none; }
.dvk-basic-top { border-bottom:1px solid #e8eaed; }
.dvk-basic-top .shell { min-height:42px; gap:28px; color:#4c535b; font-size:13px; }
.dvk-basic-top .shell > a { margin-left:0; }
.dvk-top-meta,.dvk-top-menu { display:flex; align-items:center; gap:22px; min-width:0; }
.dvk-top-navigation { margin-left:auto; min-width:0; }
.dvk-top-menu { justify-content:flex-end; gap:4px; list-style:none; margin:0; padding:0; white-space:nowrap; }
.dvk-top-menu > li { position:relative; }
.dvk-top-menu > li > a { display:flex; min-height:42px; align-items:center; padding:0 8px; color:#363c42; font-size:13px; font-weight:600; text-decoration:none; }
.dvk-service-panel-title a { color:inherit; text-decoration:none; }
.dvk-service-panel-title a:hover,.dvk-service-panel-title a:focus-visible { color:var(--dvk-accent-contrast); text-decoration:underline; text-underline-offset:4px; }
.dvk-top-menu > li > a:hover,.dvk-top-menu > li.current-menu-item > a { color:var(--dvk-accent-contrast); }
.dvk-top-menu .sub-menu { position:absolute; top:calc(100% - 2px); right:0; z-index:4; display:none; min-width:220px; margin:0; padding:8px; list-style:none; border:1px solid #e1e5e8; border-radius:8px; background:#fff; box-shadow:0 14px 32px rgba(30,38,44,.16); }
.dvk-top-menu li:hover > .sub-menu,.dvk-top-menu li:focus-within > .sub-menu { display:grid; gap:2px; }
.dvk-top-menu .sub-menu a { display:block; padding:8px 10px; color:#363c42; font-size:13px; text-decoration:none; }
.dvk-top-menu .sub-menu a:hover { color:var(--dvk-accent-contrast); background:#f7ece4; }
.dvk-managed-menu,.dvk-managed-mobile-menu { list-style:none; margin:0; padding:0; }
.dvk-basic-main .shell { min-height:94px; align-items:center; padding-top:0; }
.dvk-basic-brand img { width:142px; height:88px; }
.dvk-primary-actions { display:flex; gap:12px; align-items:center; }
.dvk-primary-actions a,.dvk-primary-actions button { min-height:54px; display:flex; align-items:center; gap:10px; padding:0 20px; border:0; border-radius:8px; color:var(--dvk-ink); background:#f1f2f3; font:700 16px/1.2 'Geologica',Arial,sans-serif; white-space:nowrap; cursor:pointer; }
.dvk-primary-actions .is-accent { color:#fff; background:var(--dvk-accent); }
.dvk-primary-actions .dvk-icon { width:19px; height:19px; }
.dvk-primary-actions > .dvk-managed-menu { position:relative; display:flex; flex-wrap:nowrap; align-items:center; justify-content:center; gap:2px; min-width:0; white-space:nowrap; }
.dvk-primary-actions > .dvk-managed-menu > li { position:relative; }
.dvk-primary-actions > .dvk-managed-menu > li > a { min-height:44px; padding:0 8px; border-radius:6px; background:transparent; font-size:13px; }
.dvk-primary-actions > .dvk-managed-menu > li > a:hover,.dvk-primary-actions > .dvk-managed-menu > li.current-menu-item > a { color:var(--dvk-accent-contrast); background:#f7ece4; }
.dvk-primary-actions .sub-menu { position:absolute; top:calc(100% + 5px); left:0; z-index:4; display:none; min-width:248px; margin:0; padding:8px; list-style:none; border:1px solid #e1e5e8; border-radius:9px; background:#fff; box-shadow:0 14px 32px rgba(30,38,44,.16); }
.dvk-primary-actions li:hover > .sub-menu,.dvk-primary-actions li:focus-within > .sub-menu { display:grid; gap:2px; }
.dvk-primary-actions .sub-menu .sub-menu { top:-9px; left:calc(100% + 7px); }
.dvk-primary-actions .menu-item-has-children > a { position:relative; padding-right:27px !important; }
.dvk-primary-actions > .dvk-managed-menu > .menu-item-has-children > a::after { content:'\25BE'; position:absolute; right:9px; top:50%; color:currentColor; font-size:15px; line-height:1; transform:translateY(-58%); }
.dvk-primary-actions .sub-menu .menu-item-has-children > a::after { content:'\203A'; position:absolute; right:10px; top:50%; color:currentColor; font-size:18px; line-height:1; transform:translateY(-54%); }
.dvk-primary-actions .sub-menu a { min-height:38px; padding:0 11px; border-radius:5px; font-size:13px; }
.dvk-primary-actions .sub-menu a:hover { color:var(--dvk-accent-contrast); background:#f7ece4; }
.dvk-basic-contact { padding-top:0; }
.dvk-menu-toggle { width:48px; height:48px; display:none; align-items:center; justify-content:center; border:0; background:transparent; color:#242a30; }
.dvk-menu-toggle .dvk-icon { width:28px; height:28px; }
.dvk-mobile-menu { border-top:1px solid #e6e8ea; background:#fff; }
.dvk-mobile-menu nav { display:grid; grid-template-columns:1fr; padding:18px 0 26px; }
.dvk-mobile-menu a { padding:12px 8px; border-bottom:1px solid #eceef0; font-weight:600; text-decoration:none; }
.dvk-mobile-menu nav > .dvk-managed-mobile-menu { display:grid; grid-template-columns:1fr; width:100%; }
.dvk-mobile-menu .dvk-managed-mobile-menu li { display:grid; grid-template-columns:minmax(0,1fr) 44px; width:100%; border-bottom:1px solid #eceef0; }
.dvk-mobile-menu .dvk-managed-mobile-menu li > a { grid-column:1; display:flex; align-items:center; min-height:48px; padding:12px 8px; border:0; }
.dvk-mobile-menu .dvk-managed-mobile-menu .dvk-menu-nested-toggle { grid-column:2; grid-row:1; display:grid; place-items:center; width:44px; min-height:48px; border:0; color:var(--dvk-ink); background:transparent; cursor:pointer; }
.dvk-mobile-menu .dvk-menu-nested-toggle::before { content:""; width:8px; height:8px; border:solid currentColor; border-width:0 2px 2px 0; transform:rotate(-45deg); transition:transform .18s ease; }
.dvk-mobile-menu .dvk-managed-mobile-menu li.is-expanded > .dvk-menu-nested-toggle::before { transform:rotate(45deg); }
.dvk-mobile-menu .dvk-managed-mobile-menu .sub-menu { display:none; grid-column:1/-1; grid-row:2; width:100%; margin:0; padding:0 0 0 16px; list-style:none; border-top:1px solid #eceef0; }
.dvk-mobile-menu .dvk-managed-mobile-menu li.is-expanded > .sub-menu { display:grid; }
.dvk-mobile-services-trigger { width:100%; display:flex; align-items:center; justify-content:space-between; padding:12px 8px; border:0; border-bottom:1px solid #eceef0; color:var(--dvk-ink); background:#fff; font:600 16px/1.5 'Geologica',Arial,sans-serif; text-align:left; }
.dvk-mobile-services-trigger .dvk-icon { width:12px; height:16px; }
.dvk-service-catalog[hidden] { display:none; }
.dvk-service-catalog { position:fixed; inset:0; z-index:100; padding:0; }
.dvk-service-backdrop { position:absolute; inset:0; border:0; background:rgba(12,16,19,.78); cursor:default; }
.dvk-service-panel { position:relative; max-height:calc(100vh - 132px); margin-top:132px; padding:15px 52px 15px 0; overflow:hidden; border-radius:24px; color:var(--dvk-ink); background:#fff; box-shadow:0 24px 80px rgba(0,0,0,.28); }
.dvk-service-menu-grid { display:grid; grid-template-columns:minmax(300px,1.1fr) minmax(360px,1.2fr) minmax(260px,1fr); min-height:430px; max-height:calc(100vh - 164px); }
.dvk-service-close { position:absolute; top:16px; right:16px; z-index:2; width:40px; height:40px; display:grid; place-items:center; border:0; color:#2d3338; background:transparent; cursor:pointer; }
.dvk-service-close .dvk-icon { width:23px; height:23px; }
.dvk-service-first-wrap,.dvk-service-second-wrap,.dvk-service-third-wrap { position:relative; overflow:auto; padding:48px 20px 32px; scrollbar-color:var(--dvk-accent) #edf0f2; scrollbar-width:thin; }
.dvk-service-first-wrap::-webkit-scrollbar,.dvk-service-second-wrap::-webkit-scrollbar,.dvk-service-third-wrap::-webkit-scrollbar { width:9px; }
.dvk-service-first-wrap::-webkit-scrollbar-track,.dvk-service-second-wrap::-webkit-scrollbar-track,.dvk-service-third-wrap::-webkit-scrollbar-track { background:#e1e4e6; }
.dvk-service-first-wrap::-webkit-scrollbar-thumb,.dvk-service-second-wrap::-webkit-scrollbar-thumb,.dvk-service-third-wrap::-webkit-scrollbar-thumb { border-radius:9px; background:var(--dvk-accent); }
.dvk-service-first-wrap { padding-left:48px; padding-right:36px; }
.dvk-service-first-wrap::after,.dvk-service-second-wrap::after { content:""; position:absolute; top:0; right:0; width:1px; height:100%; background:#e0e4e6; }
.dvk-service-first-list,.dvk-service-second-panel ul,.dvk-service-third-panel ul { display:grid; list-style:none; margin:0; padding:0; }
.dvk-service-first-item { display:flex; border-radius:12px; transition:background-color .2s; }
.dvk-service-first-item.is-active { background:#f7ece4; }
.dvk-service-first-item button,.dvk-service-first-item a { width:100%; min-height:56px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border:0; color:#2b3034; background:transparent; font:500 22px/1.3 'Geologica',Arial,sans-serif; text-align:left; text-decoration:none; cursor:pointer; }
.dvk-service-first-item.is-active button,.dvk-service-first-item:hover button,.dvk-service-first-item:hover a { color:var(--dvk-accent); }
.dvk-service-first-item .dvk-icon { width:17px; height:17px; flex:0 0 auto; }
.dvk-service-second-panel,.dvk-service-third-panel { display:none; }
.dvk-service-second-panel.is-visible,.dvk-service-third-panel.is-visible { display:block; }
.dvk-service-panel-title { display:none; margin:0 0 18px; color:#2b3034; font-size:20px; line-height:1.3; }
.dvk-service-second-item { display:flex; border-radius:10px; transition:background-color .2s; }
.dvk-service-second-item.is-active { background:#f7ece4; }
.dvk-service-link-row { width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.dvk-service-link-row a,.dvk-service-third-panel a { flex:1; min-height:43px; display:flex; align-items:center; padding:9px 12px; color:#42484e; font-size:16px; line-height:1.35; text-decoration:none; }
.dvk-service-link-row a:hover,.dvk-service-third-panel a:hover,.dvk-service-second-item.is-active a { color:var(--dvk-accent); }
.dvk-service-link-row button { width:38px; height:38px; display:grid; place-items:center; border:0; color:#42484e; background:transparent; cursor:pointer; }
.dvk-service-link-row button .dvk-icon { width:15px; height:15px; }
.dvk-service-third-wrap { padding-right:25px; }
.dvk-service-third-panel ul { gap:12px; }
.dvk-service-third-panel a { padding:5px 0; }
.dvk-service-mobile-back { display:none; }

.inner-page { color:#272c32; background:#fff; }
.inner-page section { padding:84px 0; }
.inner-hero { min-height:590px; display:flex; align-items:center; color:#fff; background-color:#1d292f; background-image:linear-gradient(90deg,rgba(16,29,35,.94) 0%,rgba(17,31,37,.88) 45%,rgba(17,31,37,.62) 100%),var(--inner-page-image); background-position:center; background-size:cover; overflow:hidden; }
.inner-hero-grid { display:grid; grid-template-columns:minmax(0,1.03fr) minmax(420px,.97fr); gap:70px; align-items:center; }
.breadcrumbs { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-bottom:36px; color:rgba(255,255,255,.68); font-size:14px; }
.breadcrumbs a { color:#fff; text-decoration:none; }
.inner-eyebrow { margin:0 0 14px; color:var(--dvk-accent); font-size:13px; font-weight:800; text-transform:uppercase; }
.inner-hero h1 { max-width:760px; margin:0; font-size:clamp(43px,5vw,72px); line-height:1.04; }
.inner-lead { max-width:720px; margin:25px 0 0; color:#d8dfe2; font-size:20px; line-height:1.55; }
.inner-actions { display:flex; align-items:center; gap:24px; margin-top:34px; }
.inner-btn { min-height:54px; display:inline-flex; align-items:center; justify-content:center; padding:0 25px; border:0; border-radius:7px; color:#fff; background:var(--dvk-accent-contrast); font-weight:800; text-decoration:none; }
.inner-btn:hover { background:#8c3911; }
.inner-link { display:inline-flex; align-items:center; gap:10px; color:#fff; font-size:18px; font-weight:700; text-decoration:none; }
.inner-link .dvk-icon { width:21px; height:21px; }
.inner-trust { display:flex; flex-wrap:wrap; gap:13px 24px; margin:33px 0 0; padding:0; list-style:none; color:#dce3e6; font-size:14px; }
.inner-trust li { display:flex; align-items:center; gap:7px; }
.inner-trust .dvk-icon { width:15px; height:15px; color:#35b978; }
.inner-hero-media { position:relative; height:440px; }
.inner-hero-media::before { content:""; position:absolute; inset:20px -22px -20px 22px; border:1px solid rgba(255,255,255,.24); border-radius:8px; }
.inner-hero-media img { position:relative; z-index:1; width:100%; height:100%; object-fit:cover; border-radius:8px; }
.inner-hero-media span { position:absolute; z-index:2; right:22px; bottom:22px; padding:11px 15px; border-radius:6px; color:#292d32; background:#fff; font-size:13px; font-weight:800; }
.inner-section { background:#fff; }
.inner-muted { background:#f4f6f7!important; }
.inner-heading { max-width:820px; margin-bottom:38px; }
.inner-heading > p { margin:0 0 9px; color:var(--dvk-accent-contrast); font-size:13px; font-weight:800; text-transform:uppercase; }
.inner-heading h2 { margin:0; font-size:42px; line-height:1.15; }
.inner-heading > span { display:block; margin-top:13px; color:#68717a; }

.service-link-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.service-directory-group + .service-directory-group { margin-top:54px; }
.service-directory-group > h3 { margin:0 0 19px; font-size:27px; }
.service-link-card { min-height:440px; display:flex; flex-direction:column; overflow:hidden; border:1px solid #e2e5e7; border-radius:8px; background:#fff; text-decoration:none; transition:transform .2s,box-shadow .2s; }
.service-link-card:hover { transform:translateY(-4px); box-shadow:0 18px 40px rgba(29,39,47,.12); }
.service-link-card img { width:100%; height:210px; object-fit:cover; }
.service-link-card > div { padding:23px; }
.service-link-card span { color:var(--dvk-accent); font-size:14px; font-weight:800; }
.service-link-card h3 { margin:8px 0; font-size:22px; }
.service-link-card p { margin:0; color:#68717a; }
.service-link-card b { display:flex; align-items:center; gap:8px; margin-top:18px; color:var(--dvk-accent); }
.service-link-card b .dvk-icon { width:14px; height:14px; }

.price-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.price-group { border-top:4px solid var(--dvk-accent); background:#fff; box-shadow:0 8px 26px rgba(31,39,45,.07); }
.price-group h3 { margin:0; padding:24px 26px 18px; font-size:23px; }
.price-group > div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; padding:12px 26px; border-top:1px solid #eceef0; }
.price-group strong { white-space:nowrap; }
.area-price-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.area-price-grid article { padding:26px; border:1px solid #e1e4e6; border-radius:8px; }
.area-price-grid span,.area-price-grid strong { display:block; }
.area-price-grid span { color:#6c747b; }
.area-price-grid strong { margin:5px 0 12px; color:var(--dvk-accent); font-size:25px; }
.area-price-grid p { margin:0; color:#68717a; }

.project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.project-card { overflow:hidden; border-radius:8px; background:#f4f6f7; }
.project-card > img { width:100%; height:360px; display:block; object-fit:cover; }
.project-card > div { padding:26px; }
.project-card h3 { margin:0 0 18px; font-size:25px; }
.project-card dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0; }
.project-card dl > div { padding-left:13px; border-left:2px solid var(--dvk-accent); }
.project-card dt { color:#717981; font-size:12px; }
.project-card dd { margin:4px 0 0; font-weight:800; }
.portfolio-video-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.portfolio-video-grid article { overflow:hidden; border-radius:8px; background:#fff; box-shadow:0 8px 26px rgba(31,39,45,.08); }
.portfolio-video-grid video { width:100%; display:block; aspect-ratio:16/9; background:#1d292f; object-fit:cover; }
.portfolio-video-grid article > div { padding:18px 20px 20px; }
.portfolio-video-grid span { color:var(--dvk-accent); font-size:12px; font-weight:800; text-transform:uppercase; }
.portfolio-video-grid h3 { margin:7px 0 0; font-size:19px; line-height:1.25; }

.people-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.people-grid article { position:relative; overflow:hidden; min-height:390px; border-radius:8px; color:#fff; background:#252b31; }
.people-grid img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; opacity:.82; }
.people-grid article::after { content:""; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,rgba(13,17,21,.94)); }
.people-grid article > *:not(img) { position:relative; z-index:1; display:block; margin-left:20px; margin-right:20px; }
.people-grid span { margin-top:280px; color:#ffb08d; font-size:12px; font-weight:700; }
.people-grid h3 { margin-top:5px!important; margin-bottom:3px!important; font-size:25px; }
.people-grid p { margin-top:0; color:#e6eaec; }

.reviews-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.reviews-grid article { min-height:260px; display:flex; flex-direction:column; padding:26px; border:1px solid #e2e5e7; border-radius:8px; background:#fff; }
.review-stars { display:flex; gap:3px; color:#f4a126; }
.review-stars .dvk-icon { width:16px; height:16px; }
.reviews-grid article > p { color:#555e66; line-height:1.65; }
.reviews-grid footer { display:flex; flex-direction:column; margin-top:auto; }
.reviews-grid footer span { color:#81888e; font-size:13px; }

.faq-page-grid { display:grid; grid-template-columns:340px minmax(0,1fr); gap:70px; align-items:start; }
.inner-faq details { border-bottom:1px solid #dfe3e5; }
.inner-faq summary { min-height:70px; display:flex; align-items:center; justify-content:space-between; gap:22px; cursor:pointer; font-size:18px; font-weight:700; list-style:none; }
.inner-faq summary::-webkit-details-marker { display:none; }
.inner-faq summary .dvk-icon { width:16px; height:16px; color:var(--dvk-accent); transition:transform .2s; }
.inner-faq details[open] summary .dvk-icon { transform:rotate(45deg); }
.inner-faq details p { margin:0 0 23px; color:#68717a; }

.roof-calculator { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr); overflow:hidden; border:1px solid #dfe3e5; border-radius:8px; }
.roof-calculator > div { padding:38px; }
.roof-calculator h2 { margin-top:0; font-size:34px; }
.roof-calculator label,.roof-calculator fieldset { display:block; margin:18px 0; }
.roof-calculator input[type=range] { width:100%; display:block; margin:14px 0 8px; accent-color:var(--dvk-accent); }
.roof-calculator output { color:var(--dvk-accent-contrast); font-size:23px; font-weight:800; }
.roof-calculator fieldset { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:18px; border:1px solid #dfe3e5; border-radius:8px; }
.roof-calculator fieldset label { margin:0; }
.roof-calculator input { accent-color:var(--dvk-accent); }
.roof-calculator aside { display:flex; flex-direction:column; justify-content:center; padding:40px; color:#fff; background:#202c32; }
.roof-calculator aside p { margin:0; color:#aeb8bc; }
.roof-calculator aside strong { margin:8px 0; font-size:38px; }
.roof-calculator aside span { margin-bottom:26px; color:#cbd2d5; }

.article-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.article-grid a { display:grid; grid-template-columns:210px minmax(0,1fr); overflow:hidden; border:1px solid #e1e4e6; border-radius:8px; text-decoration:none; }
.article-grid img { width:100%; height:100%; min-height:230px; object-fit:cover; }
.article-grid a > div { padding:24px; }
.article-grid span { color:var(--dvk-accent); font-size:13px; font-weight:800; }
.article-grid h3 { margin:8px 0; font-size:22px; }
.article-grid p { margin:0; color:#68717a; }
.article-body .shell { max-width:900px; }
.article-featured { margin:0 0 28px; overflow:hidden; border-radius:8px; background:#eef1f2; }
.article-featured img { display:block; width:100%; aspect-ratio:16/8; object-fit:cover; }
.article-body .article-intro { font-size:22px; color:#555f67; }
.article-body h2 { margin:44px 0 15px; font-size:33px; }
.article-body p,.article-body li { color:#4f5961; font-size:18px; line-height:1.75; }
.editor-page-body .article-body { max-width:900px; }
.editor-page-body h2 { margin:44px 0 15px; font-size:33px; line-height:1.2; }
.editor-page-body h3 { margin:30px 0 10px; font-size:23px; line-height:1.25; }
.editor-page-body table { width:100%; margin:24px 0; border-collapse:collapse; background:#fff; font-size:16px; }
.editor-page-body th,.editor-page-body td { padding:13px 15px; border:1px solid #dfe3e5; text-align:left; vertical-align:top; }
.editor-page-body th { color:#27323a; background:#f2f5f8; font-weight:800; }
.editor-page-body .editor-table-wrap { overflow-x:auto; margin:24px 0; }
.editor-page-body .editor-table-wrap table { min-width:620px; margin:0; }
.editor-page-body .editor-cta { margin:28px 0 8px; }
.editor-page-body .editor-note { color:#68717a; font-size:16px; }

.site-map-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px; }
.site-map-grid h2 { margin-top:0; }
.site-map-grid a { display:block; padding:9px 0; border-bottom:1px solid #e8eaec; color:#555e65; text-decoration:none; }
.site-map-grid a:hover { color:var(--dvk-accent); }
.contact-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(420px,.8fr); gap:70px; align-items:center; }
.contact-grid > div:first-child > a { display:flex; flex-direction:column; margin:25px 0; text-decoration:none; }
.contact-grid > div:first-child > a span { color:#788088; }
.contact-grid > div:first-child > a strong { font-size:25px; }
.contact-messengers { display:flex; flex-wrap:wrap; gap:10px; margin:28px 0; }
.contact-messengers a { min-width:132px; min-height:50px; display:flex!important; flex-direction:row!important; align-items:center; justify-content:center; gap:9px; margin:0!important; padding:0 16px; border-radius:6px; color:#fff; background:#087c4b; font-weight:800; }
.contact-messengers a:nth-child(2) { background:#1676b8; }
.contact-messengers .contact-max { color:#25313b; background:#f1f3f4; }
.contact-messengers .dvk-icon,.contact-messengers img { width:21px; height:21px; }
.contact-image img { width:100%; height:460px; object-fit:cover; border-radius:8px; }

.local-page-intro { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:64px; align-items:start; }
.local-page-intro .inner-heading { margin-bottom:0; }
.local-page-intro > div:last-child p { margin:0 0 18px; color:#5b646c; font-size:18px; line-height:1.7; }
.local-service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.local-service-grid a { min-height:190px; display:flex; flex-direction:column; padding:25px; border:1px solid #dfe3e5; border-radius:8px; color:#272c32; background:#fff; text-decoration:none; }
.local-service-grid h3 { margin:0 0 9px; font-size:22px; }
.local-service-grid p { margin:0; color:#68717a; line-height:1.55; }
.local-service-grid span { display:flex; align-items:center; gap:7px; margin-top:auto; padding-top:20px; color:var(--dvk-accent-contrast); font-size:14px; font-weight:800; }
.local-service-grid .dvk-icon { width:14px; height:14px; }
.local-faq { display:grid; grid-template-columns:340px minmax(0,1fr); gap:70px; align-items:start; }
.local-faq .inner-heading { margin-bottom:0; }

.feature-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.feature-grid article { min-height:220px; padding:25px; border:1px solid #e1e4e6; border-radius:8px; }
.feature-grid article > span { width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; background:var(--dvk-accent); }
.feature-grid .dvk-icon { width:18px; height:18px; }
.feature-grid h3 { margin:23px 0 8px; }
.feature-grid p { margin:0; color:#68717a; }
.suppliers { background:#f4f6f7; }
.suppliers .section-heading { align-items:end; }
.suppliers .section-title { margin-bottom:0; }
.suppliers-lead { max-width:470px; margin:0; color:#68717a; font-size:17px; line-height:1.5; }
.suppliers-marquee { overflow:hidden; margin-top:32px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); }
.suppliers-track { display:flex; width:max-content; animation:suppliers-marquee 42s linear infinite; will-change:transform; }
.suppliers-track:hover,.suppliers-track:focus-within { animation-play-state:paused; }
.suppliers-group { display:flex; flex:none; gap:14px; padding-right:14px; }
.supplier-logo { flex:0 0 clamp(150px,14vw,190px); min-height:118px; display:flex; flex-direction:column; align-items:center; justify-content:center; margin:0; padding:14px 12px 10px; border:1px solid #e1e5e8; border-radius:8px; background:#fff; text-align:center; }
.supplier-logo img { display:block; width:min(165px,100%); height:65px; object-fit:contain; }
.supplier-logo figcaption { margin-top:7px; color:#69727b; font-size:12px; line-height:1.2; }
@keyframes suppliers-marquee { from { transform:translate3d(0,0,0); } to { transform:translate3d(-50%,0,0); } }
.split-content { display:grid; grid-template-columns:minmax(0,1fr) minmax(420px,.85fr); gap:70px; align-items:center; }
.split-content h2 { margin:0 0 18px; font-size:42px; }
.split-content h3.inner-eyebrow { margin:0 0 14px; font-size:13px; line-height:1.3; }
.split-content h3.split-content-title { margin:0 0 18px; font-size:42px; line-height:1.15; }
.split-content p,.split-content li { color:#5b646c; line-height:1.7; }
.split-content img { width:100%; height:420px; object-fit:cover; border-radius:8px; }
.inner-promo-block { background:#f4f6f7; }
.inner-promo-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(380px,.8fr); gap:70px; align-items:center; }
.inner-promo-grid h2 { max-width:760px; margin:0 0 18px; font-size:42px; line-height:1.15; }
.inner-promo-grid p:not(.inner-eyebrow) { max-width:720px; margin:0 0 28px; color:#5b646c; font-size:18px; line-height:1.7; }
.inner-promo-grid img { width:100%; height:360px; object-fit:cover; border-radius:8px; }

.request-section { color:#fff; background-color:#202c32!important; background-image:linear-gradient(90deg,rgba(20,34,40,.96),rgba(20,34,40,.84)),var(--request-page-image)!important; background-position:center; background-size:cover; }
.request-grid { display:grid; grid-template-columns:minmax(0,1fr) 440px; gap:80px; align-items:center; }
.request-grid h2 { max-width:640px; margin:0 0 18px; font-size:44px; line-height:1.15; }
.request-grid > div > p:not(.inner-eyebrow) { color:#c8d0d4; }
.request-grid ul { margin:24px 0 0; padding:0; list-style:none; }
.request-grid li { display:flex; align-items:center; gap:9px; margin:10px 0; }
.request-grid li .dvk-icon { width:16px; height:16px; color:#3dc17d; }
.request-grid form { padding:30px; border-radius:8px; color:#272c32; background:#fff; }
.request-grid form > label:not(.form-consent) { display:block; margin-bottom:15px; font-weight:700; }
.request-grid form input[type=text],.request-grid form input[name=name],.request-grid form input[name=phone] { width:100%; height:51px; display:block; margin-top:7px; padding:0 14px; border:1px solid #d9dde0; border-radius:5px; }
.request-grid form .inner-btn { width:100%; }
.form-consent { display:flex; align-items:flex-start; gap:8px; margin-top:14px; color:#697078; font-size:12px; }
.form-consent a { color:var(--dvk-accent-contrast); }
.inner-form-notice { min-height:20px; margin:12px 0 0; color:#4c555c; font-size:13px; }
@media (max-width:780px) { .inner-promo-grid { grid-template-columns:1fr; gap:28px; } .inner-promo-grid h2 { font-size:32px; } .inner-promo-grid img { height:260px; } }

.dvk-basic-footer { padding:65px 0 24px; background:#1c252a; }
.dvk-footer-grid { display:grid; grid-template-columns:1.35fr repeat(3,1fr); gap:58px; }
.dvk-footer-title { margin:0 0 18px; color:#fff; font-size:17px; font-weight:700; }
.dvk-footer-grid > div > a:not(:first-child),.dvk-footer-grid > div:not(.dvk-footer-brand) > a { display:block; margin:10px 0; color:#bdc5c9; text-decoration:none; }
.dvk-footer-grid > div > a:hover { color:#fff; }
.dvk-footer-brand img { width:150px; height:90px; object-fit:contain; }
.dvk-footer-brand p { max-width:300px; margin:20px 0; color:#bdc5c9; }
.dvk-footer-social { display:flex; gap:10px; }
.dvk-footer-social a { width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; background:#087c4b; }
.dvk-footer-social a[aria-label="Telegram"] { background:#1676b8; }
.dvk-footer-social .dvk-social-max { background:#fff; }
.dvk-footer-social .dvk-icon { width:22px; height:22px; }
.dvk-footer-social .dvk-social-max img { width:25px; height:25px; display:block; }
.dvk-footer-grid p { color:#bdc5c9; }
.dvk-footer-bottom { display:flex; flex-wrap:wrap; gap:18px 28px; margin-top:48px; padding-top:22px; border-top:1px solid #384247; color:#8e999e; font-size:12px; }
.dvk-footer-bottom span { margin-right:auto; }
.dvk-footer-bottom a { color:#bdc5c9; text-decoration:none; }

@media (max-width:1339px) {
  .dvk-basic-top nav,.dvk-primary-actions { display:none; }
  .dvk-menu-toggle { display:flex; }
  .inner-hero-grid,.split-content,.contact-grid { grid-template-columns:1fr 390px; gap:40px; }
  .service-link-grid,.reviews-grid,.portfolio-video-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .people-grid,.feature-grid,.area-price-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dvk-footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:1340px) {
  .dvk-primary-actions { flex:1 1 auto; min-width:0; gap:4px; }
  .dvk-primary-actions a,.dvk-primary-actions button { flex:0 1 auto; gap:6px; padding-left:8px; padding-right:8px; font-size:13px; }
  .dvk-primary-actions > .dvk-managed-menu { flex:1 1 auto; }
  .dvk-primary-actions > .dvk-managed-menu > li { flex:0 1 auto; }
  .dvk-primary-actions > .dvk-managed-menu > li > a { padding-left:3px; padding-right:3px; font-size:12px; }
  .dvk-basic-contact { flex:0 0 auto; }
}

/* The internal catalog reads the same editable WordPress menu as the home page. */
@media (min-width:1340px) {
  .dvk-service-menu-grid { display:block; min-height:0; max-height:none; }
  .dvk-service-first-wrap,.dvk-service-third-wrap { display:none; }
  .dvk-service-second-wrap { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; max-height:none; padding:34px 26px 24px 44px; overflow:visible; }
  .dvk-service-second-wrap::after { display:none; }
  .dvk-service-second-panel,.dvk-service-second-panel.is-visible { display:block; min-width:0; padding:0 26px 12px; border-right:1px solid #e0e4e6; }
  .dvk-service-second-panel:last-child { border-right:0; }
  .dvk-service-panel-title { display:block; margin:0 0 14px; color:#2b3034; font-size:21px; font-weight:800; }
  .dvk-service-second-item { border-radius:0; }
  .dvk-service-link-row a { min-height:38px; padding:7px 0; }
}
@media (max-width:780px) {
  .shell { width:calc(100% - 32px); }
  .dvk-basic-top { display:none; }
  .dvk-basic-main .shell { min-height:86px; gap:10px; flex-wrap:wrap; align-content:center; }
  .dvk-basic-brand img { width:94px; height:68px; }
  .dvk-basic-contact { flex:1 1 auto; min-width:0; text-align:right; }
  .dvk-basic-contact > a:first-child { display:block; white-space:nowrap; font-size:14px; line-height:1.2; }
  .dvk-basic-contact .dvk-basic-callback { display:flex; min-height:24px; align-items:center; justify-content:flex-end; margin-top:5px; padding:3px 0; white-space:nowrap; font-size:11px; }
  .dvk-basic-contact > a:first-child { min-height:24px; display:flex; align-items:center; justify-content:flex-end; }
  .dvk-city-switcher { order:4; flex:1 0 100%; width:100%; min-width:0; min-height:0; margin:0 0 8px; padding:7px 32px 7px 12px; }
  .dvk-city-switcher-label { font-size:9px; }
  .dvk-city-switcher strong { font-size:13px; }
  .dvk-menu-toggle { width:42px; height:42px; }
  .dvk-mobile-menu nav { grid-template-columns:1fr; }
  .dvk-mobile-menu nav .dvk-managed-mobile-menu { grid-template-columns:1fr; }
  .dvk-service-panel { width:100%; max-height:calc(100vh - 86px); margin-top:86px; padding:20px 16px 18px; border-radius:0; }
  .dvk-service-panel-head { padding-bottom:18px; }
  .dvk-service-panel-head h2 { font-size:25px; }
  .dvk-service-panel-head > div:last-child { gap:9px; }
  .dvk-service-panel-head > div:last-child > a { display:none; }
  .dvk-service-columns { grid-template-columns:1fr; gap:20px; padding-top:20px; }
  .dvk-service-columns section,.dvk-service-columns section:first-child,.dvk-service-columns section:last-child { padding:0; border:0; }
  .dvk-service-columns section + section { padding-top:20px; border-top:1px solid #e7eaec; }
  .dvk-service-columns a { min-height:40px; }
  .dvk-service-more { display:grid; grid-template-columns:1fr 1fr; }
  .dvk-service-more a { min-height:47px; display:flex; align-items:center; }
  .dvk-basic-side-actions { display:none; }
  .inner-page section { padding:58px 0; }
  .inner-hero { min-height:auto; padding:50px 0 64px!important; }
  .inner-hero-grid,.split-content,.contact-grid,.request-grid,.faq-page-grid,.local-page-intro,.local-faq,.roof-calculator { grid-template-columns:1fr; }
  .inner-hero h1 { font-size:42px; }
  .inner-lead { font-size:17px; }
  .inner-actions { align-items:flex-start; flex-direction:column; gap:16px; }
  .inner-hero-media { height:300px; margin-top:10px; }
  .inner-hero-media::before { display:none; }
  .inner-heading h2,.split-content h2,.split-content h3.split-content-title,.request-grid h2 { font-size:32px; }
  .service-link-grid,.price-groups,.project-grid,.people-grid,.reviews-grid,.portfolio-video-grid,.article-grid,.site-map-grid,.local-service-grid,.feature-grid,.area-price-grid,.dvk-footer-grid { grid-template-columns:1fr; }
  .suppliers .section-heading { display:block; }
  .suppliers-lead { margin-top:16px; }
  .suppliers-marquee { margin-top:24px; }
  .suppliers-track { animation-duration:34s; }
  .suppliers-group { gap:10px; padding-right:10px; }
  .supplier-logo { flex-basis:146px; min-height:104px; padding:10px 8px 8px; }
  .supplier-logo img { height:52px; }
  .service-link-card { min-height:0; }
  .project-card > img { height:260px; }
  .project-card dl { grid-template-columns:1fr; }
  .people-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .people-grid article { min-height:330px; }
  .people-grid span { margin-top:230px; }
  .article-grid a { grid-template-columns:1fr; }
  .article-grid img { min-height:220px; }
  .roof-calculator > div,.roof-calculator aside { padding:26px; }
  .roof-calculator fieldset { grid-template-columns:1fr; }
  .roof-calculator aside strong { font-size:31px; }
  .split-content img,.contact-image img { height:290px; }
  .request-grid { gap:35px; }
  .request-grid form { padding:22px; }
  .dvk-footer-grid { gap:32px; }
  .dvk-footer-bottom { flex-direction:column; }
  .dvk-footer-bottom span { margin-right:0; }
}
@media (prefers-reduced-motion:reduce) {
  .suppliers-marquee { -webkit-mask-image:none; mask-image:none; }
  .suppliers-track { width:100%; animation:none; }
  .suppliers-group[aria-hidden="true"] { display:none; }
  .suppliers-group { width:100%; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); }
  .supplier-logo { width:auto; flex:auto; }
}
@media (max-width:780px) and (prefers-reduced-motion:reduce) {
  .suppliers-group { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:480px) {
  .dvk-basic-brand img { width:78px; height:58px; }
  .dvk-basic-contact > a:first-child { font-size:13px; }
  .inner-hero h1 { font-size:36px; }
  .inner-trust { display:grid; }
  .people-grid { grid-template-columns:1fr; }
}

/* Expanded front-page blocks share the same reference rhythm. */
.room-tabs .tab-list { overflow-x:auto; scrollbar-width:none; }
.room-tabs .tab-list::-webkit-scrollbar { display:none; }
.room-tabs .tab-list button { flex:1 0 auto; white-space:nowrap; }
.popular-card.is-extra[hidden] { display:none; }
.full-calc .calc-fields { display:block; }
.full-calc .calc-fields > h3 { margin:0 0 18px; }
.full-calc .calc-field-group { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:20px; }
.full-calc .calc-field-group > b { grid-column:1/-1; margin-bottom:2px; font-size:16px; }
.full-calc .calc-option { min-height:48px; padding:11px 13px; }
.work-prices .work-price-grid { align-items:start; }
.work-prices .price-column { height:auto; }
.review-platforms { display:flex; align-items:center; gap:14px; margin:-10px 0 28px; padding:20px 22px; border:1px solid #dfe3e6; border-radius:8px; background:#fff; }
.review-platforms > div { display:flex; flex-direction:column; margin-right:auto; }
.review-platforms span { color:#66717d; font-size:13px; }
.review-platforms a { padding:11px 15px; border-radius:6px; color:#fff; background:#272d32; font-size:13px; font-weight:800; text-decoration:none; }
.reviews .review-stars { display:flex; gap:3px; margin-bottom:12px; color:#f4a126; }
.reviews .review-stars .dvk-icon { width:16px; height:16px; }
.company-text { max-width:1020px; columns:2; column-gap:52px; margin-bottom:32px; }
.company { background:#eef1f4; color:#263442; }
.company .section-title { color:#263442; }
.company-text p { break-inside:avoid; margin:0 0 18px; color:#263442; font-size:18px; line-height:1.55; }
.company .show-all { color:#fff; text-decoration:none; }

@media (max-width:780px) {
  .full-calc .calc-field-group { grid-template-columns:1fr; }
  .full-calc .calc-field-group > b { grid-column:1; }
  .review-platforms { align-items:stretch; flex-direction:column; }
  .review-platforms > div { margin-right:0; }
  .review-platforms a { text-align:center; }
  .company-text { columns:1; }
}

body.dvk-service-open { overflow:hidden; }
body.dvk-service-open .dvk-mobile-menu { display:none; }
@media (min-width:1340px) {
  .dvk-service-panel { height:calc(100vh - 166px); margin-top:164px; }
  .dvk-service-menu-grid { height:100%; min-height:0; }
}
@media (max-width:1339px) {
  .dvk-service-panel { width:min(520px,calc(100% - 14px)); max-height:calc(100vh - 86px); margin:86px 0 0 auto; padding:16px 0; border-radius:16px 0 0 16px; }
  .dvk-service-menu-grid { position:relative; display:block; min-height:calc(100vh - 118px); max-height:calc(100vh - 118px); }
  .dvk-service-first-wrap,.dvk-service-second-wrap,.dvk-service-third-wrap { position:absolute; inset:0; display:block; max-height:none; padding:16px 0 16px 16px; background:#fff; }
  .dvk-service-first-wrap::after,.dvk-service-second-wrap::after { display:none; }
  .dvk-service-first-list,.dvk-service-second-panel ul,.dvk-service-third-panel ul { overflow:auto; padding-right:16px; max-height:calc(100vh - 180px); }
  .dvk-service-first-item { border-bottom:1px solid #e0e4e6; border-radius:0; }
  .dvk-service-first-item.is-active { background:transparent; }
  .dvk-service-first-item button,.dvk-service-first-item a { min-height:56px; padding:14px 0; font-size:16px; }
  .dvk-service-mobile-back { display:flex; align-items:center; gap:8px; margin:0 0 18px; padding:0; border:0; color:#a0a6aa; background:transparent; font:500 18px/1.3 'Geologica',Arial,sans-serif; }
  .dvk-service-mobile-back .dvk-icon { width:25px; height:25px; padding:5px; border:2px solid #c9ced1; border-radius:50%; }
  .dvk-service-second-wrap,.dvk-service-third-wrap { display:none; padding:16px 0 16px 16px; }
  .dvk-service-menu-grid[data-service-view="second"] .dvk-service-first-wrap,.dvk-service-menu-grid[data-service-view="third"] .dvk-service-first-wrap { display:none; }
  .dvk-service-menu-grid[data-service-view="second"] .dvk-service-second-wrap { display:block; }
  .dvk-service-menu-grid[data-service-view="third"] .dvk-service-third-wrap { display:block; }
  .dvk-service-second-panel,.dvk-service-third-panel { position:absolute; inset:0; overflow:visible; padding:0; background:#fff; }
  .dvk-service-second-panel:not(.is-visible),.dvk-service-third-panel:not(.is-visible) { display:none; }
  .dvk-service-second-panel.is-visible,.dvk-service-third-panel.is-visible { display:block; }
  .dvk-service-panel-title { display:none; }
  .dvk-service-second-item { border-bottom:1px solid #e0e4e6; border-radius:0; }
  .dvk-service-second-item.is-active { background:transparent; }
  .dvk-service-link-row a,.dvk-service-third-panel a { min-height:56px; padding:14px 0; font-size:16px; }
  .dvk-service-link-row button { width:40px; height:54px; }
  .dvk-service-third-panel ul { display:grid; gap:0; }
  .dvk-service-third-panel li { border-bottom:1px solid #e0e4e6; }
}
