/* Дополнения к утверждённой дизайн-системе. Базовые стили — в style.css. */
html{scroll-padding-top:110px}
body{overflow-x:hidden}
.skip-link{position:fixed;left:16px;top:-80px;z-index:200;background:var(--brown-deep);color:#fff;padding:12px 18px;border-radius:6px;transition:top .2s}
.skip-link:focus{top:16px;color:#fff}
.page-shell{overflow:clip}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,.upload-drop:focus-within{outline:3px solid #b57a4f;outline-offset:3px}
.full-width{width:100%}
.optional{font-weight:400;color:var(--muted);font-size:10px}
.header-phone{font-size:11px;font-weight:700;white-space:nowrap;color:var(--brown-dark)}
.header-phone:hover{color:var(--brown)}
.footer-phone,.footer-email{font-size:12px;color:#fff2e5!important;font-weight:650;margin-top:4px!important}
.footer .footer-phone{display:block}
.footer .footer-email{display:block;margin-bottom:12px!important;word-break:break-word}
.trap{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.flash-stack{width:min(1220px,calc(100% - 72px));margin:18px auto 0;display:grid;gap:8px}
.flash{padding:13px 16px;border-radius:7px;font-size:13px;border:1px solid transparent}
.flash--success{background:#e8f1e8;border-color:#b9d4b9;color:#2f5d3d}
.flash--error{background:#f7e7e3;border-color:#e4bdb4;color:#8a3526}
.flash--info{background:#f2ece3;border-color:#d9c9b8;color:#5c4634}
.form-feedback{min-height:18px;margin:12px 0 0!important;font-size:12px;color:var(--muted)}
.form-feedback.is-error{color:#9a3122;font-weight:650}
.form-feedback.is-success{color:#356b46;font-weight:650}
.demo-form label + label{margin-top:14px}
.demo-form .consent + .btn{margin-top:15px}
.contact-form .btn{margin-top:22px}
.contact-form-panel .demo-form label{display:block}
.contact-form-panel .form-feedback{clear:both}
.service-description{font-size:12px!important;color:var(--muted);margin:9px 0 0!important;min-height:0!important}
.service-card__bottom .link-button{font-size:12px}
.price-legal-note{font-size:11px;color:var(--muted);margin:24px 0 0;max-width:850px}
.guarantee-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.guarantee-card{border:1px solid var(--border);background:#fbf8f4;border-radius:9px;padding:27px 24px}
.guarantee-card>span{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--brown);color:#fff;font-size:15px;margin-bottom:18px}
.guarantee-card h3{font-family:var(--serif);font-size:23px;font-weight:500;margin-bottom:9px}
.guarantee-card p{font-size:13px;color:var(--muted);margin:0}
.quote-mark{font:400 58px/1 var(--serif);color:var(--brown);height:38px;margin-bottom:10px}
.testimonial p{font-size:18px}
.before-grid{grid-template-columns:minmax(0,42fr) minmax(0,58fr)}
.about-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.faq-grid{grid-template-columns:minmax(0,38fr) minmax(0,62fr)}
.faq-list{min-width:0}
.faq-list summary{gap:18px;min-width:0}
.faq-list summary span{flex:0 0 auto}
.faq-list details p{padding-right:20px}
.section--contacts-strip{background:var(--cream);border-top:1px solid var(--border)}
.home-contacts{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:center}
.home-contact-list{border-top:1px solid var(--border)}
.home-contact-list>a,.home-contact-list>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;align-items:start;border-bottom:1px solid var(--border);padding:16px 0}
.home-contact-list span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding-top:3px}
.home-contact-list strong{font:500 19px/1.35 var(--serif);overflow-wrap:anywhere}
.home-contact-list small{display:block;color:var(--muted);font-size:11px;margin-top:5px;grid-column:2}
.footer-top{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr)}
.footer-top>div{min-width:0}
.footer a,.footer p,.footer .brand__name{overflow-wrap:anywhere}
.footer .btn{white-space:normal;text-align:center;max-width:100%}
.contact-point b a:hover,.home-contact-list a:hover strong{color:var(--brown)}
.contact-map-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:center}
.contact-map{border-radius:10px;overflow:hidden;border:1px solid var(--border);background:#efe7dc;min-height:360px}
.contact-map iframe{display:block;width:100%;border:0;height:360px}
.legal-req{display:grid;grid-template-columns:.75fr 1.25fr;gap:50px;align-items:start}
.legal-req-list{margin:0;border-top:1px solid var(--border)}
.legal-req-list>div{display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px;border-bottom:1px solid var(--border);padding:13px 0}
.legal-req-list dt{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);padding-top:2px}
.legal-req-list dd{margin:0;font-size:13px;overflow-wrap:anywhere}
.legal-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:42px;align-items:start}
.legal-doc{background:#fff;border:1px solid var(--border);border-radius:10px;padding:42px 46px;font-size:14px;color:#493e36;line-height:1.75;overflow-wrap:anywhere}
.legal-doc h1,.legal-doc h2,.legal-doc h3{font-family:var(--serif);color:var(--brown-dark);line-height:1.25;margin-top:1.6em}
.legal-doc h1{font-size:32px;margin-top:0}
.legal-doc h2{font-size:24px;border-top:1px solid var(--border);padding-top:24px}
.legal-doc h3{font-size:19px}
.legal-doc p{margin:0 0 14px}
.legal-doc ul,.legal-doc ol{margin:0 0 16px;padding-left:24px}
.legal-doc li{margin:5px 0}
.legal-doc a{color:var(--brown);text-decoration:underline;text-underline-offset:3px}
.legal-doc table{width:100%;border-collapse:collapse;margin:18px 0;font-size:12px}
.legal-doc td,.legal-doc th{border:1px solid var(--border);padding:8px;vertical-align:top}
.legal-side{position:sticky;top:110px;background:#f6efe6;border:1px solid var(--border);border-radius:9px;padding:24px;display:flex;flex-direction:column;gap:5px}
.legal-side a{font-size:12px;padding:10px 11px;border-radius:5px;color:#6f5c4d}
.legal-side a.active,.legal-side a:hover{background:#fff;color:var(--brown);font-weight:700}
.legal-side .btn{margin-top:14px;white-space:normal}
.legal-updated{font-size:10px;color:var(--muted);margin:12px 0 0}
.error-hero{min-height:55vh}
.lightbox-figure{margin:0;display:grid;place-items:center;max-width:92vw}
.lightbox-figure img{max-height:82vh;max-width:90vw;object-fit:contain;border-radius:4px}
.lightbox-figure figcaption{color:#eee2d6;font-size:12px;margin-top:12px;text-align:center}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;background:#fff2e4;color:#392519;border:0;width:46px;height:46px;border-radius:50%;font-size:22px}
.lightbox-nav--prev{left:22px}
.lightbox-nav--next{right:22px}
.lightbox-close{top:10px;right:18px;z-index:2}
/* Сравнение: слева «до», справа «после». После-слой обрезается по позиции ползунка. */
.comparison__afterclip{position:absolute;inset:0;z-index:1;overflow:hidden;width:auto;clip-path:inset(0 0 0 var(--pos,50%));will-change:clip-path}
.comparison__after{position:absolute;inset:0;width:100%!important;height:100%!important;min-width:0!important;object-fit:cover;object-position:center}
.comparison__before{object-fit:cover;object-position:center}
.comparison:focus-within .comparison__handle{box-shadow:0 0 0 5px #ffffff66}
.comparison__range:focus-visible{outline:none}
@media(max-width:960px){
 .before-grid{grid-template-columns:1fr}
 .home-contacts,.contact-map-grid,.legal-req{grid-template-columns:1fr;gap:30px}
 .guarantee-grid{grid-template-columns:1fr 1fr}
 .legal-layout{grid-template-columns:1fr}
 .legal-side{position:static;order:-1;display:grid;grid-template-columns:1fr 1fr;gap:4px}
 .legal-side .eyebrow,.legal-side .btn,.legal-updated{grid-column:1/-1}
 .legal-doc{padding:32px}
 .header-phone{display:none}
}
@media(max-width:680px){
 .wrap{width:calc(100% - 36px)}
 .flash-stack{width:calc(100% - 36px)}
 .faq-grid{grid-template-columns:1fr}
 .header-actions{gap:7px}
 .header-phone{display:none}
 .guarantee-grid{grid-template-columns:1fr}
 .home-contact-list>a,.home-contact-list>div{grid-template-columns:92px minmax(0,1fr);gap:12px}
 .home-contact-list strong{font-size:17px}
 .legal-doc{padding:22px 17px;font-size:13px}
 .legal-doc h1{font-size:27px}
 .legal-doc h2{font-size:21px}
 .legal-req-list>div{grid-template-columns:1fr;gap:4px}
 .legal-side{display:block;padding:15px}
 .legal-side a{display:block}
 .contact-map iframe{height:300px}
 .lightbox{padding:18px}
 .lightbox-nav{width:38px;height:38px;font-size:18px}
 .lightbox-nav--prev{left:7px}
 .lightbox-nav--next{right:7px}
 .footer-bottom{flex-direction:column;align-items:flex-start;gap:8px}
 .footer-top{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:27px}
 .footer-top>div:first-child,.footer-top>div:last-child{grid-column:span 2}
 .comparison{height:265px}
 .cta-actions{flex-direction:column;align-items:stretch}
 .cta-actions .btn{width:100%}
 .form-footer .btn{width:100%}
 .form-footer .consent{max-width:none}
}
@media(max-width:430px){
 .footer-top{grid-template-columns:1fr}
 .footer-top>div:first-child,.footer-top>div:last-child{grid-column:span 1}
}
@media(max-width:380px){
 .header-inner{gap:8px}
 .brand__mark{width:37px}
 .brand__name b{font-size:15px}
 .brand__name small{font-size:7px}
 .header-actions{gap:3px}
 .btn--small{padding:12px 14px;min-height:44px;font-size:11px}
 .home-contact-list>a,.home-contact-list>div{grid-template-columns:1fr;gap:2px}
 .home-contact-list small{grid-column:1}
}
@media print{
 .topline,.site-header,.footer,.modal,.lightbox,.toast,.legal-side,.skip-link,.cta{display:none!important}
 .inner-hero{padding:10px 0}
 .legal-layout{display:block}
 .legal-doc{border:0;padding:0;font-size:12pt}
 body{background:#fff}
}
