.pv-booking { width: min(760px, calc(100% - 2rem)); max-height: min(820px, calc(100vh - 2rem)); padding: 0; color: #222a26; background: #f6f3ee; border: 0; border-radius: 24px; box-shadow: 0 28px 90px rgba(7,59,45,.28); overflow-x: hidden; }
.pv-booking::backdrop { background: rgba(7,24,19,.66); backdrop-filter: blur(5px); }
.pv-booking-open { overflow: hidden; }
.pv-booking__close { position: absolute; z-index: 2; top: 1rem; right: 1rem; width: 2.75rem; height: 2.75rem; color: #073b2d; background: #fff; border: 0; border-radius: 50%; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.pv-booking__header { padding: clamp(1.7rem,5vw,3.2rem) clamp(1.4rem,5vw,3.4rem) 1.3rem; color: #fff; background: #073b2d; }
.pv-booking__header h2 { max-width: 590px; margin: .2rem 0 .75rem; color: #fff; font-size: clamp(1.8rem,4vw,2.65rem); line-height: 1.08; }
.pv-booking__header p { max-width: 590px; margin-bottom: 0; color: rgba(255,255,255,.82); }
.pv-booking__eyebrow { color: #d7b89b !important; font-size: .74rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.pv-booking__form { padding: clamp(1.3rem,4vw,2.6rem) clamp(1.3rem,5vw,3.4rem) clamp(1.7rem,5vw,3rem); }
.pv-booking__calendar-head { display: grid; grid-template-columns: 2.5rem 1fr 2.5rem; gap: .75rem; align-items: center; margin-bottom: 1rem; text-align: center; text-transform: capitalize; }
.pv-booking__month-button { width: 2.5rem; height: 2.5rem; color: #073b2d; background: #fff; border: 1px solid rgba(7,59,45,.15); border-radius: 50%; cursor: pointer; }
.pv-booking__month-button:disabled { opacity: .3; cursor: not-allowed; }
.pv-booking__weekdays, .pv-booking__days { display: grid; grid-template-columns: repeat(7, 1fr); gap: .42rem; }
.pv-booking__weekdays { margin-bottom: .42rem; color: #66706b; font-size: .72rem; font-weight: 750; text-align: center; text-transform: uppercase; }
.pv-booking__day { aspect-ratio: 1; padding: 0; color: #073b2d; background: #fff; border: 1px solid rgba(7,59,45,.12); border-radius: 10px; font: inherit; font-weight: 700; cursor: pointer; }
.pv-booking__day:hover:not(:disabled), .pv-booking__day:focus-visible, .pv-booking__day.is-selected { color: #fff; background: #073b2d; outline: none; }
.pv-booking__day:disabled { color: #a8aca9; background: transparent; border-color: transparent; cursor: not-allowed; }
.pv-booking__times { margin-top: 1.5rem; padding-top: 1.2rem; border-top: 1px solid rgba(7,59,45,.14); }
.pv-booking__times h3 { margin-top: 0; font-size: 1.05rem; }
.pv-booking__times > div { display: flex; flex-wrap: wrap; gap: .65rem; }
.pv-booking__time { min-width: 5.5rem; padding: .72rem 1rem; color: #073b2d; background: #fff; border: 1px solid #b99170; border-radius: 999px; font-weight: 750; cursor: pointer; }
.pv-booking__time:hover, .pv-booking__time:focus-visible { color: #fff; background: #073b2d; border-color: #073b2d; }
.pv-booking__selection { display: inline-flex; margin: 0 0 1.4rem; padding: .55rem .8rem; color: #073b2d; background: #ebd9c8; border-radius: 999px; font-weight: 750; text-transform: capitalize; }
.pv-booking__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.pv-booking__fields label { display: grid; gap: .4rem; color: #073b2d; font-size: .86rem; font-weight: 750; }
.pv-booking__fields input:not([type="checkbox"]), .pv-booking__fields textarea { width: 100%; box-sizing: border-box; padding: .8rem .9rem; color: #222a26; background: #fff; border: 1px solid rgba(7,59,45,.2); border-radius: 10px; font: inherit; }
.pv-booking__fields input:focus, .pv-booking__fields textarea:focus { border-color: #b99170; outline: 3px solid rgba(185,145,112,.22); }
.pv-booking__wide { grid-column: 1 / -1; }
.pv-booking__consent { display: flex !important; grid-template-columns: auto 1fr; align-items: flex-start; }
.pv-booking__consent input { margin-top: .2rem; }
.pv-booking__honeypot { position: absolute !important; left: -10000px; }
.pv-booking__actions { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; }
.pv-booking__back, .pv-booking__submit { padding: .82rem 1.1rem; border-radius: 999px; font: inherit; font-weight: 750; cursor: pointer; }
.pv-booking__back { color: #073b2d; background: transparent; border: 1px solid rgba(7,59,45,.25); }
.pv-booking__submit { color: #fff; background: #073b2d; border: 1px solid #073b2d; }
.pv-booking__submit:disabled { opacity: .55; cursor: wait; }
.pv-booking__feedback { margin-top: 1rem; }
.pv-booking__feedback.is-success, .pv-booking__feedback.is-error { padding: 1rem; border-radius: 12px; font-weight: 700; }
.pv-booking__feedback.is-success { color: #073b2d; background: #dce9df; }
.pv-booking__feedback.is-error { color: #7a2020; background: #f5dddd; }
@media (max-width: 600px) {
	.pv-booking { width: calc(100% - 1rem); max-height: calc(100vh - 1rem); border-radius: 18px; }
	.pv-booking__fields { grid-template-columns: 1fr; }
	.pv-booking__wide { grid-column: auto; }
	.pv-booking__actions { align-items: stretch; flex-direction: column-reverse; }
	.pv-booking__actions button { width: 100%; }
}
