/* ============================================================
   Roamalot Search Widget  ·  rtsw.css  v1.4.0
   All rules scoped — no theme bleed.
   Three widgets:
     .rtsw-wrap          → Widget 1: Original 2-row
     .rtsw-compact-wrap  → Widget 2: Compact 1-row
     .rtsw-stk-wrap      → Widget 3: Stacked 4-row
   Shared: tour result cards, results page, spinner, etc.
============================================================ */

/* ── CSS custom properties (shared) ── */
.rtsw-wrap {
  --gold:   #F5A623;
  --gold-d: #e09410;
  --navy:   #0A1628;
  --blue:   #2563EB;
  --blt:    #EFF6FF;
  --muted:  #6B7280;
  --border: #E5E7EB;
  --bg:     #F9FAFB;
  --white:  #FFFFFF;
  --green:  #16A34A;
  --red:    #DC2626;
  --r:      12px;
  --sh:     0 2px 16px rgba(10,22,40,.09), 0 1px 3px rgba(10,22,40,.06);

  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', Helvetica, Arial, sans-serif;
  font-size: 15px;
  color: #111827;
  line-height: 1.5;
  box-sizing: border-box;
}
.rtsw-wrap *, .rtsw-wrap *::before, .rtsw-wrap *::after { box-sizing: border-box; }

/* ── Heading ── */
.rtsw-heading { text-align: center; padding: 2rem 1rem 1.4rem; }
.rtsw-heading h2 {
  font-size: clamp(1.3rem, 3vw, 2rem); font-weight: 800;
  color: var(--navy); margin: 0 0 .4rem; line-height: 1.2;
}
.rtsw-heading p { color: var(--muted); font-size: .92rem; margin: 0; }

/* ============================================================
   WIDGET 1: ORIGINAL 2-ROW  (.rtsw-wrap / .rtsw-form-card)
============================================================ */
.rtsw-form-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r);
  box-shadow: var(--sh);
  padding: 1.4rem 1.6rem 1.6rem;
  margin-bottom: 1.5rem;
}
.rtsw-row { display: flex; flex-wrap: wrap; gap: .8rem; align-items: flex-end; }
.rtsw-row-a { margin-bottom: .85rem; }
.rtsw-row-b { align-items: center; }

.rtsw-field {
  display: flex; flex-direction: column; gap: .28rem;
  flex: 1 1 180px; min-width: 0;
}
.rtsw-f-nights { flex: 0 1 120px; }
.rtsw-field > label {
  font-size: .69rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; color: var(--muted);
}

/* Select wrapper — hides native arrow */
.rtsw-sel-wrap { position: relative; }
.rtsw-sel-wrap::after {
  content: '▾'; position: absolute; right: .75rem; top: 50%;
  transform: translateY(-50%); color: var(--muted);
  pointer-events: none; font-size: .76rem; line-height: 1;
}

/* Shared input/select base */
.rtsw-wrap select,
.rtsw-wrap input[type="date"] {
  display: block;
  width: 100%;
  height: 44px;
  padding: 0 2.2rem 0 .85rem;
  border: 1.5px solid var(--border);
  border-radius: 9px;
  font-family: inherit;
  font-size: .87rem;
  color: #111827;
  background: #fff;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
  line-height: 1;
  vertical-align: middle;
}
.rtsw-wrap input[type="date"] {
  padding: 0 .85rem;  /* date has its own native icon on right */
  cursor: text;
}
.rtsw-wrap select:focus,
.rtsw-wrap input[type="date"]:focus {
  outline: none;
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}

/* Passenger boxes */
.rtsw-pax-row { display: flex; flex-wrap: wrap; gap: .65rem; flex: 1 1 auto; }
.rtsw-pax-box {
  display: flex; align-items: center; gap: .7rem;
  background: var(--bg); border: 1.5px solid var(--border);
  border-radius: 9px; padding: .45rem .75rem;
  flex: 1 1 155px;
}
.rtsw-pax-lbl { display: flex; align-items: center; gap: .4rem; flex: 1; min-width: 0; }
.rtsw-pax-lbl > span { font-size: 1.1rem; flex-shrink: 0; }
.rtsw-pax-lbl strong { display: block; font-size: .83rem; color: #374151; }
.rtsw-pax-lbl small  { display: block; font-size: .67rem; color: var(--muted); }

/* +/− counter (shared across all widgets) */
.rtsw-counter {
  display: flex; align-items: center;
  border: 1.5px solid var(--border); border-radius: 7px;
  overflow: hidden; background: #fff; flex-shrink: 0;
}
.rtsw-counter button {
  background: none; border: none; cursor: pointer;
  width: 30px; height: 34px;
  font-size: 1.1rem; font-weight: 700; line-height: 1;
  color: var(--muted);
  display: flex; align-items: center; justify-content: center; padding: 0;
  transition: background .12s, color .12s;
}
.rtsw-counter button:hover { background: var(--blt); color: var(--blue); }
.rtsw-counter input[type="number"] {
  border: none !important; box-shadow: none !important;
  width: 34px; text-align: center;
  font-size: .88rem; font-weight: 700; color: #111827;
  background: transparent; padding: 0;
  -moz-appearance: textfield;
}
.rtsw-counter input::-webkit-inner-spin-button,
.rtsw-counter input::-webkit-outer-spin-button { -webkit-appearance: none; }

/* Search button (shared base) */
.rtsw-search-btn-wrap { flex-shrink: 0; }
.rtsw-go {
  display: inline-flex; align-items: center; gap: .5rem;
  height: 44px; padding: 0 1.6rem;
  background: var(--gold); color: var(--navy);
  border: none; border-radius: 9px;
  font-family: inherit; font-size: .9rem; font-weight: 800;
  letter-spacing: .02em; cursor: pointer; white-space: nowrap;
  transition: transform .13s, box-shadow .13s, background .13s;
}
.rtsw-go:hover {
  background: var(--gold-d); transform: translateY(-1px);
  box-shadow: 0 5px 18px rgba(245,166,35,.4);
}

/* Form error */
.rtsw-form-err {
  margin-top: .75rem; padding: .55rem 1rem;
  background: #FEF2F2; border: 1px solid #FECACA;
  border-radius: 8px; color: var(--red);
  font-size: .83rem; font-weight: 600;
}

/* Widget 1 responsive */
@media (max-width: 720px) {
  .rtsw-form-card { padding: 1.1rem; }
  .rtsw-row-a { flex-direction: column; }
  .rtsw-field, .rtsw-f-nights { flex: 1 1 auto; width: 100%; }
  .rtsw-row-b { flex-direction: column; align-items: stretch; }
  .rtsw-pax-row { flex-direction: column; }
  .rtsw-search-btn-wrap { width: 100%; }
  .rtsw-go { width: 100%; justify-content: center; }
}

/* ============================================================
   WIDGET 2: COMPACT 1-ROW  (.rtsw-compact-wrap)
============================================================ */
.rtsw-compact-card { padding: 1rem 1.2rem; }

.rtsw-compact-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: .6rem;
}
.rtsw-compact-row .rtsw-field { flex: 1 1 140px; }

.rtsw-compact-sep {
  color: #D1D5DB; font-size: .95rem;
  padding-bottom: .55rem;
  flex-shrink: 0; user-select: none;
}

/* Compact pax dropdown */
.rtsw-cpt-f-pax { position: relative; flex: 0 1 165px !important; }

.rtsw-cpt-pax-wrap { position: relative; }

.rtsw-cpt-pax-trigger {
  display: flex; align-items: center; justify-content: space-between; gap: .4rem;
  width: 100%; height: 44px; padding: 0 .75rem 0 .85rem;
  border: 1.5px solid var(--border); border-radius: 9px;
  background: #fff; font-family: inherit; font-size: .87rem;
  color: #111827; cursor: pointer; text-align: left;
  transition: border-color .15s, box-shadow .15s;
}
.rtsw-cpt-pax-trigger:hover,
.rtsw-cpt-pax-trigger[aria-expanded="true"] {
  border-color: var(--blue); box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
.rtsw-cpt-pax-summary { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rtsw-cpt-pax-arrow { flex-shrink: 0; color: var(--muted); transition: transform .2s; }
.rtsw-cpt-pax-trigger[aria-expanded="true"] .rtsw-cpt-pax-arrow { transform: rotate(180deg); }

.rtsw-cpt-pax-panel {
  position: absolute; top: calc(100% + 5px); left: 0; z-index: 9999;
  min-width: 230px; width: max-content;
  background: #fff;
  border: 1.5px solid var(--border); border-radius: 12px;
  box-shadow: 0 8px 28px rgba(10,22,40,.13);
  padding: .6rem .9rem .75rem;
}
.rtsw-cpt-pax-item {
  display: flex; align-items: center; justify-content: space-between; gap: 1.2rem;
  padding: .5rem 0; border-bottom: 1px solid #F3F4F6;
}
.rtsw-cpt-pax-item:last-of-type { border-bottom: none; }
.rtsw-cpt-pax-item strong { display: block; font-size: .84rem; color: #111827; font-weight: 700; }
.rtsw-cpt-pax-item small  { display: block; font-size: .71rem; color: #9CA3AF; }
.rtsw-cpt-pax-done {
  display: block; width: 100%; margin-top: .5rem;
  padding: .45rem 1rem; background: var(--blue); color: #fff;
  border: none; border-radius: 8px;
  font-family: inherit; font-size: .84rem; font-weight: 700; cursor: pointer;
  transition: background .15s;
}
.rtsw-cpt-pax-done:hover { background: #1d4ed8; }

.rtsw-go-compact { padding: 0 1.4rem; }

@media (max-width: 820px) {
  .rtsw-compact-row { flex-direction: column; }
  .rtsw-compact-row .rtsw-field,
  .rtsw-cpt-f-pax { flex: 1 1 auto !important; width: 100% !important; }
  .rtsw-compact-sep { display: none; }
  .rtsw-search-btn-wrap { width: 100%; }
  .rtsw-go-compact { width: 100%; justify-content: center; }
}

/* ============================================================
   WIDGET 3: STACKED 4-ROW  (.rtsw-stk-wrap)
============================================================ */

/* Card */
.rtsw-stk-card {
  background: #fff;
  border: 1.5px solid #E5E7EB;
  border-radius: 14px;
  padding: 1.25rem 1.35rem 1.35rem;
  box-shadow: 0 2px 12px rgba(10,22,40,.07);
  display: flex;
  flex-direction: column;
  gap: .9rem;
}

/* Label */
.rtsw-stk-label {
  display: flex; align-items: center; gap: .35rem;
  font-size: .65rem; font-weight: 700;
  letter-spacing: .09em; text-transform: uppercase;
  color: #374151; user-select: none; margin-bottom: .3rem;
}
.rtsw-stk-label svg { flex-shrink: 0; stroke: #6B7280; }

/* Each stacked field */
.rtsw-stk-field { display: flex; flex-direction: column; }

/* Select wrapper */
.rtsw-stk-sel-wrap { position: relative; }
.rtsw-stk-chevron {
  position: absolute; right: .85rem; top: 50%;
  transform: translateY(-50%);
  width: 15px; height: 15px;
  stroke: #9CA3AF; pointer-events: none;
}

/* Select / date input */
.rtsw-stk-select,
.rtsw-stk-input {
  display: block;
  width: 100%;
  height: 48px;
  padding: 0 2.4rem 0 .95rem;
  border: 1.5px solid #E5E7EB;
  border-radius: 10px;
  font-family: inherit;
  font-size: .88rem;
  color: #374151;
  background: #fff;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
  line-height: 1;
}
.rtsw-stk-input {
  padding: 0 .95rem;  /* date — no right padding for chevron */
  cursor: text;
}
.rtsw-stk-select:focus,
.rtsw-stk-input:focus {
  outline: none;
  border-color: #6B7280;
  box-shadow: 0 0 0 3px rgba(107,114,128,.15);
}

/* Row 3: half-width side by side */
.rtsw-stk-row-half {
  display: flex; gap: .8rem;
}
.rtsw-stk-row-half .rtsw-stk-field { flex: 1 1 0; min-width: 0; }

/* Row 4: travellers + button */
.rtsw-stk-row-action {
  display: flex; align-items: flex-end; gap: .75rem;
}
.rtsw-stk-f-pax { flex: 1 1 0; min-width: 0; }

/* Travellers trigger button */
.rtsw-stk-pax-wrap { position: relative; }
.rtsw-stk-pax-trigger {
  display: flex; align-items: center; justify-content: space-between; gap: .5rem;
  width: 100%; height: 48px; padding: 0 .85rem;
  border: 1.5px solid #E5E7EB; border-radius: 10px;
  background: #fff; font-family: inherit; font-size: .88rem;
  color: #374151; cursor: pointer; text-align: left;
  transition: border-color .15s, box-shadow .15s;
}
.rtsw-stk-pax-trigger:hover,
.rtsw-stk-pax-trigger[aria-expanded="true"] {
  border-color: #6B7280; box-shadow: 0 0 0 3px rgba(107,114,128,.15);
}
.rtsw-stk-pax-summary { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rtsw-stk-pax-arrow { flex-shrink: 0; stroke: #9CA3AF; transition: transform .2s; }
.rtsw-stk-pax-trigger[aria-expanded="true"] .rtsw-stk-pax-arrow { transform: rotate(180deg); }

/* Pax panel */
.rtsw-stk-pax-panel {
  position: absolute; top: calc(100% + 5px); left: 0; z-index: 9999;
  width: 100%; min-width: 230px;
  background: #fff;
  border: 1.5px solid #E5E7EB; border-radius: 12px;
  box-shadow: 0 8px 28px rgba(10,22,40,.12);
  padding: .6rem .9rem .75rem;
}
.rtsw-stk-pax-item {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .5rem 0; border-bottom: 1px solid #F3F4F6;
}
.rtsw-stk-pax-item:last-of-type { border-bottom: none; }
.rtsw-stk-pax-lbl strong { display: block; font-size: .85rem; color: #111827; font-weight: 700; line-height: 1.2; }
.rtsw-stk-pax-lbl small  { display: block; font-size: .71rem; color: #9CA3AF; }
.rtsw-stk-pax-done {
  display: block; width: 100%; margin-top: .55rem;
  padding: .45rem 1rem; background: #1D4ED8; color: #fff;
  border: none; border-radius: 8px;
  font-family: inherit; font-size: .84rem; font-weight: 700; cursor: pointer;
  transition: background .15s;
}
.rtsw-stk-pax-done:hover { background: #1e40af; }

/* Search button */
.rtsw-stk-go {
  flex-shrink: 0;
  display: inline-flex; align-items: center; gap: .5rem;
  height: 48px; padding: 0 1.6rem;
  background: #F5A623; color: #0A1628;
  border: none; border-radius: 10px;
  font-family: inherit; font-size: .9rem; font-weight: 800;
  cursor: pointer; white-space: nowrap;
  transition: background .15s, transform .13s, box-shadow .13s;
}
.rtsw-stk-go:hover {
  background: #e09410; transform: translateY(-1px);
  box-shadow: 0 5px 18px rgba(245,166,35,.38);
}

/* Stacked responsive */
@media (max-width: 560px) {
  .rtsw-stk-card { padding: 1rem 1rem 1.1rem; gap: .75rem; }
  .rtsw-stk-row-half { flex-direction: column; }
  .rtsw-stk-row-action { flex-direction: column; align-items: stretch; }
  .rtsw-stk-go { width: 100%; justify-content: center; }
  .rtsw-stk-pax-panel { min-width: 0; }
}

/* ============================================================
   STACKED WIDGET — SLIDER / HERO OVERLAY MODE
   Activated by mode="slider" on the shortcode.
   The widget floats absolutely over whatever container wraps it.
   The parent element (slide, hero div, etc.) needs:
     position: relative; overflow: hidden; (or visible)
   Width + position are injected via inline style from admin settings.
============================================================ */

/* The wrapper becomes an absolute overlay */
.rtsw-stk-slider {
  position: absolute;
  z-index: 10;
  /* width + top + left/right/transform injected inline by PHP */
}

/* Slightly elevated card with backdrop blur for readability over images */
.rtsw-stk-slider .rtsw-stk-card {
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow:
    0 8px 40px rgba(10, 22, 40, 0.22),
    0 2px 8px  rgba(10, 22, 40, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.6);
}

/* Pax panel opens upward when near bottom of slider */
.rtsw-stk-slider .rtsw-stk-pax-panel {
  bottom: calc(100% + 5px);
  top: auto;
}

/* On mobile: slider mode snaps to full-width bottom bar */
@media (max-width: 640px) {
  .rtsw-stk-slider {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
    left: auto !important; right: auto !important; top: auto !important;
  }
  .rtsw-stk-slider .rtsw-stk-card {
    border-radius: 0;
    box-shadow: 0 -4px 20px rgba(10,22,40,.12);
    background: #fff;
    backdrop-filter: none;
  }
}

/* ============================================================
   RESULTS BAR + SORT
============================================================ */
.rtsw-results-bar {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: .75rem;
  background: var(--white); padding: .82rem 1.2rem;
  border-bottom: 1px solid var(--border);
}
.rtsw-results-count { font-size: .84rem; color: var(--muted); }
.rtsw-results-count strong { color: #111827; }
.rtsw-sort-wrap { display: flex; align-items: center; gap: .45rem; font-size: .82rem; color: var(--muted); }
.rtsw-sort {
  border: 1.5px solid var(--border); border-radius: 7px;
  padding: .32rem .7rem; font-size: .82rem;
  color: #111827; font-family: inherit; cursor: pointer;
  appearance: none; background: #fff;
}

/* ============================================================
   LOADING + EMPTY
============================================================ */
.rtsw-loading { padding: 3.5rem 2rem; text-align: center; background: var(--white); }
.rtsw-spinner {
  width: 38px; height: 38px; margin: 0 auto 1rem;
  border: 3px solid var(--border); border-top-color: var(--blue);
  border-radius: 50%; animation: rtsw-spin .7s linear infinite;
}
@keyframes rtsw-spin { to { transform: rotate(360deg); } }
.rtsw-loading p { color: var(--muted); font-size: .88rem; margin: 0; }
.rtsw-empty { background: var(--white); padding: 3.5rem 2rem; text-align: center; color: #374151; }
.rtsw-empty span { font-size: 2.8rem; display: block; margin-bottom: .9rem; }
.rtsw-empty h3 { font-size: 1.05rem; margin: 0 0 .35rem; }
.rtsw-empty p  { color: var(--muted); font-size: .85rem; margin: 0; }

/* ============================================================
   TOUR CARDS
============================================================ */
.rtsw-card {
  display: flex; position: relative;
  background: var(--white); border-bottom: 1px solid var(--border);
  transition: box-shadow .18s;
}
.rtsw-card:last-child { border-bottom: none; }
.rtsw-card:hover { box-shadow: 0 4px 22px rgba(10,22,40,.10); z-index: 1; }

.rtsw-ribbon {
  position: absolute; top: .85rem; left: 0; z-index: 2;
  background: var(--gold); color: var(--navy);
  font-size: .6rem; font-weight: 900; text-transform: uppercase;
  letter-spacing: .06em; padding: .17rem .55rem .17rem .4rem;
  border-radius: 0 20px 20px 0;
}
.rtsw-card-thumb {
  width: 240px; min-width: 240px; overflow: hidden;
  background: linear-gradient(135deg,#c9d6e3,#a8bcd4); flex-shrink: 0;
}
.rtsw-card-thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.rtsw-card:hover .rtsw-card-thumb img { transform: scale(1.05); }
.rtsw-no-thumb { min-height:210px; display:flex; align-items:center; justify-content:center; font-size:4rem; color:rgba(255,255,255,.5); }

.rtsw-card-body { flex:1; padding:1.1rem 1.35rem; min-width:0; }
.rtsw-card-meta { display:flex; flex-wrap:wrap; align-items:center; gap:.38rem; font-size:.76rem; color:var(--muted); margin-bottom:.42rem; }
.rtsw-chip-rating { background:var(--blue); color:#fff; font-size:.71rem; font-weight:800; border-radius:5px; padding:.11rem .34rem; }
.rtsw-chip-dur { background:var(--blt); color:var(--blue); font-size:.71rem; font-weight:700; border-radius:20px; padding:.13rem .52rem; }
.rtsw-meta-sep { color:var(--border); }
.rtsw-dep-chip { background:#F3F4F6; color:#374151; font-size:.68rem; font-weight:700; border-radius:5px; padding:.12rem .38rem; }

a.rtsw-card-title { display:block; font-size:1.04rem; font-weight:800; color:var(--navy); text-decoration:none; line-height:1.3; margin-bottom:.22rem; }
a.rtsw-card-title:hover { color:var(--blue); }
.rtsw-card-loc { font-size:.77rem; color:var(--muted); margin-bottom:.55rem; }
.rtsw-card-tags { display:flex; flex-wrap:wrap; gap:.3rem; margin-bottom:.55rem; }
.rtsw-cat-tag { border:1px solid var(--border); border-radius:20px; padding:.16rem .55rem; font-size:.7rem; color:var(--muted); }
.rtsw-card-incl { display:flex; flex-wrap:wrap; gap:.22rem .5rem; margin-bottom:.5rem; }
.rtsw-incl-item { font-size:.78rem; font-weight:600; color:var(--green); }
.rtsw-incl-item::before { content:'✓ '; }
.rtsw-card-excerpt { font-size:.79rem; color:var(--muted); line-height:1.55; }

.rtsw-price-box { min-width:185px; flex-shrink:0; padding:1.25rem 1.05rem; border-left:1px solid var(--border); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:.06rem; }
.rtsw-price-from { font-size:.69rem; color:var(--muted); }
.rtsw-price-total { font-size:1.5rem; font-weight:900; color:var(--blue); line-height:1; margin:.1rem 0; }
.rtsw-price-cur { font-size:.75rem; font-weight:600; vertical-align:super; }
.rtsw-price-label { font-size:.71rem; font-weight:700; color:#111827; }
.rtsw-price-note { font-size:.67rem; color:var(--red); font-weight:600; margin-bottom:.6rem; line-height:1.35; }
.rtsw-price-breakdown { font-size:.67rem; color:var(--muted); margin-bottom:.85rem; }

.rtsw-btn-book {
  display:block; width:100%; padding:.6rem 1rem;
  background:var(--gold); color:var(--navy);
  border:none; border-radius:8px;
  font-family:inherit; font-size:.79rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.04em;
  text-align:center; text-decoration:none; cursor:pointer;
  transition:transform .13s, box-shadow .13s;
}
.rtsw-btn-book:hover { transform:translateY(-1px); text-decoration:none; color:var(--navy); box-shadow:0 4px 14px rgba(245,166,35,.42); }

@media (max-width:960px) { .rtsw-card-thumb { width:200px; min-width:200px; } }
@media (max-width:720px) {
  .rtsw-card { flex-direction:column; }
  .rtsw-card-thumb { width:100%; min-width:0; height:180px; }
  .rtsw-price-box { border-left:none; border-top:1px solid var(--border); flex-direction:row; flex-wrap:wrap; padding:.9rem 1.1rem; justify-content:space-between; gap:.5rem; }
}

/* ============================================================
   RESULTS PAGE  (.rtsw-results-page-wrap)
============================================================ */
.rtsw-results-page-wrap .rtsw-results { border:1px solid var(--border); border-radius:var(--r); overflow:hidden; }
.rtsw-mini-form { margin-bottom:1.2rem; }
.rtsw-form-card-compact { padding:1rem 1.25rem; }

/* ============================================================
   TAB WIDGET  v1.6.0
   .rtsw-tab-wrap — International / Domestic two-tab widget
============================================================ */

/* ── Tab bar ── */
.rtsw-tab-bar {
  display: flex;
  gap: 0;
  background: #F3F4F6;
  border-radius: 12px 12px 0 0;
  padding: 5px 5px 0;
  border: 1.5px solid #E5E7EB;
  border-bottom: none;
}

.rtsw-tab-btn {
  flex: 1;
  padding: .65rem 1rem;
  font-family: inherit;
  font-size: .88rem;
  font-weight: 700;
  color: #6B7280;
  background: transparent;
  border: none;
  border-radius: 9px 9px 0 0;
  cursor: pointer;
  transition: background .15s, color .15s;
  letter-spacing: .01em;
}
.rtsw-tab-btn:hover { color: #111827; background: rgba(255,255,255,.6); }
.rtsw-tab-btn.rtsw-tab-active {
  background: #fff;
  color: #0A1628;
  box-shadow: 0 -2px 0 0 #F5A623 inset;
}

/* ── Tab panels ── */
.rtsw-tab-panel .rtsw-stk-card {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  border-top: none;
}

/* ── Sub-tab bar (Hotels / Activities) ── */
.rtsw-sub-tab-bar {
  display: flex;
  gap: .45rem;
  padding: .75rem 1.35rem .1rem;
  background: #fff;
  border: 1.5px solid #E5E7EB;
  border-top: none;
  border-bottom: none;
}

.rtsw-sub-tab {
  padding: .38rem 1rem;
  font-family: inherit;
  font-size: .82rem;
  font-weight: 700;
  color: #6B7280;
  background: #F3F4F6;
  border: 1.5px solid #E5E7EB;
  border-radius: 20px;
  cursor: pointer;
  transition: background .13s, color .13s, border-color .13s;
}
.rtsw-sub-tab:hover { background: #EFF6FF; color: #2563EB; border-color: #BFDBFE; }
.rtsw-sub-tab.rtsw-sub-tab-active {
  background: #0A1628;
  color: #F5A623;
  border-color: #0A1628;
}

/* Sub-panels card: square top */
.rtsw-sub-panel .rtsw-stk-card {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  border-top: none;
}

/* ── Inline results (inside card) ── */
.rtsw-inline-results {
  margin-top: .85rem;
}
.rtsw-inline-results .rtsw-list {
  border: 1px solid var(--border, #E5E7EB);
  border-radius: 10px;
  overflow: hidden;
}

/* Hotel star chips */
.rtsw-hotel-stars {
  color: #F5A623;
  font-size: .78rem;
  letter-spacing: -.03em;
}

/* Tag colour helpers */
.rtsw-tag-green { color: #16A34A !important; border-color: #BBF7D0 !important; background: #F0FDF4 !important; }
.rtsw-tag-red   { color: #DC2626 !important; border-color: #FECACA !important; background: #FEF2F2 !important; }

/* ── Responsive ── */
@media (max-width: 560px) {
  .rtsw-tab-bar { padding: 4px 4px 0; }
  .rtsw-tab-btn { font-size: .81rem; padding: .55rem .6rem; }
  .rtsw-sub-tab-bar { padding: .6rem .9rem .1rem; gap: .35rem; }
}

/* ============================================================
   INLINE SEARCH ROW  v1.8.0
   Single horizontal row: used by Hotel and Activities widgets
   and on the results page search bars.
   .rtsw-inline-card  /  .rtsw-inline-row
============================================================ */

.rtsw-inline-card { padding: .9rem 1.1rem 1rem; }

.rtsw-inline-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: .6rem;
}

/* Each field in the row */
.rtsw-inline-field {
  display: flex;
  flex-direction: column;
  gap: .28rem;
  flex: 1 1 140px;
  min-width: 0;
}
.rtsw-inline-field-date  { flex: 0 1 145px; }
.rtsw-inline-field-city  { flex: 0 1 130px; }
.rtsw-inline-field-pax   { flex: 0 1 160px; }

/* Label */
.rtsw-inline-label {
  display: flex;
  align-items: center;
  gap: .3rem;
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #374151;
  white-space: nowrap;
  user-select: none;
}
.rtsw-inline-label svg { flex-shrink: 0; stroke: #6B7280; }
.rtsw-inline-label-spacer { visibility: hidden; pointer-events: none; }

/* Shared input/select base height */
.rtsw-inline-select,
.rtsw-inline-input {
  display: block;
  width: 100%;
  height: 44px;
  padding: 0 2.1rem 0 .85rem;
  border: 1.5px solid #E5E7EB;
  border-radius: 9px;
  font-family: inherit;
  font-size: .87rem;
  color: #111827;
  background: #fff;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
  line-height: 1;
}
.rtsw-inline-text {
  padding: 0 .85rem;   /* text input — no chevron */
}
.rtsw-inline-input[type="date"] {
  padding: 0 .85rem;   /* date has native icon */
  cursor: text;
}
.rtsw-inline-select:focus,
.rtsw-inline-input:focus {
  outline: none;
  border-color: #6B7280;
  box-shadow: 0 0 0 3px rgba(107,114,128,.13);
}

/* Chevron for inline selects — reuse rtsw-sel-wrap::after */
.rtsw-inline-field .rtsw-sel-wrap::after {
  content: '▾';
  position: absolute;
  right: .75rem; top: 50%;
  transform: translateY(-50%);
  color: #9CA3AF;
  pointer-events: none;
  font-size: .75rem;
  line-height: 1;
}

/* Guests / Visitors pax trigger styled like select */
.rtsw-inline-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .4rem;
  width: 100%;
  height: 44px;
  padding: 0 .7rem 0 .85rem;
  border: 1.5px solid #E5E7EB;
  border-radius: 9px;
  background: #fff;
  font-family: inherit;
  font-size: .87rem;
  color: #111827;
  cursor: pointer;
  text-align: left;
  transition: border-color .15s, box-shadow .15s;
}
.rtsw-inline-trigger:hover,
.rtsw-inline-trigger[aria-expanded="true"] {
  border-color: #6B7280;
  box-shadow: 0 0 0 3px rgba(107,114,128,.13);
}

/* Search button in inline row */
.rtsw-inline-btn-wrap { flex-shrink: 0; }
.rtsw-inline-btn-wrap .rtsw-go {
  height: 44px;
  padding: 0 1.4rem;
  white-space: nowrap;
}

/* ── Results page tab bar (Tours | Hotels | Activities) ── */
.rtsw-results-tab-bar {
  margin-bottom: 0;
  border-radius: 12px 12px 0 0;
}
.rtsw-results-tab-bar + .rtsw-results-tab-panel .rtsw-mini-form .rtsw-form-card,
.rtsw-results-tab-bar + .rtsw-results-tab-panel .rtsw-mini-form .rtsw-inline-card {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  border-top: none;
}

/* ── Responsive ── */
@media (max-width: 760px) {
  .rtsw-inline-row { flex-direction: column; }
  .rtsw-inline-field,
  .rtsw-inline-field-date,
  .rtsw-inline-field-city,
  .rtsw-inline-field-pax { flex: 1 1 auto; width: 100%; }
  .rtsw-inline-btn-wrap { width: 100%; }
  .rtsw-inline-btn-wrap .rtsw-go { width: 100%; justify-content: center; }
  .rtsw-inline-label-spacer { display: none; }
}

/* Sub-panel inline cards: remove top border/radius to flow with sub-tab bar */
.rtsw-sub-panel .rtsw-inline-card,
.rtsw-sub-panel .rtsw-stk-card {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  border-top: none;
}
