@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

:root {
  --brand:       #1b3d6e;
  --brand-lt:    #2755a0;
  --brand-dim:   #e8eef8;
  --accent:      #e8960c;
  --accent-lt:   #f5b82e;
  --accent-dim:  #fff8e8;
  --danger:      #c0392b;
  --danger-dim:  #fff0ee;
  --success:     #1a7a3c;
  --success-dim: #eaf7ef;
  --bg:          #f4f6fb;
  --surface:     #ffffff;
  --border:      #e2e6f0;
  --border-lt:   #f0f2f8;
  --text:        #1e2230;
  --text-muted:  #6b7490;
  --room-bg:     #edf2ff;
  --room-col:    #1b3d6e;
  --extra-bg:    #eafaf2;
  --extra-col:   #1a7a3c;
  --kids-bg:     #fef0f0;
  --kids-col:    #b33026;
  --food-bg:     #fff7ee;
  --food-col:    #b05c0a;
  --sp-bg:       #fffbf0;
  --sp-col:      #7a4800;
  --radius:      12px;
  --radius-sm:   8px;
  --shadow:      0 2px 16px rgba(27,61,110,.08);
  --shadow-md:   0 4px 24px rgba(27,61,110,.12);
  --shadow-lg:   0 8px 40px rgba(27,61,110,.16);
}

*, *::before, *::after { box-sizing: border-box; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  margin: 0;
  -webkit-font-smoothing: antialiased;
}

#date-toast {
  display:none; position:fixed; top:16px; left:50%; transform:translateX(-50%);
  background:var(--danger); color:#fff; padding:11px 22px; border-radius:10px;
  font-size:13px; font-weight:700; z-index:9999; box-shadow:var(--shadow-lg);
  animation:toastIn .25s ease; white-space:nowrap; letter-spacing:.2px;
}
@keyframes toastIn { from{opacity:0;top:0} to{opacity:1;top:16px} }

/* ── STICKY PAY BAR ── */
#sticky-pay-bar {
  position:fixed; bottom:0; left:0; right:0;
  background:linear-gradient(135deg, var(--brand) 0%, var(--brand-lt) 100%);
  color:#fff;
  box-shadow:0 -4px 24px rgba(27,61,110,.28);
  z-index:1000; transform:translateY(100%);
  transition:transform .3s cubic-bezier(.4,0,.2,1);
  backdrop-filter:blur(4px);
}
#sticky-pay-bar.visible { transform:translateY(0); }

/* top info row */
.spb-info {
  display:flex; align-items:center; gap:0;
  padding:5px max(14px, calc(50% - 380px)) 4px;
  border-bottom:1px solid rgba(255,255,255,.12);
  flex-wrap:nowrap; overflow:hidden;
}
.spb-pill {
  background:rgba(255,255,255,.15); border-radius:20px;
  padding:2px 9px; font-size:10px; font-weight:700;
  white-space:nowrap; flex-shrink:0;
}
.spb-pill + .spb-pill { margin-left:5px; }
.spb-pill.coupon-pill { background:rgba(255,220,100,.25); color:#ffe680; }
.spb-sep { opacity:.3; margin:0 5px; font-size:10px; flex-shrink:0; }
.spb-spacer { flex:1; }

/* bottom action row */
.spb-main {
  display:flex; align-items:center; justify-content:space-between;
  gap:10px; padding:8px max(14px, calc(50% - 380px)) 10px;
}
.spb-left { display:flex; flex-direction:column; flex-shrink:0; }
.spb-label { font-size:9px; opacity:.7; letter-spacing:.8px; text-transform:uppercase; margin-bottom:1px; }
.spb-amount { font-size:21px; font-weight:900; letter-spacing:-.5px; line-height:1.1; }
.spb-right { display:flex; align-items:center; gap:7px; }
.spb-coupon-in {
  width:100px; padding:5px 8px;
  border:1.5px solid rgba(255,255,255,.3);
  border-radius:var(--radius-sm); background:rgba(255,255,255,.12);
  color:#fff; font-size:11px; font-family:inherit; outline:none;
  transition:border-color .2s;
}
.spb-coupon-in::placeholder { color:rgba(255,255,255,.45); font-size:10px; }
.spb-coupon-in:focus { border-color:rgba(255,255,255,.7); background:rgba(255,255,255,.18); }
.spb-coupon-apply {
  padding:6px 11px; background:rgba(255,255,255,.15); color:#fff;
  border:1.5px solid rgba(255,255,255,.3); border-radius:var(--radius-sm);
  font-size:11px; font-weight:700; cursor:pointer; white-space:nowrap;
  font-family:inherit; transition:background .15s; flex-shrink:0;
}
.spb-coupon-apply:hover { background:rgba(255,255,255,.28); }
#sticky-pay-bar .spb-btn {
  padding:9px 20px; background:var(--accent); color:#111;
  border:none; border-radius:var(--radius-sm); font-size:14px; font-weight:800;
  cursor:pointer; white-space:nowrap; flex-shrink:0;
  box-shadow:0 2px 10px rgba(232,150,12,.45); transition:all .15s;
  letter-spacing:.2px;
}
#sticky-pay-bar .spb-btn:hover { background:var(--accent-lt); transform:translateY(-1px); }
.spb-coupon-msg { display:none; font-size:10px; padding:0 max(14px,calc(50% - 380px)) 4px; }
.spb-coupon-msg.ok  { display:block; color:#a5f3b8; }
.spb-coupon-msg.err { display:block; color:#fca5a5; }
@media(max-width:480px){
  .spb-coupon-in, .spb-coupon-apply { display:none; }
  .spb-amount { font-size:18px; }
  #sticky-pay-bar .spb-btn { padding:8px 14px; font-size:13px; }
  .spb-main { padding:7px 12px 9px; }
  .spb-info { padding:4px 12px 3px; }
}

.date-section {
  background:var(--surface); padding:18px; border-radius:var(--radius);
  margin-bottom:16px; border:1px solid var(--border); box-shadow:var(--shadow);
}
.date-section h3 {
  margin:0 0 14px; color:var(--brand); font-size:15px; font-weight:800;
  display:flex; align-items:center; gap:6px;
}
.date-row { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:10px; }
.date-field { flex:1; min-width:140px; }
.date-field label {
  display:block; font-weight:600; margin-bottom:5px; font-size:11px;
  color:var(--text-muted); text-transform:uppercase; letter-spacing:.5px;
}
.date-field input, .date-field select {
  width:100%; padding:9px 12px; border:1.5px solid var(--border);
  border-radius:var(--radius-sm); font-size:14px; background:#fff;
  transition:border-color .2s, box-shadow .2s; font-family:inherit;
}
.date-field input:focus, .date-field select:focus {
  outline:none; border-color:var(--brand-lt);
  box-shadow:0 0 0 3px rgba(39,85,160,.12);
}
.readonly-field { background:#f8f9fb !important; cursor:not-allowed; color:var(--text-muted); }
.date-info {
  padding:9px 13px; background:var(--success-dim); border:1px solid #a5d6b8;
  border-radius:var(--radius-sm); font-size:12px; color:var(--success);
  margin-top:8px; display:none; font-weight:600; letter-spacing:.1px;
}
.date-info.show { display:block; }
.date-error { color:var(--danger); font-weight:700; }
#pricingLegend { display:none; }

.booking-mode-bar {
  display:inline-flex; gap:0; margin-bottom:10px; border-radius:var(--radius-sm);
  overflow:hidden; border:1.5px solid var(--brand);
}
.bmode-btn {
  padding:7px 16px; font-size:12px; font-weight:700; border:none;
  cursor:pointer; background:#f0f5ff; color:var(--brand); transition:background .15s;
  font-family:inherit;
}
.bmode-btn.active { background:var(--brand); color:#fff; }
.bmode-btn:hover:not(.active) { background:var(--brand-dim); }
.bmode-info {
  font-size:11px; color:var(--text-muted); margin-bottom:8px; padding:6px 11px;
  background:#f8f9fb; border-radius:6px; border-left:3px solid var(--brand);
}

.model-guide {
  padding:8px 13px; background:var(--success-dim); border-left:3px solid var(--success);
  border-radius:var(--radius-sm); font-size:11px; margin:4px 0 10px; line-height:1.8;
}
.model-guide strong { color:var(--success); }

.room-split { display:flex; flex-wrap:wrap; border-bottom:1px solid var(--border); }
.room-media-col { flex:0 0 58.333%; max-width:58.333%; padding:10px 10px 10px 12px; box-sizing:border-box; }
.room-info-col { flex:0 0 41.667%; max-width:41.667%; padding:14px 16px; background:#fafbff; border-left:1px solid var(--border); box-sizing:border-box; display:flex; flex-direction:column; gap:11px; }
.room-hero { position:relative; overflow:hidden; background:#111; border-radius:var(--radius-sm); }
.room-hero .carousel { position:relative; }
.room-hero .carousel-inner { position:relative; overflow:hidden; width:100%; }
.room-hero .carousel-inner > .item { position:relative; display:none; transition:transform .35s ease-in-out; }
.room-hero .carousel-inner > .active,
.room-hero .carousel-inner > .next,
.room-hero .carousel-inner > .prev { display:block; }
.room-hero .carousel-inner > .active { position:relative; }
.room-hero .carousel-inner > .next,
.room-hero .carousel-inner > .prev { position:absolute; top:0; width:100%; }
.room-hero .item img { width:100%; height:220px; object-fit:cover; display:block; cursor:zoom-in; transition:opacity .18s; border-radius:var(--radius-sm); }
.room-hero .item img:hover { opacity:.9; }
.room-hero .carousel-control { width:30px; background:rgba(0,0,0,.4); transition:background .15s; opacity:1; border-radius:0; }
.room-hero .carousel-control:hover { background:rgba(0,0,0,.7); }
.room-hero .carousel-control .glyphicon { font-size:13px; }
.room-hero-badges { position:absolute; bottom:8px; right:8px; display:flex; gap:5px; }
.room-hero-badges span { background:rgba(0,0,0,.58); color:#fff; font-size:11px; font-weight:700; padding:2px 9px; border-radius:20px;  }
.room-hero-hint { position:absolute; bottom:8px; left:8px; background:rgba(0,0,0,.5); color:#fff; font-size:10px; padding:2px 8px; border-radius:20px;  }
.room-thumb-strip { display:flex; gap:4px; padding:6px 0 2px; overflow-x:auto; scrollbar-width:none; }
.room-thumb-strip::-webkit-scrollbar { display:none; }
.room-thumb { width:50px; height:36px; flex-shrink:0; border-radius:4px; overflow:hidden; cursor:pointer; border:2px solid transparent; transition:border-color .15s, transform .12s; }
.room-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.room-thumb:hover { border-color:var(--brand-lt); transform:scale(1.06); }
.room-thumb.active { border-color:var(--brand); box-shadow:0 0 0 1px var(--brand); }
.room-no-img { height:160px; display:flex; align-items:center; justify-content:center; background:#f0f4ff; color:var(--text-muted); font-size:13px; border-radius:var(--radius-sm); }
.room-info-name { font-size:13px; font-weight:800; color:var(--brand); margin:0; }
.room-info-avail { font-size:12px; color:var(--text-muted); margin-top:2px; }
.room-info-section { font-size:10px; font-weight:700; color:var(--text-muted); text-transform:uppercase; letter-spacing:.6px; margin-bottom:5px; }
.room-amenities-wrap { display:flex; flex-wrap:wrap; gap:4px; }
.room-amenity { font-size:11px; background:var(--brand-dim); color:var(--brand); border-radius:20px; padding:2px 9px; font-weight:600; white-space:nowrap; }
.room-checkin-info { font-size:12px; color:var(--text); background:var(--success-dim); border:1px solid #a5d6b8; border-radius:var(--radius-sm); padding:6px 10px; line-height:1.7; }
.room-guide-wrap { margin-top:auto; padding-top:4px; border-top:1px solid var(--border-lt); }
.room-guide-wrap details summary { font-size:12px; font-weight:700; color:var(--brand); cursor:pointer; list-style:none; display:flex; align-items:center; gap:5px; }
.room-guide-wrap .model-guide { margin-top:6px; font-size:11px; max-height:140px; overflow-y:auto; }
@media(max-width:767px){
  .room-split { flex-direction:column; }
  .room-media-col { flex:none; max-width:100%; padding:8px 10px; }
  .room-info-col { flex:none; max-width:100%; border-left:none; border-top:1px solid var(--border); padding:10px 12px; }
  .room-hero .item img { height:185px; }
  .room-thumb { width:44px; height:32px; }
}

.room-lightbox { display:none; position:fixed; inset:0; background:rgba(0,0,0,.88); z-index:9999; align-items:center; justify-content:center; flex-direction:column; }
.room-lightbox.active { display:flex; }
.room-lightbox img { max-width:92vw; max-height:78vh; border-radius:var(--radius-sm); object-fit:contain; box-shadow:0 8px 40px rgba(0,0,0,.5); }
.room-lightbox-name { color:#fff; font-size:13px; font-weight:600; margin-top:10px; opacity:.8; }
.room-lightbox-counter { color:#aaa; font-size:12px; margin-top:4px; }
.room-lightbox-close { position:absolute; top:16px; right:20px; color:#fff; font-size:28px; cursor:pointer; line-height:1; opacity:.8; }
.room-lightbox-close:hover { opacity:1; }
.room-lightbox-prev,
.room-lightbox-next { position:absolute; top:50%; transform:translateY(-50%); color:#fff; font-size:32px; cursor:pointer; padding:10px 16px; opacity:.7; user-select:none; }
.room-lightbox-prev:hover, .room-lightbox-next:hover { opacity:1; }
.room-lightbox-prev { left:10px; }
.room-lightbox-next { right:10px; }
.room-amenities { display:flex; flex-wrap:wrap; gap:5px; padding:6px 14px 10px; }


.adjustment-notice {
  padding:7px 12px; background:#e3f2fd; border:1px solid #90caf9;
  border-radius:var(--radius-sm); font-size:11px; color:#0c5a96;
  margin:6px 0; display:none; animation:slideIn .3s ease;
}
.adjustment-notice.show { display:block; }
@keyframes slideIn { from{opacity:0;transform:translateY(-5px)} to{opacity:1;transform:translateY(0)} }
.availability-info {
  padding:8px 12px; background:#e7f3ff; border:1px solid #90caf9;
  border-radius:var(--radius-sm); font-size:12px; color:#0c5a96; margin-top:6px;
}
.availability-info.warning { background:#fff8e1; border-color:#ffc107; color:#856404; }

.model-block {
  background:var(--surface); border-radius:var(--radius);
  box-shadow:var(--shadow-md); margin-bottom:18px;
  border:1px solid var(--border); overflow:hidden;
  transition:box-shadow .2s;
}
.model-block:hover { box-shadow:var(--shadow-lg); }

.cat-header {
  background:linear-gradient(135deg, var(--brand) 0%, var(--brand-lt) 100%);
  color:#fff; padding:13px 18px;
  display:flex; flex-wrap:wrap; align-items:center; gap:8px; justify-content:space-between;
}
.cat-header-name { font-size:15px; font-weight:800; letter-spacing:.1px; }
.cat-header-meta { font-size:11px; opacity:.8; }
.cat-header-checkin {
  font-size:11px; background:rgba(255,255,255,.18); padding:3px 10px;
  border-radius:20px; font-weight:600;
}

.pkg-table-wrap { overflow-x:auto; clear:both; }
table.pkg-table { width:100%; border-collapse:collapse; margin:0; }
table.pkg-table th {
  background:#f5f7fd; color:var(--brand); font-size:11px; font-weight:700;
  padding:10px 14px; border-bottom:2px solid var(--border); text-align:left;
  text-transform:uppercase; letter-spacing:.5px;
}
table.pkg-table td {
  padding:11px 14px; border-bottom:1px solid var(--border-lt);
  font-size:13px; vertical-align:middle;
}
table.pkg-table tr:last-child td { border-bottom:none; }
table.pkg-table tr.pkg-row { transition:background .12s; }
table.pkg-table tr.pkg-row:hover td { background:#f8faff; }

@media (max-width: 767px) {

  .pkg-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0;
    border-radius: 0;
  }

  table.pkg-table           { min-width: 360px; font-size: 12px; }
  table.pkg-table thead     { display: table-header-group; }
  table.pkg-table tbody     { display: table-row-group; }
  table.pkg-table tr        { display: table-row; }
  table.pkg-table th,
  table.pkg-table td        { display: table-cell; }

  table.pkg-table th {
    font-size: 10px;
    padding: 8px 7px;
    letter-spacing: .3px;
    white-space: nowrap;
    background: var(--brand);
    color: rgba(255,255,255,.85);
    border-bottom: 2px solid var(--brand-lt);
  }

  table.pkg-table td {
    padding: 9px 7px;
    vertical-align: middle;
    border-bottom: 1px solid var(--border-lt);
    font-size: 12px;
  }

  table.pkg-table td:nth-child(1) {
    min-width: 100px;
    max-width: 130px;
    word-break: break-word;
  }
  table.pkg-table td:nth-child(1) p { font-size: 12px; line-height: 1.3; }
  table.pkg-table td:nth-child(1) small { font-size: 10px; line-height: 1.3; display: block; margin-top: 2px; }

  table.pkg-table td:nth-child(2) {
    white-space: nowrap;
    min-width: 58px;
  }
  table.pkg-table td:nth-child(2) p { font-size: 12px; margin: 0; }
  table.pkg-table td:nth-child(2) p strike { font-size: 10px; }

  table.pkg-table td:nth-child(3) { min-width: 62px; }
  table.pkg-table td:nth-child(3)::before { display: none; }
  .type-badge   { font-size: 10px; padding: 2px 6px; }
  .age-badge    { font-size: 9px;  padding: 1px 5px; margin-left: 0; display: inline-block; }
  .fscope-label { font-size: 9px; margin-top: 2px; }
  .room-count-label { font-size: 10px; margin-top: 3px; }
  .room-count-box   { font-size: 11px; min-width: 22px; height: 18px; line-height: 18px; }
  .cap-slots-text   { font-size: 9px; }

  table.pkg-table td:nth-child(4) { min-width: 110px; }
  .qty-btn  { width: 28px; height: 28px; font-size: 15px; border-radius: 6px; }
  .qty-box  { width: 34px; height: 28px; font-size: 13px; border-radius: 6px; }
  .qty-wrap { gap: 5px; }
  .adults-label { font-size: 10px; margin-top: 3px; }
  .adults-box   { width: 34px; height: 22px; font-size: 11px; }
  .nights-label { font-size: 9px; }
  .price-breakdown { font-size: 9px; line-height: 1.6; }

  table.pkg-table td:nth-child(5) { min-width: 60px; }
  .amt-input { max-width:72px; font-size:12px; padding:3px 5px; }

  table.pkg-table td::before { display: none; }

  table.pkg-table tr.pkg-row td:first-child  { border-left: 3px solid transparent; }
  table.pkg-table tr[data-rtyp="1"] td:first-child,
  table.pkg-table tr.pkg-row:has(.badge-room) td:first-child { border-left-color: var(--brand-lt); }

  table.pkg-table tr.sp-row td:first-child { border-left: 3px solid var(--accent); }
  table.pkg-table tr.sp-row td { background: var(--sp-bg); font-size: 12px; }

  table.pkg-table tr.sum-row td,
  table.pkg-table tr.sum-row-kids td,
  table.pkg-table tr.sum-row-food td,
  table.pkg-table tr.cat-subtotal-row td {
    font-size: 11px;
    padding: 7px 7px;
  }

  table.pkg-table tr.sum-row td[colspan],
  table.pkg-table tr.sum-row-kids td[colspan],
  table.pkg-table tr.sum-row-food td[colspan] {
    font-size: 11px;
  }

  table.pkg-table tr.cat-subtotal-row td {
    font-size: 12px;
    font-weight: 800;
    background: var(--brand-dim) !important;
    color: var(--brand);
  }

  .binput01,
  .binput-kids { width: 52px; font-size: 12px; padding: 3px 5px; }

  table.pkg-table tr.sum-row-kids td small { font-size: 9px; }
}

@media (max-width: 399px) {
  table.pkg-table           { min-width: 340px; }
  table.pkg-table td        { padding: 7px 5px; }
  .qty-btn  { width: 26px; height: 26px; font-size: 14px; }
  .qty-box  { width: 30px; height: 26px; font-size: 12px; }
  .amt-input { max-width:60px; font-size:11px; padding:2px 4px; }
  table.pkg-table td:nth-child(1) { max-width: 110px; }
}

.qty-wrap { display:flex; align-items:center; gap:7px; }
.qty-btn {
  width:32px; height:32px; background:var(--brand-lt); color:#fff;
  border:none; border-radius:var(--radius-sm); font-size:17px; line-height:1;
  cursor:pointer; font-weight:700; transition:all .15s; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 1px 4px rgba(27,61,110,.2);
}
.qty-btn:hover:not(:disabled) { background:var(--brand); transform:scale(1.07); }
.qty-btn:disabled { background:#dde2ec; color:#aab0c0; cursor:not-allowed; box-shadow:none; }
.qty-btn.minus-btn { background:#edf0f7; color:var(--text); box-shadow:none; }
.qty-btn.minus-btn:hover:not(:disabled) { background:#dde3f0; transform:scale(1.07); }
.qty-box {
  width:40px; height:32px; text-align:center; font-weight:700;
  border:1.5px solid var(--border); border-radius:var(--radius-sm);
  font-size:14px; background:#fff; color:var(--text); font-family:inherit;
}
.adults-label { font-size:11px; color:var(--text-muted); margin-top:4px; }
.adults-box {
  width:40px; height:26px; text-align:center; border:1px solid #a5d6b8;
  border-radius:6px; font-size:12px; background:var(--extra-bg);
  color:var(--success); font-weight:700; font-family:inherit;
}
.nights-label { font-size:10px; color:var(--text-muted); margin-top:2px; }
.price-breakdown { font-size:10px; color:var(--text-muted); margin-top:4px; line-height:1.7; }
.price-breakdown .pd-wknd   { color:var(--food-col); font-weight:600; }
.price-breakdown .pd-special{ color:#7b1fa2; font-weight:600; }

.room-count-wrap { display:flex; flex-direction:column; align-items:flex-start; gap:3px; }
.type-badge {
  display:inline-block; padding:2px 9px; border-radius:20px;
  font-size:11px; font-weight:700; letter-spacing:.2px;
}
.badge-room    { background:var(--room-bg);  color:var(--room-col);  border:1px solid #c8d8f5; }
.badge-extra   { background:var(--extra-bg); color:var(--extra-col); border:1px solid #a5d6b8; }
.badge-kids    { background:var(--kids-bg);  color:var(--kids-col);  border:1px solid #f5b8b8; }
.badge-food    { background:var(--food-bg);  color:var(--food-col);  border:1px solid #f5d0a8; }
.badge-special { background:var(--sp-bg); color:var(--sp-col); border:1px solid #e8a020; }
.badge-gstincl { background:#e8f5e9; color:#1a6b35; border:1px solid #81c784; font-size:10px; padding:1px 8px; }
.fscope-label  { font-size:10px; color:var(--text-muted); margin-top:0; }
.room-count-label { font-size:11px; color:var(--text-muted); margin-top:0; }
.room-count-box {
  display:inline-block; min-width:26px; height:20px; text-align:center;
  border:1px solid #a5d6b8; border-radius:5px; font-size:12px;
  background:var(--extra-bg); color:var(--success); font-weight:700;
  line-height:20px; padding:0 4px;
}

.amt-input {
  width:auto; min-width:0; max-width:90px; padding:4px 8px;
  border:1.5px solid #a5d6b8; border-radius:var(--radius-sm);
  font-size:13px; text-align:right; background:var(--extra-bg);
  color:var(--success); font-weight:800; font-family:inherit;
  display:block; margin-left:auto;
}

.sum-row td          { background:#f0f4ff !important; color:var(--brand); font-weight:700; font-size:12px; border-top:2px solid var(--brand-dim) !important; }
.sum-row td:first-child { border-left:3px solid var(--brand-lt) !important; }
.sum-row-kids td     { background:#fdf0f5 !important; color:var(--kids-col); font-weight:700; font-size:12px; border-top:1px solid #f5c0d0 !important; }
.sum-row-kids td:first-child { border-left:3px solid var(--kids-col) !important; }
.sum-row-food td     { background:#fff4ec !important; color:var(--food-col); font-weight:700; font-size:12px; border-top:1px solid #f5d0a8 !important; }
.sum-row-food td:first-child { border-left:3px solid var(--food-col) !important; }
.cat-subtotal-row td { background:var(--brand) !important; color:#fff !important; font-weight:800; font-size:13px; padding:10px 14px; }
.binput01 {
  width:70px; padding:4px 6px; border:1.5px solid var(--border);
  border-radius:var(--radius-sm); font-size:13px; text-align:center;
  background:#fff; font-family:inherit;
}
.binput02 { background:var(--room-bg) !important; color:var(--brand) !important; font-weight:700; }
.binput-kids {
  background:var(--kids-bg) !important; color:var(--kids-col) !important; font-weight:700;
  width:100px; padding:5px 8px; border:1.5px solid var(--border);
  border-radius:var(--radius-sm); font-size:13px; text-align:center; font-family:inherit;
}

.sp-row { background:var(--sp-bg) !important; }
.sp-row td { border-bottom:1px solid #fde8b5 !important; }
table.pkg-table tr.sp-row td:first-child { border-left:3px solid var(--accent); }

.cap-bar-wrap { margin-top:5px; font-size:11px; color:var(--text-muted); }
.cap-bar { height:5px; background:#e8ecf5; border-radius:3px; margin-top:3px; overflow:hidden; }
.cap-bar-fill { height:100%; background:var(--success); border-radius:3px; transition:width .35s ease; }
.cap-bar-fill.warn { background:var(--accent); }
.cap-bar-fill.full { background:var(--danger); }
.cap-slots-text { font-size:10px; margin-top:3px; display:block; }

.flatpickr-day.past-date     { background:#f0f2f6 !important; color:#bbc0cc !important; cursor:not-allowed; }
.flatpickr-day.today-blocked { background:#2c2c2c !important; color:#888 !important; cursor:not-allowed !important; text-decoration:line-through; }
.flatpickr-day.today-blocked:hover { background:#2c2c2c !important; }
.flatpickr-day.reserved-date {
  background:var(--danger-dim) !important; color:var(--danger) !important;
  cursor:not-allowed; position:relative;
}
.flatpickr-day.reserved-date::after { content:"✖"; font-size:8px; position:absolute; top:1px; right:2px; color:var(--danger); }
.flatpickr-day.in-range-selected { background:#d0edd8 !important; color:var(--success) !important; }
.flatpickr-day.special-date {
  background:var(--accent-dim) !important; color:var(--accent) !important;
  font-weight:700; position:relative;
}
.flatpickr-day.special-date::after { content:"★"; font-size:8px; position:absolute; top:1px; right:2px; color:var(--accent); }
.flatpickr-day.cat-blocked-date {
  background:repeating-linear-gradient(45deg,transparent,transparent 3px,rgba(255,165,0,.12) 3px,rgba(255,165,0,.12) 6px) !important;
  border:1px solid #f5a623 !important; color:#c07a00 !important;
}

.ov-card {
  background:var(--surface); border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow-lg); margin-top:22px; border:1px solid var(--border);
  max-width:680px; margin-left:auto; margin-right:auto;
}
.ov-hdr {
  background:linear-gradient(135deg,var(--brand) 0%,var(--brand-lt) 100%);
  color:#fff; padding:15px 20px;
  display:flex; align-items:center; justify-content:space-between;
  font-size:15px; font-weight:800; letter-spacing:.1px;
}
.ov-status {
  font-size:11px; font-weight:600; padding:3px 11px;
  border-radius:20px; background:rgba(255,255,255,.18);
}
.ov-dates {
  display:flex; align-items:center; gap:12px;
  padding:13px 20px 11px; background:var(--brand-dim);
  border-bottom:1px solid var(--border); flex-wrap:wrap;
}
.ov-date-col { flex:1; min-width:70px; }
.ov-dlbl { font-size:9px; text-transform:uppercase; letter-spacing:1px; color:var(--text-muted); margin-bottom:3px; }
.ov-dval { font-size:14px; font-weight:800; color:var(--brand); }
.ov-darr { font-size:18px; color:#c8d0e4; }
#ov-breakdown { padding:2px 20px 0; }
.ov-cat { padding:10px 0 6px; border-bottom:1px dashed var(--border-lt); }
.ov-cat:last-child { border-bottom:none; }
.ov-cat-title {
  font-size:12px; font-weight:800; color:var(--text); margin-bottom:5px;
  display:flex; align-items:center; gap:6px; flex-wrap:wrap;
}
.ov-tag { display:inline-block; font-size:10px; padding:1px 8px; border-radius:10px; font-weight:700; }
.ov-tag-hr   { background:var(--food-bg);  color:var(--food-col); }
.ov-tag-slot { background:var(--extra-bg); color:var(--success); }
.ov-tag-warn { background:#fff8e1; color:#856404; }
.ov-row { display:flex; justify-content:space-between; align-items:baseline; font-size:12px; color:var(--text-muted); padding:2px 0; }
.ov-row-sub { font-size:11px; color:#bbb; padding-left:10px; }
.ov-row-amt { font-weight:700; color:var(--success); white-space:nowrap; }
.ov-row-kids .ov-row-amt { color:var(--kids-col); }
.ov-row-food .ov-row-amt { color:var(--food-col); }
.ov-subtotal { display:flex; justify-content:space-between; font-size:12px; font-weight:800; color:var(--brand); padding:5px 0 0; margin-top:4px; border-top:1px solid var(--border-lt); }
.ov-empty { padding:20px; text-align:center; color:#c0c6d6; font-size:13px; }
.ov-pills {
  display:flex; justify-content:space-around; padding:11px 10px;
  background:var(--brand-dim); border-top:1px solid var(--border);
  border-bottom:1px solid var(--border); flex-wrap:wrap; gap:4px;
}
.ov-pill { text-align:center; padding:4px 14px; }
.ov-pill-n { display:block; font-size:26px; font-weight:900; color:var(--brand); line-height:1.1; }
.ov-pill-l { display:block; font-size:9px; text-transform:uppercase; letter-spacing:.8px; color:var(--text-muted); margin-top:1px; }
.ov-grand {
  display:flex; justify-content:space-between; align-items:center;
  padding:14px 20px 8px;
}
.ov-grand-lbl { font-size:13px; font-weight:600; color:var(--text-muted); }
.ov-grand-val { font-size:26px; font-weight:900; color:var(--brand); letter-spacing:-.5px; }
.ov-coupon { display:flex; gap:8px; padding:0 20px 12px; }
.ov-coupon-in {
  flex:1; padding:9px 13px; border:1.5px dashed var(--border);
  border-radius:var(--radius-sm); font-size:13px; background:#fffde7;
  outline:none; transition:border .2s, box-shadow .2s; font-family:inherit;
}
.ov-coupon-in:focus { border-color:var(--brand); border-style:solid; box-shadow:0 0 0 3px rgba(27,61,110,.1); }
.ov-coupon-btn {
  padding:9px 18px; background:var(--brand); color:#fff;
  border:none; border-radius:var(--radius-sm); font-size:13px; font-weight:700;
  cursor:pointer; transition:background .15s; font-family:inherit;
}
.ov-coupon-btn:hover { background:var(--brand-lt); }
.ov-bookbtn-wrap { padding:0 20px 14px; }
.ov-bookbtn {
  display:block; width:100%; padding:15px;
  background:linear-gradient(135deg,var(--accent) 0%,var(--accent-lt) 100%);
  color:#111; border:none; border-radius:var(--radius-sm); font-size:16px; font-weight:900;
  cursor:pointer; box-shadow:0 4px 18px rgba(232,150,12,.4); transition:all .2s;
  letter-spacing:.2px; font-family:inherit;
}
.ov-bookbtn:hover { transform:translateY(-2px); box-shadow:0 7px 26px rgba(232,150,12,.55); }
.jsfix099 { background:linear-gradient(135deg,var(--brand),var(--brand-lt)); color:#fff; padding:15px 20px; }

.ov-gst-block {
  padding:8px 20px 6px; background:#f9faff;
  border-top:1px solid var(--border); border-bottom:1px solid var(--border);
}
.ov-gst-row { display:flex; justify-content:space-between; font-size:12px; color:var(--text-muted); padding:3px 0; }
.ov-gst-row.gst-total {
  font-weight:800; color:var(--brand); font-size:14px;
  border-top:1px solid var(--border); margin-top:5px; padding-top:6px;
}
.ov-gst-note { font-size:10px; color:#b0b8cc; padding:3px 0 5px; text-align:right; }
.gst-exempt { color:var(--success); font-size:10px; margin-left:5px; font-weight:600; }

.age-badge {
  display:inline-block; font-size:10px; font-weight:600; padding:1px 8px;
  border-radius:20px; margin-left:0; letter-spacing:.2px; white-space:nowrap;
}
.age-adult  { background:#e3f2fd; color:#1565c0; border:1px solid #90caf9; }
.age-kids   { background:#fce4ec; color:#ad1457; border:1px solid #f48fb1; }
.age-infant { background:#e8f5e9; color:#2e7d32; border:1px solid #a5d6a7; }

.ov-partial-block {
  margin:10px 20px; padding:14px;
  background:linear-gradient(135deg,#f4f9ff 0%,#ebf4ff 100%);
  border:1px solid #b8d4f0; border-radius:var(--radius-sm);
}
.ov-partial-hdr {
  font-size:11px; font-weight:800; color:var(--brand); margin-bottom:11px;
  letter-spacing:.4px; text-transform:uppercase;
}
.ov-partial-row { display:flex; align-items:stretch; gap:10px; }
.ov-partial-col { flex:1; text-align:center; padding:11px 8px; border-radius:var(--radius-sm); }
.pay-now   { background:#fffbec; border:1.5px solid #ffd54f; }
.pay-later { background:#f0f8ff; border:1.5px solid #90caf9; }
.ov-partial-lbl {
  font-size:10px; font-weight:700; text-transform:uppercase;
  letter-spacing:.5px; color:var(--text-muted); margin-bottom:5px;
}
.ov-partial-amt { font-size:18px; font-weight:900; line-height:1.1; letter-spacing:-.3px; }
.pay-now .ov-partial-amt   { color:#c05000; }
.pay-later .ov-partial-amt { color:var(--brand); }
.ov-partial-sub { font-size:10px; color:var(--text-muted); margin-top:3px; }
.ov-partial-divider { font-size:20px; font-weight:700; color:#c8d0e4; flex-shrink:0; align-self:center; }
.ov-partial-note {
  font-size:10px; color:var(--success); font-weight:600; margin-top:10px;
  text-align:center; letter-spacing:.2px;
}

.joffer01 { padding-bottom:4px; }
body { padding-bottom: 72px; }
.ov-card { margin-bottom: 72px; }

#advance-notice-table { width:100%; border-collapse:collapse; margin-bottom:14px; }
#advance-notice-table td {
  background:linear-gradient(135deg,#2c2c2c 0%,#3a3a3a 100%);
  color:#fff1a5; padding:11px 16px; border-radius:var(--radius-sm); font-size:13px;
  box-shadow:var(--shadow);
}

.pay-options-card {
  background:var(--surface); border-radius:var(--radius);
  border:1.5px solid var(--border); box-shadow:var(--shadow);
  margin:14px 0 6px; overflow:hidden;
}
.pay-options-hdr {
  background:linear-gradient(135deg,var(--brand) 0%,var(--brand-lt) 100%);
  color:#fff; padding:10px 16px; font-size:13px; font-weight:800;
  letter-spacing:.2px;
}
.pay-options-list {
  margin:0; padding:12px 16px 12px 30px;
  font-size:13px; color:var(--text); line-height:1.7;
}
.pay-options-list > li { margin-bottom:6px; }
.pay-options-list > li:last-child { margin-bottom:0; }
.pay-options-list ul { margin:6px 0 4px; padding-left:18px; }
.pay-options-list ul li { margin-bottom:3px; font-size:12px; }
.pay-options-list strong { color:var(--brand); }
.pay-options-list p { margin:4px 0 0; }

@media (max-width: 480px) {
  .date-row { flex-wrap:nowrap; gap:5px; }
  .date-field { flex:1; min-width:0; }
  .date-field label { font-size:10px; letter-spacing:.2px; }
  .date-field input, .date-field select { padding:7px 6px; font-size:12px; }
  .date-section h3 { font-size:13px; margin-bottom:8px; }
  .ov-dval { font-size:13px; }
  .ov-grand-val { font-size:22px; }
  .ov-bookbtn { font-size:15px; }
  .booking-mode-bar { flex-wrap:wrap; width:100%; }
  .bmode-btn { flex:1; text-align:center; }
  .ov-partial-row { flex-direction:column; }
  .ov-partial-divider { transform:rotate(90deg); align-self:center; }
}
