/* v40: layout, tap-target and stability fixes across all devices. Loaded last. */

/* Reserve image space before load (width/height attributes are set in HTML). */
img{height:auto}

/* Dialog open: page behind must not scroll (iOS/Android). */
html:has(dialog[open]){overflow:hidden}

/* Anchors must not land under the sticky header / bottom bar. */
html{scroll-padding-top:84px}
@media(max-width:760px){html{scroll-padding-top:76px;scroll-padding-bottom:84px}}

/* Service cards: both actions on one line and aligned. */
.service-choice-actions .capture-situation{margin-top:0}
@media(min-width:761px){
 .service-choice-actions{grid-template-columns:auto minmax(0,1fr)!important;column-gap:18px!important;align-items:center}
 .service-choice-actions .service-details-link{white-space:nowrap;padding-inline:18px}
}

/* "Узнать дату …" inside a work step: sits in the text column, not squeezed under the number. */
.step>.capture-date{justify-self:start;max-width:100%;line-height:1.3}
@media(max-width:760px){.steps .step>.capture-date{grid-column:2;margin-top:12px;font-size:13px;padding:10px 14px}}

/* Buttons under centred blocks (FAQ, result example) follow the block, not the container edge. */
.faq+.capture-action,.process-result-wrap+.capture-action{display:flex;width:fit-content;max-width:100%;margin:22px auto 0}
.capture-link.capture-expert{display:inline-flex;align-items:center;gap:9px;padding:13px 20px;border:1px solid #cbbbd9;border-radius:10px;background:#f1ecf6;color:#674c81;text-decoration:none;font-size:15px}
.capture-link.capture-expert:before{content:'?';display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#674c81;color:#fff;font-size:13px;line-height:1}
.capture-link.capture-expert:hover{background:#e9e0f2}

/* Header "Заказать звонок": bigger touch area without moving the layout. */
.header-contact .capture-link{position:relative}
.header-contact .capture-link:after{content:'';position:absolute;inset:-10px -8px}

/* People cards: same text style in every card. */
.mez-trust-person-copy>p{color:var(--muted);font-size:.93rem;line-height:1.52}
@media(max-width:760px){.mez-trust-person-copy>p{font-size:13px;line-height:1.4}}

/* Typical example: between phone and desktop the photo overlapped the text. */
@media(max-width:980px){
 .typical-card:not(.typical-card-compact){grid-template-columns:1fr!important}
 .typical-card .typical-media{width:100%;height:auto!important;min-height:0!important;max-height:none!important;aspect-ratio:auto!important}
 .typical-card .typical-media>img{width:100%;height:auto!important;max-height:min(520px,70vh)!important;min-height:0!important;object-fit:cover}
}
@media(min-width:761px) and (max-width:980px){.typical-card .typical-details{grid-template-columns:1fr 1fr!important}}

/* Chat launcher on phones/tablets/small laptops: compact round avatar so it never hides content or CTAs. */
@media(max-width:1279px){
 .capture-chat-launcher{padding:3px;gap:0;border-radius:50%;right:16px;bottom:18px}
 .capture-chat-launcher img{width:52px;height:52px}
 .capture-chat-launcher>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .capture-chat-launcher b{display:grid!important;place-items:center;position:absolute;right:-3px;top:-3px;width:22px;height:22px;border-radius:50%;background:#eab959;color:#24332a;border:2px solid #fff;font-size:11px}
 .capture-chat{bottom:88px}
}
@media(max-width:760px){
 .capture-chat-launcher{right:12px;bottom:80px}
 .capture-chat-launcher img{width:50px;height:50px}
 .capture-chat{bottom:144px}
 body:has(.mobile-menu.open) .capture-chat-launcher{display:none}
}

/* Quiz on phones: navigation always visible, visual a bit smaller so answers fit. */
@media(max-width:760px){
 .cf-dialog:not(.cf-is-contact) .cf-dialog-nav{position:sticky;bottom:-20px;z-index:3;margin:14px -20px -20px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e3e9df;box-shadow:0 -8px 18px #102b3a12}
 .cf-dialog .cf-visual-picture{height:132px}
 .cf-dialog h2{margin-top:14px}
 .cf-dialog-hint{margin-bottom:14px}
}
.typical-details p,.case-outcome p{overflow-wrap:break-word;hyphens:auto}
.cf-visual-photo>img{object-fit:cover!important}

/* Typical example: "Что ещё может выясниться" had no side padding. */
.typical-card .case-outcomes{padding:18px clamp(16px,3vw,38px) clamp(16px,3vw,38px)}
.service-choice-actions .capture-situation{justify-self:start;white-space:nowrap}

/* Quiz: "Далее" always visible, even when the answers need scrolling (laptops 1366×768 etc.). */
.cf-dialog:not(.cf-is-contact) .cf-dialog-nav{position:sticky;bottom:-27px;z-index:3;margin:20px -30px -27px;padding:14px 30px 16px;background:#fff;border-top:1px solid #e3e9df;box-shadow:0 -8px 18px #102b3a10}
@media(max-width:760px){.cf-dialog:not(.cf-is-contact) .cf-dialog-nav{bottom:-20px;margin:14px -20px -20px;padding:12px 20px calc(12px + env(safe-area-inset-bottom))}}

/* Phones in landscape and other very short screens. */
@media(max-height:520px){
 .cf-dialog{max-height:calc(100dvh - 16px);width:calc(100% - 24px)}
 .cf-dialog-layout{grid-template-columns:1fr}
 .cf-dialog-aside{display:none}
 .cf-dialog-header{padding:8px 16px}
 .cf-dialog-main{padding:14px 20px}
 .cf-dialog h2{font-size:21px;margin:10px 0 6px}
 .cf-dialog-hint{font-size:13px;margin-bottom:10px}
 .cf-question-layout{grid-template-columns:170px minmax(0,1fr)!important;gap:14px}
 .cf-dialog .cf-visual-picture{height:110px}
 .cf-mobile-incentive{display:block;font-size:10px}
 .cf-dialog:not(.cf-is-contact) .cf-dialog-nav{bottom:-14px;margin:12px -20px -14px;padding:10px 20px}
 .capture-dialog{padding:20px 24px;max-height:calc(100dvh - 16px)}
 .capture-dialog h2{font-size:22px;margin-top:6px}
 .capture-person img{width:52px;height:52px}
 .capture-chat{top:8px;bottom:8px!important;height:auto;max-height:none}
 body:has(#capture-chat:not([hidden])) .capture-chat-launcher{display:none}
}
@media(min-width:761px) and (max-width:1024px){.service-choice-actions{column-gap:12px!important}.service-choice-actions .service-details-link{padding-inline:14px}.service-choice-actions .capture-situation{font-size:13px}}
/* Home "Примеры результата" on phones: reserve height before the lazy image loads (menu → Контакты jumped short). */
@media(max-width:700px){.home-page .doc-gallery .doc-tile>img{aspect-ratio:auto 1400/1905!important}}
.faq+.capture-link.capture-expert{display:flex;width:fit-content;margin:24px auto 0}

/* v40: inline "Проверить свой участок" form in the law notice (all service pages + home). */
.law-form{display:grid;gap:10px;max-width:640px;margin-top:16px}
.law-form-lead{margin:0!important;font-weight:700;color:var(--green-dark,#1f4d38);font-size:15px!important}
.law-form-field{display:block;margin:0}
.law-form-field input{display:block;box-sizing:border-box;width:100%;height:52px;padding:0 14px;border:1px solid #c9bf9f;border-radius:10px;background:#fff;color:#1d2f27;font:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}
.law-form-field input:focus{outline:none;border-color:#205a42;box-shadow:0 0 0 3px #205a4226}
.law-form-contact{display:grid;gap:10px}
.law-form-contact[hidden]{display:none}
.law-form.is-open .law-form-contact{animation:lawReveal .22s ease-out}
@keyframes lawReveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.law-form .law-form-submit{width:100%;min-height:52px;margin:0;border-radius:10px;font-size:16px}
.law-form-consent{margin:0!important;font-size:11px!important;line-height:1.45!important;color:#6d6a5c}
.law-form-consent a{text-decoration:underline}
.law-form .form-status{margin:0;font-size:13px}
.law-form .form-status:empty{display:none}
.law-form .form-status.error{color:#a4331f}
@media(min-width:761px){.law-form:not(.is-open){grid-template-columns:minmax(0,1fr) auto;align-items:center}.law-form:not(.is-open)>.law-form-lead,.law-form:not(.is-open)>.law-form-consent,.law-form:not(.is-open)>.form-status{grid-column:1/-1}.law-form:not(.is-open) .law-form-submit{width:auto;padding-inline:26px}}
.law-note-after{margin:-4px 0 18px}
.capture-docs-link{min-height:44px;display:inline-flex;align-items:center}
/* New quiz pictures (quiz-v40/*.jpg) carry text like "21–50 км": show the whole picture, never crop. */
.cf-visual-photo>img[src*="/quiz-v40/"]{object-fit:contain!important;background:#eef3ea}
@media(max-width:760px){.cf-dialog .cf-visual-picture:has(img[src*="/quiz-v40/"]){height:170px}}

/* v42: bottom "Остались вопросы?" quick callback block. */
.quick-callback{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:28px 40px;align-items:center;padding:clamp(24px,4vw,44px);border-radius:22px;background:linear-gradient(135deg,#1f5a41,#174532);color:#fff;box-shadow:0 18px 44px #0f2e2233}
.quick-callback h2{margin:0 0 10px;color:#fff;font-size:clamp(26px,3vw,36px);line-height:1.12}
.quick-callback-phone{margin:0;font-size:clamp(17px,1.7vw,21px);font-weight:600;color:#e6f1e9}
.quick-callback-phone a{color:#fff;font-weight:800;white-space:nowrap;text-decoration:underline;text-underline-offset:4px}
.quick-callback-or{margin:14px 0 0;font-size:15px;font-weight:700;letter-spacing:.02em;color:#f3cf7d;text-transform:uppercase}
.quick-callback-form{display:grid;gap:10px}
.quick-callback-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.quick-callback-field{display:block;margin:0}
.quick-callback-field input{box-sizing:border-box;width:100%;height:56px;padding:0 16px;border:1px solid #ffffff55;border-radius:10px;background:#ffffff14;color:#fff;font:inherit;font-size:17px}
.quick-callback-field input::placeholder{color:#d7e6dc}
.quick-callback-field input:focus{outline:none;border-color:#f3cf7d;background:#ffffff22;box-shadow:0 0 0 3px #f3cf7d40}
.quick-callback .quick-callback-submit{min-height:56px;margin:0;padding:0 26px;border-radius:10px;background:#eab959;color:#24332a;border:0;font-size:16px;white-space:nowrap}
.quick-callback-consent{margin:0;font-size:11px;line-height:1.45;color:#cfe0d5}
.quick-callback-consent a{color:#fff;text-decoration:underline}
.quick-callback .form-status{margin:0;font-size:14px;color:#fff}
.quick-callback .form-status:empty{display:none}
.quick-callback .form-status.error{color:#ffd2c7}
.quick-callback .form-status a{color:#fff}
@media(max-width:860px){.quick-callback{grid-template-columns:1fr}}
@media(max-width:480px){.quick-callback-row{grid-template-columns:1fr}.quick-callback .quick-callback-submit{width:100%}}

/* v43: proactive chat greeting bubble (bottom right, above the chat button). */
.chat-teaser{position:fixed;z-index:79;right:22px;bottom:104px;width:min(330px,calc(100% - 32px));opacity:0;transform:translateY(10px) scale(.98);transition:opacity .25s,transform .25s;pointer-events:none}
.chat-teaser.is-visible{opacity:1;transform:none;pointer-events:auto}
.chat-teaser[hidden]{display:none}
.chat-teaser-body{display:flex;gap:12px;align-items:flex-start;width:100%;padding:14px 34px 14px 14px;border:2px solid #205a42;border-radius:16px 16px 4px 16px;background:#fff;color:#203a31;box-shadow:0 10px 34px #102b3a33;font:inherit;text-align:left;cursor:pointer}
.chat-teaser-body img{flex:none;width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:top}
.chat-teaser-body strong{display:block;margin-bottom:4px;font-size:14px;color:#1d4d37}
.chat-teaser-body span{font-size:13px;line-height:1.45}
.chat-teaser-close{position:absolute;top:4px;right:6px;z-index:1;width:28px;height:28px;border:0;background:none;color:#6c7d73;font-size:20px;line-height:1;cursor:pointer}
@media(max-width:1279px){.chat-teaser{right:16px;bottom:84px}}
@media(max-width:760px){.chat-teaser{right:12px;bottom:142px;width:min(310px,calc(100% - 24px))}.chat-teaser-body{padding:12px 32px 12px 12px}.chat-teaser-body span{font-size:12.5px}body:has(.mobile-menu.open) .chat-teaser{display:none}}
@media(prefers-reduced-motion:reduce){.chat-teaser{transition:none}}


/* v45: "Проверка участка по ЕГРН" — calm embedded service card (replaces the law notice). */
.plot-tool{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.9fr);gap:28px;margin:22px 0;padding:26px 28px;border:1px solid #dfe6e0;border-radius:18px;background:#fcfdfc;box-shadow:0 1px 2px #102b3a0a;color:#1f332b}
.plot-tool-head{display:flex;align-items:center;gap:14px;margin-bottom:8px}
.plot-tool-icon{flex:none;width:40px;height:40px}
.plot-tool-kicker{display:block;margin-bottom:2px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#6f8078}
.plot-tool .plot-tool-title{margin:0;font-size:clamp(19px,1.8vw,23px);line-height:1.25;color:#1f3a30;letter-spacing:-.01em}
.plot-tool-sub{margin:0 0 16px!important;font-size:15px!important;line-height:1.5!important;color:#51645b!important;max-width:560px}
.plot-tool .plot-tool-form{display:grid!important;grid-template-columns:1fr!important;gap:10px;max-width:none;margin:0}
.plot-tool-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.plot-tool .law-form-field input{height:48px;border:1px solid #cdd8d0;border-radius:10px;background:#fff;font-size:15.5px}
.plot-tool .law-form-field input:focus{border-color:#205a42;box-shadow:0 0 0 3px #205a421f}
.plot-tool .plot-tool-submit{height:48px;padding:0 20px;border:1px solid #205a42;border-radius:10px;background:#205a42;color:#fff;font:inherit;font-size:15px;font-weight:700;white-space:nowrap;cursor:pointer;transition:background .15s}
.plot-tool .plot-tool-submit:hover{background:#1a4a36}
.plot-tool .plot-tool-submit:focus-visible{outline:3px solid #205a4255;outline-offset:2px}
.plot-tool-label{display:block;margin-bottom:6px;font-size:13px;font-weight:600;color:#40564c}
.plot-tool .law-form-contact{max-width:calc(100% - 0px)}
.plot-tool .form-status{margin:0;font-size:13px}
.plot-tool .form-status:empty{display:none}
.plot-tool .form-status.error{color:#a4331f}
.plot-tool-note{margin:4px 0 0!important;padding-left:12px;border-left:2px solid #d9c38d;font-size:13px!important;line-height:1.45!important;color:#63746c!important}
.plot-tool-consent{margin:0!important;font-size:11px!important;line-height:1.4!important;color:#8a978f!important}
.plot-tool-consent a{text-decoration:underline}
.plot-tool-result{align-self:start;padding:16px 18px;border:1px solid #e3e9e4;border-radius:14px;background:#fff;font-size:14px}
.plot-tool-result-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding-bottom:10px;border-bottom:1px solid #edf1ee}
.plot-tool-result-head span{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6f8078}
.plot-tool-number{font-style:normal;font-size:13px;font-weight:600;color:#40564c;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plot-tool-result dl{margin:0}
.plot-tool-result dl>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dashed #e6ece8}
.plot-tool-result dt{color:#51645b}
.plot-tool-result dd{margin:0;font-weight:600;color:#9aa6a0;text-align:right}
.plot-tool-result.is-pending dd{color:#8b6d1f}
.plot-tool-hint{margin:10px 0 0!important;font-size:13px!important;line-height:1.45!important;color:#7a8a82!important}
@media(max-width:900px){.plot-tool{grid-template-columns:1fr;gap:18px;padding:20px}}
@media(max-width:520px){.plot-tool{padding:18px 16px;border-radius:14px}.plot-tool-row{grid-template-columns:1fr}.plot-tool .plot-tool-submit{width:100%}.plot-tool-result{padding:12px 14px;font-size:13px}.plot-tool-result dl>div{padding:8px 0}}

/* v46: law card inside "Проверка участка по ЕГРН" — red highlight, was/now. */
.plot-tool{grid-template-areas:"law law" "main result"}
.plot-tool>.plot-law{grid-area:law}.plot-tool>.plot-tool-main{grid-area:main}.plot-tool>.plot-tool-result{grid-area:result}
.plot-law{position:relative;padding:18px 20px;border:1.5px solid #e7a79c;border-left:5px solid #c8412f;border-radius:14px;background:linear-gradient(180deg,#fff3f0,#fff8f6);box-shadow:0 0 0 0 #c8412f00;color:#3b2320}
.plot-law.is-seen{animation:lawGlow 1.6s ease-out 2}
@keyframes lawGlow{0%{box-shadow:0 0 0 0 #c8412f55}70%{box-shadow:0 0 0 12px #c8412f00}100%{box-shadow:0 0 0 0 #c8412f00}}
.plot-law-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.plot-law-head strong{font-size:clamp(17px,1.6vw,20px);color:#9d2a1c;line-height:1.25}
.plot-law-icon{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#c8412f;color:#fff;font-weight:900;font-size:16px;box-shadow:0 0 0 4px #c8412f22}
.plot-law-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:14px}
.plot-law-col{padding:12px 14px;border-radius:10px;background:#fff;border:1px solid #f0d3cd}
.plot-law-col p{margin:0 0 6px!important;font-size:14px!important;line-height:1.5!important;color:#40302d!important}
.plot-law-col p:last-child{margin-bottom:0!important}
.plot-law-col ul{margin:0 0 6px;padding-left:18px}
.plot-law-col li{margin:0 0 4px;font-size:14px;line-height:1.45;color:#40302d}
.plot-law-col b{color:#b3321f}
.plot-law-tag{display:inline-block;margin-bottom:6px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.is-before .plot-law-tag{background:#eef1ef;color:#5a6a62}
.is-before p{color:#6a7771!important}
.is-after{border-color:#e9b0a6;background:#fffdfc}
.is-after .plot-law-tag{background:#c8412f;color:#fff}
.plot-law-src{margin:10px 0 0!important;font-size:11.5px!important;line-height:1.45!important;color:#8a6d68!important}
/* phone step: bright reveal so it is not missed */
.plot-tool .law-form-contact{padding:12px 14px 14px;border:2px solid #205a42;border-radius:12px;background:#eef7f0;box-shadow:0 8px 22px #205a4226}
.plot-tool .law-form.is-open .law-form-contact{animation:phonePop .45s cubic-bezier(.2,.9,.3,1.3),phoneGlow 1.4s ease-out .45s 2}
@keyframes phonePop{from{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:none}}
@keyframes phoneGlow{0%{box-shadow:0 0 0 0 #2f9a5f66,0 8px 22px #205a4226}70%{box-shadow:0 0 0 12px #2f9a5f00,0 8px 22px #205a4226}100%{box-shadow:0 0 0 0 #2f9a5f00,0 8px 22px #205a4226}}
.plot-tool-phone-cta{display:flex;align-items:center;gap:8px;margin:0 0 8px!important;font-size:15px!important;font-weight:800;color:#1d4d37!important}
.plot-tool-phone-cta span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#205a42;color:#fff;font-size:14px}
.plot-tool .law-form-contact input{border:2px solid #205a42!important;height:50px!important;font-size:16px}
@media(max-width:900px){.plot-tool{grid-template-areas:"law" "main" "result"}}
@media(max-width:620px){.plot-law{padding:14px 14px}.plot-law-grid{grid-template-columns:1fr;gap:10px}.plot-law-col p,.plot-law-col li{font-size:13.5px!important}.plot-tool-phone-cta{font-size:14px!important}}
@media(prefers-reduced-motion:reduce){.plot-law.is-seen,.plot-tool .law-form.is-open .law-form-contact{animation:none}}
.plot-tool .law-form.is-open .plot-tool-row{grid-template-columns:1fr}
.plot-tool .law-form.is-open .plot-tool-row .plot-tool-submit{display:none}
.plot-tool .law-form-contact{display:grid;gap:10px}
.plot-tool .law-form-contact[hidden]{display:none}
.plot-tool .plot-tool-submit-final{width:100%;height:50px}
.plot-tool-phone-cta{margin:0!important}
.plot-tool-phone-cta span{flex:none}

/* v47: law note back in its place under the form — same size, red highlight, a bit more text. */
.plot-tool{grid-template-areas:"main result"}
@media(max-width:900px){.plot-tool{grid-template-areas:"main" "result"}}
.plot-tool .plot-law-note{display:flex;gap:10px;align-items:flex-start;margin:4px 0 0!important;padding:10px 12px!important;border:1px solid #e7a79c;border-left:4px solid #c8412f;border-radius:10px;background:linear-gradient(180deg,#fff3f0,#fff8f6);font-size:13px!important;line-height:1.45!important;color:#4a2c28!important}
.plot-tool .plot-law-note b{color:#9d2a1c}
.plot-tool .plot-law-note small{display:block;margin-top:4px;font-size:11px;color:#8a6d68}
.plot-tool .plot-law-note .plot-law-icon{width:20px;height:20px;font-size:12px;box-shadow:0 0 0 3px #c8412f22;margin-top:1px}
.plot-law-note.is-seen{animation:lawGlow 1.6s ease-out 2}
@media(prefers-reduced-motion:reduce){.plot-law-note.is-seen{animation:none}}
/* v48: law note a bit softer */
.plot-tool .plot-law-note{border-color:#efc9c2;border-left-color:#d9776a;background:#fdf6f4;color:#5a403c!important}
.plot-tool .plot-law-note b{color:#b0493b}
.plot-tool .plot-law-note .plot-law-icon{background:#d9776a;box-shadow:0 0 0 3px #d9776a1f}
.plot-law-note.is-seen{animation:lawGlowSoft 1.6s ease-out 2}
@keyframes lawGlowSoft{0%{box-shadow:0 0 0 0 #d9776a3d}70%{box-shadow:0 0 0 10px #d9776a00}100%{box-shadow:0 0 0 0 #d9776a00}}
/* v49: heading and subtitle slightly more prominent */
.plot-tool .plot-tool-title{font-size:clamp(21px,2vw,26px);color:#1b4a35}
.plot-tool-sub{font-size:16px!important;color:#34473f!important;font-weight:500}

/* v50: mobile — compact form that unfolds on interaction. */
.plot-tool-mini{display:none}
@media(max-width:760px){
 .plot-tool{gap:0;padding:16px 14px;margin:14px 0;border-radius:14px}
 .plot-tool>.plot-tool-result{display:none}
 .plot-tool-head{gap:10px;margin-bottom:6px}
 .plot-tool-icon{width:32px;height:32px}
 .plot-tool-kicker{font-size:10px}
 .plot-tool .plot-tool-title{font-size:19px}
 .plot-tool-sub{margin:0 0 12px!important;font-size:14px!important;line-height:1.45!important}
 .plot-tool .plot-tool-form{gap:8px}
 .plot-tool-row{grid-template-columns:1fr;gap:8px}
 .plot-tool .law-form-field input{height:46px}
 .plot-tool .plot-tool-submit{width:100%;height:46px}
 .plot-tool-mini{display:block;margin:0!important;font-size:12px!important;line-height:1.4!important;color:#6f8078!important;text-align:center}
 .plot-tool .law-form.is-open .plot-tool-mini{display:none}
 .plot-tool .law-form-contact{padding:10px 12px 12px}
 .plot-tool .plot-law-note{gap:8px;margin:2px 0 0!important;padding:8px 10px!important;font-size:12px!important;line-height:1.4!important}
 .plot-tool .plot-law-note small{margin-top:2px;font-size:10px}
 .plot-tool .plot-law-note .plot-law-icon{width:17px;height:17px;font-size:11px}
 .plot-tool-consent{font-size:10.5px!important}
}
@media(max-width:760px){
 .plot-tool-icon{display:none}
 .plot-tool .plot-tool-title{font-size:18px}
 .plot-tool-sub{font-size:13.5px!important;margin-bottom:10px!important}
 .plot-tool-mini{font-size:11px!important;letter-spacing:-.01em}
 .plot-tool .plot-law-note{padding:7px 9px!important;font-size:11.5px!important;line-height:1.38!important;border-left-width:3px}
 .plot-tool .plot-law-note small{display:none}
 .plot-tool .plot-law-note .plot-law-icon{display:none}
 .plot-tool .form-status:not(.error){display:none}
 .plot-tool-phone-cta{font-size:13.5px!important}
}
/* v51: phone step — plain continuation of the form, standard required mark. */
.plot-tool .law-form-contact{padding:0;border:0;border-radius:0;background:none;box-shadow:none;gap:10px}
.plot-tool .law-form.is-open .law-form-contact{animation:lawReveal .22s ease-out}
.plot-tool .law-form-contact input{border:1px solid #cdd8d0!important;height:48px!important}
.plot-tool .law-form-contact input:focus{border-color:#205a42!important}
.plot-tool-phone .plot-tool-label{font-size:13px;font-weight:600;color:#40564c;margin-bottom:5px}
.plot-tool-phone .req{color:#c0392b;font-weight:700}
.plot-tool-phone em{font-style:normal;font-weight:400;color:#7a8a82}
.plot-tool .plot-tool-submit-final{height:48px}
@media(max-width:760px){.plot-tool .law-form-contact{padding:0}.plot-tool .law-form-contact input{height:46px!important}.plot-tool .plot-tool-submit-final{height:46px}}

/* v52: mini calendar in "Узнать дату выезда" dialog */
.cap-cal-wrap{display:block}
.cap-cal-label{display:block;margin-bottom:6px;font-size:13px;font-weight:600}
.cap-cal-label small{font-weight:400;color:#6f8078}
.cap-cal{padding:10px 12px 8px;border:1px solid #bbc8c1;border-radius:10px;background:#fff}
.cap-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.cap-cal-head strong{font-size:15px;color:#22536f}
.cap-cal-nav{width:32px;height:32px;border:1px solid #d5e0e6;border-radius:8px;background:#f4f9fc;color:#22536f;font-size:18px;line-height:1;cursor:pointer}
.cap-cal-nav:disabled{opacity:.35;cursor:default}
.cap-cal-week,.cap-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.cap-cal-week span{font-size:11px;color:#7a8a82;padding:2px 0}
.cap-cal-grid button{height:34px;border:0;border-radius:8px;background:#f1f6f9;color:#203a31;font:inherit;font-size:14px;cursor:pointer}
.cap-cal-grid button.is-we{color:#8a6d68}
.cap-cal-grid button.is-today{box-shadow:inset 0 0 0 1.5px #6d9db8}
.cap-cal-grid button:hover:not(:disabled){background:#dcebf3}
.cap-cal-grid button:disabled{background:none;color:#c3ccc8;cursor:default}
.cap-cal-grid button.is-sel{background:#285875;color:#fff}
.cap-cal-picked{margin:8px 0 2px!important;font-size:12.5px!important;line-height:1.4!important;color:#51635c!important}
.cap-cal-clear{border:0;background:none;padding:0;margin-left:6px;color:#285875;text-decoration:underline;font:inherit;font-size:12px;cursor:pointer}
@media(max-width:480px){.cap-cal-grid button{height:32px;font-size:13px}.cap-cal{padding:8px}}
.cap-cal-grid button.is-sel,.cap-cal-grid button.is-sel:hover{background:#285875!important;color:#fff!important;font-weight:700}
/* v53: schedule dialog on phones — fits one screen */
@media(max-width:760px){
 .capture-mode-schedule.capture-dialog{padding:18px 16px 14px;width:calc(100% - 16px);max-height:calc(100dvh - 16px)}
 .capture-mode-schedule h2{font-size:21px!important;margin:6px 28px 6px 0!important}
 .capture-mode-schedule>p{font-size:13px!important;line-height:1.45!important;margin:0}
 .capture-mode-schedule .capture-form{gap:9px;margin-top:12px}
 .capture-mode-schedule .capture-form label,.capture-mode-schedule .cap-cal-label{font-size:12.5px}
 .capture-mode-schedule .capture-form input{padding:10px 12px;margin-top:4px;font-size:16px}
 .capture-mode-schedule .cap-cal-label{margin-bottom:4px}
 .capture-mode-schedule .cap-cal{padding:6px 8px 4px}
 .capture-mode-schedule .cap-cal-head{margin-bottom:2px}
 .capture-mode-schedule .cap-cal-nav{width:30px;height:30px}
 .capture-mode-schedule .cap-cal-grid{gap:2px}
 .capture-mode-schedule .cap-cal-grid button{height:30px;font-size:13px}
 .capture-mode-schedule .cap-cal-picked{margin:4px 0 0!important;font-size:12px!important}
 .capture-mode-schedule .capture-form>.capture-action{padding:13px 16px}
 .capture-mode-schedule .capture-consent{font-size:10.5px!important}
}

/* v54: e-mail in footer contacts + copy button + toast */
.footer-mail{display:flex;align-items:stretch;gap:6px;flex-wrap:wrap}
.footer-mail>a{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
.mail-copy{flex:none;padding:0 12px;min-height:40px;border:1px solid #ffffff40;border-radius:10px;background:#ffffff14;color:#fff;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.mail-copy:hover{background:#ffffff26}
.mail-copy.is-done{background:#2f9a5f;border-color:#2f9a5f}
.mail-toast{position:fixed;z-index:120;left:50%;bottom:24px;max-width:calc(100% - 32px);padding:11px 16px;border-radius:12px;background:#17332a;color:#fff;font-size:14px;line-height:1.4;box-shadow:0 10px 30px #0004;transform:translate(-50%,10px);opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;text-align:center}
.mail-toast.is-on{opacity:1;transform:translate(-50%,0)}
.mail-toast[hidden]{display:none}
@media(max-width:760px){.mail-toast{bottom:86px}}
.footer-mail{margin:7px 0;flex-wrap:nowrap}
.footer-mail>a{display:flex;align-items:center;min-height:48px;padding:9px 11px;border:1px solid rgba(255,255,255,.2);border-radius:11px;background:rgba(255,255,255,.09);color:#fff!important;font-size:15px;font-weight:800;text-decoration:none}
.footer-mail>a:hover{background:rgba(255,255,255,.16)}
.footer-mail .mail-copy{min-height:48px}
@media(max-width:360px){.footer-mail>a{font-size:13.5px}.footer-mail .mail-copy{padding:0 9px;font-size:12px}}
.footer-mail{flex-direction:column;flex-wrap:nowrap;gap:4px}
.footer-mail>a{white-space:nowrap;overflow-wrap:normal;font-size:14.5px}
.footer-mail .mail-copy{align-self:flex-start;min-height:34px;padding:0 12px;border-radius:8px;font-size:12.5px;font-weight:600}
.footer-mail .mail-copy:before{content:'⧉ ';opacity:.8}
.footer-mail .mail-copy.is-done:before{content:'✓ '}

/* v65: hero "Рассчитать стоимость" — white card-button with an engineer's compass icon, like the price buttons on competitors' sites but in our palette */
.hero-calc-offer{margin:22px 0 -14px;font-size:16px;line-height:1.45;color:#203b30}
.hero-calc-offer b{color:#1f5e43;white-space:nowrap}
.capture-hero-actions>.capture-action.hero-calc{display:flex;align-items:center;justify-content:flex-start;gap:14px;text-align:left;background:#fff;color:#1f5e43;border:2px solid #205a42;box-shadow:0 12px 28px rgba(16,43,58,.16);padding:11px 20px 11px 12px;transition:background .15s,color .15s,transform .15s,box-shadow .15s}
.hero-calc:hover{filter:none;background:#205a42;color:#fff;box-shadow:0 14px 30px rgba(32,90,66,.32)}
.hero-calc-ico{flex:none;width:46px;height:46px;border-radius:12px;background:#e8f3ec;display:grid;place-items:center;transition:background .15s}
.hero-calc-ico svg{width:30px;height:30px;fill:none;stroke:#205a42;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .15s}
.hero-calc:hover .hero-calc-ico{background:rgba(255,255,255,.16)}
.hero-calc:hover .hero-calc-ico svg{stroke:#fff}
.hero-calc-txt{display:grid;gap:2px;min-width:0}
.hero-calc-txt b{font-size:16px;line-height:1.15;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.capture-hero-actions>.capture-action.hero-calc{flex:1.4}
.hero-calc-txt small{font-size:13.5px;font-weight:400;opacity:.85}
@media(max-width:760px){
 .hero-calc-offer{display:none}
 .capture-hero-actions>.capture-action.hero-calc{min-height:68px;padding:10px 14px 10px 10px}
 .hero-calc-txt b{font-size:16px}
}

/* v66: "Заказать звонок" directly under the phone number (no empty line between them) */
.header-contact .calltrack-phone{min-height:0!important;padding-block:0!important;line-height:1.15!important;position:relative}
.header-contact .calltrack-phone:after{content:'';position:absolute;inset:-8px -6px -3px}
.header-contact .capture-link{margin-top:2px!important;padding-block:0!important}
@media(max-width:1024px){.header-contact{gap:3px!important;justify-content:center}}

/* v67: exit-intent window "Не нашли, что искали?" */
.exit-dialog{width:min(480px,calc(100% - 24px));text-align:center}
.exit-face{width:64px;height:64px;margin:4px auto 0}
.exit-face svg{width:100%;height:100%;fill:none;stroke:#205a42;stroke-width:3.2;stroke-linecap:round}
.exit-face svg circle:first-child{fill:#e8f3ec;stroke:#cfe3d6}
.exit-face svg circle:not(:first-child){fill:#205a42;stroke:none}
.exit-dialog h2{margin:10px 0 8px!important}
.exit-dialog>p{margin:0 auto;max-width:36ch}
.exit-form{text-align:left;margin-top:18px!important}
.exit-form textarea{resize:vertical;min-height:84px}
.exit-form .capture-action{width:100%}
.exit-consent{margin:0;font-size:11.5px;color:#677562;text-align:center}
.exit-consent a{color:inherit}
.exit-form .form-status:empty{display:none}
.exit-form .form-status.error{color:#a4331f;font-size:13px}
