/* =================================================================
   Travel Booking Pro v2.1 — Full Frontend CSS
================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700&family=DM+Sans:wght@300;400;500;600&display=swap');

:root{
  --navy:#0f2942;--navy2:#1e3a5f;--gold:#c9952a;--gold-l:#f0c040;
  --teal:#0d9488;--bg:#f7f8fc;--bdr:#e2e8f0;--text:#1a2335;--muted:#64748b;
  --ok:#16a34a;--err:#dc2626;
  --r:10px;--r-lg:16px;
  --sh:0 4px 20px rgba(15,41,66,.1);--sh-lg:0 12px 40px rgba(15,41,66,.16);
  --tr:all .2s ease;
  --fh:'Playfair Display',Georgia,serif;
  --fb:'DM Sans','Segoe UI',sans-serif;
}

/* ═══════════════════════════════════════
   SEARCH WIDGET
═══════════════════════════════════════ */
.tbp-search-widget{
  background:var(--navy);border-radius:var(--r-lg);
  padding:28px 28px 22px;font-family:var(--fb);
  box-shadow:var(--sh-lg);
}
.tbp-sw-fields{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;}
.tbp-sw-vertical .tbp-sw-fields{flex-direction:column;}
.tbp-sw-field{flex:1;min-width:160px;}
.tbp-sw-btn-field{flex:0 0 auto;}
.tbp-sw-field label{
  display:block;font-size:11.5px;font-weight:600;
  color:rgba(255,255,255,.7);text-transform:uppercase;
  letter-spacing:.5px;margin-bottom:6px;
}
.tbp-sw-location,.tbp-sw-hotel{
  width:100%;padding:11px 32px 11px 14px;
  background:rgba(255,255,255,.1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;
  border:1.5px solid rgba(255,255,255,.2);border-radius:8px;
  color:#fff;font-family:var(--fb);font-size:14px;
  -webkit-appearance:none;appearance:none;cursor:pointer;transition:var(--tr);
}
.tbp-sw-location option,.tbp-sw-hotel option{color:#1a2335;background:#fff;}
.tbp-sw-location:focus,.tbp-sw-hotel:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,149,42,.25);
}
.tbp-sw-location:disabled,.tbp-sw-hotel:disabled{opacity:.4;cursor:not-allowed;}

.tbp-sw-search-btn{
  width:100%;padding:12px 22px;
  background:var(--gold);color:var(--navy);
  border:2px solid var(--gold);border-radius:8px;
  font-family:var(--fb);font-size:14px;font-weight:700;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:7px;
  transition:var(--tr);white-space:nowrap;
}
.tbp-sw-search-btn:hover{background:#b8851f;border-color:#b8851f;transform:translateY(-1px);}

.tbp-sw-price-panel{
  margin-top:16px;border-top:1px solid rgba(255,255,255,.15);padding-top:14px;
}
.tbp-sw-loading,.tbp-sw-no-tours{color:rgba(255,255,255,.55);font-size:13px;font-family:var(--fb);}
.tbp-sw-tours{display:flex;flex-direction:column;gap:8px;}
.tbp-sw-tour-item{
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(255,255,255,.08);padding:10px 14px;border-radius:8px;
  flex-wrap:wrap;gap:8px;
}
.tbp-sw-tour-left{display:flex;flex-direction:column;gap:2px;}
.tbp-sw-tour-right{display:flex;align-items:center;gap:10px;}
.tbp-sw-tour-name{font-size:13px;font-weight:600;color:#fff;}
.tbp-sw-tour-dates{font-size:12px;color:rgba(255,255,255,.55);}
.tbp-sw-tour-price{font-size:13px;color:rgba(255,255,255,.75);}
.tbp-sw-tour-price strong{font-family:var(--fh);font-size:16px;color:var(--gold-l);}
.tbp-sw-status{font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;}
.tbp-sw-limited{background:rgba(251,191,36,.2);color:#fbbf24;}
.tbp-sw-soldout{background:rgba(220,38,38,.2);color:#fca5a5;}

/* ═══════════════════════════════════════
   FILTER BAR
═══════════════════════════════════════ */
.tbp-filter-bar{
  display:flex;gap:8px;flex-wrap:wrap;
  margin-bottom:20px;padding-bottom:14px;
  border-bottom:2px solid var(--bdr);
  font-family:var(--fb);
}
.tbp-filter-btn{
  padding:7px 18px;border:1.5px solid var(--bdr);border-radius:24px;
  background:#fff;font-family:var(--fb);font-size:13px;font-weight:500;
  color:var(--muted);cursor:pointer;transition:var(--tr);
}
.tbp-filter-btn:hover{border-color:var(--navy);color:var(--navy);}
.tbp-filter-btn.tbp-filter-active{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:600;}

.tbp-grid-meta{margin-bottom:12px;font-size:13px;color:var(--muted);font-family:var(--fb);}
.tbp-grid-count{font-weight:600;}

/* ═══════════════════════════════════════
   HOTELS GRID
═══════════════════════════════════════ */
.tbp-hotels-grid{display:grid;gap:24px;margin:0 0 24px;font-family:var(--fb);transition:opacity .2s ease;}
.tbp-cols-1{grid-template-columns:1fr;}
.tbp-cols-2{grid-template-columns:repeat(2,1fr);}
.tbp-cols-3{grid-template-columns:repeat(3,1fr);}
.tbp-cols-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:1024px){.tbp-cols-4,.tbp-cols-3{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.tbp-cols-2,.tbp-cols-3,.tbp-cols-4{grid-template-columns:1fr;}}

/* ═══════════════════════════════════════
   HOTEL CARD
═══════════════════════════════════════ */
.tbp-hotel-card{
  background:#fff;border-radius:var(--r-lg);
  overflow:hidden;box-shadow:var(--sh);border:1px solid var(--bdr);
  display:flex;flex-direction:column;
  transition:transform .22s ease,box-shadow .22s ease;
}
.tbp-hotel-card:hover{transform:translateY(-5px);box-shadow:var(--sh-lg);}
.tbp-card-img-wrap{display:block;text-decoration:none;}
.tbp-card-img{
  height:210px;background:#e2e8f0 center/cover no-repeat;position:relative;
}
.tbp-card-img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to top,rgba(15,41,66,.35) 0%,transparent 55%);
}
.tbp-badge-duration,.tbp-badge-soldout{
  position:absolute;top:12px;font-size:11px;font-weight:700;
  padding:3px 10px;border-radius:20px;z-index:1;
  letter-spacing:.4px;text-transform:uppercase;
}
.tbp-badge-duration{left:12px;background:var(--navy);color:#fff;}
.tbp-badge-soldout{right:12px;background:var(--err);color:#fff;}

.tbp-card-body{padding:16px;flex:1;display:flex;flex-direction:column;gap:8px;}
.tbp-card-locations{display:flex;flex-wrap:wrap;gap:5px;}
.tbp-location-tag{
  font-size:11px;color:var(--teal);background:rgba(13,148,136,.1);
  padding:2px 8px;border-radius:20px;text-decoration:none;font-weight:500;
  transition:var(--tr);
}
.tbp-location-tag:hover{background:var(--teal);color:#fff;}
.tbp-card-title{font-family:var(--fh);font-size:1.05rem;line-height:1.3;margin:0;}
.tbp-card-title a{color:var(--navy);text-decoration:none;transition:var(--tr);}
.tbp-card-title a:hover{color:var(--gold);}
.tbp-card-stars{color:var(--gold);font-size:13px;letter-spacing:1px;}
.tbp-card-details{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px;}
.tbp-card-details li{font-size:12.5px;color:var(--muted);display:flex;gap:5px;}
.tbp-card-tour-count{
  font-size:12px;color:var(--teal);font-weight:600;
  background:rgba(13,148,136,.08);padding:3px 10px;border-radius:20px;display:inline-block;
}
.tbp-card-footer{
  margin-top:auto;padding-top:12px;border-top:1px solid var(--bdr);
  display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;
}
.tbp-card-price{display:flex;align-items:baseline;gap:3px;}
.tbp-from,.tbp-pp{font-size:11px;color:var(--muted);}
.tbp-card-price strong{font-size:1.25rem;font-weight:700;color:var(--navy);font-family:var(--fh);}
.tbp-card-actions{display:flex;gap:7px;}

/* ═══════════════════════════════════════
   BUTTONS
═══════════════════════════════════════ */
.tbp-btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:8px 16px;border-radius:6px;
  font-family:var(--fb);font-size:13px;font-weight:600;
  cursor:pointer;text-decoration:none !important;
  border:2px solid transparent;transition:var(--tr);white-space:nowrap;
}
.tbp-btn-primary{background:var(--gold);color:var(--navy) !important;border-color:var(--gold);}
.tbp-btn-primary:hover{background:#b8851f;border-color:#b8851f;transform:translateY(-1px);}
.tbp-btn-outline{background:transparent;color:var(--navy) !important;border-color:var(--bdr);}
.tbp-btn-outline:hover{background:var(--bg);border-color:var(--navy);}
.tbp-btn-disabled{
  background:#e5e7eb;color:#9ca3af !important;border-color:#e5e7eb;
  cursor:not-allowed;font-size:13px;font-weight:600;
  padding:8px 16px;border-radius:6px;display:inline-block;
}

/* ═══════════════════════════════════════
   LOAD MORE / PAGINATION
═══════════════════════════════════════ */
.tbp-load-more-wrap{text-align:center;margin:8px 0 24px;}
.tbp-load-more-btn{padding:12px 36px;font-size:14px;display:inline-flex;align-items:center;gap:9px;}
.tbp-load-more-btn:disabled{opacity:.5;cursor:not-allowed;}
.tbp-pagination{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:8px 0 24px;}
.tbp-page-btn{
  width:36px;height:36px;border-radius:6px;
  background:#fff;border:1.5px solid var(--bdr);
  font-family:var(--fb);font-size:13px;font-weight:600;color:var(--navy);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;text-decoration:none;transition:var(--tr);
}
.tbp-page-btn:hover{background:var(--bg);border-color:var(--navy);}
.tbp-page-btn.tbp-page-active{background:var(--navy);border-color:var(--navy);color:#fff;}

/* ═══════════════════════════════════════
   LOCATION HEADER / TOURS LIST / GALLERY
═══════════════════════════════════════ */
.tbp-location-header{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:24px;padding-bottom:14px;border-bottom:2px solid var(--bdr);}
.tbp-location-title{font-family:var(--fh);font-size:1.7rem;color:var(--navy);margin:0;}
.tbp-hotel-count{background:var(--navy);color:#fff;font-size:12px;font-weight:600;padding:3px 12px;border-radius:20px;}

.tbp-tours-list{display:flex;flex-direction:column;gap:10px;}
.tbp-tour-card{background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r);padding:14px 18px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;}
.tbp-tour-card.tbp-status-soldout{opacity:.6;border-style:dashed;}
.tbp-tour-card-main h4{margin:0 0 4px;font-size:14px;color:var(--navy);}
.tbp-tour-dates{font-size:13px;color:var(--muted);}
.tbp-tour-card-prices{display:flex;gap:14px;font-size:13px;color:var(--muted);}
.tbp-tour-card-prices strong{color:var(--navy);font-weight:700;}
.tbp-tour-status{font-size:12px;font-weight:600;padding:2px 8px;border-radius:20px;}
.tbp-status-badge-available{background:#dcfce7;color:#16a34a;}
.tbp-status-badge-limited{background:#fef9c3;color:#ca8a04;}
.tbp-status-badge-soldout{background:#fee2e2;color:#dc2626;}

.tbp-gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0;}
@media(max-width:500px){.tbp-gallery-grid{grid-template-columns:repeat(2,1fr);}}
.tbp-gallery-link img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;display:block;transition:var(--tr);}
.tbp-gallery-link img:hover{transform:scale(1.03);}
.tbp-lbox{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:999998;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.tbp-lbox img{max-width:90vw;max-height:88vh;object-fit:contain;border-radius:6px;}
.tbp-lbox-close{position:absolute;top:16px;right:20px;color:#fff;font-size:30px;background:none;border:none;cursor:pointer;line-height:1;}

/* ═══════════════════════════════════════
   BOOKING SECTION (inline form wrapper)
═══════════════════════════════════════ */
.tbp-booking-section{max-width:700px;margin:32px auto;font-family:var(--fb);}
.tbp-booking-section .tbp-booking-header h2{font-family:var(--fh);font-size:1.5rem;color:var(--navy);margin:0 0 10px;}
.tbp-notice{padding:14px 18px;border-radius:var(--r);margin:12px 0;font-family:var(--fb);}
.tbp-notice-info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;}
.tbp-notice-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;}
.tbp-form-loading{display:flex;align-items:center;gap:12px;padding:24px;color:var(--muted);font-size:14px;font-family:var(--fb);}

/* ═══════════════════════════════════════
   BOOKING FORM (shared: inline + modal)
═══════════════════════════════════════ */
.tbp-test-badge{
  background:#fef9c3;border:1px solid #fbbf24;color:#92400e;
  font-size:12px;font-weight:500;padding:8px 14px;
  border-radius:6px;margin-bottom:14px;display:block;
  font-family:var(--fb);
}
.tbp-bform{display:flex;flex-direction:column;gap:14px;}
.tbp-step{background:#fff;border:1px solid var(--bdr);border-radius:var(--r);padding:18px 20px;}
.tbp-step-head{font-weight:700;font-size:14px;color:var(--navy);margin-bottom:14px;display:flex;align-items:center;gap:9px;font-family:var(--fb);}
.tbp-step-head span{
  width:24px;height:24px;background:var(--navy);color:#fff;
  border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;flex-shrink:0;
}
.tbp-fg{margin-bottom:12px;}
.tbp-fg:last-child{margin-bottom:0;}
.tbp-fg label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:5px;font-family:var(--fb);}
.tbp-fg label em.req{color:var(--err);font-style:normal;}
.tbp-fg input,.tbp-fg select{
  width:100%;padding:10px 13px;
  border:1.5px solid var(--bdr);border-radius:6px;
  font-family:var(--fb);font-size:14px;color:var(--text);
  background:#fff;box-sizing:border-box;transition:var(--tr);-webkit-appearance:none;
}
.tbp-fg input:focus,.tbp-fg select:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(15,41,66,.1);}
.tbp-two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media(max-width:480px){.tbp-two-col{grid-template-columns:1fr;}}

.tbp-price-row{
  background:var(--bg);border:1px solid var(--bdr);border-radius:6px;
  padding:9px 14px;font-size:13px;color:var(--muted);margin-top:10px;font-family:var(--fb);
}
.tbp-price-row strong{color:var(--navy);font-weight:700;}

/* Pax counters */
.tbp-pax-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;}
@media(max-width:440px){.tbp-pax-row{grid-template-columns:1fr;}}
.tbp-pax-item{text-align:center;}
.tbp-pax-item>label{display:block;font-size:12px;font-weight:600;color:#4b5563;text-transform:uppercase;letter-spacing:.3px;margin-bottom:7px;font-family:var(--fb);}
.tbp-counter{display:flex;align-items:center;border:1.5px solid var(--bdr);border-radius:6px;overflow:hidden;height:40px;}
.tbp-cnt-btn{width:38px;height:40px;border:none;background:var(--bg);font-size:19px;font-weight:700;cursor:pointer;color:var(--navy);transition:var(--tr);flex-shrink:0;line-height:1;padding:0;}
.tbp-cnt-btn:hover{background:var(--navy);color:#fff;}
.tbp-pax-input{
  width:44px !important;height:38px;border:none !important;
  border-left:1.5px solid var(--bdr) !important;border-right:1.5px solid var(--bdr) !important;
  border-radius:0 !important;box-shadow:none !important;
  text-align:center;font-size:15px;font-weight:700;color:var(--navy);padding:0 !important;
  -moz-appearance:textfield;
}
.tbp-pax-input::-webkit-outer-spin-button,.tbp-pax-input::-webkit-inner-spin-button{-webkit-appearance:none;}

.tbp-total-bar{
  background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;
  border-radius:6px;padding:12px 18px;
  display:flex;justify-content:space-between;align-items:center;font-weight:600;font-family:var(--fb);
}
.tbp-total-val{font-family:var(--fh);font-size:1.35rem;color:var(--gold-l);}

.tbp-stripe-wrap{background:var(--bg);border:1.5px solid var(--bdr);border-radius:6px;padding:12px 15px;transition:var(--tr);}
.tbp-stripe-wrap:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px rgba(15,41,66,.1);}
.tbp-card-el{min-height:22px;}
.tbp-stripe-err{color:var(--err);font-size:13px;font-weight:500;margin-top:7px;min-height:0;font-family:var(--fb);}
.tbp-secure-note{font-size:11.5px;color:var(--muted);text-align:center;margin:7px 0 0;font-family:var(--fb);}
.tbp-pay-summary{
  display:flex;justify-content:space-between;align-items:center;
  padding:11px 0;font-size:14px;color:var(--muted);
  border-top:1px solid var(--bdr);margin-top:12px;font-family:var(--fb);
}
.tbp-pay-total{font-family:var(--fh);font-size:1.25rem;color:var(--navy);font-weight:700;}

.tbp-pay-btn{
  width:100%;padding:14px 24px;font-size:15px;font-weight:700;
  background:var(--gold);color:var(--navy);border:none;border-radius:7px;cursor:pointer;
  font-family:var(--fb);display:flex;align-items:center;justify-content:center;gap:9px;
  transition:var(--tr);margin-top:6px;
}
.tbp-pay-btn:hover:not(:disabled){background:#b8851f;transform:translateY(-1px);box-shadow:0 5px 18px rgba(201,149,42,.35);}
.tbp-pay-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none;}

.tbp-spin{animation:tbpSpin .7s linear infinite;}
.tbp-hidden{display:none !important;}
@keyframes tbpSpin{to{transform:rotate(360deg);}}

.tbp-form-success{text-align:center;padding:36px 20px;}
.tbp-success-icon{font-size:2.8rem;margin-bottom:10px;}
.tbp-form-success h3{font-family:var(--fh);font-size:1.35rem;color:var(--ok);margin:0 0 8px;}
.tbp-ref-line{font-weight:700;color:var(--navy);font-size:14px;margin:4px 0;font-family:var(--fb);}
.tbp-form-success p{color:var(--muted);font-size:14px;margin:5px 0;font-family:var(--fb);}
.tbp-no-results{color:var(--muted);font-style:italic;padding:20px;text-align:center;grid-column:1/-1;font-family:var(--fb);}

/* ═══════════════════════════════════════
   MODAL
═══════════════════════════════════════ */
body.tbp-noscroll{overflow:hidden !important;}
#tbp-modal{display:none;position:fixed;inset:0;z-index:999999;align-items:center;justify-content:center;}
#tbp-modal.tbp-open{display:flex;}
#tbp-mbg{position:absolute;inset:0;background:rgba(10,20,35,.65);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);}
#tbp-mpanel{
  position:relative;z-index:1;background:#fff;
  border-radius:18px 18px 0 0;width:100%;max-width:680px;max-height:92vh;overflow-y:auto;
  box-shadow:0 -10px 50px rgba(15,41,66,.25);
  animation:tbpSlideUp .3s cubic-bezier(.34,1.2,.64,1);
}
@keyframes tbpSlideUp{from{transform:translateY(80px);opacity:0}to{transform:translateY(0);opacity:1}}
#tbp-mhdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 22px 16px;border-bottom:1px solid var(--bdr);
  position:sticky;top:0;background:#fff;z-index:2;
}
#tbp-mtitle{margin:0;font-family:var(--fh);font-size:1.15rem;color:var(--navy);}
#tbp-mclose{
  width:34px;height:34px;border:none;background:#f1f5f9;
  border-radius:50%;font-size:22px;line-height:1;cursor:pointer;
  color:var(--muted);display:flex;align-items:center;justify-content:center;
  padding:0;transition:var(--tr);
}
#tbp-mclose:hover{background:var(--bdr);color:var(--text);}
#tbp-mbody{padding:20px 22px 32px;}

/* ═══════════════════════════════════════
   SEARCH WIDGET — Results Panel
═══════════════════════════════════════ */
.tbp-sw-results-panel {
  margin-top: 18px;
  border-top: 1px solid rgba(255,255,255,.15);
  padding-top: 18px;
}
.tbp-sw-loading {
  display: flex; align-items: center; gap: 10px;
  color: rgba(255,255,255,.65); font-size: 13px; font-family: var(--fb);
}
.tbp-sw-no-tours { color: rgba(255,255,255,.5); font-size: 13px; font-style: italic; font-family: var(--fb); }

/* Hotel name header in results */
.tbp-sw-result-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 12px; flex-wrap: wrap; gap: 8px;
}
.tbp-sw-hotel-name {
  margin: 0; color: #fff; font-family: var(--fh); font-size: 1.05rem;
}
.tbp-sw-view-link {
  color: rgba(255,255,255,.55); font-size: 12px; text-decoration: none;
  border-bottom: 1px dashed rgba(255,255,255,.3); transition: var(--tr);
}
.tbp-sw-view-link:hover { color: var(--gold-l); border-color: var(--gold-l); }

/* Tour rows */
.tbp-sw-tours { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.tbp-sw-tour-row {
  display: flex; align-items: center; justify-content: space-between;
  background: rgba(255,255,255,.08); border-radius: 8px;
  padding: 12px 16px; gap: 12px; flex-wrap: wrap;
  border: 1px solid rgba(255,255,255,.1);
  transition: var(--tr);
}
.tbp-sw-tour-row:hover { background: rgba(255,255,255,.12); }
.tbp-sw-row-soldout { opacity: .55; }

.tbp-sw-tour-info { display: flex; flex-direction: column; gap: 3px; }
.tbp-sw-tour-info .tbp-sw-tour-name { font-size: 14px; font-weight: 600; color: #fff; }
.tbp-sw-tour-info .tbp-sw-tour-dates { font-size: 12px; color: rgba(255,255,255,.6); }
.tbp-sw-tour-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

.tbp-sw-prices { display: flex; gap: 14px; font-size: 12.5px; color: rgba(255,255,255,.7); }
.tbp-sw-prices strong { color: var(--gold-l); font-family: var(--fh); font-size: 15px; }

.tbp-sw-badge {
  font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 20px;
  white-space: nowrap;
}
.tbp-sw-badge-avail   { background: rgba(22,163,74,.25);  color: #86efac; }
.tbp-sw-badge-limited { background: rgba(251,191,36,.2);  color: #fde68a; }
.tbp-sw-badge-soldout { background: rgba(220,38,38,.2);   color: #fca5a5; }

/* CTA buttons in results */
.tbp-sw-cta {
  display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
  padding-top: 14px; border-top: 1px solid rgba(255,255,255,.12);
}
.tbp-sw-book-btn {
  flex: 1; padding: 13px 20px;
  background: var(--gold); color: var(--navy) !important;
  border: 2px solid var(--gold); border-radius: 8px;
  font-family: var(--fb); font-size: 14px; font-weight: 700;
  cursor: pointer; transition: var(--tr);
  display: flex; align-items: center; justify-content: center; gap: 7px;
}
.tbp-sw-book-btn:hover { background: #b8851f; border-color: #b8851f; transform: translateY(-1px); }
.tbp-sw-detail-btn {
  padding: 12px 18px;
  background: transparent; color: rgba(255,255,255,.8) !important;
  border: 1.5px solid rgba(255,255,255,.25); border-radius: 8px;
  font-family: var(--fb); font-size: 13px; font-weight: 500;
  text-decoration: none; transition: var(--tr); white-space: nowrap;
}
.tbp-sw-detail-btn:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.5); }

/* Field error state */
.tbp-sw-field-error select {
  border-color: #f87171 !important;
  box-shadow: 0 0 0 3px rgba(248,113,113,.25) !important;
}

/* ═══════════════════════════════════════
   REDIRECT PROGRESS BAR (after payment)
═══════════════════════════════════════ */
.tbp-redirect-bar {
  width: 100%;
  height: 4px;
  background: rgba(201,149,42,.2);
  border-radius: 4px;
  margin-top: 16px;
  overflow: hidden;
}
.tbp-redirect-fill {
  height: 100%;
  width: 0;
  background: var(--gold);
  border-radius: 4px;
}

/* Error msg inline */
.tbp-err-msg {
  color: var(--err);
  font-size: 13px;
  font-family: var(--fb);
  padding: 8px 0;
}
