.booking-section { background:#f5f3e9;padding:86px 0; }
.booking-section .booking-layout { width:calc(100% - 96px);max-width:1260px;display:grid;grid-template-columns:45% 55%;gap:0;align-items:stretch;border:1px solid #d6ddcd;border-radius:22px;overflow:hidden;background:#fffdf7;box-shadow:0 20px 60px #16372710; }
.booking-section .booking-intro { position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;min-height:650px;padding:38px 36px 65px;overflow:hidden;color:#fff9eb; }
.booking-section .booking-intro > .booking-cover { position:absolute;inset:0;width:100%;height:100%;margin:0;aspect-ratio:auto;border:0;border-radius:0;object-fit:cover;object-position:48% center;z-index:-3; }
.booking-photo-shade { position:absolute;inset:0;background:linear-gradient(180deg,#0b251bd9 0%,#0a241a3b 44%,#0a241a12 57%,#0a241ac9 100%);z-index:-2; }
.booking-intro-copy { max-width:390px; }
.booking-intro-copy .eyebrow { color:#ded7bb;font-size:14px;letter-spacing:.08em;margin-bottom:24px; }
.booking-section .booking-intro h2 { font-size:clamp(48px,4.7vw,65px);line-height:1.12;letter-spacing:0;color:#fff9eb;margin:0; }
.booking-intro h2 em { font-weight:400;color:#e7e8cf; }
.booking-intro-copy > p { font-size:14px;line-height:1.8;max-width:320px;color:#f0eddf;margin-top:21px; }
.booking-stay { margin-top:90px;padding:20px 23px 18px;background:#fbf9eeeF;color:#183b29;border:1px solid #ffffffb3;border-radius:12px;box-shadow:0 6px 28px #071b1721;backdrop-filter:blur(12px); }
.booking-stay-top { display:flex;align-items:center;justify-content:space-between;gap:20px;font-family:var(--sans);font-size:14px;letter-spacing:.05em;text-transform:uppercase; }
.booking-stay-number { border:1px solid #c6d1bb;background:#e8eddf;border-radius:5px;padding:5px 8px;font-size:14px;letter-spacing:0; }
.booking-stay-rate { display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:11px; }
.booking-stay-rate strong { font-family:var(--sans);font-size:38px;font-weight:600;letter-spacing:0;line-height:1.2; }
.booking-stay-rate strong > span { font-family:Arial,sans-serif;font-size:26px;font-weight:400; }
.booking-stay-rate small { font-family:var(--sans);font-size:14px;line-height:1.65;color:#4d6652;text-align:right; }
.booking-section .booking-facts { gap:11px;padding-top:14px;margin-top:13px;border-top:1px solid #cdd6c0;font-size:14px;line-height:1.6;color:#425b45; }
.booking-section .booking-facts span + span:before { margin-right:11px; }
.booking-distance { position:absolute;bottom:23px;left:36px;display:flex;align-items:center;gap:8px;font-size:14px;line-height:1.5;letter-spacing:.025em;color:#eee9d5; }
.booking-distance svg { width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round; }
.booking-section .booking-panel { display:flex;flex-direction:column;min-width:0;border:0;border-radius:0;background:#fffdf7;box-shadow:none;margin:0; }
.booking-section .booking-panel-head { padding:28px 38px 19px;background:transparent;color:#193c2a;gap:20px; }
.booking-panel-head > img { width:51px;height:51px;flex:0 0 51px;opacity:.95; }
.booking-section .booking-panel-kicker { color:#6c7b5c;font-size:14px;letter-spacing:.12em; }
.booking-section .booking-panel-head h3 { margin-top:8px;color:#193c2a;font-size:35px;line-height:1.12; }
.booking-wizard-nav { display:flex;align-items:center;gap:15px;margin:0 38px 20px; }
.booking-wizard-tab { display:flex;align-items:center;gap:8px;padding:0;color:#36533a;font-family:var(--sans);font-size:14px;line-height:1.4;white-space:nowrap; }
.booking-wizard-tab > span { display:grid;place-items:center;width:26px;height:26px;border:1px solid #b9c8aa;border-radius:50%;font-size:14px;background:#eff2e6;color:#3c5b3b; }
.booking-wizard-tab[aria-current="step"] { font-weight:600;color:#183b29; }
.booking-wizard-tab[aria-current="step"] > span { background:#204b35;color:#fff8e9;border-color:#204b35;box-shadow:0 2px 7px #204b3521; }
.booking-wizard-tab:disabled { opacity:.45;cursor:default; }
.booking-step-line { flex:1 1 30px;max-width:62px;height:1px;background:#cbd6bd; }
.booking-section #booking-form { padding:0 38px 29px; }
.booking-stage { border:0;padding:0;margin:0;min-width:0; }
.booking-visually-hidden { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
.booking-gazebo-choice { display:flex;align-items:center;gap:13px;padding:10px 14px 9px;background:#eef2e7;border:1px solid #d2dcc6;border-radius:9px; }
.booking-gazebo-choice > img { width:45px;height:49px;object-fit:contain; }
.booking-gazebo-choice > div { flex:1;min-width:0; }
.booking-gazebo-choice label { display:block;color:#627456;font-size:14px;line-height:1.5;letter-spacing:.045em;margin-bottom:3px; }
.booking-panel .booking-gazebo-choice select { background:transparent;border:0;border-radius:4px;padding:3px 23px 3px 0;min-height:27px;font-family:var(--sans);font-weight:400;font-size:15px;line-height:1.5;box-shadow:none; }
.booking-panel .booking-gazebo-choice select:focus { outline:2px solid #47714d;outline-offset:2px;box-shadow:none; }
.booking-calendar-caption { display:flex;align-items:center;justify-content:space-between;gap:20px;margin:19px 0 10px;font-family:var(--sans);font-size:14px;color:#35553a; }
.booking-calendar-caption small { font-family:var(--sans);font-size:14px;color:#718064; }
.booking-panel .calendar { border:0;border-radius:0;background:transparent;padding:0; }
.booking-panel .calendar-top { padding:0 0 12px; }
.booking-panel .calendar-top > span { font-size:27px; }
.booking-panel .calendar-top > button { width:31px;height:31px;background:#f6f7ef;border:1px solid #d0d9c3;border-radius:50%;font-size:16px; }
.booking-panel .calendar-top > button:disabled { background:transparent;border-color:#e0e5d6;color:#8b9780; }
.booking-panel .calendar-week,.booking-panel .calendar-days { gap:5px; }
.booking-panel .calendar-week { margin-bottom:8px; }
.booking-panel .calendar-week > span { font-size:14px;color:#677a58; }
.booking-panel .calendar-day { height:34px;min-height:34px;border:1px solid transparent;border-radius:6px;background:#eef2e7;font-size:14px; }
.booking-panel .calendar-day:disabled { background:transparent;color:#87927f; }
.booking-panel .calendar-day.unavailable { background:#f3ede2;border-color:transparent;color:#85704e; }
.booking-panel .calendar-day.selected { background:#1c4631;border-color:#1c4631;color:#fff9e9!important;box-shadow:0 3px 7px #234b3029; }
.booking-panel .calendar-day.selected:hover:not(:disabled) { background:#28593b; }
.booking-panel .calendar-key { margin-top:11px;padding-top:10px;border-color:#d9e0ce;font-size:14px;gap:17px; }
.booking-panel .calendar-key i { width:7px;height:7px;border-radius:50%; }
.booking-panel .selected-date { display:flex;align-items:center;gap:8px;margin-top:12px;min-height:18px;padding:0;background:transparent;border:0;border-radius:0;color:#557346;font-size:14px;line-height:1.7; }
.booking-panel .selected-date[data-selected="true"]:before { content:"✓";display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#e5edda;color:#37652d;font-size:14px; }
.booking-next,.booking-panel .booking-submit { width:100%;margin-top:16px;min-height:48px;padding:13px 18px;border:1px solid #244a35;border-radius:7px;background:#244a35;color:#fff8e7;font-family:var(--sans);font-size:14px;font-weight:600;box-shadow:0 3px 8px #244a3513; }
.booking-next:hover:not(:disabled),.booking-panel .booking-submit:hover:not(:disabled) { background:#356246;border-color:#356246; }
.booking-next:disabled,.booking-panel .booking-submit:disabled { opacity:1;background:#e5eadc;border-color:#c5d0b6;color:#68795c;box-shadow:none;cursor:default; }
.booking-step-note { margin-top:9px;color:#75826a;font-size:14px;line-height:1.6;text-align:center; }
.booking-reservation-summary { display:flex;align-items:center;gap:12px;padding:16px;margin-bottom:23px;border:1px dashed #b6c7a2;border-radius:9px;background:linear-gradient(115deg,#f1f4e9,#faf9ef); }
.booking-reservation-summary > img { width:43px;height:47px; }
.booking-reservation-summary > div { flex:1;min-width:0; }
.booking-reservation-summary > div > span { display:block;font-size:14px;letter-spacing:.05em;color:#758465;text-transform:uppercase; }
.booking-reservation-summary strong { display:block;font-family:var(--serif);font-size:21px;font-weight:400;line-height:1.2;margin-top:6px;color:#24472e; }
.booking-reservation-summary p { font-size:14px;color:#5a7350;line-height:1.6;margin-top:4px; }
.booking-summary-price { font-family:var(--sans);font-size:17px;font-weight:600;letter-spacing:0;white-space:nowrap;color:#24472e; }
.booking-summary-price > span { font-family:Arial,sans-serif;font-size:14px;font-weight:400; }
.booking-panel .form-row { gap:14px; }
.booking-panel .form-row label,.booking-panel .form-label { font-size:14px;font-weight:400;letter-spacing:0;color:#47623f; }
.booking-panel input:not([type=checkbox]),.booking-panel textarea { min-height:47px;padding:12px 13px;border-color:#c1ceb3;border-radius:7px;background:#fffefa;font-size:15px; }
.booking-panel input::placeholder,.booking-panel textarea::placeholder { color:#647759; }
.booking-extras { border:0;border-top:1px solid #dce3d0;border-bottom:1px solid #dce3d0;margin-top:22px; }
.booking-extras > summary { display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 0;font-family:var(--sans);font-size:14px;font-weight:400;line-height:1.5;color:#647b52;list-style:none;cursor:pointer; }
.booking-extras > summary::-webkit-details-marker { display:none; }
.booking-extras > summary > span { font-family:var(--sans);font-size:20px;font-weight:400;color:#8a9a75;line-height:1.12;transition:transform .2s; }
.booking-extras[open] > summary > span { transform:rotate(45deg); }
.booking-extras-fields { padding-bottom:17px; }
.booking-panel .booking-extras .form-label { margin-top:12px; }
.booking-panel .consent-label { margin-top:18px;gap:10px;font-size:14px;line-height:1.7;color:#617553; }
.booking-panel .consent-label input { width:15px;height:15px;flex-basis:15px; }
.booking-panel .booking-total { margin-top:20px;padding-top:17px;border-color:#ccd8be;font-size:14px; }
.booking-panel .booking-total strong { font-size:27px; }
.booking-back { display:block;margin:15px auto 0;padding:3px;font-size:14px;color:#6b7c58; }
.booking-back:disabled { opacity:.5;cursor:default; }
.booking-panel .booking-note { margin-top:12px;font-size:14px;line-height:1.8;color:#687b59; }
.booking-panel .form-error { margin:0 0 18px;font-size:14px; }
.booking-section .booking-success { padding:15px 38px 35px; }
.booking-success h3 { font-size:40px; }
@media(max-width:1180px) {
  .booking-section .booking-layout { width:calc(100% - 64px);grid-template-columns:43% 57%; }
  .booking-section .booking-intro { padding:32px 28px 63px; }
  .booking-section .booking-intro h2 { font-size:54px; }
  .booking-stay { padding:18px; }
  .booking-stay-rate strong { font-size:33px; }
  .booking-distance { left:28px; }
  .booking-section .booking-panel-head { padding:27px 29px 19px; }
  .booking-section .booking-panel-head h3 { font-size:32px; }
  .booking-wizard-nav { margin-inline:29px; }
  .booking-section #booking-form { padding-inline:29px; }
}
@media(max-width:960px) {
  .booking-section { padding-block:62px; }
  .booking-section .booking-layout { width:calc(100% - 64px);grid-template-columns:1fr;border-radius:17px; }
  .booking-section .booking-intro { min-height:340px;padding:31px 32px 54px;flex-direction:row;align-items:flex-end;gap:40px; }
  .booking-section .booking-intro > .booking-cover { object-position:center 46%; }
  .booking-photo-shade { background:linear-gradient(90deg,#0b261bdc,#0b261b15),linear-gradient(0deg,#102a20bd,transparent 65%); }
  .booking-intro-copy { max-width:330px; }
  .booking-intro-copy .eyebrow { margin-bottom:16px;font-size:14px; }
  .booking-section .booking-intro h2 { font-size:50px; }
  .booking-intro-copy > p { font-size:14px;margin-top:16px; }
  .booking-stay { min-width:245px;margin-top:0;padding:17px; }
  .booking-stay-rate strong { font-size:31px; }
  .booking-stay-rate small { font-size:14px; }
  .booking-section .booking-facts { font-size:14px;gap:8px; }
  .booking-section .booking-facts span + span:before { margin-right:8px; }
  .booking-distance { bottom:18px;left:32px;font-size:14px; }
  .booking-section .booking-panel-head { padding:30px 36px 21px;display:flex; }
  .booking-section .booking-panel-head h3 { font-size:36px; }
  .booking-wizard-nav { margin-inline:36px; }
  .booking-section #booking-form { padding:0 36px 31px; }
  .booking-panel .calendar-day { height:38px;min-height:38px; }
}
@media(max-width:700px) {
  .booking-section { padding-block:44px; }
  .booking-section .booking-layout { width:calc(100% - 32px);border-radius:15px; }
  .booking-section .booking-intro { min-height:435px;padding:27px 25px 50px;display:block; }
  .booking-intro-copy .eyebrow { font-size:14px;margin-bottom:16px; }
  .booking-section .booking-intro h2 { font-size:48px; }
  .booking-intro-copy > p { font-size:14px;line-height:1.7; }
  .booking-stay { margin-top:35px;min-width:0;padding:15px 17px 13px; }
  .booking-stay-top { font-size:14px; }
  .booking-stay-rate { margin-top:8px; }
  .booking-stay-rate strong { font-size:33px; }
  .booking-stay-rate strong > span { font-size:24px; }
  .booking-section .booking-facts { font-size:14px;gap:9px;margin-top:11px;padding-top:10px; }
  .booking-distance { left:25px;bottom:16px; }
  .booking-section .booking-panel-head { padding:25px 23px 19px;gap:15px; }
  .booking-section .booking-panel-head h3 { font-size:31px; }
  .booking-section .booking-panel-kicker { font-size:14px; }
  .booking-panel-head > img { width:43px;height:43px;flex-basis:43px; }
  .booking-wizard-nav { margin:0 23px 20px;gap:12px; }
  .booking-wizard-tab { font-size:14px;gap:7px; }
  .booking-wizard-tab > span { width:24px;height:24px;font-size:14px; }
  .booking-section #booking-form { padding:0 23px 26px; }
  .booking-gazebo-choice { padding:8px 11px;gap:10px; }
  .booking-gazebo-choice > img { width:40px;height:44px; }
  .booking-panel .booking-gazebo-choice select { font-size:16px;padding-right:15px; }
  .booking-calendar-caption { margin-top:17px; }
  .booking-panel .calendar-top > span { font-size:26px; }
  .booking-panel .calendar-top > button { width:30px;height:30px; }
  .booking-panel .calendar-week,.booking-panel .calendar-days { gap:4px; }
  .booking-panel .calendar-day { height:35px;min-height:35px;font-size:14px; }
  .booking-panel .calendar-key { gap:15px;font-size:14px; }
  .booking-panel .form-row { grid-template-columns:1fr;gap:16px; }
  .booking-panel input:not([type=checkbox]),.booking-panel textarea { font-size:16px; }
  .booking-reservation-summary { padding:13px;gap:10px;flex-wrap:wrap; }
  .booking-reservation-summary strong { font-size:21px; }
  .booking-summary-price { margin-left:53px;font-size:16px; }
  .booking-panel .consent-label { font-size:14px; }
  .booking-section .booking-success { padding:10px 23px 30px; }
}
@media(max-width:380px) {
  .booking-section .booking-panel-head h3 { font-size:28px; }
  .booking-section .booking-intro h2 { font-size:43px; }
  .booking-section .booking-panel-head { padding-inline:18px; }
  .booking-wizard-nav { margin-inline:18px;gap:8px; }
  .booking-wizard-tab { font-size:14px; }
  .booking-section #booking-form { padding-inline:18px; }
  .booking-panel .calendar-day { height:32px;min-height:32px;font-size:14px; }
  .booking-panel .calendar-key { gap:10px; }
}
@media(prefers-reduced-motion:reduce) { .booking-extras > summary > span { transition:none; } }
