#booking-module{
  --coral:#EE7755;--coral-dark:#d4613d;--coral-light:#f59070;
  --sand:#FBF6EF;--sand-2:#F4EADD;--card:#fff;
  --ink:#3c3c3c;--ink-soft:#6f655d;--border:#eadfd2;--in-range:#fbe4d8;--ocean:#3f7f86;
  --charcoal:#3c3c3c;--text-light:#6f655d;--white:#fff;--off-white:#FBF6EF;--reserved:#f3e5c8;
  --font:'Trebuchet MS',Helvetica,sans-serif;
  font-family:var(--font);color:var(--ink);background:var(--sand);
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;
  padding:56px 20px 64px;width:100%;
}
#booking-module *{box-sizing:border-box;margin:0;padding:0;}
#booking-module button{font-family:inherit;}
#booking-module .bm-wrap{max-width:1000px;margin:0 auto;}

/* INTRO */
#booking-module .bm-intro{text-align:center;margin-bottom:32px;}
#booking-module .bm-intro h2{font-size:32px;line-height:1.2;font-weight:bold;letter-spacing:.3px;color:var(--ink);}
#booking-module .bm-intro p{font-size:17px;color:var(--ink-soft);margin-top:8px;}
#booking-module .bm-rule{width:56px;height:3px;background:var(--coral);border-radius:3px;margin:16px auto 0;}

/* UNIT CARDS (side by side) */
#booking-module .bm-units{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;}
#booking-module .property-tab{position:relative;display:block;text-align:left;background:var(--card);border:2px solid var(--border);border-radius:16px;overflow:hidden;cursor:pointer;padding:0;font:inherit;color:inherit;box-shadow:0 2px 10px rgba(80,50,20,.06);transition:box-shadow .2s,border-color .2s,transform .2s;}
#booking-module .property-tab:hover{box-shadow:0 8px 24px rgba(80,50,20,.12);transform:translateY(-2px);}
#booking-module .property-tab.active{border-color:var(--coral);box-shadow:0 8px 26px rgba(238,119,85,.22);}
#booking-module .property-tab:focus-visible{outline:3px solid var(--ocean);outline-offset:2px;}
#booking-module .unit-img{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--sand-2);}
#booking-module .unit-img img{width:100%;height:100%;object-fit:cover;display:block;}
#booking-module .unit-body{display:block;padding:16px 20px 18px;}
#booking-module .unit-kicker{display:block;font-size:13px;font-weight:bold;letter-spacing:2px;text-transform:uppercase;color:var(--coral);}
#booking-module .unit-name{display:block;font-size:22px;font-weight:bold;margin:2px 0 4px;}
#booking-module .unit-facts{display:block;font-size:15px;color:var(--ink-soft);}
#booking-module .unit-check{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;background:var(--coral);color:#fff;display:none;align-items:center;justify-content:center;font-size:18px;font-weight:bold;box-shadow:0 2px 8px rgba(0,0,0,.2);}
#booking-module .property-tab.active .unit-check{display:flex;}

/* SELECTED UNIT INFO + RATES */
#booking-module .bm-info{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:22px 26px;margin-bottom:28px;}
#booking-module .prop-name{font-size:21px;font-weight:bold;color:var(--ink);margin-bottom:12px;}
#booking-module .prop-img{display:none;}
#booking-module .prop-meta{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;font-size:16px;}
#booking-module .prop-meta .lbl{color:var(--ink-soft);}
#booking-module .prop-meta .val{font-weight:bold;}
#booking-module .price-table-lbl{font-size:13px;font-weight:bold;letter-spacing:1.5px;text-transform:uppercase;color:var(--coral);margin-bottom:8px;}
#booking-module .price-row{display:flex;justify-content:space-between;font-size:16px;padding:5px 0;border-bottom:1px dashed var(--border);}
#booking-module .price-row .pr{font-weight:bold;}
#booking-module .price-note{font-size:14px;color:var(--coral-dark);font-style:italic;margin-top:6px;}

/* CALENDAR (large) */
#booking-module .bm-cal{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:30px 30px 26px;margin-bottom:28px;box-shadow:0 2px 12px rgba(80,50,20,.05);}
#booking-module .cal-header{text-align:center;margin-bottom:18px;}
#booking-module .cal-header h2{font-size:26px;font-weight:bold;color:var(--ink);}
#booking-module .cal-hint{font-size:16px;color:var(--ink-soft);margin-top:4px;}
/* month selector stays fixed: arrows sit in fixed columns, the month name is centred between them */
#booking-module .cal-nav{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;gap:8px;margin-bottom:18px;}
#booking-module .cal-nav-btn{width:48px;height:48px;border:1px solid var(--border);border-radius:50%;background:#fff;color:var(--ink);font-size:26px;line-height:1;padding-bottom:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;justify-self:center;transition:border-color .15s,color .15s,background .15s;}
#booking-module .cal-nav-btn:hover{border-color:var(--coral);color:var(--coral);background:#fff6f2;}
#booking-module .cal-nav-btn:focus-visible{outline:3px solid var(--ocean);outline-offset:2px;}
#booking-module .cal-month-lbl{text-align:center;font-size:21px;font-weight:bold;white-space:nowrap;}
#booking-module .cal-months{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;}
#booking-module .month-title{text-align:center;font-size:17px;font-weight:bold;letter-spacing:.5px;margin-bottom:10px;}
#booking-module .cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px 0;}
#booking-module .day-name{text-align:center;font-size:13px;font-weight:bold;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-soft);padding-bottom:6px;}
#booking-module .day{min-width:0;display:flex;align-items:center;justify-content:center;aspect-ratio:1/.85;min-height:44px;font-size:17px;border-radius:12px;color:var(--ink);cursor:default;user-select:none;-webkit-user-select:none;}
#booking-module .day.empty{background:none;}
#booking-module .day.today{font-weight:bold;color:var(--coral);box-shadow:inset 0 -3px 0 var(--coral);}
#booking-module .day.past{color:#cdc3b8;cursor:not-allowed;}
#booking-module .day.closed{color:#cdc3b8;cursor:not-allowed;background:var(--sand);}
#booking-module .day.reserved{background:var(--reserved);color:#a88650;text-decoration:line-through;cursor:not-allowed;}
#booking-module .day.avail{cursor:pointer;}
#booking-module .day.avail:hover{background:var(--coral-light);color:#fff;}
#booking-module .day.inrange{background:var(--in-range);color:var(--coral-dark);border-radius:0;}
#booking-module .day.ci{background:var(--coral);color:#fff;font-weight:bold;border-radius:12px 0 0 12px;box-shadow:none;}
#booking-module .day.co{background:var(--coral);color:#fff;font-weight:bold;border-radius:0 12px 12px 0;box-shadow:none;}
#booking-module .day.ci.co{border-radius:12px;}
#booking-module .cal-legend{display:flex;gap:10px 22px;flex-wrap:wrap;justify-content:center;margin-top:22px;font-size:14px;color:var(--ink-soft);}
#booking-module .leg-item{display:flex;align-items:center;gap:8px;}
#booking-module .leg-dot{width:16px;height:16px;border-radius:5px;flex:0 0 auto;}
#booking-module .leg-sel{background:var(--coral);}
#booking-module .leg-range{background:var(--in-range);border:1px solid #f3c8b4;}
#booking-module .leg-res{background:var(--reserved);}
#booking-module .leg-av{background:#fff;border:1px solid var(--border);}
#booking-module .min-note{text-align:center;font-size:14px;color:var(--ink-soft);margin-top:14px;}

/* MESSAGES */
#booking-module .msg{display:none;font-size:15px;padding:10px 14px;border-radius:10px;margin:12px 0;}
#booking-module .msg.visible{display:block;}
#booking-module .msg-err{background:#fff1ee;color:#b6402a;border-left:4px solid var(--coral);}

/* BOOKING PANEL under the calendar */
#booking-module .bm-book{max-width:760px;margin:0 auto;background:var(--card);border:1px solid var(--border);border-radius:20px;padding:30px;box-shadow:0 2px 12px rgba(80,50,20,.05);}
#booking-module .bm-book-title{font-size:24px;font-weight:bold;text-align:center;margin-bottom:20px;}
#booking-module .steps{display:flex;align-items:center;margin-bottom:26px;}
#booking-module .step-dot{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:bold;color:#a99f95;white-space:nowrap;}
#booking-module .step-dot.active{color:var(--coral);}
#booking-module .step-dot.done{color:var(--ocean);}
#booking-module .step-num{width:30px;height:30px;border-radius:50%;background:#e9e1d7;color:var(--ink-soft);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:bold;flex:0 0 auto;}
#booking-module .step-dot.active .step-num{background:var(--coral);color:#fff;}
#booking-module .step-dot.done .step-num{background:var(--ocean);color:#fff;}
#booking-module .step-sep{flex:1;height:2px;background:var(--border);margin:0 12px;}
#booking-module .no-sel{font-size:17px;color:var(--ink-soft);text-align:center;padding:20px 12px;background:var(--sand);border:1px dashed #d9cdbf;border-radius:14px;}
#booking-module .sel-box{background:var(--sand);border:1px solid var(--border);border-radius:14px;padding:16px 20px;margin-bottom:16px;}
#booking-module .sel-box-lbl{font-size:13px;font-weight:bold;letter-spacing:1.5px;text-transform:uppercase;color:var(--coral);margin-bottom:8px;}
#booking-module .sel-row{display:flex;justify-content:space-between;gap:16px;font-size:16px;padding:4px 0;}
#booking-module .sel-row .sl{color:var(--ink-soft);}
#booking-module .sel-row.tot{border-top:1px solid var(--border);margin-top:8px;padding-top:10px;font-weight:bold;}
#booking-module .sel-row.tot .sv{color:var(--coral);font-size:24px;}

/* FORM */
#booking-module .fgrp{margin-bottom:14px;}
#booking-module .fgrp label{display:block;font-size:14px;font-weight:bold;color:var(--ink);margin-bottom:6px;}
#booking-module .fgrp input,#booking-module .fgrp select{width:100%;min-height:48px;padding:12px 14px;font-family:var(--font);font-size:16px;color:var(--ink);background:#fff;border:1px solid #d9cdbf;border-radius:10px;}
#booking-module .fgrp input:focus,#booking-module .fgrp select:focus{outline:none;border-color:var(--coral);box-shadow:0 0 0 3px rgba(238,119,85,.18);}
#booking-module .terms-row{display:flex;align-items:flex-start;gap:10px;margin:6px 0 16px;font-size:14px;line-height:1.5;color:var(--ink-soft);}
#booking-module .terms-row input{margin-top:3px;width:20px;height:20px;flex:0 0 auto;cursor:pointer;accent-color:var(--coral);}
#booking-module .terms-row a{color:var(--coral);}
#booking-module .pay-choice{margin:6px 0 16px;display:grid;gap:10px;}
#booking-module .pay-opt{display:flex;align-items:flex-start;gap:12px;border:2px solid var(--border);border-radius:12px;padding:14px 16px;cursor:pointer;background:#fff;transition:border-color .15s,background .15s;}
#booking-module .pay-opt:hover{border-color:var(--coral-light);}
#booking-module .pay-opt:has(input:checked){border-color:var(--coral);background:#fff8f4;}
#booking-module .pay-opt input{margin-top:4px;width:18px;height:18px;flex:0 0 auto;cursor:pointer;accent-color:var(--coral);}
#booking-module .pay-opt small{color:var(--ink-soft);font-size:14px;}
#booking-module .pay-opt.disabled{opacity:.55;cursor:not-allowed;}
#booking-module .pay-opt .pay-logo{margin-left:auto;align-self:center;height:28px;width:auto;flex:0 0 auto;}
@media(max-width:480px){#booking-module .pay-opt .pay-logo{height:24px;}}
#booking-module #payment-element{border:1px solid var(--border);border-radius:12px;padding:14px;background:#fff;margin-bottom:14px;}
#booking-module #paypal-buttons{margin-bottom:14px;}

/* BUTTONS */
#booking-module .btn{display:block;width:100%;min-height:52px;padding:14px 18px;margin-top:10px;border:none;border-radius:12px;font-family:var(--font);font-size:17px;font-weight:bold;text-align:center;cursor:pointer;transition:background .15s,border-color .15s;}
#booking-module .btn-coral{background:var(--coral);color:#fff;box-shadow:0 4px 12px rgba(238,119,85,.3);}
#booking-module .btn-coral:hover{background:var(--coral-dark);}
#booking-module .btn-coral:disabled{background:#cfc6bb;box-shadow:none;cursor:not-allowed;}
#booking-module .btn-ghost{background:transparent;color:var(--coral-dark);border:2px solid var(--border);}
#booking-module .btn-ghost:hover{border-color:var(--coral);}
#booking-module .btn:focus-visible{outline:3px solid var(--ocean);outline-offset:2px;}

/* SUCCESS SCREENS */
#booking-module .booking-success{display:none;text-align:center;padding:48px 28px;max-width:560px;margin:0 auto;background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:0 2px 12px rgba(80,50,20,.05);}
#booking-module .booking-success.visible{display:block;}
#booking-module .success-icon{width:64px;height:64px;margin:0 auto 18px;background:var(--coral);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;}
#booking-module .booking-success h2{font-size:26px;margin-bottom:14px;}
#booking-module .booking-success p{font-size:16px;color:var(--ink-soft);line-height:1.8;margin-bottom:10px;}
#booking-module .booking-success a{color:var(--coral);}
#booking-module .bank-box{text-align:left;max-width:440px;margin:18px auto;}
#booking-module .bank-box .sv{font-weight:bold;}

/* LOADING */
#booking-module .loading{position:fixed;inset:0;background:rgba(251,246,239,.88);display:none;flex-direction:column;gap:12px;align-items:center;justify-content:center;z-index:9999;}
#booking-module .loading.on{display:flex;}
#booking-module .spinner{width:36px;height:36px;border:4px solid var(--border);border-top-color:var(--coral);border-radius:50%;animation:bmspin .8s linear infinite;}
#booking-module .loading p{font-size:16px;color:var(--ink-soft);}
@keyframes bmspin{to{transform:rotate(360deg);}}

/* PHONES AND SMALL TABLETS */
@media(max-width:760px){
  #booking-module{padding:36px 14px 48px;}
  #booking-module .bm-intro h2{font-size:26px;}
  #booking-module .bm-units{grid-template-columns:1fr;gap:14px;}
  #booking-module .property-tab{display:flex;align-items:stretch;}
  #booking-module .unit-img{flex:0 0 38%;aspect-ratio:auto;min-height:112px;}
  #booking-module .unit-body{flex:1;padding:12px 14px;}
  #booking-module .unit-name{font-size:19px;}
  #booking-module .bm-info{grid-template-columns:1fr;gap:20px;padding:18px;}
  #booking-module .bm-cal{padding:22px 14px 20px;}
  #booking-module .cal-header h2{font-size:23px;}
  #booking-module .cal-months{grid-template-columns:minmax(0,1fr);gap:26px;}
  #booking-module .bm-book{padding:22px 16px;}
  #booking-module .step-dot{font-size:14px;}
  #booking-module .step-sep{margin:0 8px;}
}
@media (prefers-reduced-motion:reduce){#booking-module *{transition:none !important;}}

