/* Booking calendar: bounded months, touch-friendly days, keyboard and dialog support. */
.booking-calendar-open{overflow:hidden}
.booking-date{position:relative}
.booking-date>input[type="hidden"]{display:none}
.booking-date__trigger{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:54px;padding:12px 16px;border:1px solid #cbdcd0;border-radius:10px;
  background:#fdfefd;color:#244c39;text-align:left;font:650 1rem/1.4 system-ui,sans-serif;cursor:pointer;
  transition:border-color .15s,box-shadow .15s,background .15s;
}
.booking-date__trigger.is-empty{color:#64746c;font-weight:500}
.booking-date__trigger:hover{background:#f2f7f2;border-color:#9fbca6}
.booking-date__trigger:focus-visible{outline:3px solid #8db89b;outline-offset:2px}
.booking-date__icon{color:#346b4f;font-size:1.5rem;line-height:1}
.booking-calendar-layer[hidden]{display:none!important}
.booking-calendar-layer{
  position:fixed;inset:0;z-index:1000;display:grid;place-items:center;
  padding:20px;background:rgba(12,30,23,.52);backdrop-filter:blur(3px)
}
.booking-calendar{
  width:min(100%,390px);max-height:min(680px,calc(100dvh - 32px));overflow:auto;
  padding:24px;border:1px solid #d9e5da;border-radius:18px;background:#fff;
  box-shadow:0 28px 90px rgba(9,30,20,.29)
}
.booking-calendar__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.booking-calendar__header p{margin:0 0 5px;font-size:.8rem;color:#627b6a;font-weight:700}
.booking-calendar__header h2{margin:0;font:500 1.55rem/1.2 Georgia,'Times New Roman',serif;color:#1f4734;text-transform:capitalize}
.booking-calendar__close{border:0;background:#edf3ee;border-radius:8px;width:36px;height:36px;font-size:1.6rem;cursor:pointer;color:#365a47}
.booking-calendar__nav{display:flex;justify-content:space-between;align-items:center;margin:22px 0 14px}
.booking-calendar__nav button{border:1px solid #d5e2d7;background:#f8faf7;border-radius:10px;width:45px;height:40px;font-size:1.8rem;line-height:1;cursor:pointer;color:#2d5c43}
.booking-calendar__nav button:disabled{opacity:.24;cursor:not-allowed}
.booking-calendar__week,.booking-calendar__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.booking-calendar__week{margin-bottom:9px}
.booking-calendar__week span{text-align:center;font-size:.75rem;color:#748779;font-weight:750}
.booking-calendar__day{
  display:grid;place-items:center;aspect-ratio:1/1;min-height:38px;
  border:1px solid transparent;border-radius:10px;background:transparent;color:#213f30;
  font:650 .94rem/1 system-ui,sans-serif;cursor:pointer;
}
.booking-calendar__day:not(:disabled):hover{background:#e9f3ea;border-color:#c4ddc9}
.booking-calendar__day:disabled{color:#c5cfc6;cursor:not-allowed;text-decoration:line-through}
.booking-calendar__day.is-today:not(.is-selected){border-color:#76a78d}
.booking-calendar__day.is-selected{color:#fff;background:#2a6747}
.booking-calendar__day:focus-visible,.booking-calendar button:focus-visible{outline:3px solid #76ad87;outline-offset:2px}
@media(max-width:620px){
  .booking-calendar-layer{padding:12px;align-items:center}
  .booking-calendar{padding:19px;border-radius:15px}
  .booking-date__trigger{min-height:52px;font-size:1rem}
  .booking-calendar__day{min-height:39px}
}
@media(prefers-reduced-motion:reduce){.booking-date__trigger{transition:none}}


/* One calm, legible booking journey. Everything optional stays under Details. */
.booking-page .booking-page__hero{padding-top:30px;padding-bottom:30px}
.booking-page .booking-section{background:#f5f8f4}
.booking-page .booking-shell__intro{max-width:760px;margin-bottom:22px}
.booking-page .booking-shell__guide{font-weight:600!important}
.booking-page .booking-trust{display:none}
.booking-page .booking-form{
  padding:clamp(20px,3.7vw,42px)!important;
  border:1px solid #dce9df!important;border-radius:18px!important;
  box-shadow:0 14px 42px rgba(33,73,49,.06)!important;
}
.booking-page .form-mode{display:none!important}
.booking-page .form-title{padding-bottom:18px;border-bottom:1px solid #e4ebe5;margin-bottom:22px}
.booking-page .booking-flow-heading{margin-top:28px;margin-bottom:16px}
.booking-page .booking-flow-heading--first{margin-top:0}
.booking-page .field input:not([type="hidden"]),
.booking-page .field select,
.booking-page .field textarea{min-height:50px;border-radius:10px}
.booking-page .room-mix{border:1px solid #dce8de;overflow:hidden}
.booking-page .booking-flow-estimate{background:#f2f6f1;border-left-color:#80a98b}
.booking-page .send-actions{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;margin-top:18px
}
.booking-page .send-actions>[data-send$="-email"],
.booking-page .send-actions>[data-send$="-whatsapp"]{grid-column:auto!important;min-height:52px}
.booking-page .send-actions>[data-instagram-contact]{display:none!important}
.booking-page .send-actions .button{font-size:.91rem!important;padding:12px 15px!important}
.booking-page .form-feedback:not(:empty){padding:14px 16px;border-radius:9px;margin-top:13px;background:#f2f6f1}
.booking-page .form-feedback.is-error{background:#fff0ea}
@media(max-width:620px){
  .booking-page .booking-page__hero{padding:19px 0}
  .booking-page .booking-page__hero-side{display:none!important}
  .booking-page .booking-shell__intro{margin-bottom:15px}
  .booking-page .booking-section{padding-top:16px}
  .booking-page .booking-form{padding:19px 15px!important;border-radius:14px!important}
  .booking-page .booking-flow-heading{margin-top:23px}
  .booking-page .booking-flow-heading--first{margin-top:0}
  .booking-page .send-actions{grid-template-columns:minmax(0,1fr)!important}
  .booking-page .send-actions>[data-send$="-email"],
  .booking-page .send-actions>[data-send$="-whatsapp"]{grid-column:1/-1!important}
  .booking-page .send-actions .button{font-size:.94rem!important;min-height:51px}
}

.booking-page .booking-photo-note{font-size:.83rem;line-height:1.62;color:#46624e;background:#f3f8f2;padding:13px 15px;border-left:3px solid #82a88a;border-radius:4px 9px 9px 4px;margin:12px 0 16px}
.booking-page .group-package-field{margin:7px 0 4px}.booking-page .group-package-field select{min-height:53px;border:1px solid #a5c2ad;background:#f4f8f3;font-weight:750}.booking-page .group-package-field small{color:#657a6c;line-height:1.55;font-size:.78rem;margin:5px 0}
.booking-page .group-price-explainer{margin:16px 0 5px;background:#f2f7f2;color:#345e45;font-weight:650;font-size:.84rem;line-height:1.5;padding:13px 15px;border-radius:9px}

/* Simpler three-step forms: the optional marketing section was intentionally removed. */
.booking-page .form-title{margin-bottom:17px}
.booking-page .booking-flow-heading{margin-top:24px}
.booking-page .booking-flow-heading--first{margin-top:0}
.booking-page .form-privacy{font-size:.78rem;color:#63756b}
.booking-page .booking-flow-hint{margin:4px 0 12px}
