.sabre-search-card, .sabre-booking-wrap{max-width:1100px;margin:20px auto;padding:18px;border:1px solid #e6e8ef;border-radius:16px;background:#fff;font-family:var(--sabre-font-family, system-ui,-apple-system,Segoe UI,Roboto,Arial);}
.sabre-tabs{display:flex;gap:8px;margin-bottom:14px;}
.sabre-tabs .tab{border:1px solid #e6e8ef;border-radius:999px;padding:8px 14px;background:#fff;font-weight:800;cursor:pointer;}
.sabre-tabs .tab.active{background:#0b1220;color:#fff;border-color:#0b1220;}
.sabre-panel{display:none;}
.sabre-panel.active{display:block;}
.sabre-form .row{display:flex;gap:12px;margin-bottom:12px;}
.sabre-form .field{flex:1;display:flex;flex-direction:column;gap:6px;position:relative;}
.sabre-form label{font-size:13px;font-weight:800;color:#111827;}
.sabre-form input,.sabre-form select{border:1px solid #e6e8ef;border-radius:12px;padding:10px 12px;font-weight:700;}
.sabre-search-btn{width:100%;border:none;border-radius:12px;background:#f2c400;padding:12px 14px;font-weight:900;cursor:pointer;}
.dropdown{position:absolute;top:72px;left:0;right:0;background:#fff;border:1px solid #e6e8ef;border-radius:12px;box-shadow:0 18px 45px rgba(0,0,0,.10);overflow:hidden;z-index:20;}
.dropdown .opt{padding:10px 12px;font-weight:800;cursor:pointer;}
.dropdown .opt:hover{background:#f3f4f6;}

/* =====================
   Search Filter (GoZayaan-like)
   ===================== */

.sabre-filter-wrap{
  background: var(--sabre-filter-bg, #fff);
  border-radius: var(--sabre-filter-radius, 22px);
  box-shadow: var(--sabre-filter-shadow, 0 12px 34px rgba(0,0,0,.10));
  border: 0;
  padding: 22px 22px 26px;
}

/* Tabs pill centered */
.sabre-filter-wrap .sabre-tabs{
  margin: -40px auto 16px;
  width: max-content;
  max-width: calc(100% - 24px);
  background: #fff;
  border-radius: 14px;
  padding: 12px 18px;
  box-shadow: 0 10px 22px rgba(0,0,0,.10);
  gap: 22px;
  justify-content: center;
}
.sabre-filter-wrap .sabre-tabs .tab{
  border: 0;
  background: transparent;
  border-radius: 10px;
  padding: 8px 8px;
  font-weight: 900;
  font-size: var(--sabre-tab-font-size, 14px);
  color: var(--sabre-tab-inactive, #6b7280);
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.sabre-filter-wrap .sabre-tabs .tab .tab-ico{display:none !important;}
.sabre-filter-wrap .sabre-tabs .tab::before{
  content: '';
  width: var(--sabre-tab-icon-size, 18px);
  height: var(--sabre-tab-icon-size, 18px);
  display: inline-block;
  background-size: var(--sabre-tab-icon-size, 18px) var(--sabre-tab-icon-size, 18px);
  background-repeat: no-repeat;
  opacity: .85;
}
.sabre-filter-wrap .sabre-tabs .tab[data-tab="flight"]::before{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f2a44' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 16l-3 3'/%3E%3Cpath d='M14 16l3 3'/%3E%3Cpath d='M2 12l20-6-6 20-4-9-10-5z'/%3E%3C/svg%3E");
}
.sabre-filter-wrap .sabre-tabs .tab[data-tab="hotel"]::before{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f2a44' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10h18v11H3z'/%3E%3Cpath d='M7 10V5h10v5'/%3E%3Cpath d='M7 15h2'/%3E%3Cpath d='M15 15h2'/%3E%3C/svg%3E");
}
.sabre-filter-wrap .sabre-tabs .tab[data-tab="tour"]::before{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f2a44' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l3 7h7l-5.5 4 2 7-6.5-4.5L6 20l2-7L2.5 9h7z'/%3E%3C/svg%3E");
}
.sabre-filter-wrap .sabre-tabs .tab[data-tab="visa"]::before{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f2a44' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M7 9h6'/%3E%3Cpath d='M7 13h10'/%3E%3C/svg%3E");
}

.sabre-filter-wrap .sabre-tabs .tab.active{
  color: var(--sabre-tab-active, #0b2a5a);
}
.sabre-filter-wrap .sabre-tabs .tab.active::after{
  content:'';
  position:absolute;
  left: 12px;
  right: 12px;
  bottom: -10px;
  height: 3px;
  border-radius: 999px;
  background: var(--sabre-tab-underline, #f5b301);
}

/* Trip types (One Way / Round Way / Multi City) */
.sabre-triptypes{display:flex;gap:18px;align-items:center;margin:4px 0 14px;font-weight:900;color:#0b2a5a;}
.sabre-triptypes label{display:flex;gap:10px;align-items:center;font-size:14px;font-weight:1000;color:#0b2a5a;}
.sabre-triptypes input[type="radio"]{width:16px;height:16px;}

/* Grid */
.sabre-grid{display:grid;grid-template-columns: var(--sabre-col-from, 1.25fr) var(--sabre-col-swap, 56px) var(--sabre-col-to, 1.25fr) var(--sabre-col-depart, 1fr) var(--sabre-col-return, 1fr) var(--sabre-col-traveler, 1.05fr);gap: var(--sabre-grid-gap, 16px);align-items:stretch;}

/* Multi city layout: 4 columns (From / To / Departure / Traveler) */
.sabre-filter-wrap.is-multi .sabre-grid{
  grid-template-columns: var(--sabre-col-from, 1.25fr) var(--sabre-col-to, 1.25fr) var(--sabre-col-depart, 1fr) var(--sabre-col-traveler, 1.05fr);
}
.sabre-filter-wrap.is-multi .sabre-grid .field-from{grid-column:1;}
.sabre-filter-wrap.is-multi .sabre-grid .field-to{grid-column:2;}
.sabre-filter-wrap.is-multi .sabre-grid [data-role="depart-box"]{grid-column:3;}
.sabre-filter-wrap.is-multi .sabre-grid .field-traveler{grid-column:4;}
.sabre-grid .field{
  background: var(--sabre-field-bg, #fff);
  border: 1px solid var(--sabre-field-border, #e5e7eb);
  border-radius: var(--sabre-field-radius, 12px);
  padding: 12px 14px;
}
.sabre-grid .field label{
  font-size: var(--sabre-label-size, 11px);
  font-weight: 1000;
  letter-spacing: .02em;
  color: var(--sabre-field-label, #6b7280);
}
.sabre-grid .field input{
  border: 0;
  padding: 0;
  outline: none;
  font-size: var(--sabre-value-size, 18px);
  font-weight: 1100;
  color: var(--sabre-field-value, #0b2a5a);
  background: transparent;
}
.sabre-grid .field input::placeholder{color:#9ca3af;font-weight:900;}

/* Multi-city additional segments */
.sabre-multi-wrap{margin-top:16px;display:none;}
.sabre-filter-wrap.is-multi .sabre-multi-wrap{display:block;}
.sabre-multi-row{display:grid;grid-template-columns: var(--sabre-col-from, 1.25fr) var(--sabre-col-to, 1.25fr) var(--sabre-col-depart, 1fr) 1.05fr;gap: var(--sabre-grid-gap, 16px);align-items:stretch;margin-top:16px;}
.sabre-multi-row .field{background: var(--sabre-field-bg, #fff);border:1px solid var(--sabre-field-border, #e5e7eb);border-radius: var(--sabre-field-radius, 12px);padding:12px 14px;position:relative;}
.sabre-multi-row .field label{font-size:11px;font-weight:1000;letter-spacing:.02em;color: var(--sabre-field-label, #6b7280);}
.sabre-multi-row .field input{border:0;padding:0;outline:none;font-size:18px;font-weight:1100;color: var(--sabre-field-value, #0b2a5a);background:transparent;}
.sabre-multi-row .field input::placeholder{color:#9ca3af;font-weight:900;}

.field-multi-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.field-multi-actions .multi-add{border:0;background:transparent;color:#0b2a5a;font-weight:1100;cursor:pointer;padding:0;margin:0;}
.field-multi-actions .multi-add:disabled{opacity:.45;cursor:not-allowed;}
.field-multi-actions .multi-remove{width:32px;height:32px;border-radius:999px;border:1px solid #e5e7eb;background:#f3f4f6;color:#6b7280;font-weight:1100;cursor:pointer;line-height:1;display:inline-flex;align-items:center;justify-content:center;}


.sabre-search-btn{
  width: 240px;
  margin: 18px auto 0;
  display: block;
  background: var(--sabre-btn-bg, #f5b301);
  color: var(--sabre-btn-text, #0b2a5a);
  height: var(--sabre-btn-height, 54px);
  border-radius: var(--sabre-btn-radius, 12px);
  font-size: 18px;
  font-weight: 1100;
}

/* Return fade in one-way */
.sabre-filter-wrap.is-oneway [data-sabre-return-wrap].is-faded{
  opacity: var(--sabre-return-faded, 0.45);
}

/* Traveler button */
.field-traveler{position:relative;}
.traveler-btn{
  width:100%;
  border:0;
  background: transparent;
  padding:0;
  text-align:left;
  cursor:pointer;
}
.traveler-btn span{display:block;font-size:18px;font-weight:1100;color: var(--sabre-field-value, #0b2a5a);line-height:1.15;}
.traveler-btn small{display:block;margin-top:4px;font-size:12px;font-weight:1000;color:#6b7280;}

/* Traveler popover */
.traveler-pop{position:absolute;right:0;top: calc(100% + 10px);width: 360px;max-width: calc(100vw - 30px);background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 20px 50px rgba(0,0,0,.18);display:none;z-index:50;overflow:hidden;}
.traveler-pop.is-open{display:block;}

.trav-pop-inner{padding:14px 14px 12px;}
.trav-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 2px;}
.trav-left .trav-title{font-weight:1100;color:#111827;font-size:13px;}
.trav-left .trav-sub{font-weight:900;color:#6b7280;font-size:11px;margin-top:2px;}
.trav-right{display:flex;align-items:center;gap:10px;}
.trav-btn{width:28px;height:28px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;font-weight:1100;cursor:pointer;line-height:1;}
.trav-val{min-width:16px;text-align:center;font-weight:1100;color:#111827;}
.trav-divider{height:1px;background:#eef2f7;margin:6px 0;}
.trav-class{padding:8px 2px 0;}
.trav-class-title{font-weight:1100;color:#111827;font-size:13px;margin-bottom:8px;}
.trav-radio{display:inline-flex;align-items:center;gap:8px;margin-right:14px;font-weight:1000;color:#111827;font-size:13px;}
.trav-actions{display:flex;justify-content:flex-end;padding-top:12px;}
.trav-done{border:0;background:#f5b301;color:#0b2a5a;font-weight:1100;border-radius:8px;padding:10px 16px;cursor:pointer;}

.coming{padding:24px;border:1px dashed #cbd5e1;border-radius:16px;font-weight:900;color:#6b7280;text-align:center;}
.sabre-results{margin-top:14px;display:flex;flex-direction:column;gap:12px;}
.sabre-result{display:flex;justify-content:space-between;gap:12px;border:1px solid #e6e8ef;border-radius:16px;padding:14px;}
.sabre-airline{font-weight:900;}
.sabre-airline .code{display:inline-block;background:#0b1220;color:#fff;border-radius:8px;padding:4px 8px;margin-right:6px;font-weight:1000;}
.sabre-route{display:flex;gap:14px;align-items:center;margin-top:8px;}
.sabre-route .mid{color:#6b7280;font-weight:900;}
.sabre-right{min-width:190px;text-align:right;}
.sabre-right .price small{display:block;color:#6b7280;font-weight:900;}
.sabre-right .price strong{display:block;font-size:18px;font-weight:1000;}
.sabre-select-flight{width:100%;background:#f2c400;border:none;border-radius:12px;padding:10px 12px;font-weight:1000;cursor:pointer;margin-top:10px;}
.sabre-loading,.sabre-empty{padding:14px;border:1px solid #e6e8ef;border-radius:14px;color:#6b7280;font-weight:900;}
.sabre-debug{background:#fff7ed;border:1px solid #fdba74;padding:10px 12px;border-radius:12px;font-weight:900;color:#7c2d12;margin-bottom:8px;}
.sabre-review-card{border:1px solid #e6e8ef;border-radius:16px;padding:14px;margin:12px 0;}
.sabre-confirm{border:none;border-radius:12px;background:#f2c400;padding:12px 14px;font-weight:1000;cursor:pointer;width:100%;}
.modal{position:fixed;left:0;top:0;right:0;bottom:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:9999;}
.modal-inner{background:#fff;border-radius:18px;padding:18px 18px 14px;max-width:420px;width:92%;position:relative;border:1px solid #e6e8ef;}
.modal-close{position:absolute;right:10px;top:10px;border:none;background:#f3f4f6;border-radius:10px;width:34px;height:34px;font-weight:1000;cursor:pointer;}

/* Booking page (scoped) */
.sabre-booking-page{max-width:1100px;margin:18px auto;padding:0;background:transparent;border:none;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;}
.sabre-bk-header{background:#eef2f7;border-radius:14px;padding:18px 18px 10px;margin-bottom:14px;}
.sabre-bk-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.sabre-bk-title h2{margin:0;font-size:22px;font-weight:1000;color:#0b1220;}
.sabre-bk-steps{font-weight:900;color:#6b7280;font-size:13px;}
.sabre-bk-steps .step{padding:2px 6px;border-radius:8px;}
.sabre-bk-steps .step.active{color:#111827;font-weight:1000;}
.sabre-bk-steps .step.done{color:#2563eb;}
.sabre-bk-layout{display:grid;grid-template-columns:1fr 320px;gap:16px;}
@media (max-width:980px){.sabre-bk-layout{grid-template-columns:1fr;}}
.sabre-booking-page .sabre-section{margin-top:14px;}
.sabre-booking-page .sabre-section-head{display:flex;align-items:center;justify-content:space-between;margin:10px 0;}
.sabre-booking-page .sabre-section-head h3{margin:0;font-size:18px;font-weight:1000;color:#111827;}
.sabre-booking-page .sabre-collapse{border:1px solid #dbe1ea;background:#fff;border-radius:10px;width:34px;height:34px;cursor:pointer;font-weight:1000;}
.sabre-booking-page .sabre-card{background:#fff;border:1px solid #e6e8ef;border-radius:16px;padding:16px;}
.sabre-booking-page .sabre-trav-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.trav-badge{font-weight:1000;color:#111827;}
.pill{display:inline-block;margin-left:8px;background:#eef2ff;color:#3730a3;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:1000;}
.sabre-booking-page .sabre-subtitle{margin:8px 0 8px;font-weight:1000;color:#111827;}
.sabre-booking-page .sabre-title-pills{display:flex;gap:10px;margin-bottom:12px;}
.sabre-booking-page .pill-btn{border:1px solid #cbd5e1;background:#fff;border-radius:10px;padding:10px 16px;font-weight:1000;cursor:pointer;color:#1f2937;}
.sabre-booking-page .pill-btn.active{border-color:#1d4ed8;color:#1d4ed8;box-shadow:0 0 0 2px rgba(29,78,216,.08) inset;}
.sabre-booking-page .sabre-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:12px;}
@media (max-width:680px){.sabre-grid-2{grid-template-columns:1fr;}}
.sabre-booking-page .sabre-card .field label{display:block;font-size:13px;font-weight:900;color:#6b7280;margin-bottom:6px;}
.sabre-booking-page .sabre-card .field input,.sabre-card .field select{width:100%;border:1px solid #e5e7eb;border-radius:12px;padding:12px 12px;font-weight:900;background:#fff;}
.sabre-booking-page .sabre-check{display:flex;align-items:center;gap:10px;margin-top:14px;font-weight:900;color:#374151;}
.sabre-booking-page .sabre-check input{width:18px;height:18px;}
.sabre-booking-page .phone-wrap{display:flex;align-items:center;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;background:#fff;}
.sabre-booking-page .phone-wrap .prefix{background:#f3f4f6;padding:12px 10px;font-weight:1000;color:#374151;border-right:1px solid #e5e7eb;}
.sabre-booking-page .phone-wrap input{border:none !important;border-radius:0 !important;flex:1;min-width:0;}
.sabre-booking-page .sabre-muted{color:#6b7280;font-weight:900;margin-bottom:10px;}
.sabre-continue{margin-top:16px;width:100%;border:none;border-radius:10px;background:#f2c400;padding:14px 16px;font-weight:1000;cursor:pointer;}
.sabre-bk-side .side-card{background:#fff;border:1px solid #e6e8ef;border-radius:16px;padding:14px;position:sticky;top:20px;}
.sabre-bk-side .side-title{font-weight:1000;margin-bottom:10px;color:#111827;}
.sabre-bk-side .row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed #e6e8ef;font-weight:900;color:#374151;}
.sabre-bk-side .row.total{border-bottom:none;margin-top:6px;}
.sabre-bk-side .val.strong{font-weight:1100;color:#111827;}
/* Flight summary card */
.sabre-booking-page .flight-card{background:#fff;border:1px solid #e6e8ef;border-radius:16px;padding:16px;}
.sabre-booking-page .flight-card .fc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.sabre-booking-page .flight-card .badge{background:#0b1b6f;color:#fff;border-radius:10px;padding:6px 10px;font-weight:1000;font-size:12px;}
.sabre-booking-page .flight-card .change{border:1px solid #cbd5e1;background:#fff;border-radius:10px;padding:8px 10px;font-weight:900;cursor:pointer;color:#1d4ed8;}
.sabre-booking-page .flight-card .airline{font-weight:1000;color:#111827;margin-bottom:6px;}
.sabre-booking-page .flight-card .muted{color:#6b7280;font-weight:900;}
.sabre-booking-page .flight-card .route{font-size:18px;font-weight:1100;color:#111827;margin-bottom:4px;}
.sabre-booking-page .flight-card .date{color:#6b7280;font-weight:900;margin-bottom:12px;}
.sabre-booking-page .flight-card .times{display:grid;grid-template-columns:140px 1fr 140px;gap:12px;align-items:center;}
@media (max-width:720px){.flight-card .times{grid-template-columns:1fr;}}
.sabre-booking-page .flight-card .t .big{font-size:22px;font-weight:1100;color:#111827;}
.sabre-booking-page .flight-card .t .small{color:#6b7280;font-weight:900;}
.sabre-booking-page .flight-card .t.right{text-align:right;}
.sabre-booking-page .flight-card .line{text-align:center;}
.sabre-booking-page .flight-card .dur{font-weight:900;color:#6b7280;font-size:12px;margin-bottom:6px;}
.sabre-booking-page .flight-card .bar{height:2px;background:#c7d2fe;position:relative;border-radius:999px;margin:6px 10px;}
.sabre-booking-page .flight-card .stop{font-weight:900;color:#6b7280;font-size:12px;margin-top:4px;}
.sabre-booking-page .flight-card .details{display:inline-block;margin-top:10px;color:#2563eb;font-weight:1000;text-decoration:none;}
/* Modal */
.sabre-modal{position:fixed;left:0;top:0;right:0;bottom:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:9999;padding:14px;}
.sabre-modal-inner{background:#fff;border-radius:16px;padding:18px;max-width:820px;width:100%;border:1px solid #e6e8ef;position:relative;}
.sabre-booking-page .sabre-modal-inner h3{margin:0 0 10px;font-size:22px;font-weight:1100;color:#111827;}
.sabre-alert{background:#fff7d6;border:1px solid #fde68a;padding:12px;border-radius:12px;font-weight:900;color:#111827;margin-bottom:14px;}
.sabre-modal-summary .modal-flight{margin-bottom:14px;}
.sabre-modal-summary .modal-flight .badge{display:inline-block;background:#0b1b6f;color:#fff;border-radius:10px;padding:6px 10px;font-weight:1000;font-size:12px;margin-bottom:8px;}
.sabre-modal-summary .trav-box{border:1px solid #e6e8ef;border-radius:14px;padding:14px;}
.sabre-modal-summary .trav-h{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.sabre-modal-summary .grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media (max-width:680px){.sabre-modal-summary .grid2{grid-template-columns:1fr;}}
.sabre-modal-summary .lbl{color:#6b7280;font-weight:900;font-size:12px;margin-bottom:4px;}
.sabre-modal-summary .val{font-weight:1100;color:#111827;}
.sabre-modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap;}
.btn-outline{border:1px solid #1d4ed8;background:#fff;border-radius:10px;padding:10px 14px;font-weight:1000;color:#1d4ed8;cursor:pointer;}
.btn-primary{border:none;background:#f2c400;border-radius:10px;padding:10px 14px;font-weight:1100;cursor:pointer;}
.sabre-modal-note{margin-top:10px;color:#6b7280;font-weight:900;}
.modal-close{position:absolute;right:12px;top:12px;border:none;background:#f3f4f6;border-radius:10px;width:36px;height:36px;font-weight:1100;cursor:pointer;}

.coming-soon{background:#fff;border:1px solid #e6e8ef;border-radius:14px;padding:16px;}
.coming-soon h3{margin:0 0 8px;font-weight:1100;}
.coming-soon .cs-img img{max-width:100%;border-radius:12px;}
.coming-soon .cs-link{font-weight:1100;}

.coming-soon{background:#fff;border:1px solid #e6e8ef;border-radius:14px;padding:16px;}
.coming-soon h3{margin:0 0 8px;font-weight:1100;}
.coming-soon .cs-img img{max-width:100%;border-radius:12px;}
.coming-soon .cs-link{font-weight:1100;}

.currency-switch{margin:12px 0 8px;padding:10px;border:1px solid #e6e8ef;border-radius:12px;background:#fff;}
.currency-switch label{display:block;font-size:12px;font-weight:900;color:#6b7280;margin-bottom:6px;}
.currency-switch select{width:100%;border:1px solid #e5e7eb;border-radius:10px;padding:10px;font-weight:900;background:#fff;}

.sabre-results-toolbar{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #e6e8ef;border-radius:14px;padding:12px 14px;margin:14px 0;}
.sabre-results-toolbar label{font-size:12px;font-weight:900;color:#6b7280;margin-right:8px;}
.sabre-results-toolbar select{border:1px solid #e5e7eb;border-radius:10px;padding:8px 10px;font-weight:900;background:#fff;}


/* === Results layout (Gozayaan-like) === */
.sabre-results-layout{
  display:flex;
  gap:24px;
  margin-top:22px;
  background:#eef1f6;
  padding:18px;
  border-radius:16px;
}
.sabre-filters{
  width:280px;
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:12px;
  overflow:hidden;
}
.sabre-filters-head{
  font-weight:800;
  padding:14px 16px;
  border-bottom:1px solid #e5e7eb;
}
.sabre-filter-block{
  padding:14px 16px;
  border-bottom:1px solid #f1f3f7;
}
.sabre-filter-title{
  font-weight:800;
  margin-bottom:10px;
}
.sabre-filter-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.sabre-check{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:700;
  color:#111827;
}
.sabre-check input{ width:16px; height:16px; }
.sabre-currency-switcher{
  width:100%;
  padding:10px 12px;
  border:1px solid #e5e7eb;
  border-radius:10px;
  font-weight:800;
  background:#fff;
}
.sabre-range input[type=range]{ width:100%; }
.sabre-range-meta{
  display:flex;
  justify-content:space-between;
  font-weight:800;
  margin-top:8px;
  color:#111827;
}
.sabre-timegrid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}
.sabre-timebtn{
  padding:10px 0;
  border:1px solid #e5e7eb;
  border-radius:10px;
  background:#fff;
  font-weight:800;
  cursor:pointer;
}
.sabre-timebtn.active{
  border-color:#2b1a7a;
  background:#eef2ff;
}
.sabre-results-main{
  flex:1;
  min-width:0;
}
.sabre-results-header{
  background:linear-gradient(90deg,#2b1a7a,#311b92);
  color:#fff;
  border-radius:12px;
  padding:14px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.sabre-routebar{
  display:flex;
  align-items:center;
  gap:12px;
  font-weight:900;
}
.sabre-route-code{
  background:rgba(255,255,255,.14);
  padding:6px 10px;
  border-radius:10px;
}
.sabre-route-title{ font-weight:900; }
.sabre-quick{
  display:flex;
  gap:12px;
}
.sabre-pill{
  border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.08);
  color:#fff;
  border-radius:12px;
  padding:10px 12px;
  cursor:pointer;
  min-width:180px;
  text-align:left;
}
.sabre-pill .ttl{ font-weight:900; display:block; }
.sabre-pill .sub{ opacity:.9; font-weight:800; display:block; margin-top:2px; }
.sabre-pill.active{
  background:#fff;
  color:#1f2a37;
  border-color:#fff;
}
.sabre-results-list{
  margin-top:14px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.sabre-result-card{
  background:#fff;
  border-radius:14px;
  border:1px solid #e5e7eb;
  padding:14px 16px;
}
.sabre-result-card .row1{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.sabre-result-card .airline{
  font-weight:900;
  color:#111827;
}
.sabre-result-card .fn{ opacity:.8; font-weight:800; margin-left:6px; }
.sabre-result-card .price small{
  display:block;
  color:#6b7280;
  font-weight:800;
}
.sabre-result-card .price strong{
  display:block;
  font-size:20px;
  font-weight:1000;
  color:#111827;
}
.sabre-result-card .row2{
  margin-top:10px;
  display:grid;
  grid-template-columns:140px 1fr 140px 140px;
  align-items:center;
  gap:12px;
}
.sabre-result-card .t{
  font-weight:1000;
  font-size:18px;
}
.sabre-result-card .c{
  color:#6b7280;
  font-weight:900;
}
.sabre-result-card .mid{
  text-align:center;
}
.sabre-result-card .dur{
  font-weight:900;
  color:#374151;
}
.sabre-result-card .line{
  height:10px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.sabre-result-card .line span{
  width:100%;
  height:2px;
  background:#d6d9e1;
  display:block;
  position:relative;
}
.sabre-result-card .line span:before,
.sabre-result-card .line span:after{
  content:'';
  width:10px;height:10px;
  border-radius:10px;
  background:#fff;
  border:2px solid #2b1a7a;
  position:absolute;
  top:-4px;
}
.sabre-result-card .line span:before{ left:0; }
.sabre-result-card .line span:after{ right:0; }
.sabre-result-card .stops{
  font-weight:800;
  color:#6b7280;
}
.sabre-result-card .cta{ text-align:right; }
.sabre-select-flight{
  background:#f7c800;
  color:#0b1220;
  border:0;
  border-radius:8px;
  padding:10px 16px;
  font-weight:1000;
  cursor:pointer;
}
@media(max-width: 980px){
  .sabre-results-layout{ flex-direction:column; }
  .sabre-filters{ width:100%; }
  .sabre-result-card .row2{ grid-template-columns:1fr 1fr; grid-auto-rows:auto; }
  .sabre-result-card .cta{ grid-column:1 / -1; text-align:left; }
}


/* === Filter Style (admin-controlled via CSS variables) === */

.sabre-search-card.sabre-filter-wrap{
  background: var(--sabre-filter-bg, #fff);
  border-radius: var(--sabre-filter-radius, 24px);
  box-shadow: var(--sabre-filter-shadow, 0 10px 30px rgba(0,0,0,0.08));
}

.sabre-search-card .field{
  background: var(--sabre-field-bg, #fff);
  border-color: var(--sabre-field-border, #e5e7eb);
  border-radius: var(--sabre-field-radius, 12px);
}

.sabre-search-card .field label{
  color: var(--sabre-field-label, #6b7280);
}

.sabre-search-card .field input,
.sabre-search-card .field button,
.sabre-search-card .field .traveler-btn{
  color: var(--sabre-field-value, #0b2a5a);
}

.sabre-search-btn{
  background: var(--sabre-btn-bg, #f5b301);
  color: var(--sabre-btn-text, #0b2a5a);
  border-radius: var(--sabre-btn-radius, 12px);
  height: var(--sabre-btn-height, 54px);
}

.sabre-search-card.is-oneway [data-sabre-return-wrap].is-faded{
  opacity: var(--sabre-return-faded, 0.45);
}


/* Swap button (between FROM and TO) */
.field-swap{display:flex;align-items:center;justify-content:center;border:none;background:transparent;padding-top:22px;}
.swap-btn{
  width:44px;height:44px;border-radius:999px;
  border:1px solid var(--sabre-field-border, #e5e7eb);
  background:#fff;
  box-shadow:0 10px 22px rgba(0,0,0,.10);
  font-weight:1100;
  cursor:pointer;
}
.swap-btn:active{transform:translateY(1px);}
@media (max-width: 980px){
  .sabre-grid{grid-template-columns: 1fr 1fr;}
  .field-swap{display:none;}
}

/* =========================================================
   Mobile FROM/TO layout + iOS zoom prevention + calendar fit
   - Desktop remains unchanged.
   ========================================================= */

@media (max-width: 768px){
  /* Keep FROM + TO on the same row on iPhone/Safari */
  .sabre-grid{
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap: 12px;
    position: relative;
  }

  .sabre-grid .field{min-width:0;}

  .sabre-grid .field-from,
  .sabre-grid .field-to{
    grid-row: 1;
    min-height: 98px;
  }
  .sabre-grid .field-from{grid-column: 1; padding-right: 40px;}
  .sabre-grid .field-to{grid-column: 2; padding-left: 40px;}

  /* Swap button sits exactly between FROM and TO */
  .field-swap{
    display: block;
    position: absolute;
    left: 50%;
    top: 49px; /* half of min-height above */
    transform: translate(-50%, -50%);
    padding: 0;
    margin: 0;
    z-index: 20;
    pointer-events: none; /* only the button receives clicks */
  }
  .field-swap .swap-btn{pointer-events:auto;}

  /* Smaller mobile typography while preventing iOS zoom on focus */
  .sabre-triptypes{gap:14px;}
  .sabre-triptypes label{font-size:13px; gap:8px;}
  .sabre-triptypes input[type="radio"]{width:15px;height:15px;}

  .sabre-grid .field label{font-size:10px;}
  /* iOS zooms inputs below 16px; keep 16px for the input itself */
  .sabre-grid .field input{font-size:16px;}
  .sabre-grid .field input::placeholder{font-size:13px;}

  /* Dates: stay tidy */
  .field-depart, .field-return{grid-row:2;}
  .field-depart{grid-column:1;}
  .field-return{grid-column:2;}

  /* Traveler spans full width */
  .field-traveler{grid-column:1 / -1; grid-row:3;}

  /* Calendar popover: keep inside viewport */
  .sabre-cal-popover{
    position: fixed !important;
    left: 50% !important;
    top: 110px !important;
    transform: translateX(-50%) !important;
    max-width: calc(100vw - 24px) !important;
    z-index: 99999;
  }
  .sabre-cal-card{width: min(340px, calc(100vw - 24px));}
  .sabre-cal-card.range{width: min(760px, calc(100vw - 24px));}
  .sabre-cal-card{max-height: calc(100vh - 150px); overflow:auto;}
  .sabre-cal-months{grid-template-columns: 1fr; gap: 10px;}
}

@media (max-width: 420px){
  .sabre-grid{gap:10px;}
  .sabre-grid .field-from{padding-right: 38px;}
  .sabre-grid .field-to{padding-left: 38px;}
  .field-swap{top: 48px;}
}


/* Airport dropdown (From/To) */
.field{position:relative;}
.field .dd{
  display:none;
  position:absolute;
  left:0;
  right:0;
  top:72px;
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:14px;
  box-shadow:0 18px 45px rgba(0,0,0,.10);
  overflow:hidden;
  z-index:50;
}
.dd .dd-search{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border-bottom:1px solid rgba(0,0,0,.06);
  color:#6b7280;
}
.dd .dd-search input{
  border:0;
  outline:none;
  width:100%;
  font-size:14px;
}
.dd .dd-list{
  max-height:340px;
  overflow:auto;
}
.dd .opt{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:12px 14px;
  cursor:pointer;
}
.dd .opt:hover{background:rgba(11,42,90,.04);}
.dd .opt .l1{font-weight:800;color:#0b2a5a;}
.dd .opt .l2{font-size:12px;color:#6b7280;margin-top:2px;}
.dd .opt .code{font-weight:800;color:#6b7bb0;}
.dd .empty{padding:16px 14px;color:#6b7280;}

/* Custom calendar popover (GoZayaan-like) */
.sabre-cal-pop{
  position:absolute;
  z-index:80;
}
.sabre-cal-card{
  background:#fff;
  border-radius:12px;
  box-shadow:0 20px 55px rgba(0,0,0,.12);
  border:1px solid rgba(0,0,0,.06);
  overflow:hidden;
  width: 340px;
}
.sabre-cal-card.range{ width: 760px; }
.sabre-cal-head{
  padding:14px 16px 10px;
  text-align:center;
}
.sabre-cal-title{
  font-weight:800;
  color:#111827;
  margin-bottom:8px;
}
.sabre-cal-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0;
  padding:0 6px;
  color:#6b7280;
}
.sabre-cal-nav .label{
  flex:1;
  text-align:center;
  min-width:170px;
  font-weight:700;
  color:#6b7280;
}
.sabre-cal-nav .nav{
  width:32px;height:32px;border-radius:999px;
  border:1px solid rgba(0,0,0,.08);
  background:#fff; cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#6b7280;
}
.sabre-cal-nav .nav .sabre-nav-ico{ width:14px; height:14px; display:block; }

/* Two-month (range) header: center the two month labels between the nav buttons */
.sabre-cal-nav.range .labels{
  flex:1;
  display:flex;
  justify-content:space-around;
  align-items:center;
}
.sabre-cal-nav.range .labels .label{ min-width:0; }
.sabre-cal-dow{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:6px;
  padding:0 16px 6px;
  color:#9ca3af;
  font-size:12px;
}
.sabre-cal-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:6px;
  padding:0 16px 16px;
}
.sabre-cal-grid .day{
  height:36px;
  border-radius:10px;
  border:0;
  background:transparent;
  cursor:pointer;
  font-weight:700;
  color:#6b7280;
}
.sabre-cal-grid .day.blank{height:36px;}
.sabre-cal-grid button.day:hover{background:rgba(11,42,90,.06);}
.sabre-cal-grid button.day.sel,
.sabre-cal-grid button.day.start,
.sabre-cal-grid button.day.end{
  background:#0b0a59;
  color:#fff;
}
.sabre-cal-grid button.day.in{
  background:rgba(11,10,89,.12);
  color:#0b0a59;
}
.sabre-cal-months{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  padding-bottom:8px;
}
.sabre-cal-head.range .labels{
  display:flex; gap:18px; align-items:center; justify-content:center;
}
.sabre-cal-head.range .label{min-width:auto;}
.sabre-cal-card.range .month{padding-top:4px;}
/* make inputs show two lines similar to screenshot */
.field-depart input, .field-return input{
  white-space:pre-line;
  line-height:1.2;
}


/* Tabs with icons */
.sabre-tabs .tab{display:flex;align-items:center;justify-content:center;gap:10px;}
.sabre-tabs .tab .tab-ico{font-size:16px;line-height:1;}


.field.is-open{
  background:rgba(60,120,255,.12);
  border-color:rgba(60,120,255,.28);
}


/* --- Calendar popover positioning (auto-align under fields, Elementor-friendly) --- */
.sabre-cal-popover{
  position:absolute;
  left:0;
  top:0;
  z-index:9999;
  width:auto;
  max-width:95vw;
  transform: translate3d(0,0,0);
}

/* =========================================================
   FIX: Remove the FIRST (pseudo-element) icon from each top tab.
   Keep only the real icon element inside the tab markup.
   ========================================================= */

.sabre-filter-wrap .sabre-tabs .tab::before{
  content: none !important;
  display: none !important;
}

/* Multi City segment summaries */
.sabre-segments,
.sabre-card-segments{
  margin-top:10px;
  padding:10px 12px;
  border-radius:14px;
  background:#f3f4f6;
}
.sabre-card-segments{margin-top:8px;}
.sabre-segline{
  font-size:13px;
  line-height:1.25;
  font-weight:700;
  color:#111827;
}
.sabre-segline + .sabre-segline{margin-top:6px;}
.sabre-segline .segno{opacity:.7;font-weight:800;}
.sabre-segline .segdt{opacity:.75;font-weight:800;}

/* Quick checkout modal (used when WooCommerce is enabled and Booking Page URL is optional) */
/* =========================
   Confirm Booking (Quick Checkout) – UI matches provided screenshot
   ========================= */
.sabre-qc-modal{position:fixed;inset:0;z-index:99999;display:none;}
.sabre-qc-backdrop{position:absolute;inset:0;background:rgba(0,0,0,0.5);}
.sabre-qc-panel{position:relative;width:min(720px,94vw);margin:6vh auto 0;background:#f3f4f6;border-radius:18px;padding:18px;box-shadow:0 24px 80px rgba(0,0,0,0.28);max-height:88vh;overflow:auto;}
.sabre-qc-x{position:sticky;top:0;float:right;background:#fff;border:1px solid #e5e7eb;border-radius:999px;width:34px;height:34px;font-size:18px;line-height:32px;cursor:pointer;}

.sabre-qc-title{font-weight:1000;font-size:20px;color:#0f172a;margin:4px 0 14px;}
.sabre-qc-summary{margin-bottom:14px;}
.sabre-qc-sum-route{font-weight:1000;color:#0f172a;}
.sabre-qc-sum-sub{color:#64748b;margin-top:4px;font-weight:700;font-size:13px;}

.sabre-qc-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:14px 14px 16px;margin-bottom:14px;}

.sabre-qc-acc-head{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;}
.sabre-qc-acc-left{display:flex;align-items:center;gap:10px;}
.sabre-qc-acc-name{font-weight:1000;color:#0f172a;}
.sabre-qc-pill{background:#eef2ff;color:#3730a3;font-weight:1000;font-size:12px;padding:4px 10px;border-radius:999px;}
.sabre-qc-acc-ico{color:#334155;font-weight:1000;transform:rotate(180deg);transition:transform .15s ease;}
.sabre-qc-acc-head.is-collapsed .sabre-qc-acc-ico{transform:rotate(0deg);}
.sabre-qc-acc-body{margin-top:12px;}

.sabre-qc-muted{color:#94a3b8;font-weight:800;font-size:13px;margin-bottom:8px;}
.sabre-qc-label{color:#64748b;font-weight:900;font-size:13px;margin-bottom:8px;}

.sabre-qc-input{width:100%;border:1px solid #e5e7eb;border-radius:12px;padding:12px 12px;font-size:14px;font-weight:800;color:#0f172a;outline:none;background:#fff;}
.sabre-qc-input:focus{border-color:#c7d2fe;box-shadow:0 0 0 3px rgba(99,102,241,0.16);}

.sabre-qc-sec{margin-top:12px;}
.sabre-qc-sec-title{font-weight:1000;color:#0f172a;font-size:16px;}
.sabre-qc-sec-sub{color:#94a3b8;font-weight:800;font-size:12px;margin-top:4px;}

.sabre-qc-row{margin-top:14px;}
.sabre-qc-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;}

.sabre-qc-titlebtns{display:flex;gap:10px;flex-wrap:wrap;}
.sabre-qc-titlebtn{border:1px solid #c7d2fe;background:#fff;border-radius:10px;padding:10px 14px;font-weight:1000;color:#1e3a8a;cursor:pointer;}
.sabre-qc-titlebtn.is-active{background:#eef2ff;border-color:#6366f1;}

.sabre-qc-check{display:flex;align-items:center;gap:10px;margin-top:14px;color:#64748b;font-weight:900;font-size:13px;user-select:none;}
.sabre-qc-check input{width:16px;height:16px;}

.sabre-qc-phone{display:grid;grid-template-columns:84px 1fr;gap:10px;align-items:center;}
.sabre-qc-phonecode{border:1px solid #e5e7eb;border-radius:12px;padding:12px 10px;font-size:14px;font-weight:900;outline:none;background:#fff;}
.sabre-qc-phonenum{border:1px solid #e5e7eb;border-radius:12px;padding:12px 12px;font-size:14px;font-weight:800;outline:none;background:#fff;}
.sabre-qc-phonecode:focus,.sabre-qc-phonenum:focus{border-color:#c7d2fe;box-shadow:0 0 0 3px rgba(99,102,241,0.16);}

.sabre-qc-confirm{width:100%;border:0;border-radius:16px;padding:14px 16px;font-weight:1000;font-size:16px;cursor:pointer;background:#111827;color:#fff;}
.sabre-qc-confirm:disabled{opacity:0.6;cursor:not-allowed;}
.sabre-qc-msg{margin-top:12px;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:14px;padding:12px 14px;font-weight:900;font-size:13px;}

@media (max-width: 480px){
  .sabre-qc-panel{margin:0;inset:0;position:absolute;left:0;right:0;top:0;bottom:0;width:100%;border-radius:0;max-height:100vh;}
  .sabre-qc-grid2{grid-template-columns:1fr;}
  .sabre-qc-title{font-size:18px;}
  .sabre-qc-confirm{font-size:15px;}
}

/* v0.16.6 Swap button refinement (desktop + mobile)
   - Keep the *container* (.field-swap) flexible so it can vertically center in the grid row.
   - Make the *button* perfectly circular and tightly padded.
*/
.field-swap{
  /* ensure the wrapper stretches with the grid row so centering works */
  align-self: stretch;
  width: auto;
  height: auto;
  padding: 0;
}

.field-swap .swap-btn{
  width: 38px;
  height: 38px;
  padding: 0;
  border-radius: 50%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.field-swap .swap-btn svg,
.field-swap .swap-btn img{
  width: 16px;
  height: 16px;
  display: block;
}

/* v0.16.7 Ensure swap button vertical centering on mobile */
@media (max-width: 768px) {
    .field-swap {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        height: auto;
    }
}


/* v0.16.8 Mobile swap overlap: center between FROM and TO */
@media (max-width: 768px) {
  /* Keep the grid as the positioning context */
  .sabre-grid{
    position: relative;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  /* Force FROM + TO to first row (side-by-side) */
  .sabre-grid .field-from{grid-column:1; grid-row:1; min-width:0;}
  .sabre-grid .field-to{grid-column:2; grid-row:1; min-width:0;}

  /* Place swap in same grid row, spanning both columns, centered */
  .sabre-grid .field-swap{
    position: static !important; /* override previous absolute */
    grid-column: 1 / -1;
    grid-row: 1;
    justify-self: center;
    align-self: center;
    width: 0;
    height: 0;
    margin: 0;
    overflow: visible;
    pointer-events: none; /* only the button is clickable */
    z-index: 10;
    transform: none !important; /* override translate(-50%, -50%) */
  }
  .sabre-grid .field-swap .swap-btn{pointer-events:auto;}

  /* Make room so the circle overlaps between boxes without covering text */
  .sabre-grid .field-from{padding-right: calc(var(--sabre-m-swap-size, 44px) / 2 + 12px);}
  .sabre-grid .field-to{padding-left:  calc(var(--sabre-m-swap-size, 44px) / 2 + 12px);}
}


/* v0.16.9 Mobile swap button: clean centered overlap between FROM/TO */
@media (max-width: 768px){
  .sabre-grid{ position: relative; }

  /* Ensure FROM/TO remain row-1 cols 1/2 */
  .sabre-grid .field-from{ grid-column:1 !important; grid-row:1 !important; }
  .sabre-grid .field-to{ grid-column:2 !important; grid-row:1 !important; }

  /* Make swap wrapper stretch full row so flex-centering is true center */
  .sabre-grid .field-swap{
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    justify-self: stretch !important;
    align-self: stretch !important;
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    pointer-events: none !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    z-index: 20 !important;
  }

  /* If any old decorative pseudo elements exist, disable them on mobile */
  .sabre-grid .field-swap:before,
  .sabre-grid .field-swap:after{
    content: none !important;
    display: none !important;
  }

  /* Perfect circle + centered icon */
  .sabre-grid .field-swap .swap-btn{
    pointer-events: auto !important;
    width: var(--sabre-m-swap-size, 44px) !important;
    height: var(--sabre-m-swap-size, 44px) !important;
    border-radius: 999px !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    background: #fff !important;
    border: 1px solid rgba(17,24,39,.12) !important;
    box-shadow: 0 6px 18px rgba(17,24,39,.10) !important;
  }

  /* Give text breathing room so button overlaps between boxes */
  .sabre-grid .field-from{ padding-right: calc(var(--sabre-m-swap-size, 44px)/2 + 12px) !important; }
  .sabre-grid .field-to{  padding-left:  calc(var(--sabre-m-swap-size, 44px)/2 + 12px) !important; }
}


/* v0.17.0 Mobile: keep FROM/TO boxes visible while swap overlays between them */
@media (max-width: 768px){
  /* Ensure FROM/TO render above grid background and keep their card styling */
  .sabre-grid .field-from,
  .sabre-grid .field-to{
    position: relative !important;
    z-index: 5 !important;
  }

  /* field-swap inherits .field card styles; neutralize them so it doesn't cover boxes */
  .sabre-grid .field-swap{
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
    padding: 0 !important;
  }

  /* Keep the button on top */
  .sabre-grid .field-swap .swap-btn{
    z-index: 10 !important;
  }
}


/* v0.17.3 Calendar: future-only dates + font styling */
.sabre-cal-pop, .sabre-cal-pop *{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Inter, Arial, sans-serif;
}
.sabre-cal-card .sabre-cal-title{
  font-size: 16px;
  font-weight: 600;
}
.sabre-cal-card .sabre-cal-nav .label{
  font-size: 14px;
  font-weight: 500;
}
.sabre-cal-card .sabre-cal-dow span{
  font-size: 11px;
  font-weight: 500;
}
.sabre-cal-card button.day{
  font-size: 13px;
  font-weight: 500;
}
.sabre-cal-card button.day.disabled{
  opacity: .35;
  cursor: not-allowed;
}
.sabre-cal-card button.nav.disabled{
  opacity: .35;
  cursor: not-allowed;
}

/* Filter font tuning (keeps desktop layout intact) */
.sabre-filter-wrap{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Inter, Arial, sans-serif;
}
.sabre-grid .field label{
  letter-spacing: .02em;
  font-weight: 600;
}
