.calculator{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(310px,.8fr);gap:20px;align-items:start}
.calculator__fields,.calculator__summary{background:#fff;border:1px solid var(--line);border-radius:22px;padding:29px}
.calculator fieldset{margin:0 0 32px;border:0;padding:0;min-width:0}
.calculator fieldset:last-child{margin-bottom:0}
.calculator legend{font-weight:700;font-size:18px;margin:0 0 17px}
.choice{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--line);border-radius:14px;margin-bottom:9px;cursor:pointer;background:#f9fbf9}
.choice:hover{background:#f0f6f1}.choice--active{background:#e8f5eb;border-color:#6da580}
.choice input{accent-color:var(--primary);height:18px;width:18px;flex-shrink:0}
.choice__main{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}
.choice__main strong{font-size:14px;font-weight:600}.choice__main small{font-size:12px;color:var(--muted)}
.choice>b{font-size:13px;white-space:nowrap}
.calculator__summary{background:#e6f2e8;position:sticky;top:99px}
.calculator__summary h3{font-size:21px;margin-bottom:21px}
.summary-rows{border-top:1px solid #b8d2be}
.summary-rows>div{display:flex;align-items:start;justify-content:space-between;gap:16px;border-bottom:1px solid #b8d2be;padding:15px 0;font-size:13px}
.summary-rows strong{white-space:nowrap}
.summary-total{padding:26px 0 20px;display:flex;flex-direction:column;gap:5px}
.summary-total span{font-size:13px}.summary-total output{font-size:34px;font-weight:800;letter-spacing:-.03em;color:var(--primary)}
.small-note{font-size:12px;color:var(--muted);line-height:1.7;margin:12px 0 19px}
.faq{max-width:900px}.faq details{border:1px solid var(--line);border-radius:14px;background:#fff;margin-bottom:10px;padding:18px 23px}
.faq summary{font-size:15px;font-weight:600;cursor:pointer}
.faq details p{padding:15px 0 0;font-size:14px;color:var(--muted);margin-bottom:0}
.contact-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:60px;align-items:start}
.contact-details h2{font-size:28px}.contact-details>p{color:var(--muted);font-size:15px;line-height:1.7}
.contact-detail{display:flex;flex-direction:column;gap:5px;padding:21px 0;border-bottom:1px solid var(--line)}
.contact-detail span{font-size:12px;color:#60816b}
.contact-detail a,.contact-detail strong{font-weight:650;font-size:15px;overflow-wrap:anywhere}
.contact-detail small{font-size:12px;color:var(--muted)}
.surface{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}
.request-form{padding:31px}.request-form h2{font-size:25px;margin-bottom:22px}
.request-form label:not(.consent){display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:650;margin-bottom:17px}
.request-form input:not([type=checkbox]),.request-form select,.request-form textarea{width:100%;border:1px solid #b8c8ba;border-radius:12px;background:#fafcfa;color:var(--text);padding:13px 14px;font-size:14px;font-weight:400}
.request-form textarea{min-height:127px;resize:vertical}
.request-form :is(input,select,textarea):focus{border-color:var(--primary)}
.request-form input::placeholder,.request-form textarea::placeholder{color:#7e8e80}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.consent{display:flex;align-items:flex-start;gap:11px;line-height:1.6;font-size:12px;color:var(--muted);margin:20px 0}
.consent input{margin:4px 0;accent-color:var(--primary)}.consent a{text-decoration:underline;text-underline-offset:3px;color:var(--primary)}
.form-actions{display:flex;gap:10px;flex-wrap:wrap}
.form-feedback{font-size:13px;color:var(--primary);background:#eaf4ea;border-radius:10px;padding:10px 13px}
.text-document{padding:33px;max-width:890px;background:#fff;border-radius:23px;border:1px solid var(--line)}
.text-document h2{font-size:23px;margin:0 0 13px}.text-document h2:not(:first-child){margin-top:29px}
.text-document p{font-size:15px;line-height:1.8;color:var(--muted);margin-bottom:18px}
.site-footer{background:#193b2c;color:white;margin-top:80px;padding-top:51px}
.footer-main{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding-bottom:45px}
.footer-brand{display:inline-flex;align-items:center;gap:11px;font-size:19px;font-weight:800}.footer-brand__logo{display:block;width:44px;height:44px;object-fit:contain;flex:0 0 44px}
.footer-main p{color:#d0e1d4;font-size:14px;max-width:360px;line-height:1.7;margin-top:13px}
.footer-main small{color:#bfd6c5}
.footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 25px}
.footer-links a{font-size:13px;color:#d3e4d7}.footer-links a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #67857463;padding:22px 0 26px;font-size:12px;color:#c2d5c8}
.footer-bottom a:hover{color:#fff}
.boot-placeholder,.page-skeleton{padding:90px 0;min-height:60vh}
.boot-placeholder{width:min(900px,calc(100% - 56px));margin:auto}
.boot-placeholder__brand{font-size:19px;font-weight:800;margin-bottom:30px;color:var(--primary)}
.boot-placeholder__line,.skeleton{border-radius:12px;background:linear-gradient(90deg,#e7eee7 0%,#f2f6f1 45%,#e7eee7 100%);background-size:200% 100%;animation:pulse 1.5s ease infinite}
.boot-placeholder__line{height:32px;max-width:580px;margin-bottom:15px}.boot-placeholder__line.short{max-width:390px}
.boot-placeholder span{font-size:13px;color:var(--muted)}
.skeleton{height:20px;margin-bottom:19px}.skeleton--eyebrow{width:150px;height:14px}
.skeleton--heading{width:min(550px,75%);height:54px}.skeleton--text{width:min(690px,95%)}
.skeleton--text-short{width:min(440px,75%)}@keyframes pulse{from{background-position:100% 0}to{background-position:-100% 0}}
.page-error{padding:110px 0;min-height:60vh}.page-error h1{font-size:34px}.page-error p{color:var(--muted)}

/* Contact preference: one required channel, one corresponding input. */
.request-form .contact-methods{
  min-width:0;
  border:0;
  margin:0 0 19px;
  padding:0;
}
.request-form .contact-methods legend{
  display:block;
  width:100%;
  margin:0 0 5px;
  font-size:13px;
  font-weight:700;
  color:var(--text);
}
.required-mark{color:var(--primary)}
.contact-methods__hint{
  color:var(--muted);
  font-size:12px;
  line-height:1.55;
  margin:0 0 12px;
}
.contact-methods__options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:11px;
}
.request-form label.contact-method{
  display:flex;
  flex-direction:row;
  align-items:center;
  min-width:0;
  gap:12px;
  margin:0;
  padding:16px;
  border:1px solid #d4e1d6;
  border-radius:14px;
  background:#fbfcfb;
  font-weight:400;
  cursor:pointer;
  transition:background .16s,border-color .16s,box-shadow .16s;
}
.request-form label.contact-method:hover{border-color:#91b69b;background:#f5faf6}
.request-form label.contact-method--active{
  background:#e8f3eb;
  border-color:#71a886;
  box-shadow:0 0 0 1px #71a88644;
}
.request-form .contact-method input[type=radio]{
  appearance:auto;
  flex:0 0 19px;
  width:19px;
  height:19px;
  padding:0;
  margin:0;
  accent-color:var(--primary);
}
.request-form .contact-method__label{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
  line-height:1.35;
}
.request-form .contact-method__label strong{font-size:13px;font-weight:700}
.request-form .contact-method__label small{font-size:11px;color:var(--muted);line-height:1.45}
.request-contact-field{margin-bottom:5px}
.request-contact-field__hint{
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:400;
  line-height:1.45;
}
@media(max-width:620px){
  .contact-methods__options{grid-template-columns:1fr}
  .request-form label.contact-method{padding:14px}
}

/* Подтверждение выбора, перенесённого с карточки или из калькулятора. */
.request-context{
  padding:15px 17px;margin:0 0 23px;
  border:1px solid #c7e0ce;border-left:4px solid var(--primary);
  border-radius:12px;background:#f2f8f3;
}
.request-context strong{display:block;color:var(--primary);font-size:14px;font-weight:750}
.request-context p{font-size:12px;line-height:1.65;color:var(--muted);margin:7px 0 0}
