/* Всё внутри .kalk — чтобы при вставке в сайт не задеть его стили. */
.kalk{--krasn:#b3141c;--krasn-t:#8e0f16;--chern:#1b1f27;--ser:#5d6470;--linia:#e3ddd4;--fon:#f7f4ef;--bel:#fff;
  --zel:#1f7a4d;--zhelt:#b7791f;
  font:16px/1.5 Inter,"Segoe UI",Roboto,Arial,sans-serif;color:var(--chern);background:var(--fon);
  max-width:1180px;margin:0 auto;padding:32px 20px 48px;box-sizing:border-box}
.kalk *,.kalk *::before,.kalk *::after{box-sizing:border-box}
body:has(> .kalk){margin:0;background:#f7f4ef}

.kalk-shapka{max-width:780px;margin-bottom:24px}
.kalk-metka{display:inline-block;margin:0 0 12px;padding:4px 10px;border-radius:999px;background:#f3e3e2;color:var(--krasn-t);
  font-size:13px;font-weight:600;letter-spacing:.02em}
.kalk h1{font-size:clamp(26px,3.4vw,38px);line-height:1.15;margin:0 0 12px;letter-spacing:-.01em}
.kalk-pod{margin:0;color:var(--ser);font-size:17px}

.kalk-chernovik{margin:0 0 20px;padding:12px 16px;border:1px dashed var(--zhelt);border-radius:10px;background:#fff8e8;color:#7a5414;font-size:14px}

.kalk-setka{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:start}

.kalk-forma fieldset{border:1px solid var(--linia);background:var(--bel);border-radius:14px;margin:0 0 16px;padding:18px 20px 20px}
.kalk-forma legend{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;padding:0 6px;margin-left:-6px}
.kalk-forma legend span{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--chern);color:#fff;font-size:13px}

.kalk-polya{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.kalk-polya label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
.kalk-polya small,.kalk-galka small,.kalk-vybor small{font-weight:400;color:var(--ser);font-size:12.5px}
.kalk-shirokoe{grid-column:1/-1}
.kalk input:not([type=radio]):not([type=checkbox]),.kalk select{font:inherit;font-weight:500;width:100%;padding:10px 12px;border:1px solid #d4cdc2;
  border-radius:9px;background:#fff;color:var(--chern)}
.kalk input:focus,.kalk select:focus{outline:2px solid var(--krasn);outline-offset:1px;border-color:transparent}

.kalk-vybor{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.kalk-vybor label{position:relative;display:flex;flex-direction:column;gap:4px;padding:14px 14px 14px 42px;border:1px solid #d4cdc2;border-radius:11px;cursor:pointer}
.kalk-vybor input{position:absolute;left:14px;top:17px;accent-color:var(--krasn)}
.kalk-vybor label:has(input:checked){border-color:var(--krasn);background:#fdf4f3;box-shadow:0 0 0 1px var(--krasn) inset}

.kalk-galki{display:grid;gap:10px}
.kalk-galka{display:grid!important;grid-template-columns:auto 1fr;column-gap:10px;align-items:start;font-weight:600;font-size:14px;cursor:pointer}
.kalk-galka input{margin-top:4px;width:17px;height:17px;accent-color:var(--krasn)}
.kalk-galka small{grid-column:2}
.kalk-polya .kalk-galka{grid-column:1/-1;flex-direction:row}

.kalk-itog{position:sticky;top:16px;background:var(--chern);color:#f3f1ec;border-radius:18px;padding:24px}
.kalk-itog-zag{margin:0;color:#b9bdc6;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.kalk-glavnoe{margin:4px 0 18px;font-size:clamp(38px,4.6vw,54px);font-weight:800;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.kalk-glavnoe.minus{color:#ff8a80}
.kalk-tri,.kalk-partiya{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.kalk-partiya{grid-template-columns:1fr 1fr;padding-top:16px;border-top:1px solid #343a46}
.kalk-tri div,.kalk-partiya div{display:flex;flex-direction:column;gap:2px}
.kalk-tri span,.kalk-partiya span{font-size:12.5px;color:#b9bdc6}
.kalk-tri b,.kalk-partiya b{font-size:19px;font-variant-numeric:tabular-nums}

.kalk-signal{margin:0 0 16px;padding:12px 14px;border-radius:11px;background:#262b35}
.kalk-polosa{position:relative;height:8px;border-radius:99px;background:#3a404c;overflow:hidden}
.kalk-polosa i{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:#8a909c;transition:width .25s}
.kalk-polosa em{position:absolute;top:0;bottom:0;width:2px;background:#1b1f27}
.kalk-signal p{margin:10px 0 0;font-size:14px}
.kalk-signal.ok .kalk-polosa i{background:#3fbf7f}
.kalk-signal.pogranichno .kalk-polosa i{background:#f0b44c}
.kalk-signal.ploho .kalk-polosa i{background:#ff6b5e}

.kalk-razbor{margin:0 0 18px;border-top:1px solid #343a46;padding-top:12px}
.kalk-razbor summary{cursor:pointer;font-weight:600;font-size:14px;color:#dfe2e8}
.kalk-razbor table{width:100%;border-collapse:collapse;margin-top:10px;font-size:13.5px;font-variant-numeric:tabular-nums}
.kalk-razbor td{padding:5px 0;border-bottom:1px solid #2d333e;color:#d5d8de}
.kalk-razbor td:last-child{text-align:right;white-space:nowrap;padding-left:12px}
.kalk-razbor tr.itogo td{font-weight:700;color:#fff;border-bottom:0}
.kalk-razbor tr.melko td{font-size:12px;color:#9aa0ab}

.kalk-knopki{display:flex;flex-direction:column;gap:10px}
.kalk-knopka{display:block;text-align:center;padding:14px 16px;border-radius:11px;background:var(--krasn);color:#fff;font-weight:700;text-decoration:none}
.kalk-knopka:hover{background:#c91a23}
.kalk-vtoraya{background:transparent;border:1px solid #4a515e}
.kalk-vtoraya:hover{background:#262b35}
.kalk-ssylka{font:inherit;font-size:14px;background:none;border:0;color:#b9bdc6;text-decoration:underline;cursor:pointer;padding:4px}
.kalk-melko{font-size:12px;color:#9aa0ab;margin:12px 0 0}

.kalk-poloska{display:none}
@media (max-width:860px){
  .kalk{padding:20px 14px 72px}
  .kalk-poloska{display:flex;align-items:center;gap:8px;position:fixed;left:10px;right:10px;bottom:10px;z-index:50;padding:12px 16px;
    border-radius:12px;background:var(--chern);color:#fff;text-decoration:none;font-size:14px;box-shadow:0 6px 24px rgba(0,0,0,.25)}
  .kalk-poloska b{font-size:18px}
  .kalk-poloska span{margin-left:auto;color:#b9bdc6}
  .kalk-setka{grid-template-columns:1fr}
  .kalk-itog{position:static}
}
@media (max-width:520px){
  .kalk-polya,.kalk-vybor{grid-template-columns:1fr}
  .kalk-tri{grid-template-columns:1fr 1fr}
  .kalk-tri div:last-child{grid-column:1/-1}
}

/* Пояснения к расчёту и открытый состав расходов. */
.kalk [hidden]{display:none!important}
.kalk-sellery{display:flex;flex-direction:column;gap:4px;margin:0 0 20px;padding:18px 22px;border:1.5px dashed #b3141c;border-radius:12px;background:#fff8f4}
.kalk-sellery strong{font-size:19px;line-height:1.35}
.kalk-sellery span{font-size:15px;color:var(--ser)}
.kalk-info{display:flex;flex-direction:column;gap:6px;font-size:14px;padding:10px 12px;background:var(--fon);border-radius:9px}
.kalk-info small{font-size:12px;color:var(--ser)}
.kalk-dostavka{margin:0 0 20px;padding:18px 20px;border-left:3px solid var(--krasn);border-radius:0 10px 10px 0;background:#eee9e0}
.kalk-dostavka p{margin:6px 0;font-size:14px}
.kalk-dostavka small{font-size:12px;color:var(--ser)}
.kalk-otdelno{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--linia);font-size:13px;color:var(--ser)}
.kalk-itog{position:static;min-width:0}
.kalk-razbor h3{font-size:17px;margin:0 0 8px}
.kalk-razbor h4{font-size:13px;color:#fff;margin:20px 0 6px}
.kalk-spisok{font-size:13px;color:#d5d8de;padding-left:18px;margin:8px 0}
.kalk-spisok li{margin:5px 0}
.kalk-copy-label{display:block;font-size:12px;margin-top:12px}
.kalk-copy-label textarea{display:block;width:100%;margin-top:8px;resize:vertical;font-family:inherit;font-size:13px;line-height:1.45;padding:10px;border-radius:8px}
.kalk-knopka{font-size:14px}

.kalk-shapka{background:transparent}
.kalk-forma,.kalk-forma legend{font-family:inherit}

/* Первый экран — компактный итог; подробности — после кнопки WhatsApp. */
@media(min-width:861px){.kalk-itog{position:sticky;top:16px}}
.kalk-podrobnee{display:block;color:#dfe2e8;font-size:13px;font-weight:600;text-decoration:none;border-top:1px solid #343a46;padding:14px 0 18px}
.kalk--zapros>.kalk-shapka,.kalk--zapros>.kalk-sellery,.kalk--zapros>.kalk-chernovik,.kalk--zapros>.kalk-setka,.kalk--zapros>.kalk-poloska{display:none!important}
.kalk-zapros{scroll-margin-top:20px}
.kalk-nazad{display:block;width:fit-content;font-size:14px;color:var(--ser);margin:0 0 24px;text-decoration:none}
.kalk-zapros h2{font-family:inherit;font-size:32px;line-height:1.2;margin:4px 0 12px}
.kalk-zapros-setka{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;margin-top:28px;align-items:start}
.kalk-zapros-card{background:#fff;border:1px solid var(--linia);border-radius:14px;padding:22px;margin-bottom:18px}
.kalk-zapros-card h3{font-size:18px;font-family:inherit;margin:0 0 16px}
.kalk-zapros-card dl{margin:0;font-size:13px}
.kalk-zapros-card dl>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:15px;border-bottom:1px solid var(--linia);padding:9px 0}
.kalk-zapros-card dt{color:var(--ser)}.kalk-zapros-card dd{margin:0;text-align:right;overflow-wrap:anywhere}
.kalk-zapros-details{background:var(--chern);color:#f3f1ec;border-radius:18px;padding:24px;min-width:0}
.kalk-zapros-details .kalk-razbor{border-top:0;padding-top:0}
.kalk-zapros-note{font-size:12px;color:var(--ser);line-height:1.6;margin:14px 0 0}
.kalk-zapros-card textarea{width:100%;max-width:100%;font-family:inherit;font-size:13px;line-height:1.6;border:1px solid #d4cdc2;border-radius:8px;padding:12px;margin-top:10px;resize:vertical;color:var(--chern);background:#fbfaf8}
.kalk-zapros-copy{font:inherit;color:var(--krasn);background:none;border:0;text-decoration:underline;cursor:pointer;font-size:13px;padding:10px 0 0}
@media(max-width:860px){.kalk-zapros-setka{grid-template-columns:1fr}.kalk-zapros h2{font-size:27px}.kalk-zapros-card{padding:18px}.kalk-zapros-details{padding:20px}}

/* Выбор мессенджера после полного состава расчёта. */
.kalk-zapros-contact{margin-top:24px;padding:30px;background:#fff;border:2px solid var(--linia);border-radius:18px;text-align:center}
.kalk-zapros-contact h3{font-family:inherit;font-size:24px;line-height:1.3;margin:0 0 12px}
.kalk-zapros-contact>p{max-width:720px;margin:0 auto 18px;line-height:1.6}
.kalk-zapros-buttons{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:800px;margin:0 auto 18px}
.kalk-zapros-buttons .kalk-knopka{margin:0;min-height:60px;display:flex;align-items:center;justify-content:center;font-size:18px;border:0}
.kalk-zapros-buttons .kalk-whatsapp{background:#087e40;color:#fff}
.kalk-zapros-buttons .kalk-whatsapp:hover{background:#066532}
.kalk-zapros-buttons .kalk-telegram{background:#087cad;color:#fff}
.kalk-zapros-buttons .kalk-telegram:hover{background:#06638b}
.kalk-zapros-buttons .kalk-knopka:focus-visible{outline:3px solid var(--chern);outline-offset:4px}
.kalk-zapros-contact .kalk-zapros-note{margin-bottom:0}
@media(max-width:600px){.kalk-zapros-buttons{grid-template-columns:1fr;gap:12px}.kalk-zapros-contact{padding:22px 18px}.kalk-zapros-contact h3{font-size:22px}}

.kalk-itog-chernovik{font-size:11px;line-height:1.5;color:#f1cb87;margin:-9px 0 17px}

/* Условие заказа и подпись неполной оценки — на обоих размерах экрана. */
.kalk-minimum{display:flex;flex-direction:column;gap:4px;margin:0 0 20px;padding:16px 20px;border-left:3px solid var(--krasn);border-radius:0 10px 10px 0;background:#eee9e0}
.kalk-minimum strong{font-size:17px}.kalk-minimum span{font-size:13px;color:var(--ser)}
.kalk--zapros>.kalk-minimum{display:none!important}
.kalk-itog-chernovik{font-size:12px}
.kalk-poloska .kalk-poloska-label{margin-left:0;font-size:12px;max-width:105px;line-height:1.3}
.kalk-poloska b{white-space:nowrap}
