/* PHOTO SPOTT 0.8.0-preview.4 — scoped public UX scale and compact contact form. */
.booking-hero {
  --booking-page-title: clamp(2.15rem, 3vw, 2.625rem);
  --booking-step-title: clamp(1.8rem, 2.5vw, 2.25rem);
  --booking-section-title: clamp(1.45rem, 1.8vw, 1.75rem);
  --booking-body: clamp(.94rem, 1.15vw, 1.0625rem);
  --booking-label: clamp(.9rem, 1.05vw, 1rem);
  min-height: 0;
  padding-block: clamp(2rem, 4vw, 3.75rem);
}
.booking-hero h1 { font-size: var(--booking-page-title); line-height: 1.12; overflow-wrap: normal; }
.booking-hero > .container > div > p:not(.eyebrow) { font-size: var(--booking-body); line-height: 1.55; }
.booking-form-fields { gap: clamp(.8rem, 1.25vw, 1.2rem); }
.booking-form-fields > label { font-size: var(--booking-label); }
.booking-form-fields .booking-step-title,
.booking-form-fields .availability-heading h2,
.booking-form-fields .package-options legend { font-family: var(--font-heading); font-size: var(--booking-step-title); font-weight: 600; line-height: 1.13; }
.booking-form-fields .booking-step-title { margin: 1.3rem 0 .1rem; }
.booking-form-fields .booking-section-title { margin: .8rem 0 0; font-family: var(--font-heading); font-size: var(--booking-section-title); font-weight: 600; line-height: 1.2; }
.booking-form-fields .booking-addons legend { font-family: var(--font-heading); font-size: var(--booking-section-title); font-weight: 600; line-height: 1.2; }
.booking-progress a { min-width: 0; align-items: center; }
.booking-progress a > span:last-child { display: grid; flex: 1 1 auto; width: auto; height: auto; min-width: 0; gap: .12rem; place-items: initial; border-radius: 0; background: transparent; color: inherit; font-size: inherit; }
.booking-progress small { color: #657285; font: 700 .67rem/1.2 var(--font-body); letter-spacing: .07em; }
.booking-progress a[aria-current="step"] { border-color: var(--color-accent); background: #fffaf0; }
.booking-progress a[data-state="completed"] > span:first-child { background: #365945; }
.booking-progress a[aria-current="step"] small { color: #805f2c; }
.booking-price-summary h2 { font-size: clamp(1.55rem, 1.8vw, 1.9rem); line-height: 1.13; }
.booking-price-summary dl > div { align-items: baseline; }
.booking-price-summary dt { min-width: 0; }
.booking-price-summary dd { min-width: max-content; }
.booking-price-summary [data-summary-package-total],
.booking-price-summary [data-summary-extra-total],
.booking-price-summary [data-summary-addons-total],
.booking-price-summary [data-summary-booking-total],
.booking-price-summary [data-summary-deposit],
.booking-price-summary [data-summary-after-deposit] { white-space: nowrap; }
.booking-submit-note { margin: 0; color: var(--color-primary); font-size: var(--booking-body); line-height: 1.45; }
.public-offer-split { display: grid; gap: clamp(1.75rem, 3vw, 3.5rem); align-items: start; }
.public-offer-split .public-package-grid { width: 100%; max-width: none; margin: 0; }
.public-offer-split .public-offer-includes { width: 100%; max-width: none; margin: 0; padding: .5rem 0; }
.public-offer-split .public-offer-includes h3 { margin: .3rem 0 1.2rem; }
.public-offer-includes .public-check-list li { padding-block: .35rem .7rem; border-bottom: 1px solid rgba(16,35,63,.09); }
.public-offer-includes .public-check-list span { display: block; margin-top: .2rem; color: #526074; }
.public-contact-grid { gap: clamp(2rem, 3vw, 3.5rem); }
.public-contact-form-column { width: 100%; max-width: 700px; min-width: 0; }
.public-contact-form-column h2 { font-size: clamp(1.8rem, 2.2vw, 2.5rem); }
.public-contact-form { gap: .75rem; }
.public-contact-form label { gap: .22rem; font-size: .98rem; }
.public-contact-form input:not([type="checkbox"]),
.public-contact-form select { min-height: 48px; height: 48px; padding-block: .55rem; }
.public-contact-form textarea { min-height: 150px; height: 160px; padding-block: .7rem; resize: vertical; }
.public-contact-form label.checkbox input { width: auto; height: auto; min-height: 0; padding: 0; }
@media (min-width: 1024px) {
  .public-offer-split { grid-template-columns: minmax(0,1.04fr) minmax(0,.96fr); }
  .public-contact-grid { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); }
  .booking-form-with-summary { grid-template-columns: minmax(0,1fr) 275px; align-items: start; }
  .booking-price-summary { position: sticky; top: 1.5rem; max-height: calc(100vh - 3rem); overflow-y: auto; }
  .booking-consents, .booking-submit-note, .booking-submit { grid-column: 1; }
}
@media (min-width: 1024px) and (max-width: 1199px) {
  .booking-layout { grid-template-columns: minmax(0,1fr); }
}
@media (min-width: 1200px) {
  .booking-submit-note { grid-column: 1; }
}
@media (max-width: 767px) {
  .booking-progress a { flex-direction: column; justify-content: center; gap: .25rem; text-align: center; }
  .booking-progress a > span:last-child { justify-items: center; }
  .booking-progress small { font-size: .58rem; letter-spacing: .025em; }
  .booking-price-summary { position: static; }
}
@media (max-width: 390px) {
  .booking-progress a { padding-inline: .15rem; }
  .booking-price-summary dl > div { gap: .35rem; }
  .booking-price-summary dt { font-size: .88rem; }
  .booking-price-summary dd { font-size: .92rem; }
}
