/* Widżet rezerwacji – korzysta ze zmiennych motywu (--kr-*), ma własne wartości domyślne z palety logo. */
.kr-booking, .kr-contact {
	--g: var(--kr-green, #1f3a5f);
	--g2: var(--kr-green-600, #35557f);
	--w: var(--kr-wood, #b07a3a);
	--wd: var(--kr-wood-dark, #7d5524);
	--bg: var(--kr-cream, #faf6ef);
	--sand: var(--kr-sand, #f0e7d8);
	--ink: var(--kr-ink, #23302a);
	--mut: var(--kr-muted, #5a6660);
	--line: var(--kr-line, #e0d6c5);
	--r: 10px;
	color: var(--ink);
	font-size: 1rem;
}
.kr-booking *, .kr-contact * { box-sizing: border-box; }
.kr-booking fieldset { border: 0; margin: 0 0 1.75rem; padding: 0; min-width: 0; }
.kr-booking legend { font-family: var(--kr-font-head, Georgia, serif); font-size: 1.2rem; font-weight: 600; color: var(--g); padding: 0; margin-bottom: .85rem; }

/* kroki */
.kr-steps { list-style: none; display: flex; gap: .5rem; padding: 0; margin: 0 0 1.75rem; flex-wrap: wrap; }
.kr-steps li { display: flex; align-items: center; gap: .5rem; color: var(--mut); font-weight: 600; font-size: .95rem; }
.kr-steps li + li::before { content: ""; width: 28px; height: 1px; background: var(--line); margin-right: .25rem; }
.kr-steps span { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--sand); color: var(--g); font-size: .85rem; }
.kr-steps .is-current { color: var(--g); }
.kr-steps .is-current span { background: var(--g); color: #fff; }
.kr-steps .is-done span { background: var(--w); color: #fff; }

.kr-layout { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 960px) { .kr-layout { grid-template-columns: minmax(0, 1.65fr) minmax(300px, 1fr); } }
.kr-summary { background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 1.4rem; }
@media (min-width: 960px) { .kr-summary { position: sticky; top: 104px; } }
.kr-summary h3, .kr-form h3, .kr-done h3 { font-family: var(--kr-font-head, Georgia, serif); color: var(--g); margin: 0 0 .9rem; font-size: 1.3rem; }

/* wybór apartamentu */
.kr-apt-list { display: grid; gap: .75rem; }
.kr-apt { display: grid; grid-template-columns: 76px 1fr; gap: .9rem; align-items: center; padding: .65rem; border: 2px solid var(--line); border-radius: var(--r); background: #fff; cursor: pointer; position: relative; transition: border-color .15s, box-shadow .15s; }
.kr-apt:hover { border-color: var(--w); }
.kr-apt.is-selected { border-color: var(--g); box-shadow: 0 0 0 3px rgba(20, 51, 41, .12); }
.kr-apt.is-unavailable { opacity: .6; }
.kr-apt input { position: absolute; opacity: 0; pointer-events: none; }
.kr-apt:focus-within { outline: 3px solid var(--w); outline-offset: 2px; }
.kr-apt img, .kr-apt__ph { width: 76px; height: 76px; object-fit: cover; border-radius: 8px; background: var(--sand); display: block; }
.kr-apt__body { display: grid; gap: .15rem; font-size: .93rem; color: var(--mut); }
.kr-apt__body strong { color: var(--g); font-size: 1.05rem; }
.kr-apt__body em { font-style: normal; font-weight: 600; }
.kr-apt__body em.ok { color: #2d6a3f; }
.kr-apt__body em.no { color: #a0402c; }

/* kalendarz */
.kr-cal { background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 1rem; }
.kr-cal__nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: .75rem; gap: .5rem; }
.kr-cal__legend { font-size: .8rem; color: var(--mut); display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; justify-content: center; }
.kr-lg { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-left: .5rem; border: 1px solid var(--line); }
.kr-lg--half { background: linear-gradient(to bottom right, #fff calc(50% - .5px), #9a9488 calc(50% - .5px), #9a9488 calc(50% + .5px), transparent calc(50% + .5px)), repeating-linear-gradient(135deg, #e7dfd2 0 3px, #f4eee4 3px 6px); }
.kr-lg--free { background: #fff; } .kr-lg--busy { background: repeating-linear-gradient(135deg, #e7dfd2 0 4px, #f4eee4 4px 8px); } .kr-lg--sel { background: var(--g); border-color: var(--g); }
.kr-nav { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); background: #fff; font-size: 1.4rem; line-height: 1; cursor: pointer; color: var(--g); }
.kr-nav:hover:not(:disabled) { background: var(--sand); }
.kr-nav:disabled { opacity: .35; cursor: default; }
.kr-cal__months { display: grid; gap: 1.5rem; }
@media (min-width: 720px) { .kr-cal__months { grid-template-columns: 1fr 1fr; } }
.kr-month__title { text-align: center; font-weight: 700; text-transform: capitalize; color: var(--g); margin-bottom: .5rem; }
.kr-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.kr-dow { text-align: center; font-size: .75rem; color: var(--mut); padding: .25rem 0; font-weight: 600; }
.kr-day { aspect-ratio: 1; min-height: 44px; border: 0; background: #fff; border-radius: 6px; font: inherit; font-size: .95rem; color: var(--ink); cursor: pointer; padding: 0; }
.kr-day--empty { background: transparent; cursor: default; }
.kr-day:hover:not(:disabled):not(.is-start):not(.is-end) { background: var(--sand); }
.kr-day:focus-visible { outline: 3px solid var(--w); outline-offset: 1px; position: relative; z-index: 1; }
.kr-day:disabled { cursor: not-allowed; color: #aaa59a; }
.kr-day.is-past { color: #cfc9bd; }
.kr-day.is-busy { background: repeating-linear-gradient(135deg, #e7dfd2 0 4px, #f4eee4 4px 8px); color: #9a9488; text-decoration: line-through; }
/* dzień zmiany gości: przekątna dzieli dzień na rano i wieczór; zajęta jest ta połowa, w której ktoś jeszcze jest w obiekcie */
.kr-day.is-half-start, .kr-day.is-half-end { color: var(--ink); text-decoration: none; position: relative; }
.kr-day.is-half-start { background: linear-gradient(to bottom right, #fff calc(50% - .5px), #9a9488 calc(50% - .5px), #9a9488 calc(50% + .5px), transparent calc(50% + .5px)), repeating-linear-gradient(135deg, #e7dfd2 0 4px, #f4eee4 4px 8px); }
.kr-day.is-half-end { background: linear-gradient(to bottom right, transparent calc(50% - .5px), #9a9488 calc(50% - .5px), #9a9488 calc(50% + .5px), #fff calc(50% + .5px)), repeating-linear-gradient(135deg, #e7dfd2 0 4px, #f4eee4 4px 8px); }
.kr-day.is-half-start:disabled { color: var(--ink); cursor: not-allowed; }
.kr-day.is-half-end:hover:not(:disabled):not(.is-start):not(.is-end) { background: linear-gradient(to bottom right, transparent calc(50% - .5px), #9a9488 calc(50% - .5px), #9a9488 calc(50% + .5px), var(--sand) calc(50% + .5px)), repeating-linear-gradient(135deg, #e7dfd2 0 4px, #f4eee4 4px 8px); }
.kr-day.is-today { box-shadow: inset 0 0 0 1px var(--w); }
.kr-day.is-range { background: #dfe9e3; color: var(--g); border-radius: 0; }
.kr-day.is-start, .kr-day.is-end { background: var(--g); color: #fff; text-decoration: none; }
.kr-day.is-start:not(.is-end) { border-radius: 6px 0 0 6px; }
.kr-day.is-end { border-radius: 0 6px 6px 0; }

/* podsumowanie / cena */
.kr-dl { display: grid; grid-template-columns: auto 1fr; gap: .35rem 1rem; margin: 0 0 1rem; }
.kr-dl dt { color: var(--mut); } .kr-dl dd { margin: 0; font-weight: 600; text-align: right; } .kr-dl small { font-weight: 400; color: var(--mut); }
.muted { color: var(--mut); font-weight: 400; }
.kr-lines { list-style: none; margin: .75rem 0 0; padding: 0; font-size: .92rem; }
.kr-lines li { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; border-bottom: 1px dashed var(--line); }
.kr-total { display: flex; justify-content: space-between; align-items: baseline; padding: .8rem 0; font-size: 1rem; }
.kr-total strong { font-size: 1.5rem; color: var(--g); font-family: var(--kr-font-head, Georgia, serif); }
.kr-hint { color: var(--mut); font-size: .88rem; margin: .5rem 0 0; }

/* formularze */
.kr-field { margin-bottom: 1rem; }
.kr-field label { display: block; font-weight: 600; font-size: .92rem; margin-bottom: .3rem; }
.kr-booking input[type=text], .kr-booking input[type=email], .kr-booking input[type=tel], .kr-booking select, .kr-booking textarea,
.kr-contact input[type=text], .kr-contact input[type=email], .kr-contact input[type=tel], .kr-contact input:not([type]), .kr-contact textarea,
.kr-booking input:not([type]) {
	width: 100%; padding: .75rem .85rem; border: 1px solid #b9ae9b; border-radius: 8px; background: #fff; font: inherit; color: var(--ink);
}
.kr-booking input:focus, .kr-booking select:focus, .kr-booking textarea:focus, .kr-contact input:focus, .kr-contact textarea:focus { outline: 3px solid rgba(150, 96, 59, .45); outline-offset: 1px; border-color: var(--w); }
.kr-row { display: grid; gap: 0 1rem; grid-template-columns: 1fr; }
@media (min-width: 560px) { .kr-row { grid-template-columns: 1fr 1fr; } }
.kr-row--tight { grid-template-columns: 1fr 1fr; }
.kr-check { display: flex; gap: .65rem; align-items: flex-start; font-size: .9rem; color: var(--mut); margin: .5rem 0 1.25rem; }
.kr-check input { margin-top: .25rem; width: 18px; height: 18px; accent-color: var(--g); flex: none; }
.kr-check a { color: var(--wd); }
.kr-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.kr-btn { display: inline-flex; justify-content: center; align-items: center; gap: .5rem; padding: .85rem 1.5rem; border-radius: 999px; border: 2px solid transparent; font: inherit; font-weight: 700; cursor: pointer; text-decoration: none; transition: background .15s, color .15s, transform .1s; }
.kr-btn--primary { background: var(--g); color: #fff; }
.kr-btn--primary:hover:not(:disabled) { background: var(--g2); }
.kr-btn--ghost { background: transparent; color: var(--g); border-color: var(--g); }
.kr-btn--ghost:hover { background: var(--g); color: #fff; }
.kr-btn--block { width: 100%; }
.kr-btn:disabled { opacity: .45; cursor: not-allowed; }
.kr-btn:focus-visible { outline: 3px solid var(--w); outline-offset: 3px; }
.kr-actions { display: flex; gap: .75rem; justify-content: space-between; flex-wrap: wrap; }

.kr-msg { padding: .7rem .9rem; border-radius: 8px; font-size: .92rem; margin: .5rem 0; }
.kr-msg--error { background: #fbeae6; color: #8a2f1d; }
.kr-msg--ok { background: #e4f0e8; color: #1f5133; }

.kr-done { text-align: center; padding: 2rem 1rem; max-width: 560px; margin: 0 auto; }
.kr-done__icon { width: 64px; height: 64px; border-radius: 50%; background: var(--g); color: #fff; display: grid; place-items: center; font-size: 2rem; margin: 0 auto 1rem; }

/* ===== v1.1: układ mobilny ===== */
.kr-booking { padding-bottom: 96px; }
@media (min-width: 960px) { .kr-booking { padding-bottom: 0; } }

.kr-sec { margin-bottom: 1.75rem; }
.kr-h { display: flex; align-items: center; gap: .6rem; font-family: var(--kr-font-head, Georgia, serif); font-size: 1.2rem; color: var(--g); margin: 0 0 .85rem; }
.kr-h span { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--g); color: #fff; font: 700 .85rem var(--kr-font-body, sans-serif); }
.kr-steps b { font-weight: 700; }
@media (max-width: 480px) { .kr-steps b { display: none; } .kr-steps li.is-current b { display: inline; } }

.kr-apt--compact { cursor: default; }
.kr-link { background: none; border: 0; padding: .4rem 0; color: var(--wd); font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }
.kr-range { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .75rem .25rem 0; min-height: 44px; }

/* steppery gości */
.kr-stepper { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--line); }
.kr-stepper__txt { display: grid; }
.kr-stepper__txt small { color: var(--mut); }
.kr-stepper__ctl { display: flex; align-items: center; gap: .5rem; }
.kr-stepper output { min-width: 2ch; text-align: center; font-size: 1.15rem; font-weight: 700; }
.kr-step { width: 46px; height: 46px; border-radius: 50%; border: 2px solid var(--g); background: #fff; color: var(--g); font-size: 1.5rem; line-height: 1; cursor: pointer; touch-action: manipulation; }
.kr-step:hover:not(:disabled) { background: var(--g); color: #fff; }
.kr-step:disabled { opacity: .3; cursor: default; border-color: var(--line); }
.kr-step:focus-visible { outline: 3px solid var(--w); outline-offset: 2px; }

/* dodatki */
.kr-extras { margin-top: 1.1rem; }
.kr-extras h4 { margin: 0 0 .5rem; font-size: 1rem; }
.kr-check--card { align-items: center; padding: .85rem 1rem; margin: 0 0 .6rem; border: 2px solid var(--line); border-radius: var(--r); background: #fff; cursor: pointer; color: var(--ink); }
.kr-check--card.is-on { border-color: var(--g); background: rgba(31, 58, 95, .05); }
.kr-check--card span { display: grid; }
.kr-check--card small { color: var(--mut); }

/* pasek na dole ekranu (telefon) */
.kr-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1rem calc(.75rem + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -6px 24px rgba(0, 0, 0, .12); }
.kr-bar__sum { display: grid; line-height: 1.25; min-width: 0; }
.kr-bar__sum strong { font-size: 1.15rem; color: var(--g); }
.kr-bar__sum small { color: var(--mut); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kr-bar .kr-btn { min-height: 52px; padding-inline: 1.6rem; flex: none; }
@media (min-width: 960px) { .kr-bar { display: none; } }
@media (max-width: 959px) { .kr-desktop-only { display: none !important; } }

/* formularz: podsumowanie nad polami na telefonie */
.kr-layout--form .kr-summary { order: -1; }
@media (min-width: 960px) { .kr-layout--form .kr-summary { order: 0; grid-column: 2; grid-row: 1; } .kr-layout--form .kr-form { grid-column: 1; grid-row: 1; } }
.kr-summary__apt { margin: 0 0 .5rem; }
.kr-booking input, .kr-booking select, .kr-booking textarea { font-size: 16px; } /* brak zoomu iOS przy focusie */
.kr-booking input[type=text], .kr-booking input[type=email], .kr-booking input[type=tel], .kr-booking textarea { min-height: 52px; }

/* moja rezerwacja */
.kr-manage { max-width: 560px; margin: 0 auto; background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 1.5rem; }
.kr-manage h3 { font-family: var(--kr-font-head, Georgia, serif); color: var(--g); margin: 0 0 .5rem; }
.kr-dl--wide { grid-template-columns: auto 1fr; }
.kr-badge { display: inline-block; padding: .25rem .75rem; border-radius: 999px; font-weight: 700; font-size: .85rem; background: var(--sand); color: var(--ink); }
.kr-badge--confirmed { background: #dcefe3; color: #1f5133; }
.kr-badge--pending { background: #fbf0d0; color: #6b4e00; }
.kr-badge--cancelled { background: #ececec; color: #555; }

/* reduced motion */
@media (prefers-reduced-motion: reduce) { .kr-bar, .kr-step, .kr-apt { transition: none; } }
.kr-bar { transition: transform .25s ease; }
.kr-bar-hide .kr-bar { transform: translateY(110%); }

/* Tryb „dom na wyłączność”: pytanie o zwierzę (Tak/Nie + opis) */
.kr-pets { border: 0; padding: 1rem 0 0; margin: 0; min-width: 0; }
.kr-pets legend { font-weight: 700; padding: 0; }
.kr-pets p { margin: .25rem 0 .6rem; }
.kr-radio { display: inline-flex; align-items: center; gap: .5rem; margin-right: 1.25rem; cursor: pointer; font-weight: 600; }
.kr-radio input { width: 20px; height: 20px; accent-color: var(--g); }
.kr-pets .kr-field { margin-top: .9rem; }
