/* kcprzylacza – panel „Skompletuj przyłącze” (niezależny od szablonu, wszystkie klasy z prefiksem kcp-) */
.kcp-slot[hidden] { display: none !important; }
.kcp-panel { border: 1px solid #e3ded8; border-radius: 6px; background: #fbfaf8; padding: 16px; margin: 16px 0; font-size: 14px; line-height: 1.4; color: #333; text-align: left; }
.kcp-panel-modal { margin: 0 15px 15px; }
.kcp-panel-produkt { margin: 24px 0; }
.kcp-podtytul { margin: -6px 0 10px; }
.kcp-odnosnik { margin: 8px 0; }
.kcp-odnosnik a { text-decoration: underline; }
.kcp-naglowek { font-size: 17px; font-weight: 700; margin: 0 0 10px; text-transform: none; }
.kcp-ostrzezenie { background: #fff4e5; border-left: 3px solid #e8862a; padding: 8px 10px; margin: 0 0 10px; }
.kcp-komplet { background: #ecf7ee; border-left: 3px solid #3a9b4f; padding: 8px 10px; margin: 0 0 10px; font-weight: 600; }
.kcp-blad:empty { display: none; }
.kcp-blad { color: #b3261e; margin: 8px 0 0; }

.kcp-pytanie { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 10px; }
.kcp-pytanie-tekst { font-weight: 600; }
.kcp-opcje { display: flex; flex-wrap: wrap; gap: 6px; }
.kcp-opcja { background: #fff; border: 1px solid #c9c2b9; color: #333; min-height: 36px; padding: 4px 12px; }
.kcp-opcja.kcp-wybrana { background: #333; border-color: #333; color: #fff; }

.kcp-role { list-style: none; margin: 0; padding: 0; }
.kcp-rola { border-top: 1px solid #ece7e1; padding: 10px 0; }
.kcp-rola:first-child { border-top: 0; }
.kcp-rola-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 6px; }
.kcp-ikona { display: inline-block; width: 20px; font-weight: 700; text-align: center; }
.kcp-ma .kcp-ikona { color: #3a9b4f; }
.kcp-brak .kcp-ikona { color: #b3261e; }
.kcp-pytanie .kcp-ikona, .kcp-telefon .kcp-ikona { color: #e8862a; }
.kcp-uwaga { margin: 4px 0 0 26px; color: #555; font-size: 13px; }
.kcp-mala { color: #777; font-size: 12px; }

.kcp-produkt { display: flex; align-items: center; gap: 10px; margin: 6px 0 0 26px; }
.kcp-img { width: 50px; height: auto; flex: 0 0 50px; border-radius: 3px; background: #fff; }
.kcp-opis { flex: 1 1 auto; min-width: 0; }
.kcp-nazwa { color: #333; text-decoration: underline; word-break: break-word; }
.kcp-cena { font-weight: 700; white-space: nowrap; }
.kcp-dodaj { min-height: 36px; white-space: nowrap; }
.kcp-alternatywy { margin: 6px 0 0 26px; }
.kcp-alternatywy summary, .kcp-dodatki summary { cursor: pointer; color: #555; font-size: 13px; }
.kcp-alternatywy .kcp-produkt { margin-left: 0; }

.kcp-zestaw { border: 1px dashed #c9c2b9; border-radius: 6px; padding: 10px 12px; margin: 12px 0 0; background: #fff; }
.kcp-zestaw-tytul { font-weight: 700; margin: 0; }
.kcp-porownanie { margin: 6px 0; }
.kcp-taniej { color: #3a9b4f; font-weight: 700; }

.kcp-dodaj-wszystkie { display: block; width: 100%; margin: 14px 0 0; min-height: 44px; white-space: normal; }
.kcp-dodatki { margin: 12px 0 0; }
.kcp-stopka { margin: 12px 0 0; border-top: 1px solid #ece7e1; padding-top: 8px; font-size: 13px; }
.kcp-stopka p { margin: 0 0 4px; }

.kcp-kalkulator { margin: 0 0 12px; border: 1px solid #e3ded8; border-radius: 6px; background: #fff; padding: 8px 12px; }
.kcp-kalkulator summary { cursor: pointer; font-weight: 700; }
.kcp-kalk-form { display: grid; gap: 8px; margin: 10px 0 0; }
.kcp-pole { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 0; font-weight: 400; }
.kcp-pole > span:first-child { flex: 1 1 260px; }
.kcp-pole input[type=text] { width: 80px; min-height: 34px; padding: 4px 6px; border: 1px solid #c9c2b9; border-radius: 3px; }
.kcp-pole select { min-height: 34px; }
.kcp-pole[hidden] { display: none; }
.kcp-pomoc { flex-basis: 100%; }
.kcp-radio { margin: 0 0 0 10px; font-weight: 400; }
.kcp-policz { justify-self: start; min-height: 36px; }
.kcp-kalk-wynik { margin: 10px 0 0; }
.kcp-kalk-tytul { font-weight: 700; margin: 0; }
.kcp-kalk-lista { margin: 4px 0 8px 18px; padding: 0; }
.kcp-svg { max-width: 420px; display: block; margin: 8px 0; }
.kcp-orientacyjne { font-style: italic; }

@media (max-width: 575px) {
  .kcp-panel { padding: 12px; }
  .kcp-panel-modal { margin: 0 0 12px; }
  .kcp-produkt { flex-wrap: wrap; margin-left: 0; }
  .kcp-opis { flex-basis: calc(100% - 60px); }
  .kcp-cena { margin-left: 60px; }
  .kcp-dodaj { margin-left: auto; }
  .kcp-uwaga, .kcp-alternatywy { margin-left: 0; }
}

/* szablon (styles.css: .btn) ładuje się po module – reguły z wyższą szczegółowością */
.kcp-panel .btn.kcp-opcja { background: #fff; border: 1px solid #c9c2b9; color: #333; text-transform: none; padding: 6px 14px; line-height: 20px; border-radius: 3px; font-weight: 600; }
.kcp-panel .btn.kcp-opcja:hover { border-color: #333; }
.kcp-panel .btn.kcp-opcja.kcp-wybrana { background: #333; border-color: #333; color: #fff; }
.kcp-panel .btn.kcp-opcja.kcp-wybrana::before { content: '✓ '; }
.kcp-panel .btn.kcp-dodaj { padding: 8px 16px; }
.kcp-panel details > summary { display: list-item; cursor: pointer; }
.kcp-panel .kcp-kalkulator > summary { list-style: none; color: #b5542b; text-decoration: underline; }
.kcp-panel .kcp-kalkulator > summary::-webkit-details-marker { display: none; }
.kcp-panel .kcp-kalkulator > summary::before { content: '▸ '; display: inline-block; width: 1em; text-decoration: none; }
.kcp-panel .kcp-kalkulator[open] > summary::before { content: '▾ '; }
.kcp-panel .kcp-kalk-form { display: grid; gap: 8px; margin: 10px 0 0; }
.kcp-panel label.kcp-pole, .kcp-panel div.kcp-pole { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 4px 8px; margin: 0; text-align: left; font-weight: 400; }
.kcp-panel .kcp-pole > span:first-child { flex: 0 1 380px; text-align: left; }
.kcp-panel .kcp-pole .kcp-pomoc { flex-basis: 100%; padding-left: 388px; text-align: left; }
.kcp-panel .btn.kcp-policz { justify-self: start; padding: 8px 22px; }
@media (max-width: 767px) {
  .kcp-panel .kcp-pole > span:first-child { flex-basis: 100%; }
  .kcp-panel .kcp-pole .kcp-pomoc { padding-left: 0; }
}
.kcp-panel .kcp-pole[hidden] { display: none; }
.kcp-panel .kcp-zastrzezenie { margin: 12px 0 0; padding: 8px 10px; background: #f6f4f1; border-left: 3px solid #c9c2b9; font-size: 12px; color: #555; line-height: 1.45; }
/* szablon dokłada ramki elementom list w koszyku – wiersze panelu bez ramek, tylko linia oddzielająca */
.kcp-panel ul.kcp-role > li.kcp-rola { border: 0; border-top: 1px solid #ece7e1; border-radius: 0; box-shadow: none; background: none; margin: 0; padding: 10px 0; }
.kcp-panel ul.kcp-role > li.kcp-rola:first-child { border-top: 0; }
