/* ============================================================
   IBE Hotel Booking Engine v3 — Mobile-first Amadeus style
   ============================================================ */
:root{
  --primary:#1a3a5c;--secondary:#2a5a8c;--accent:#c9a84c;
  --nav-bg:#1a3a5c;--footer-bg:#0f1e2d;--btn-text:#fff;
  --primary-light:rgba(26,58,92,.07);
  --text:#1a1a2e;--muted:#666;--border:#dde3ea;
  --radius:3px;--shadow:0 2px 10px rgba(0,0,0,.09);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',Helvetica,'Segoe UI',Arial,sans-serif;background:#f3f4f7;color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;}
a{text-decoration:none;color:inherit;}img{max-width:100%;display:block;}button{font-family:inherit;}
/* Amadeus-style: square buttons, no radius */
.be-nav-btn,.be-search-btn,.be-select-btn,.be-checkout-btn,.be-mc-cta,
.be-mc-full-btn,.be-form-btn,.be-dp-apply,.be-dp-cancel,.co-pay-btn,
.be-add-room,.be-promo-btn,.addon-qty-btn{border-radius:0!important;}
/* Keep small UI elements slightly rounded */
.be-mc-icon,.be-member-avatar,.be-logo-icon{border-radius:50%!important;}
.badge,.be-tier-badge,.be-tag,.be-demand-badge,.be-mc-badge{border-radius:2px!important;}

/* NAV */
.be-nav{background:var(--nav-bg);height:56px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:200;box-shadow:0 2px 8px rgba(0,0,0,.25);}
.be-logo{display:flex;align-items:center;gap:10px;cursor:pointer;text-decoration:none;}
.be-logo-icon{width:34px;height:34px;border-radius:4px;background:var(--accent);color:#fff;font-size:16px;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.be-logo-img{height:32px;}
.be-hotel-name{color:#fff;font-size:15px;font-weight:700;letter-spacing:.2px;}
.be-nav-right{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.be-nav-link{font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:color .15s;text-decoration:none;letter-spacing:.01em;}
.be-nav-divider{width:1px;height:18px;background:var(--nav-border,rgba(255,255,255,.15));display:inline-block;flex-shrink:0;}
.be-nav-member-pill{display:flex;align-items:center;gap:7px;}
.be-nav-member-info{display:flex;align-items:center;}
.be-tier-pill{border-radius:2px;line-height:1.4;}
.be-nav-btn{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;padding:7px 16px;border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:500;transition:background .15s;}
.be-nav-btn:hover{background:rgba(255,255,255,.12);}
.be-member-avatar{width:29px;height:29px;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.be-nav-link{color:#aaa;font-size:12px;cursor:pointer;}.be-nav-link:hover{color:#fff;}

/* SEARCH BAR */
.be-search-bar{background:var(--primary);padding:11px 22px;border-bottom:3px solid rgba(0,0,0,.18);}
.be-search-form{max-width:1120px;margin:0 auto;display:flex;align-items:stretch;gap:2px;}
.be-sf{background:#fff;display:flex;flex-direction:column;padding:7px 14px;flex:1;cursor:pointer;border:1.5px solid transparent;transition:border-color .15s;min-width:110px;}
.be-sf-dates{flex:2;min-width:140px;}
.be-sf:first-child{border-radius:var(--radius) 0 0 var(--radius);}
.be-sf:hover{border-color:rgba(255,255,255,.35);}.be-sf.active{border-color:var(--accent);}
.be-sf label{font-size:10px;font-weight:700;color:#888;letter-spacing:.7px;text-transform:uppercase;margin-bottom:2px;pointer-events:none;}
.be-sf .val{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.be-sf select{border:none;outline:none;font-size:13px;font-weight:600;background:transparent;cursor:pointer;-webkit-appearance:none;width:100%;color:var(--text);}
.be-sf-sm{max-width:95px;min-width:76px;flex:0 0 auto;}
.be-sf-sep{background:#fff;width:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#ccc;font-size:16px;}
.be-search-btn{background:#fff;color:var(--primary);border:none;border-radius:0 var(--radius) var(--radius) 0;padding:0 24px;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap;flex-shrink:0;}
.be-search-btn:hover{background:#eef2f7;}

/* DATE PICKER */
.be-dp-overlay{display:none;position:fixed;inset:0;z-index:400;}
.be-dp-overlay.open{display:block;}
.be-dp-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.3);}
.be-dp-panel{position:absolute;background:#fff;border-radius:6px;box-shadow:0 8px 32px rgba(0,0,0,.18);padding:20px 22px 16px;width:680px;top:108px;left:50%;transform:translateX(-50%);z-index:1;max-height:90vh;overflow-y:auto;}
.be-dp-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.be-dp-header h4{font-size:13px;font-weight:600;color:#555;}
.be-dp-range{font-size:13px;font-weight:600;color:var(--primary);}
.be-dp-months{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.be-dp-month-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px;}
.be-dp-month-head span{font-size:13px;font-weight:700;}
.be-dp-nav{background:none;border:none;cursor:pointer;font-size:18px;color:#aaa;padding:0 5px;line-height:1;}
.be-dp-nav:hover{color:var(--primary);}
.be-dp-dow{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:3px;}
.be-dp-dow span{text-align:center;font-size:10px;font-weight:700;color:#aaa;padding:3px 0;}
.be-dp-days{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;}
.be-dp-day{min-height:46px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;border-radius:2px;padding:2px 1px;transition:background .1s;}
.be-dp-day:hover:not(.dp-past):not(.dp-empty){background:var(--primary-light);}
.be-dp-dn{font-size:13px;font-weight:600;line-height:1;}
.be-dp-pr{font-size:10px;color:var(--primary);margin-top:2px;}
.dp-past{opacity:.3;cursor:default;pointer-events:none;}
.dp-today .be-dp-dn{background:var(--primary);color:#fff;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.dp-ci{background:var(--primary)!important;border-radius:2px 0 0 2px;}
.dp-ci .be-dp-dn,.dp-ci .be-dp-pr{color:#fff!important;}
.dp-co{background:var(--primary)!important;border-radius:0 2px 2px 0;}
.dp-co .be-dp-dn,.dp-co .be-dp-pr{color:#fff!important;}
.dp-inrange{background:var(--primary-light)!important;border-radius:0;}
.dp-empty{cursor:default;}
.be-dp-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:13px;padding-top:12px;border-top:1px solid #eee;}
.be-dp-cancel{background:none;border:1px solid #ddd;border-radius:var(--radius);padding:8px 18px;font-size:13px;cursor:pointer;color:#555;}
.be-dp-apply{background:var(--primary);color:#fff;border:none;border-radius:var(--radius);padding:8px 24px;font-size:13px;font-weight:600;cursor:pointer;}

/* ROOM TABS */
.be-room-tabs{background:#fff;border-bottom:1px solid var(--border);}
.be-room-tabs-inner{max-width:1120px;margin:0 auto;padding:0 22px;display:flex;align-items:center;gap:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}.be-room-tabs-inner::-webkit-scrollbar{display:none;}
.be-rtab{padding:11px 16px;font-size:13px;font-weight:600;color:#777;cursor:pointer;border:none;background:none;border-bottom:3px solid transparent;white-space:nowrap;transition:all .15s;line-height:1.3;}
.be-rtab.active{color:var(--primary);border-bottom-color:var(--primary);}
.be-rtab:hover:not(.active){color:var(--primary);}
.be-rtab-check{color:#2e7d32;margin-left:3px;}
.be-rtab-dates{display:block;font-size:10px;color:#888;font-weight:400;margin-top:1px;}
.be-rtab-rm{background:none;border:1px solid #ddd;border-radius:50%;width:14px;height:14px;cursor:pointer;font-size:9px;color:#aaa;margin-left:3px;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;}
.be-add-room{background:var(--primary);color:#fff;border:none;border-radius:var(--radius);padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer;margin-left:8px;white-space:nowrap;flex-shrink:0;}

/* PER-ROOM DATE ROW */
.be-room-date-row{background:#f0f4f8;border-bottom:1px solid var(--border);padding:9px 22px;}
.be-room-date-inner{max-width:1120px;margin:0 auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.be-room-date-lbl{font-size:12px;color:#555;font-weight:700;white-space:nowrap;}
.be-room-date-field{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:7px 12px;font-size:13px;font-weight:600;cursor:pointer;display:flex;flex-direction:column;min-width:130px;transition:border-color .15s;}
.be-room-date-field:hover,.be-room-date-field.active{border-color:var(--primary);}
.be-room-date-field label{font-size:10px;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:.6px;margin-bottom:2px;pointer-events:none;}
.be-room-date-field .val{font-size:13px;font-weight:600;color:var(--text);}
.be-room-date-sep{color:#bbb;font-size:16px;}
.be-room-date-nights{background:var(--primary);color:#fff;border-radius:var(--radius);padding:6px 11px;font-size:12px;font-weight:700;white-space:nowrap;}

/* TIMER BAR */
.be-timer-bar{background:#fff3cd;border-bottom:2px solid #ffc107;padding:8px 22px;font-size:13px;color:#856404;text-align:center;display:none;}
.be-timer-bar.on{display:block;}
.be-timer-count{font-weight:800;color:#c62828;font-size:15px;}
.be-expired-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:600;align-items:center;justify-content:center;}
.be-expired-overlay.open{display:flex;}
.be-expired-box{background:#fff;border-radius:6px;padding:36px;max-width:400px;width:90%;text-align:center;}

/* AVAIL BAR */
.be-avail-bar{background:#fff;border-bottom:1px solid var(--border);padding:9px 22px;}
.be-avail-inner{max-width:1120px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px;}
.be-avail-text{font-size:13px;font-weight:500;}.be-avail-text strong{color:var(--primary);}
.be-avail-note{font-size:11px;color:#aaa;}

/* MAIN LAYOUT */
.be-main{max-width:1120px;margin:0 auto;padding:18px 16px 120px;}
.be-layout{display:flex;gap:18px;align-items:flex-start;}
.be-col-rooms{flex:1;min-width:0;}
.be-col-side{width:286px;min-width:260px;position:sticky;top:68px;}

/* ROOM CARD */
.be-room-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;overflow:hidden;transition:box-shadow .15s;}
.be-room-card:hover{box-shadow:var(--shadow);}
.be-card-top{display:flex;min-height:200px;}
.be-photo-wrap{width:238px;min-width:238px;position:relative;overflow:hidden;background:#e4e8ed;cursor:pointer;}
.be-photo-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .35s;display:block;}
.be-photo-wrap:hover img{transform:scale(1.05);}
.be-photo-ph{width:100%;height:100%;min-height:200px;background:#dde3ea;display:flex;align-items:center;justify-content:center;color:#aaa;font-size:12px;}
.be-photo-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.45);color:#fff;border:none;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;}
.be-photo-wrap:hover .be-photo-nav{opacity:1;}
.be-photo-prev{left:6px;}.be-photo-next{right:6px;}
.be-photo-count{position:absolute;bottom:8px;right:8px;background:rgba(0,0,0,.6);color:#fff;font-size:11px;border-radius:2px;padding:2px 7px;cursor:pointer;}
.be-demand-badge{position:absolute;top:10px;left:10px;background:var(--primary);color:#fff;font-size:10px;font-weight:700;padding:3px 8px;border-radius:2px;}
.be-card-info{flex:1;padding:15px 18px;min-width:0;}
.be-room-name{font-size:18px;font-weight:700;margin-bottom:6px;}
.be-room-attrs{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-bottom:7px;}
.be-room-desc{font-size:13px;color:var(--muted);line-height:1.55;margin-bottom:9px;}
.be-amenities{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px;}
.be-amenity{border:1px solid var(--border);border-radius:2px;font-size:11px;color:#555;padding:2px 6px;}
.be-photos-link{font-size:12px;color:var(--primary);cursor:pointer;margin-top:6px;display:inline-block;}

/* RATE TABLE */
.be-rate-table{border-top:1px solid #eee;width:100%;}
.be-rate-head{display:grid;grid-template-columns:1fr 140px 150px 160px;background:#f7f8fa;border-bottom:1px solid var(--border);padding:8px 16px;font-size:11px;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:.5px;}
.be-rate-row{display:grid;grid-template-columns:1fr 140px 150px 160px;border-bottom:1px solid #f4f4f4;padding:12px 16px;align-items:center;transition:background .1s;}
.be-rate-row:last-child{border-bottom:none;}
.be-rate-row:hover{background:#fafbfc;}
.be-rate-row.row-best{background:#f5f8ff;border-left:3px solid var(--primary);}
.be-rate-row.row-locked{background:#fafafa;opacity:.85;}
.be-rate-row.row-member{background:#fef9ec;border-left:3px solid var(--accent);}
.be-tags{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:4px;}
.be-tag{font-size:10px;font-weight:600;padding:2px 6px;border-radius:2px;}
.be-tag-best{background:var(--primary);color:#fff;}
.be-tag-member{background:var(--accent);color:#fff;}
.be-tag-meal{background:#e8f5e9;color:#2e7d32;border:1px solid #c8e6c9;}
.be-tag-nr{background:#fff3e0;color:#e65100;border:1px solid #ffcc80;}
.be-tag-pay{background:#e3f2fd;color:#1565c0;border:1px solid #bbdefb;}
.be-tag-hotel{background:#f3e5f5;color:#6a1b9a;border:1px solid #ce93d8;}
.be-rate-name{font-size:13px;font-weight:600;margin-bottom:2px;}
.be-rate-desc{font-size:11px;color:#888;}
.be-cancel-ok{font-size:12px;color:#2e7d32;font-weight:500;}
.be-cancel-no{font-size:12px;color:#e65100;}
.be-pay-note{font-size:11px;color:#555;margin-top:3px;font-style:italic;}
.be-price-col{text-align:right;}
.be-price-orig{font-size:11px;color:#bbb;text-decoration:line-through;margin-bottom:1px;}
.be-price-main{font-size:21px;font-weight:800;color:var(--primary);line-height:1;}
.be-price-per{font-size:11px;color:#888;margin-top:2px;}
.be-price-disc{font-size:11px;color:#2e7d32;font-weight:600;}
.be-avail-warn{font-size:11px;color:#c62828;font-weight:600;margin-top:2px;}
.be-select-btn{background:var(--primary);color:var(--btn-text);border:none;border-radius:var(--radius);padding:9px 20px;font-size:13px;font-weight:600;cursor:pointer;width:100%;transition:opacity .15s;}
.be-select-btn:hover{opacity:.88;}.be-select-btn.selected{background:#2e7d32;}
.be-member-gate{background:#fef9ec;border:1px solid #ffc107;border-radius:var(--radius);padding:9px 12px;font-size:12px;color:#7a5900;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.be-gate-link{color:var(--primary);font-weight:600;cursor:pointer;}

/* DESKTOP SIDEBAR CART */
.be-cart{background:#fff;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;}
.be-cart-head{background:#f7f8fa;border-bottom:1px solid var(--border);padding:11px 15px;display:flex;align-items:center;justify-content:space-between;}
.be-cart-head h3{font-size:13px;font-weight:700;}
.be-cart-head span{font-size:12px;color:var(--primary);font-weight:600;}
.be-cart-body{padding:12px 15px;}
.be-cart-empty{font-size:13px;color:#bbb;text-align:center;padding:18px 0;}
.be-cart-item{padding:8px 0;border-bottom:1px solid #f0f0f0;}
.be-cart-item:last-child{border-bottom:none;}
.be-cart-item-top{display:flex;justify-content:space-between;align-items:flex-start;gap:6px;}
.be-cart-item-name{font-size:12px;font-weight:600;line-height:1.3;}
.be-cart-item-price{font-size:13px;font-weight:700;color:var(--primary);white-space:nowrap;}
.be-cart-item-detail{font-size:11px;color:#888;margin-top:2px;}
.be-cart-rm{background:none;border:none;color:#ccc;cursor:pointer;font-size:16px;line-height:1;}
.be-cart-rm:hover{color:#c33;}
.be-cart-foot{border-top:1px solid var(--border);padding:12px 15px;}
.be-cart-line{display:flex;justify-content:space-between;font-size:12px;color:#555;margin-bottom:4px;}
.be-cart-line-muted{color:#aaa;font-size:11px;}
.be-cart-total{display:flex;justify-content:space-between;font-size:15px;font-weight:700;border-top:1px solid #ddd;padding-top:9px;margin-top:4px;}
.be-checkout-btn{width:100%;background:var(--primary);color:var(--btn-text);border:none;border-radius:var(--radius);padding:13px;font-size:14px;font-weight:700;cursor:pointer;margin-top:11px;transition:opacity .15s;}
.be-checkout-btn:hover{opacity:.9;}
.be-stay-box{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:13px 15px;margin-bottom:12px;}
.be-stay-row{display:flex;justify-content:space-between;font-size:12px;padding:5px 0;border-bottom:1px solid #f5f5f5;}
.be-stay-row:last-child{border-bottom:none;}
.be-stay-row span{color:#888;}.be-stay-row strong{color:var(--text);}

/* MOBILE FLOATING CART */
.be-mobile-cart{display:none;position:fixed;bottom:0;left:0;right:0;z-index:300;background:#fff;border-top:2px solid var(--border);box-shadow:0 -4px 20px rgba(0,0,0,.14);}
.be-mc-bar{padding:12px 16px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;}
.be-mc-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0;cursor:pointer;}
.be-mc-icon{width:38px;height:38px;background:var(--primary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:17px;position:relative;flex-shrink:0;}
.be-mc-badge{position:absolute;top:-4px;right:-4px;background:#c33;color:#fff;border-radius:50%;width:16px;height:16px;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.be-mc-text strong{font-size:13px;font-weight:700;display:block;}
.be-mc-text small{font-size:11px;color:#888;}
.be-mc-cta{background:var(--primary);color:var(--btn-text);border:none;border-radius:var(--radius);padding:12px 20px;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap;}
.be-mc-cta:disabled{opacity:.45;cursor:not-allowed;}
.be-mc-drawer{display:none;background:#fff;border-top:1px solid var(--border);max-height:52vh;overflow-y:auto;}
.be-mc-drawer.open{display:block;}
.be-mc-drawer-inner{padding:12px 16px 16px;}
.be-mc-item{display:flex;justify-content:space-between;align-items:flex-start;padding:8px 0;border-bottom:1px solid #f0f0f0;gap:8px;}
.be-mc-item:last-child{border-bottom:none;}
.be-mc-item-info{flex:1;min-width:0;}
.be-mc-item-name{font-size:12px;font-weight:600;}
.be-mc-item-detail{font-size:11px;color:#888;}
.be-mc-item-right{display:flex;align-items:center;gap:6px;}
.be-mc-item-price{font-size:13px;font-weight:700;color:var(--primary);white-space:nowrap;}
.be-mc-item-rm{background:none;border:none;color:#ccc;cursor:pointer;font-size:14px;flex-shrink:0;}
.be-mc-item-rm:hover{color:#c33;}
.be-mc-total{display:flex;justify-content:space-between;font-size:14px;font-weight:700;margin-top:10px;padding-top:10px;border-top:1px solid #ddd;}
.be-mc-full-btn{width:100%;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);padding:13px;font-size:14px;font-weight:700;cursor:pointer;margin-top:10px;}

/* GALLERY / ZOOM */
.be-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:500;align-items:center;justify-content:center;}
.be-modal-overlay.open{display:flex;}
.be-modal-gallery{background:#fff;border-radius:4px;width:900px;max-width:95vw;max-height:88vh;overflow-y:auto;padding:22px;}
.be-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.be-modal-head h3{font-size:16px;font-weight:700;}
.be-modal-close{background:none;border:none;font-size:22px;cursor:pointer;color:#666;width:30px;height:30px;display:flex;align-items:center;justify-content:center;}
.be-gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.be-gallery-grid img{width:100%;border-radius:2px;cursor:zoom-in;aspect-ratio:4/3;object-fit:cover;}
.be-gallery-grid img:hover{opacity:.88;}
.be-zoom-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:600;align-items:center;justify-content:center;cursor:zoom-out;}
.be-zoom-overlay.open{display:flex;}
.be-zoom-overlay img{max-width:90vw;max-height:88vh;border-radius:2px;}
.be-zoom-close{position:absolute;top:16px;right:20px;background:none;border:none;color:#fff;font-size:28px;cursor:pointer;}

/* MEMBER MODAL */
.be-modal-member{background:#fff;border-radius:6px;width:540px;max-width:95vw;max-height:92vh;overflow-y:auto;}
.be-member-head{background:var(--primary);color:#fff;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;}
.be-member-head h3{font-size:16px;font-weight:700;}
.be-member-head button{background:none;border:none;color:#fff;font-size:22px;cursor:pointer;}
.be-member-body{padding:22px;}
.be-mtabs{display:flex;border-bottom:2px solid #eee;margin-bottom:18px;}
.be-mtab{flex:1;background:none;border:none;padding:10px;font-size:13px;font-weight:600;color:#888;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;}
.be-mtab.active{color:var(--primary);border-bottom-color:var(--primary);}
.be-fld{margin-bottom:13px;}
.be-fld label{font-size:12px;font-weight:600;color:#444;display:block;margin-bottom:4px;}
.be-fld label .req{color:#c33;}
.be-fld input,.be-fld select,.be-fld textarea{width:100%;border:1px solid #ccc;border-radius:var(--radius);padding:9px 11px;font-size:13px;outline:none;font-family:inherit;transition:border-color .15s;}
.be-fld input:focus,.be-fld select:focus,.be-fld textarea:focus{border-color:var(--primary);}
.be-fld-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.be-form-btn{width:100%;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);padding:12px;font-size:14px;font-weight:700;cursor:pointer;}
.be-form-err{color:#c33;font-size:12px;margin-top:8px;padding:8px 10px;background:#fff3f3;border:1px solid #f5c6cb;border-radius:var(--radius);}
.be-tier-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;}
.be-tier-card{border-radius:4px;padding:11px;border:1px solid var(--border);text-align:center;}
.be-tier-card-name{font-size:13px;font-weight:700;margin-bottom:3px;}
.be-tier-card-req{font-size:10px;color:#888;margin-bottom:5px;}
.be-tier-card-disc{font-size:16px;font-weight:800;}
.be-tier-card-perks{font-size:10px;color:#666;text-align:left;margin-top:7px;padding-top:7px;border-top:1px solid #eee;}
.be-tier-card-perks li{list-style:none;padding:1px 0;}
.be-tier-card-perks li::before{content:"+ ";}
.be-member-gate{background:#fef9ec;border:1px solid #ffc107;border-radius:var(--radius);padding:9px 12px;font-size:12px;color:#7a5900;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.be-gate-link{color:var(--primary);font-weight:600;cursor:pointer;}

/* PROMO */
.be-promo-popup{position:fixed;bottom:20px;right:20px;width:308px;background:#fff;border-radius:6px;box-shadow:0 4px 24px rgba(0,0,0,.18);overflow:hidden;z-index:400;animation:slideUp .35s ease;}
@keyframes slideUp{from{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}
.be-promo-close{position:absolute;top:8px;right:10px;background:rgba(0,0,0,.4);border:none;color:#fff;width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;}
.be-promo-img{width:100%;height:136px;object-fit:cover;display:block;}
.be-promo-img-placeholder{height:100px;background:linear-gradient(135deg,var(--primary),var(--secondary));}
.be-promo-body{padding:13px;}
.be-promo-body h4{font-size:13px;font-weight:700;margin-bottom:5px;}
.be-promo-body p{font-size:12px;color:#555;line-height:1.55;margin-bottom:11px;}
.be-promo-btn{width:100%;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);padding:9px;font-weight:700;font-size:13px;cursor:pointer;}

/* CHECKOUT */
.be-steps{background:#fff;border-bottom:1px solid var(--border);}
.be-steps-inner{max-width:1120px;margin:0 auto;padding:0 22px;display:flex;align-items:center;height:46px;gap:4px;}
.be-step{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:#bbb;}
.be-step.done{color:#666;}.be-step.active{color:var(--primary);}
.be-step-dot{width:21px;height:21px;border-radius:50%;border:2px solid #ddd;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;}
.be-step.done .be-step-dot{background:var(--primary);border-color:var(--primary);color:#fff;}
.be-step.active .be-step-dot{border-color:var(--primary);color:var(--primary);}
.be-step-arrow{color:#ddd;font-size:14px;}
.co-wrap{max-width:1060px;margin:20px auto;padding:0 16px 50px;display:flex;gap:20px;align-items:flex-start;}
.co-main{flex:1;min-width:0;}
.co-sec{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:13px;}
.co-sec-title{font-size:14px;font-weight:700;margin-bottom:15px;padding-bottom:9px;border-bottom:1px solid #f0f0f0;}
.co-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.co-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}
.co-pay-methods{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px;}
.co-pm{border:1.5px solid #ccc;border-radius:var(--radius);padding:9px 15px;cursor:pointer;font-size:13px;font-weight:600;color:#444;background:#fafafa;transition:all .15s;text-align:center;}
.co-pm:hover{border-color:var(--primary);}.co-pm.active{border-color:var(--primary);background:#fff;color:var(--primary);}
.co-pm.pm-hotel{border-color:#2e7d32;color:#2e7d32;background:#f1f9f1;}.co-pm.pm-hotel.active{background:#e8f5e9;}
.co-pm.pm-deposit{border-color:var(--accent);color:#7a5900;background:#fef9ec;}.co-pm.pm-deposit.active{background:#fef3d0;}
.co-pm small{display:block;font-size:10px;font-weight:400;color:#888;margin-top:2px;}
.co-pay-btn{width:100%;background:var(--primary);color:var(--btn-text);border:none;border-radius:var(--radius);padding:14px;font-size:15px;font-weight:700;cursor:pointer;margin-top:16px;}
.co-pay-btn:hover{opacity:.9;}.co-pay-btn:disabled{opacity:.5;cursor:not-allowed;}
.co-secure{font-size:11px;color:#999;margin-top:12px;padding-top:10px;border-top:1px solid #f0f0f0;}
.co-qr{text-align:center;background:#f8f8f8;border:1px solid var(--border);border-radius:var(--radius);padding:22px;margin-top:13px;}
.co-qr img{width:230px;height:230px;margin:0 auto;border:1px solid var(--border);border-radius:2px;}
.co-form-err{color:#c33;font-size:13px;margin-top:11px;padding:10px;background:#fff3f3;border:1px solid #f5c6cb;border-radius:var(--radius);}
.co-sidebar{width:296px;min-width:270px;position:sticky;top:68px;}
.co-summary{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:16px;}
.co-sum-title{font-size:14px;font-weight:700;border-bottom:1px solid #eee;padding-bottom:11px;margin-bottom:13px;}
.co-sum-item{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:8px 0;border-bottom:1px solid #f5f5f5;font-size:13px;}
.co-sum-item:last-child{border-bottom:none;}
.co-sum-item-name{font-weight:600;margin-bottom:2px;}.co-sum-item-detail{font-size:11px;color:#888;}
.co-sum-item-price{font-weight:700;color:var(--primary);white-space:nowrap;}
.co-sum-line{display:flex;justify-content:space-between;font-size:13px;color:#444;margin-bottom:5px;}
.co-sum-muted{color:#999;font-size:12px;}.co-sum-green{color:#2e7d32;font-size:12px;}
.co-sum-total{display:flex;justify-content:space-between;font-size:17px;font-weight:800;color:var(--primary);border-top:1px solid #ddd;padding-top:9px;margin-top:5px;}

/* ADDON WITH IMAGE */
.addon-cat-title{font-size:11px;font-weight:700;color:#777;text-transform:uppercase;letter-spacing:.7px;margin:14px 0 7px;padding-bottom:5px;border-bottom:1px solid #eee;}
.addon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;}
.addon-card{border:2px solid var(--border);cursor:pointer;transition:border-color .15s,box-shadow .15s;background:#fff;position:relative;user-select:none;overflow:hidden;display:flex;flex-direction:column;}
.addon-card:hover{border-color:var(--primary);box-shadow:0 2px 8px rgba(0,0,0,.08);}
.addon-card.on{border-color:var(--primary);background:#f5f8ff;}
.addon-img{width:100%;height:140px;object-fit:cover;display:block;flex-shrink:0;}
.addon-img-ph{height:80px;background:linear-gradient(135deg,#e8edf2,#dde3ea);display:flex;align-items:center;justify-content:center;color:#aaa;font-size:22px;font-weight:700;flex-shrink:0;}
.addon-body{padding:10px 12px 12px;flex:1;display:flex;flex-direction:column;}
.addon-ck{position:absolute;top:7px;right:7px;background:var(--primary);color:#fff;width:18px;height:18px;border-radius:50%;font-size:10px;display:none;align-items:center;justify-content:center;z-index:1;}
.addon-card.on .addon-ck{display:flex;}
.addon-name{font-size:12px;font-weight:600;margin-bottom:2px;padding-right:20px;}
.addon-desc{font-size:11px;color:#888;margin-bottom:5px;}
.addon-price{font-size:13px;font-weight:700;color:var(--primary);}
.addon-ptype{font-size:10px;color:#aaa;}
.addon-qty{display:none;align-items:center;gap:7px;margin-top:6px;}
.addon-card.on .addon-qty{display:flex;}
.addon-qty-btn{background:var(--primary);color:#fff;border:none;width:20px;height:20px;border-radius:50%;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.addon-qty-val{font-size:13px;font-weight:700;min-width:16px;text-align:center;}

/* CONFIRM / MEMBER / BOOKING MGMT */
.conf-wrap{max-width:720px;margin:32px auto;padding:0 16px 50px;}
.conf-hero{background:#fff;border:1px solid var(--border);border-radius:4px;padding:32px;text-align:center;margin-bottom:15px;}
.conf-icon{font-size:50px;margin-bottom:10px;}.conf-title{font-size:22px;font-weight:800;margin-bottom:5px;}
.conf-ref strong{color:var(--primary);font-size:17px;}
.conf-sec{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:17px;margin-bottom:11px;}
.conf-sec h3{font-size:11px;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:.7px;margin-bottom:11px;}
.conf-row{display:flex;justify-content:space-between;font-size:13px;padding:5px 0;border-bottom:1px solid #f8f5ff;}
.conf-row:last-child{border-bottom:none;}.conf-row span{color:#888;}.conf-row strong{color:var(--text);}
.conf-total strong{color:var(--primary);font-size:16px;font-weight:800;}
.conf-notice{background:#e8f5e9;border-radius:var(--radius);padding:11px;font-size:13px;color:#2e7d32;margin-top:12px;}
.mp-wrap{max-width:900px;margin:26px auto;padding:0 16px 50px;}
.mp-header{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:15px;display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;}
.mp-avatar{width:52px;height:52px;border-radius:50%;background:var(--primary);color:#fff;font-size:20px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.mp-info{flex:1;}.mp-name{font-size:18px;font-weight:700;}.mp-email{font-size:13px;color:#888;}
.mp-badge{display:inline-block;padding:3px 10px;border-radius:10px;font-size:11px;font-weight:700;margin-top:4px;}
.mp-stats{display:flex;gap:20px;flex-wrap:wrap;margin-top:4px;}
.mp-stat-val{font-size:20px;font-weight:800;color:var(--primary);}.mp-stat-lbl{font-size:10px;color:#888;text-transform:uppercase;letter-spacing:.5px;}
.mp-progress{background:#eee;border-radius:10px;height:5px;overflow:hidden;margin-top:7px;}
.mp-progress-bar{background:var(--primary);height:100%;border-radius:10px;}
.mp-booking-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
.bm-wrap{max-width:860px;margin:0 auto;padding:26px 16px 60px;}

/* BADGES */
.badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;}
.b-paid,.b-confirmed,.b-active,.b-checked_in{background:#e8f5e9;color:#2e7d32;}
.b-pending,.b-deposit_paid{background:#fff3e0;color:#e65100;}
.b-failed,.b-cancelled,.b-inactive,.b-no_show{background:#fce4e4;color:#c33;}
.b-refunded{background:#e3f2fd;color:#1565c0;}

/* FOOTER */
.be-footer{background:var(--footer-bg);color:#888;padding:26px 22px 14px;margin-top:20px;}
.be-footer-inner{max-width:1120px;margin:0 auto;display:flex;justify-content:space-between;flex-wrap:wrap;gap:18px;margin-bottom:18px;}
.be-footer-hotel{font-size:15px;font-weight:700;color:#fff;margin-bottom:4px;}
.be-footer-addr{font-size:12px;color:#555;line-height:1.6;max-width:380px;}
.be-powered{font-size:13px;font-weight:800;color:var(--accent);}.be-powered-sub{font-size:11px;color:#444;margin-top:2px;}
.be-footer-copy{font-size:11px;color:#444;text-align:center;padding-top:13px;border-top:1px solid #1a2a3a;max-width:1120px;margin:0 auto;}

/* RESPONSIVE */
/* =============================================
   RESPONSIVE — DESKTOP FIRST
   ============================================= */

/* Tablet — hide side cart, show mobile cart */
@media(max-width:1024px){
  .be-col-side{display:none;}
  .be-mobile-cart{display:block;}
  .be-main{padding-bottom:110px;}
  .be-rate-head,.be-rate-row{grid-template-columns:1fr 120px 160px;}
  .be-rate-head>:nth-child(2),.be-rate-row>:nth-child(2){display:none;}
}

/* ─── MOBILE (≤768px) ─────────────────────────── */
@media(max-width:768px){

  /* NAV */
  .be-nav{padding:0 12px;height:48px;}
  .be-logo-img{max-height:28px;}
  .be-logo-icon{width:28px;height:28px;font-size:13px;}
  .be-hotel-name{font-size:13px;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .be-nav-divider{display:none;}
  .be-nav-right{gap:5px;}
  .be-nav-link{font-size:12px;}
  .be-nav-btn{font-size:12px;padding:5px 10px;}
  .be-nav-member-info .be-tier-pill{display:none;}

  /* SEARCH BAR — 2×2 grid on mobile */
  .be-search-bar{padding:8px 12px;}
  .be-search-form{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#1a3a5c;}
  .be-sf,.be-sf-sm{border-radius:0;min-width:0;padding:8px 10px;}
  .be-sf-sep{display:none;}
  .be-sf-dates{flex:unset;}
  .be-sf .val{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
  .be-search-btn{grid-column:1/-1;border-radius:0;padding:13px;font-size:14px;font-weight:700;background:#c9a84c;color:#fff;}
  .be-search-btn:hover{background:#b8973d;}

  /* ROOM TABS */
  .be-room-tabs-inner{padding:0 12px;}
  .be-avail-bar{padding:8px 12px;font-size:12px;}
  .be-avail-bar .be-avail-note{display:none;}

  /* TIMER */
  .be-timer-bar{padding:7px 12px;font-size:12px;}

  /* LAYOUT */
  .be-main{padding:10px 12px 110px;}

  /* ROOM CARD */
  .be-card-top{flex-direction:column;}
  .be-photo-wrap{width:100%;min-width:unset;height:220px;}
  .be-rate-head{display:none;}
  .be-rate-row{grid-template-columns:1fr auto;gap:6px;padding:10px 12px;}
  .be-rate-row>:nth-child(2){display:none;}
  .be-price-col{text-align:left;}

  /* MOBILE CART */
  .be-mc-bar{padding:10px 14px;}
  .be-mc-badge{min-width:20px;height:20px;font-size:11px;}

  /* CHECKOUT */
  .co-wrap{flex-direction:column-reverse;}
  .co-sidebar{width:100%;position:static;}
  .co-row{grid-template-columns:1fr;}
  .addon-grid{grid-template-columns:repeat(2,1fr);}
  .be-fld-row{grid-template-columns:1fr;}

  /* MODAL */
  .be-modal-member{width:95vw;max-height:90vh;}

  /* GALLERY */
  .be-gallery-grid{grid-template-columns:repeat(2,1fr);}

  /* DATEPICKER — bottom sheet */
  .be-dp-panel{
    position:fixed;bottom:0;left:0;right:0;top:auto;
    transform:none;width:100%;max-width:100%;
    border-radius:16px 16px 0 0;padding:8px 14px 32px;
    max-height:92vh;overflow-y:auto;z-index:1;
    box-shadow:0 -4px 28px rgba(0,0,0,.22);
  }
  .be-dp-panel::before{
    content:'';display:block;width:36px;height:4px;background:#ddd;
    border-radius:4px;margin:4px auto 12px;
  }
  .be-dp-months{grid-template-columns:1fr;}
  .be-dp-header{flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:10px;}
  .be-dp-footer{
    position:sticky;bottom:0;background:#fff;
    padding:10px 0 0;margin-top:8px;
    display:grid;grid-template-columns:1fr 1fr;gap:8px;
    border-top:1px solid #eee;
  }
  .be-dp-cancel,.be-dp-apply{padding:12px;font-size:14px;border-radius:6px;}
  .be-dp-day{min-height:48px;}
  .be-dp-dn{font-size:14px;}
  .be-dp-pr{font-size:10px;}
}

/* ─── SMALL MOBILE (≤480px) ─────────────────── */
@media(max-width:480px){
  /* NAV */
  .be-hotel-name{max-width:90px;}
  .be-nav-link{display:none;}
  .be-nav-btn{padding:5px 9px;font-size:11px;}

  /* Addon single col on tiny screens */
  .addon-grid{grid-template-columns:1fr;}
}
