/* Formularz kosztorysu – Jodełka */
.jk-form { max-width: 1440px; margin: 0 auto; display: grid; gap: clamp(2.5rem, 6vw, 4.5rem); }
.jk-form *, .jk-form *::before, .jk-form *::after { box-sizing: border-box; }
.jk-step__head { display: flex; gap: 1rem; align-items: center; margin-bottom: 1.5rem; }
.jk-step__no { flex: none; width: 3.1rem; height: 3.1rem; border-radius: 50%; background: var(--j-green); color: #fff; display: grid; place-items: center; font: 600 1.4rem var(--j-font-heading); box-shadow: 0 0 0 6px var(--j-mist); }
.jk-step__head h2 { margin: 0; font-size: clamp(1.5rem, 3vw, 2.1rem); }
.jk-step__head p { margin: .15rem 0 0; color: var(--j-text); opacity: .8; font-size: .98rem; line-height: 1.5; }
.jk-grid { display: grid; gap: 1.1rem; }
.jk-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jk-card { background: #fff; border: 1px solid var(--j-line); border-radius: var(--j-radius); padding: 1.4rem 1.5rem; margin: 0; min-width: 0; box-shadow: var(--j-shadow); }
.jk-card--wide { grid-column: 1 / -1; }
.jk-card legend { float: left; width: 100%; padding: 0; margin: 0 0 .8rem; font: 600 1.05rem var(--j-font-heading); color: var(--j-forest); }
.jk-card legend small { font: 400 .85rem var(--j-font-body); opacity: .7; }
.jk-card legend + * { clear: both; }
.jk-form p { margin: 0; }
.jk-form br { display: none; }
.jk-form .wpcf7-form-control-wrap { display: block; }
.jk-form .wpcf7-list-item { display: block; margin: 0; }
/* radio – kafelki */
.jk-form .wpcf7-radio { display: grid; gap: .5rem; }
.jk-form .wpcf7-radio label, .jk-form .wpcf7-checkbox label {
	display: flex; align-items: center; gap: .7rem; padding: .65rem .9rem; border: 1.5px solid var(--j-line); border-radius: 12px;
	cursor: pointer; background: #fff; line-height: 1.35; font-size: .97rem; transition: border-color .15s, background .15s, box-shadow .15s;
}
.jk-form .wpcf7-radio label:hover, .jk-form .wpcf7-checkbox label:hover { border-color: var(--j-green); background: var(--j-mist); }
.jk-form input[type=radio], .jk-form input[type=checkbox] { appearance: none; -webkit-appearance: none; flex: none; width: 1.25rem; height: 1.25rem; margin: 0; border: 2px solid #9aa79f; background: #fff; display: grid; place-content: center; cursor: pointer; transition: .15s; }
.jk-form input[type=radio] { border-radius: 50%; }
.jk-form input[type=checkbox] { border-radius: 6px; }
.jk-form input[type=radio]::after, .jk-form input[type=checkbox]::after { content: ""; width: .6rem; height: .6rem; transform: scale(0); transition: transform .15s; background: #fff; }
.jk-form input[type=radio]::after { border-radius: 50%; }
.jk-form input[type=checkbox]::after { clip-path: polygon(14% 44%, 0 59%, 40% 100%, 100% 20%, 86% 6%, 40% 70%); width: .7rem; height: .7rem; }
.jk-form input[type=radio]:checked, .jk-form input[type=checkbox]:checked { background: var(--j-green); border-color: var(--j-green); }
.jk-form input:checked::after { transform: scale(1); }
.jk-form label:has(input:checked) { border-color: var(--j-green) !important; background: var(--j-mist) !important; font-weight: 600; color: var(--j-forest); }
/* pola tekstowe */
.jk-form label { font-weight: 600; font-size: .92rem; color: var(--j-forest); }
.jk-form .wpcf7-radio label, .jk-form .wpcf7-checkbox label { font-weight: 500; font-size: .97rem; color: var(--j-text); }
.jk-form input[type=text], .jk-form input[type=email], .jk-form input[type=tel], .jk-form input[type=number], .jk-form input[type=date], .jk-form textarea {
	width: 100%; margin-top: .4rem; padding: .8rem 1rem; border: 1.5px solid var(--j-line); border-radius: 12px; background: #fff; color: var(--j-forest);
	font: 400 1rem var(--j-font-body); transition: border-color .15s, box-shadow .15s;
}
.jk-form textarea { resize: vertical; min-height: 7rem; }
.jk-form input:focus, .jk-form textarea:focus { outline: none; border-color: var(--j-green); box-shadow: 0 0 0 4px rgba(5,102,50,.14); }
.jk-form ::placeholder { color: #a39a97; }
.jk-inline { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.jk-mt { display: block; margin-top: .9rem; }
.jk-mt2 { margin-top: 1.4rem; }
.jk-label-lg { font: 600 1.05rem var(--j-font-heading) !important; }
.jk-hint { font-size: .9rem; opacity: .75; margin: .2rem 0 .5rem !important; }
/* akordeony atrakcji */
.jk-acc { display: grid; gap: .9rem; }
.jk-group { background: #fff; border: 1px solid var(--j-line); border-radius: var(--j-radius); box-shadow: var(--j-shadow); overflow: hidden; }
.jk-group summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.5rem; }
.jk-group summary::-webkit-details-marker { display: none; }
.jk-group summary::after { content: ""; flex: none; width: .7rem; height: .7rem; border-right: 2px solid var(--j-green); border-bottom: 2px solid var(--j-green); transform: rotate(45deg); transition: transform .2s; margin-left: .2rem; }
.jk-group[open] summary::after { transform: rotate(-135deg); }
.jk-group__t { display: grid; gap: .1rem; margin-right: auto; }
.jk-group__t strong { font: 600 1.15rem var(--j-font-heading); color: var(--j-forest); }
.jk-group__t small { font-size: .88rem; opacity: .7; }
.jk-count { flex: none; font-size: .82rem; font-weight: 700; padding: .25rem .7rem; border-radius: 999px; background: var(--j-mist); color: var(--j-green); }
.jk-count.has { background: var(--j-green); color: #fff; }
.jk-choices { padding: 0 1.5rem 1.5rem; }
.jk-choices .wpcf7-checkbox { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .5rem; }
/* wysyłka */
.jk-contact { gap: 1rem 1.2rem; }
.jk-submit { margin-top: 1.5rem; display: grid; gap: .6rem; justify-items: start; }
.jk-form input[type=submit] { appearance: none; border: 0; cursor: pointer; padding: 1.05rem 2.4rem; border-radius: 999px; background: var(--j-green); color: #fff; font: 700 1.05rem var(--j-font-body); letter-spacing: .01em; box-shadow: 0 10px 24px -10px rgba(5,102,50,.7); transition: transform .15s, background .15s; }
.jk-form input[type=submit]:hover { background: var(--j-forest); transform: translateY(-2px); }
.jk-form .wpcf7-spinner { margin: 0 0 0 .8rem; }
/* walidacja */
.jk-form .wpcf7-not-valid { border-color: #c0392b !important; }
.jk-form .wpcf7-not-valid-tip { color: #c0392b; font-size: .82rem; margin-top: .3rem; }
.wpcf7 form .wpcf7-response-output { margin: 1.5rem 0 0; padding: 1rem 1.2rem; border-radius: 12px; border-width: 2px; }
@media (max-width: 767px) {
	.jk-grid--2 { grid-template-columns: 1fr; }
	.jk-card { padding: 1.1rem 1rem; }
	.jk-group summary { padding: 1rem; }
	.jk-choices { padding: 0 1rem 1.2rem; }
	.jk-choices .wpcf7-checkbox { grid-template-columns: 1fr; }
	.jk-step__no { width: 2.6rem; height: 2.6rem; font-size: 1.2rem; }
	.jk-form input[type=submit] { width: 100%; }
	.jk-form input, .jk-form textarea { font-size: 16px; }
}
.jk-intro { max-width: 46rem; margin: 0 auto clamp(2.5rem, 5vw, 4rem); text-align: center; }
.jk-intro p { margin: 0 0 .8rem; }
.jk-intro .jk-lead { font: 500 clamp(1.25rem, 2.4vw, 1.65rem)/1.4 var(--j-font-heading); color: var(--j-forest); }

@media (min-width: 1200px) {
	#krok-1 .jk-grid--2 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.jk-contact.jk-grid--2 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.jk-choices .wpcf7-checkbox { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
}
.jk-intro { max-width: 60rem; }
.jk-stack { display: grid; gap: 1.1rem; align-content: start; min-width: 0; }
@media (min-width: 1200px) { #krok-1 .jk-grid--2 { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; } }
@media (min-width: 768px) and (max-width: 1199px) { .jk-stack { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .jk-stack { grid-template-columns: 1fr; } }

.jk-simple br { display: none; }
.jk-simple input[type=submit] { margin-top: .4rem; }
.jk-simple textarea { min-height: 9rem; }
.jk-inline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jk-inline label, .jk-inline .wpcf7-form-control-wrap { min-width: 0; }
.jk-form input[type=date] { min-width: 0; max-width: 100%; -webkit-appearance: none; appearance: none; background: #fff; min-height: 2.9rem; }
@media (max-width: 480px) { .jk-inline { grid-template-columns: 1fr; } }

/* formularz kontaktowy (prosty) */
.jk-form.jk-simple { gap: 1.1rem; max-width: none; margin: 0; display: grid; }
.jk-simple label { display: block; }
.jk-simple label .wpcf7-form-control-wrap { display: block; margin-top: .3rem; }
.jk-simple abbr { color: var(--j-green); text-decoration: none; font-weight: 700; }
.jk-simple .jk-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.jk-simple .jk-submit { margin-top: .4rem; }
.jk-simple .jk-hint { font-size: .85rem; line-height: 1.5; opacity: .8; margin: .4rem 0 0; }
.jk-simple .jk-hint a { color: var(--j-green); font-weight: 600; }
@media (max-width: 767px) { .jk-simple .jk-row2 { grid-template-columns: 1fr; } }
