.jscr-booking {
	--jscr-booking-accent: #176b45;
	--jscr-booking-dark: #0f5234;
	--jscr-booking-ink: #17211b;
	--jscr-booking-muted: #637068;
	--jscr-booking-line: #dfe7e1;
	--jscr-booking-soft: #f3f7f4;
	box-sizing: border-box;
	color: var(--jscr-booking-ink);
	font-family: inherit;
	line-height: 1.55;
	margin: 0 auto;
	max-width: 1180px;
	padding: clamp(24px, 5vw, 64px) 16px;
}

.jscr-booking *,
.jscr-booking *::before,
.jscr-booking *::after { box-sizing: inherit; }

.jscr-booking__header { margin: 0 auto 28px; max-width: 720px; text-align: center; }
.jscr-booking__eyebrow { color: var(--jscr-booking-accent); font-size: .75rem; font-weight: 800; letter-spacing: .1em; margin: 0 0 6px; text-transform: uppercase; }
.jscr-booking__header h2 { font-size: clamp(1.75rem, 4vw, 2.7rem); letter-spacing: -.035em; line-height: 1.1; margin: 0 0 12px; }
.jscr-booking__header > p:last-child { color: var(--jscr-booking-muted); margin: 0; }
.jscr-booking__layout { display: flex; flex-direction: column; gap: 24px; }
.jscr-booking__sidebar { display: flex; flex-direction: column; gap: 18px; order: -1; }
.jscr-booking__form,
.jscr-booking__summary,
.jscr-booking__notice,
.jscr-booking__confirmation { background: #fff; border: 1px solid var(--jscr-booking-line); border-radius: 20px; box-shadow: 0 12px 36px rgba(23, 33, 27, .08); padding: clamp(18px, 3vw, 28px); }
.jscr-booking__form fieldset { border: 0; margin: 0 0 26px; padding: 0; }
.jscr-booking__form legend { font-size: 1.1rem; font-weight: 800; margin-bottom: 16px; padding: 0; }
.jscr-booking__field { margin-bottom: 15px; }
.jscr-booking__field label { display: block; font-size: .84rem; font-weight: 750; margin-bottom: 6px; }
.jscr-booking__field input,
.jscr-booking__field textarea { background: #fff; border: 1px solid #cbd6ce; border-radius: 11px; color: var(--jscr-booking-ink); font: inherit; min-height: 48px; padding: 11px 13px; width: 100%; }
.jscr-booking__field textarea { min-height: 112px; resize: vertical; }
.jscr-booking__field input[readonly] { background: var(--jscr-booking-soft); color: var(--jscr-booking-muted); }
.jscr-booking__date-format { color: var(--jscr-booking-muted); display: block; font-size: .72rem; margin-top: 4px; }
.jscr-booking__date-control { position: relative; }
.jscr-booking__date-control .jscr-booking__date-display { padding-right: 55px; }
.jscr-booking__date-button { align-items: center; background: transparent; border: 0; border-left: 1px solid #dce4de; border-radius: 0 10px 10px 0; color: var(--jscr-booking-ink); cursor: pointer; display: flex; height: 44px; justify-content: center; padding: 0; position: absolute; right: 2px; top: 2px; width: 47px; }
.jscr-booking__date-button:focus-visible { outline: 3px solid rgba(23, 107, 69, .2); outline-offset: 1px; }
.jscr-booking__native-date { border: 0 !important; height: 1px !important; min-height: 0 !important; opacity: 0; padding: 0 !important; pointer-events: none; position: absolute; right: 24px; top: 24px; width: 1px !important; }
.jscr-booking__cookie-consent { align-items: flex-start; background: var(--jscr-booking-soft); border-radius: 10px; display: flex; gap: 10px; margin-top: 4px; padding: 12px; }
.jscr-booking__cookie-consent input { accent-color: var(--jscr-booking-accent); flex: 0 0 auto; height: 18px; margin: 3px 0 0; width: 18px; }
.jscr-booking__cookie-consent label { color: var(--jscr-booking-muted); cursor: pointer; font-size: .8rem; line-height: 1.45; }
.jscr-booking__field input:focus,
.jscr-booking__field textarea:focus,
.jscr-booking__cookie-consent input:focus-visible,
.jscr-booking__submit:focus-visible,
.jscr-booking__back:focus-visible { border-color: var(--jscr-booking-accent); outline: 3px solid rgba(23, 107, 69, .2); outline-offset: 2px; }
.jscr-booking__pair { display: grid; gap: 0 14px; grid-template-columns: minmax(0, 1fr); }
.jscr-booking__honeypot { height: 0; left: -10000px; overflow: hidden; position: absolute; width: 1px; }
.jscr-booking__submit { align-items: center; background: var(--jscr-booking-accent); border: 0; border-radius: 11px; color: #fff !important; cursor: pointer; display: inline-flex; font: inherit; font-weight: 800; justify-content: center; min-height: 50px; padding: 12px 20px; text-decoration: none !important; width: 100%; }
.jscr-booking__submit:hover { background: var(--jscr-booking-dark); }
.jscr-booking__submit:disabled { cursor: wait; opacity: .7; }
.jscr-booking__image { aspect-ratio: 16 / 10; background: var(--jscr-booking-soft); border-radius: 14px; margin-bottom: 18px; overflow: hidden; }
.jscr-booking__image img { height: 100% !important; object-fit: cover; width: 100% !important; }
.jscr-booking__summary h3 { font-size: 1.35rem; margin: 0 0 4px; }
.jscr-booking__rate { color: var(--jscr-booking-muted); margin: 0 0 18px; }
.jscr-booking__rate strong { color: var(--jscr-booking-accent); font-size: 1.25rem; }
.jscr-booking__rate small { color: var(--jscr-booking-muted); display: block; font-size: .72rem; margin-top: 2px; }
.jscr-booking__summary dl { margin: 0; }
.jscr-booking__summary dl div { border-top: 1px solid var(--jscr-booking-line); display: flex; gap: 15px; justify-content: space-between; padding: 11px 0; }
.jscr-booking__summary dt { color: var(--jscr-booking-muted); }
.jscr-booking__summary dd { font-weight: 750; margin: 0; text-align: right; }
.jscr-booking__summary .jscr-booking__total dd { color: var(--jscr-booking-accent); font-size: 1.15rem; }
.jscr-booking__pricing-notice { background: #fff4e5; border-radius: 9px; color: #8a4b08; font-size: .76rem; margin: 10px 0 0; padding: 0; }
.jscr-booking__pricing-notice:not(:empty) { padding: 9px 11px; }
.jscr-booking__disclaimer { background: var(--jscr-booking-soft); border-radius: 10px; color: var(--jscr-booking-muted); font-size: .78rem; margin: 16px 0 0; padding: 12px; }
.jscr-booking__price-list { background: #b88c18; border: 1px solid #9d7510; border-radius: 20px; box-shadow: 0 14px 34px rgba(92, 65, 0, .22); color: #fff3b0; padding: clamp(18px, 3vw, 24px); }
.jscr-booking__price-list h3 { color: #fff8ce; font-size: 1.15rem; margin: 0 0 3px; }
.jscr-booking__price-list-intro { color: #ffef9a; font-size: .78rem; margin: 0 0 15px; }
.jscr-booking__price-list ul { display: grid; gap: 11px; list-style: none; margin: 0; padding: 0; }
.jscr-booking__price-list li { align-items: center; background: rgba(71, 48, 0, .24); border: 1px solid rgba(255, 243, 176, .42); border-radius: 12px; box-shadow: 0 5px 14px rgba(71, 48, 0, .12); display: flex; gap: 14px; justify-content: space-between; padding: 12px 13px; }
.jscr-booking__price-list li > div > strong, .jscr-booking__price-list li > div > small, .jscr-booking__price-list li > p > small { display: block; }
.jscr-booking__price-list li > div > strong { color: #fff8ce; font-size: .86rem; }
.jscr-booking__price-list li small { color: #ffef9a; font-size: .7rem; }
.jscr-booking__price-list li p { flex: 0 0 auto; margin: 0; text-align: right; }
.jscr-booking__price-list li p > strong { color: #fffbdc; font-size: .92rem; }
.jscr-booking__mobile-total { align-items: center; background: var(--jscr-booking-soft); border-radius: 10px; display: flex; justify-content: space-between; margin: 0 0 14px; padding: 12px; }
.jscr-booking__mobile-total strong { color: var(--jscr-booking-accent); }
.jscr-booking__notice { margin: 0 auto 24px; max-width: 760px; text-align: center; }
.jscr-booking__notice h2,
.jscr-booking__notice p { margin: 0; }
.jscr-booking__notice p + p { margin-top: 8px; }
.jscr-booking__notice--error { border-color: #e8b8b8; color: #7b2626; }
.jscr-booking__back { color: var(--jscr-booking-accent); display: inline-block; font-weight: 750; margin-top: 15px; }
.jscr-booking__confirmation { margin: 0 auto; max-width: 680px; text-align: center; }
.jscr-booking__confirmation h2 { margin: 12px 0 8px; }
.jscr-booking__confirmation p { color: var(--jscr-booking-muted); }
.jscr-booking__confirmation .jscr-booking__submit { margin-top: 8px; max-width: 300px; }
.jscr-booking__check { align-items: center; background: #dff4e7; border-radius: 50%; color: var(--jscr-booking-accent); display: inline-flex; font-size: 1.8rem; font-weight: 900; height: 58px; justify-content: center; width: 58px; }

@media (min-width: 600px) {
	.jscr-booking__pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 900px) {
	.jscr-booking__layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .75fr); }
	.jscr-booking__sidebar { order: 0; position: sticky; top: 24px; }
	.jscr-booking__mobile-total { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.jscr-booking__submit { transition: none; }
}
