/* Layout/typography are inherited unchanged from the approved Sites bundle.
   These rules only adapt WordPress and the original JetBooking form. */
html { margin: 0 !important; font-size: 16px; }
body.rshpt-sauna-page { min-width: 320px; margin: 0; color: var(--ink); font: 400 16px/1.6 var(--font-sans); }
.rshpt-sauna-page :where(p,h1,h2,h3,h4,h5,h6,figure) { margin: 0; }
.rshpt-sauna-page :is(h1,h2,h3,h4,h5,h6) { color: inherit; }
.rshpt-sauna-page #wpadminbar { display: none; }
.rshpt-sauna-page .detail-hero-image img,
.rshpt-sauna-page .detail-gallery-grid img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rshpt-sauna-page svg { flex-shrink: 0; }
.rshpt-sauna-page [hidden] { display: none !important; }

/* One live month inside the mockup's compact sidebar card. */
.rshpt-native-calendar .jet-booking-calendar { min-height: 0; margin: .7rem 0 0; }
.rshpt-native-calendar .date-picker-wrapper { position: static !important; width: 100% !important; padding: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important; font-family: var(--font-sans); }
.rshpt-native-calendar .month-wrapper { width: 100% !important; padding: 0 !important; background: transparent !important; border: 0 !important; }
.rshpt-native-calendar table { width: 100% !important; margin: 0 !important; border: 0 !important; border-collapse: collapse; table-layout: fixed; }
.rshpt-native-calendar .month2, .rshpt-native-calendar .gap { display: none !important; }
.rshpt-native-calendar th, .rshpt-native-calendar td { padding: 0 !important; border: 0 !important; background: transparent; text-align: center; }
.rshpt-native-calendar .month-name { color: var(--ink) !important; font: 600 .8rem var(--font-sans) !important; text-transform: none !important; }
.rshpt-native-calendar .month-name .month-element:first-child { text-transform: capitalize; }
.rshpt-native-calendar .caption th { height: 40px; }
.rshpt-native-calendar .caption .next, .rshpt-native-calendar .caption .prev { display: inline-grid; place-items: center; width: 32px; height: 32px; color: var(--ink); border-radius: 6px; cursor: pointer; }
.rshpt-native-calendar .caption .next:hover, .rshpt-native-calendar .caption .prev:hover { background: #eee7dd; }
.rshpt-native-calendar .week-name th { height: 30px; color: #746b65 !important; font-size: .65rem !important; font-weight: 400; }
.rshpt-native-calendar .month-wrapper table .day { display: grid; place-items: center; min-height: 34px; height: 34px; padding: 4px !important; margin: 2px 0; color: var(--ink); background: transparent; border-radius: 6px; font-size: .8rem; line-height: 1; }
.rshpt-native-calendar .month-wrapper table .day.real-today:not(.checked):not(.first-date-selected):not(.last-date-selected) { background: #f2e5d9 !important; box-shadow: inset 0 0 0 1px #c44903; }
.rshpt-native-calendar .jet-booking-calendar__container:focus-visible { outline: 2px solid #c44903; outline-offset: 3px; }
.rshpt-native-calendar .day.checked, .rshpt-native-calendar .day.hovering { color: #582a10 !important; background: #f6dfcf !important; border-radius: 0 !important; }
.rshpt-native-calendar .day.first-date-selected, .rshpt-native-calendar .day.last-date-selected { color: white !important; background: #c44903 !important; border-radius: 6px !important; }
.rshpt-native-calendar .day.invalid { color: #b5aba2 !important; cursor: default; }
.rshpt-native-calendar .day.booked { color: #9b8e83 !important; background: repeating-linear-gradient(135deg,transparent,transparent 3px,#b49c8a24 3px,#b49c8a24 4px) !important; text-decoration: line-through; }
.rshpt-native-calendar .day.nextMonth, .rshpt-native-calendar .day.lastMonth { opacity: .45; }

/* Keep native fields, calculation metadata and submit handlers intact. */
.rshpt-selected-dates { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.rshpt-booking-error { margin: .8rem 0; padding: .7rem; border-left: 3px solid #a13a22; background: #fff0e8; color: #8f2f1f; font-size: .74rem; line-height: 1.5; }
.rshpt-native-form .jet-form-block { margin-top: .5rem; }
.rshpt-native-form .jet-form { display: block; }
.rshpt-native-form .jet-form-row { margin: 0 0 .7rem !important; padding: 0 !important; }
.rshpt-native-form .jet-form-row--hidden { display: none !important; }
.rshpt-native-quote dt { font-weight: 400; }
.rshpt-native-quote .booking-quote-total dt { font-weight: 650; }
.rshpt-native-form .jet-form-col { width: 100% !important; max-width: none !important; padding: 0 !important; }
.rshpt-native-form .jet-abaf-separate-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; }
.rshpt-native-form .jet-abaf-separate-field { width: auto !important; min-width: 0; max-width: none !important; flex: none; margin: 0 !important; padding: .6rem .7rem !important; min-height: 56px; border: 1px solid var(--border); border-radius: 10px; background: var(--paper); }
.rshpt-native-form .jet-abaf-separate-field__label { display: block; margin: 0 0 .25rem; color: #746b65; font-size: .62rem; line-height: 1.3; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.rshpt-native-form input.jet-abaf-field__input { display: block; min-width: 0; width: 100%; min-height: 20px; height: auto; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--ink); font: 650 .8rem/1.5 var(--font-sans); box-shadow: none; }
.rshpt-native-form .jet-abaf-separate-field .jet-abaf-field__input::placeholder { color: var(--ink); opacity: 1; }
.rshpt-form-enhanced .rshpt-native-price-row { display: none; }
.rshpt-native-extras .jet-form__label { display: none; }
.rshpt-native-extras .checkradio-wrap { display: grid; gap: 0; }
.rshpt-native-extras .jet-form__field-wrap { padding: 0; margin: 0; }
.rshpt-native-extras label.booking-extra-option { display: flex; align-items: center; min-height: 42px; gap: .65rem; margin: 0; padding: .4rem 0; border: 0; background: transparent; font-size: .78rem; font-weight: 400; }
.rshpt-native-extras .booking-extra-option input { position: static; appearance: auto; opacity: 1; flex: 0 0 18px; width: 18px; height: 18px; margin: 0; accent-color: #c44903; }
.rshpt-native-extras .booking-extra-option > span { flex: 1; }
.rshpt-native-extras .booking-extra-option small { font-weight: 400; }
.rshpt-native-extras .booking-extra-option strong { white-space: nowrap; }
.rshpt-native-form .jet-form__submit { display: flex; align-items: center; justify-content: center; gap: .6rem; width: 100%; min-height: 46px; padding: .75rem 1rem; border: 0 !important; border-radius: 999px !important; background: #c44903 !important; color: white !important; font: 700 .8rem/1.4 var(--font-sans); cursor: pointer; }
.rshpt-native-form .jet-form__submit:hover { background: #a43b00 !important; }
.rshpt-native-form .jet-form__submit:disabled { color: #7b8079 !important; background: #dedbd3 !important; opacity: 1; cursor: not-allowed; }
.rshpt-native-form .jet-form-message, .rshpt-booking-fallback p { font-size: .78rem; line-height: 1.5; }
.rshpt-booking-fallback .detail-booking-button { margin-top: 1rem; }
.rshpt-native-form .jet-form__submit:focus-visible, .rshpt-native-extras summary:focus-visible { outline: 2px solid #c44903; outline-offset: 3px; }
@media (max-width: 980px) {
  .rshpt-native-calendar .month-wrapper table .day { height: 42px; min-height: 42px; }
  .rshpt-native-extras label.booking-extra-option { min-height: 46px; }
}
