/* ==========================================================================
   Jettaayu premium theme
   Loaded after styles.css / minimal.css / Bootstrap. New components use the
   `jt-` prefix; the "Legacy" section re-skins shared classes used by inner
   pages so every page follows the same type, spacing and button system.
   Type scale follows the approved premium design (compact, editorial sizes).
   ========================================================================== */

:root {
  --jt-navy: #0C1A33;
  --jt-navy-hover: #28374e;
  --jt-gold: #BA9753;
  --jt-gold-dark: #92743e;
  --jt-gold-soft: #f1e9d8;
  --jt-ink: #1d2533;
  --jt-muted: #6b717b;
  --jt-soft: #fafafa;
  --jt-warm: #faf9f7;
  --jt-line: #e9e9eb;
  --jt-radius: 20px;
  --jt-radius-sm: 12px;
  --jt-header-h: 68px;
  --jt-max: 1120px;
  --jt-ease: cubic-bezier(.22, 1, .36, 1);
  --jt-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;

  /* Used by styles.css for body/headings. */
  --primary-font: var(--jt-font);
  --primary-color: var(--jt-navy);
  --secondary-color: var(--jt-gold);
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
html { font-size: 16px; scroll-behavior: smooth; scroll-padding-top: calc(var(--jt-header-h) + 16px); }
body.jt-site {
  font-family: var(--jt-font) !important;
  font-size: 13px;
  line-height: 1.65;
  letter-spacing: 0;
  color: var(--jt-ink);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body.jt-site button, body.jt-site input, body.jt-site select, body.jt-site textarea { font-family: var(--jt-font); }
body.jt-site h1, body.jt-site h2, body.jt-site h3, body.jt-site h4, body.jt-site h5, body.jt-site h6 {
  font-family: var(--jt-font);
  font-weight: 500;
  color: var(--jt-ink);
  letter-spacing: -.02em;
}
body.jt-site p { font-weight: 400 !important; font-size: 13px; line-height: 1.65; color: #4b5260; }
::selection { color: var(--jt-navy); background: #e8d9b9; }
body.jt-site :focus-visible { outline: 3px solid var(--jt-gold); outline-offset: 3px; }

.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

.jt-ico { width: 20px; height: 20px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }

.jt-container { width: min(var(--jt-max), calc(100% - 96px)); margin-inline: auto; }
.jt-section { padding: 100px 0; }
.jt-eyebrow { font-size: 9px !important; font-weight: 650 !important; letter-spacing: .17em; text-transform: uppercase; color: var(--jt-gold-dark) !important; margin: 0 0 16px; }
.jt-section-title { font-size: clamp(28px, 2.85vw, 39px); line-height: 1.19; letter-spacing: -.045em !important; font-weight: 500; margin: 0; }
.jt-muted { color: var(--jt-muted) !important; }
.jt-gold { color: var(--jt-gold); }
.jt-body-copy { font-size: 14px !important; line-height: 1.9 !important; color: var(--jt-muted) !important; margin: 0; }
.jt-subnote { font-size: 9px !important; color: #85817a !important; margin: 15px 0 0; }

/* Buttons */
.jt-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 43px; padding: 0 23px; border-radius: 999px; border: 1px solid transparent;
  font-size: 11px; font-weight: 500; line-height: 1; white-space: nowrap; cursor: pointer;
  text-decoration: none !important;
  transition: background .25s, box-shadow .25s, border-color .25s, transform .45s var(--jt-ease);
}
.jt-button .jt-ico { width: 15px; height: 15px; transition: transform .45s var(--jt-ease); }
.jt-button:hover { transform: translateY(-2px); }
.jt-button:hover .jt-ico { transform: translateX(3px); }
.jt-button-primary, .jt-button-primary:visited { background: var(--jt-navy); color: #fff !important; }
.jt-button-primary:hover { background: var(--jt-navy-hover); color: #fff !important; box-shadow: 0 6px 20px #0c1a3315; }
.jt-button-outline { background: #fff; border-color: var(--jt-line); color: var(--jt-navy) !important; }
.jt-button-outline:hover { border-color: #cfd2d8; color: var(--jt-navy) !important; }
.jt-button-gold { background: var(--jt-navy); color: #fff !important; }
.jt-button-gold:hover { background: var(--jt-navy-hover); color: #fff !important; }

.jt-text-link {
  display: inline-flex; align-items: center; gap: 9px; padding: 0; border: 0; background: transparent;
  font-size: 11px; font-weight: 600; color: var(--jt-navy) !important; text-decoration: none !important; cursor: pointer;
}
.jt-text-link .jt-ico { width: 15px; height: 15px; transition: transform .3s var(--jt-ease); }
.jt-text-link:hover { color: var(--jt-gold-dark) !important; }
.jt-text-link:hover .jt-ico { transform: translateX(3px); }
.jt-gold-link { color: var(--jt-gold-dark) !important; }

.jt-circle-button {
  width: 36px; height: 36px; display: grid; place-items: center; border: 0; border-radius: 50%;
  background: #f6f6f7; color: var(--jt-navy); cursor: pointer; transition: background .2s;
}
.jt-circle-button:hover { background: #e7e9ec; }
.jt-circle-button .jt-ico { width: 16px; height: 16px; }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
header.jt-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1030;
  height: var(--jt-header-h); padding: 0 !important;
  background: #ffffffdf; border-bottom: 1px solid #eeeeef;
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  box-shadow: none; transition: box-shadow .35s, background .35s;
}
header.jt-header.is-scrolled, header.jt-header.sticky { background: #fffffff2; box-shadow: 0 2px 20px #0c1a3304; }
.jt-nav-inner { width: min(1280px, calc(100% - 80px)); height: 100%; margin: 0 auto; display: flex; align-items: center; gap: 30px; }
.jt-brand { display: flex; align-items: center; flex-shrink: 0; }
.jt-brand img { width: 132px; height: auto; display: block; }
.jt-desktop-nav { display: flex; align-items: center; justify-content: center; gap: 30px; margin: 0 auto; }
.jt-desktop-nav a {
  position: relative; padding: 25px 0; font-size: 11px; font-weight: 500; letter-spacing: 0;
  color: var(--jt-ink) !important; text-decoration: none !important; white-space: nowrap;
}
.jt-desktop-nav a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 17px; height: 1px; background: var(--jt-gold);
  transform: scaleX(0); transform-origin: left; transition: transform .45s var(--jt-ease);
}
.jt-desktop-nav a:hover::after, .jt-desktop-nav a.is-active::after { transform: scaleX(1); }
.jt-desktop-nav a.is-active { color: var(--jt-navy) !important; }
.jt-nav-actions { display: flex; align-items: center; gap: 12px; flex-shrink: 0; font-size: 11px; }
.jt-nav-cta { min-height: 34px; padding: 0 18px; font-size: 10px; }
.jt-account-btn {
  display: flex; align-items: center; gap: 6px; height: 34px; min-width: 34px; padding: 0 8px; justify-content: center;
  border: 1px solid var(--jt-line); border-radius: 999px; background: #fff; color: var(--jt-navy); font-size: 11px; font-weight: 500;
}
.jt-account-btn span { max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding-right: 4px; }
.jt-account-btn .jt-ico { width: 16px; height: 16px; }
.jt-account-btn:hover { border-color: #cfd2d8; }
.jt-dropdown { border: 1px solid var(--jt-line); border-radius: 14px; padding: 6px; box-shadow: 0 18px 40px #0c1a3314; min-width: 170px; margin-top: 8px !important; }
.jt-dropdown .dropdown-item { border-radius: 9px; padding: 8px 12px; font-size: 12px; color: var(--jt-ink); }
.jt-dropdown .dropdown-item:hover { background: var(--jt-soft); color: var(--jt-navy); }
.jt-menu-toggle { display: none; width: 36px; height: 36px; place-items: center; border: 0; border-radius: 50%; background: #f6f6f7; color: var(--jt-navy); }
.jt-menu-toggle .jt-ico { width: 18px; height: 18px; }

.jt-mobile-menu.offcanvas { width: min(340px, 88vw); border-right: 0; }
.jt-mobile-menu .offcanvas-header { padding: 16px 20px; border-bottom: 1px solid var(--jt-line); }
.jt-mobile-menu .offcanvas-body { padding: 12px 20px 26px; display: flex; flex-direction: column; gap: 18px; }
.jt-mobile-menu nav a, .jt-mobile-account a {
  display: block; padding: 12px 4px; font-size: 15px; color: var(--jt-ink) !important; border-bottom: 1px solid #f1f1f3; text-decoration: none !important;
}
.jt-mobile-menu nav a.is-active { color: var(--jt-gold-dark) !important; }
.jt-mobile-account a { font-size: 13px; color: var(--jt-gold-dark) !important; border-bottom: 0; padding: 8px 4px; }

/* --------------------------------------------------------------------------
   Booking card (home + commercial)
   -------------------------------------------------------------------------- */
.jt-page-top { padding-top: calc(var(--jt-header-h) + 20px); }
.jt-booking-shell {
  position: relative; z-index: 5; width: min(1120px, calc(100% - 120px)); margin: 0 auto;
  background: #fff; border: 1px solid #e9eaec; border-radius: 18px; padding: 21px 25px 17px;
  box-shadow: 0 7px 30px #0c1a3304;
}
.jt-booking-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 21px; flex-wrap: wrap; }
.jt-service-tabs { display: flex; gap: 3px; padding: 4px; border-radius: 999px; background: #f5f5f6; }
.jt-service-tabs > button, .jt-service-tabs > a {
  display: flex; align-items: center; justify-content: center; gap: 9px; width: auto;
  padding: 10px 17px; border: 0; border-radius: 999px; background: transparent;
  font-size: 11px; font-weight: 550; color: var(--jt-muted) !important; white-space: nowrap; text-decoration: none !important;
  transition: color .35s, background .25s, box-shadow .25s;
}
.jt-service-tabs > button:hover, .jt-service-tabs > a:hover { color: var(--jt-navy) !important; }
.jt-service-tabs > .active, .jt-service-tabs > .activeJet { background: #fff; color: var(--jt-navy) !important; box-shadow: 0 1px 7px #00000008; }
.jt-service-tabs .jt-ico { width: 18px; height: 18px; stroke-width: 1.3; }
.jt-booking-assist { display: flex; align-items: center; gap: 7px; margin: 0; font-size: 10px !important; color: var(--jt-muted) !important; }
.jt-booking-assist .jt-ico { width: 15px; height: 15px; color: var(--jt-gold); }

.jt-trip-type { display: flex; align-items: center; gap: 18px; border: 0; padding: 0; margin: 0; }
.jt-trip-type label { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--jt-ink); cursor: pointer; margin: 0; }
.jt-trip-type input { width: 14px; height: 14px; margin: 0; accent-color: var(--jt-navy); }

.jt-booking-fields { display: grid; gap: 14px; align-items: start; }
.jt-booking-fields--charter { grid-template-columns: minmax(0, 1.5fr) 31px minmax(0, 1.5fr) minmax(0, 1.2fr) minmax(0, .8fr) auto; }
.jt-booking-fields--commercial { grid-template-columns: minmax(0, 1.4fr) 31px minmax(0, 1.4fr) minmax(0, .8fr) minmax(0, .8fr) minmax(0, 1.25fr) auto; }
.jt-booking-fields--commercial:has(#return_date_wrapper[style*="none"]) { grid-template-columns: minmax(0, 1.4fr) 31px minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1.3fr) auto; }

.jt-field { position: relative; display: flex; flex-direction: column; gap: 8px; min-width: 0; height: auto !important; padding: 0 !important; border: 0 !important; }
.jt-field > label { margin: 0; font-size: 9px !important; font-weight: 500 !important; letter-spacing: .1em; text-transform: uppercase; color: var(--jt-muted) !important; }
.jt-field input[type="text"], .jt-field select, .jt-date-trigger, .jt-travellers-toggle {
  width: 100%; min-width: 0; height: 33px; margin: 0; padding: 0 0 6px;
  border: 0; border-bottom: 1px solid var(--jt-line); border-radius: 0; background: transparent;
  font-size: 12px; font-weight: 500 !important; line-height: 1.2 !important; color: var(--jt-navy);
  text-align: left; text-transform: none; text-overflow: ellipsis; white-space: nowrap; overflow: hidden;
  outline: none; box-shadow: none; transition: border-color .2s;
}
.jt-field select { cursor: pointer; appearance: none; -webkit-appearance: none; padding-right: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230C1A33' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 2px center / 14px; }
.jt-field input[type="text"]::placeholder { color: #536072; font-weight: 400; opacity: 1; }
.jt-field input[type="text"]:focus, .jt-field select:focus, .jt-date-trigger:focus, .jt-travellers-toggle:focus { border-bottom-color: var(--jt-navy); }
body.jt-site .jt-field input:focus-visible, body.jt-site .jt-field select:focus-visible, body.jt-site .form-control:focus-visible, body.jt-site .form-select:focus-visible { outline: none; }
.jt-date-trigger { cursor: pointer; }
.jt-airport-name { display: block; min-height: 14px; font-size: 10px !important; color: var(--jt-muted) !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100% !important; }
.jt-field .error-message, .jt-field + .error-message { font-size: 10px !important; color: #9e3131 !important; margin-top: 4px; }
.jt-field .error-border { border-bottom-color: #9e3131 !important; }

.jt-swap {
  width: 31px; height: 31px; margin-top: 18px; padding: 0; display: grid; place-items: center;
  border: 1px solid var(--jt-line); border-radius: 50%; background: #fff; color: var(--jt-navy); cursor: pointer; transition: transform .45s var(--jt-ease), border-color .2s;
}
.jt-swap:hover { border-color: #cfd2d8; transform: rotate(180deg); }
.jt-swap .jt-ico { width: 15px; height: 15px; }
.jt-booking-submit { margin-top: 14px; min-height: 42px; padding: 0 19px; font-size: 10px; }

/* Airport suggestions (markup rendered by home.js) */
.jt-field .dropdown-box {
  position: absolute; top: calc(100% + 6px); left: 0; z-index: 30; width: max(100%, 300px);
  max-height: 300px; overflow: auto; background: #fff; border: 1px solid var(--jt-line); border-radius: 14px;
  box-shadow: 0 18px 40px #0c1a3318; padding: 6px 0;
}
.jt-field .dropdown-box .dropScrollMain { max-height: none; }
.jt-field .dropdown-box .recentDivMain { padding: 8px 14px 6px; }
.jt-field .dropdown-box .recentDivMain h5 { font-size: 9px; font-weight: 600 !important; letter-spacing: .1em; color: var(--jt-muted); margin: 0; text-transform: uppercase; }
.jt-field .dropdown-box ul { margin: 0; padding: 0; list-style: none; }
.jt-field .dropdown-box .recentSearchUiFlex { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 14px; cursor: pointer; transition: background .15s; }
.jt-field .dropdown-box .recentSearchUiFlex:hover { background: var(--jt-warm); }
.jt-field .dropdown-box .contentWithMap { display: flex; gap: 10px; align-items: flex-start; min-width: 0; }
.jt-field .dropdown-box .contentWithMap i { color: var(--jt-gold); font-size: 11px; margin-top: 3px; }
.jt-field .dropdown-box .contentMainAll span { display: block; font-size: 12px; font-weight: 600; color: var(--jt-navy); }
.jt-field .dropdown-box .contentMainAll p { margin: 0; font-size: 10px; color: var(--jt-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.jt-field .dropdown-box h6 { margin: 0; font-size: 10px; font-weight: 600 !important; color: var(--jt-gold-dark); letter-spacing: .06em; }
.jt-field .dropdown-box .loading-spinner { padding: 10px 14px; font-size: 11px; color: var(--jt-muted); border: 0; }

/* Travellers & class popover (commercial) */
.jt-travellers-wrap { position: relative; }
.jt-travellers-toggle { display: flex; align-items: center; justify-content: space-between; gap: 8px; cursor: pointer; }
.jt-travellers-toggle > span { overflow: hidden; text-overflow: ellipsis; }
.jt-travellers-toggle strong { font-weight: 600; }
.jt-travellers-toggle .jt-ico { width: 14px; height: 14px; }
.jt-travellers-panel {
  display: none; position: absolute; top: calc(100% + 8px); right: 0; z-index: 30; width: 310px;
  padding: 14px 18px 18px; background: #fff; border: 1px solid var(--jt-line); border-radius: 16px; box-shadow: 0 18px 40px #0c1a3318;
}
.jt-counter-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid #f0f1f3; }
.jt-counter-row h3 { font-size: 13px; margin: 0 0 2px; }
.jt-counter-row p { font-size: 10px !important; margin: 0; color: var(--jt-muted) !important; }
.jt-counter { display: flex; align-items: center; gap: 4px; }
.jt-counter button {
  width: 28px; height: 28px; display: grid; place-items: center; padding: 0; border: 1px solid var(--jt-line); border-radius: 50%;
  background: #fff; color: var(--jt-navy); font-size: 14px; line-height: 1; cursor: pointer;
}
.jt-counter button:hover { border-color: var(--jt-navy); }
.jt-counter input { width: 28px; height: 28px; margin: 0; padding: 0; border: 0; text-align: center; font-size: 13px; font-weight: 600; color: var(--jt-navy); background: transparent; }
.jt-class-choice { padding-top: 12px; }
.jt-class-choice h4 { font-size: 9px; font-weight: 600 !important; letter-spacing: .1em; text-transform: uppercase; color: var(--jt-muted); margin: 0 0 8px; }
.jt-travellers-done { width: 100%; margin-top: 14px; min-height: 38px; }

/* Chips: cabin class + special fares */
.jt-chip-group { display: flex; flex-wrap: wrap; gap: 6px; }
.jt-chip-group .form-check { margin: 0; padding: 0; min-height: 0; }
.jt-chip-group .form-check-input { position: absolute; opacity: 0; pointer-events: none; }
.jt-chip-group .form-check-label, .jt-chip > span {
  display: inline-flex; align-items: center; min-height: 30px; padding: 0 13px; border: 1px solid var(--jt-line); border-radius: 999px;
  font-size: 11px; font-weight: 500; color: var(--jt-ink); background: #fff; cursor: pointer; transition: all .2s;
}
.jt-chip-group .form-check-input:checked + .form-check-label, .jt-chip input:checked + span { background: var(--jt-navy); border-color: var(--jt-navy); color: #fff; }
.jt-chip-group .form-check-input:focus-visible + .form-check-label, .jt-chip input:focus-visible + span { outline: 3px solid var(--jt-gold); outline-offset: 2px; }
.jt-chip { position: relative; margin: 0; }
.jt-chip input { position: absolute; opacity: 0; pointer-events: none; }
.jt-trip-extras { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--jt-line); font-size: 12px; }
.jt-extras-label { font-size: 9px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--jt-muted); }

.jt-booking-footnote { display: flex; justify-content: space-between; gap: 12px; margin-top: 18px; font-size: 9px; color: var(--jt-muted); }
.jt-booking-footnote a { color: var(--jt-navy) !important; text-decoration: underline !important; text-underline-offset: 3px; white-space: nowrap; }

.jt-promise-strip { display: flex; justify-content: center; align-items: center; gap: 35px; margin-top: 24px; font-size: 10px; color: #727982; flex-wrap: wrap; }
.jt-promise-strip span { display: flex; align-items: center; gap: 8px; }
.jt-promise-strip .jt-ico { width: 13px; height: 13px; color: var(--jt-gold); }

/* flatpickr */
.flatpickr-calendar { border-radius: 16px !important; border: 1px solid var(--jt-line) !important; box-shadow: 0 18px 40px #0c1a3318 !important; font-family: var(--jt-font); font-size: 12px !important; }
.flatpickr-day.selected, .flatpickr-day.selected:hover { background: var(--jt-navy) !important; border-color: var(--jt-navy) !important; }
.flatpickr-day.today { border-color: var(--jt-gold) !important; }

/* --------------------------------------------------------------------------
   Hero image banner
   -------------------------------------------------------------------------- */
.jt-hero-banner { padding-top: 31px; }
.jt-hero-visual { position: relative; width: calc(100% - 80px); max-width: 1360px; margin: 0 auto; border-radius: 19px; overflow: hidden; background: #f8f8f7; aspect-ratio: 2.52; }
.jt-hero-slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.1s var(--jt-ease); }
.jt-hero-slide.is-active { opacity: 1; }
.jt-hero-caption, .jt-hero-controls {
  position: absolute; bottom: 24px; z-index: 2; background: #ffffffdb; border: 1px solid #ffffff9c;
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
}
.jt-hero-caption { left: 25px; max-width: min(460px, calc(100% - 48px)); padding: 13px 18px; border-radius: 13px; color: var(--jt-navy); }
.jt-hero-caption span { display: block; margin-bottom: 5px; font-size: 8px; letter-spacing: .13em; text-transform: uppercase; color: #7a6c51; }
.jt-hero-caption strong { font-size: 13px; font-weight: 450; letter-spacing: -.015em; }
.jt-hero-controls { right: 24px; display: flex; align-items: center; gap: 4px; padding: 6px 10px; border-radius: 30px; }
.jt-hero-dot { width: 29px; height: 27px; padding: 0; border: 0; background: transparent; display: grid; place-items: center; cursor: pointer; }
.jt-hero-dot::after { content: ""; width: 5px; height: 5px; border-radius: 6px; background: #b7bbc1; transition: width .55s var(--jt-ease), background .35s; }
.jt-hero-dot[aria-pressed="true"]::after { width: 19px; background: var(--jt-navy); }
.jt-hero-counter { font-size: 8px; color: var(--jt-muted); padding: 0 5px 0 8px; letter-spacing: .08em; font-variant-numeric: tabular-nums; }

/* --------------------------------------------------------------------------
   Content sections
   -------------------------------------------------------------------------- */
.jt-intro { display: grid; grid-template-columns: 1.07fr 1fr; gap: 105px; align-items: start; }
.jt-intro-description { padding-top: 22px; }
.jt-experience { display: flex; align-items: center; gap: 16px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--jt-line); }
.jt-experience strong { font-size: 34px; font-weight: 500; letter-spacing: -.06em; color: var(--jt-navy); line-height: 1; }
.jt-experience strong .jt-gold { font-size: 23px; }
.jt-experience span { font-size: 10px; line-height: 1.55; color: var(--jt-muted); }
.jt-travel-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 38px; margin-top: 57px; }
.jt-travel-option { border-top: 1px solid var(--jt-line); padding-top: 23px; }
.jt-option-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 23px; }
.jt-option-top > .jt-ico { width: 32px; height: 32px; color: #9a7c42; stroke-width: 1; }
.jt-option-top > span { font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: #9b9da3; }
.jt-travel-option h3 { font-size: 21px; letter-spacing: -.035em !important; margin: 0 0 12px; }
.jt-travel-option p { font-size: 13px !important; line-height: 1.85 !important; color: var(--jt-muted) !important; max-width: 330px; min-height: 67px; margin: 0; }
.jt-travel-option .jt-text-link { margin-top: 22px; }

.jt-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 35px; margin-bottom: 32px; }
.jt-section-head .jt-body-copy { max-width: 350px; font-size: 13px !important; }

.jt-fleet-section, .jt-services-section { background: var(--jt-soft); border-block: 1px solid #f5f5f5; }
.jt-pill-tabs { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 25px; }
.jt-pill-tabs button { padding: 10px 20px; border: 1px solid transparent; border-radius: 999px; background: transparent; font-size: 11px; font-weight: 500; color: #777d86; cursor: pointer; transition: color .3s, background .4s; }
.jt-pill-tabs button:hover { color: var(--jt-navy); }
.jt-pill-tabs button[aria-selected="true"] { background: #fff; border-color: var(--jt-line); color: var(--jt-navy); }
.jt-fleet-panel { display: grid; grid-template-columns: 1.12fr 1fr; min-height: 380px; background: #fff; border: 1px solid #ececee; border-radius: var(--jt-radius); overflow: hidden; }
.jt-fleet-art { background: #eeeae4; overflow: hidden; }
.jt-fleet-art img { width: 100%; height: 100%; min-height: 380px; max-height: 470px; object-fit: cover; object-position: 47% 50%; transition: transform 1.2s var(--jt-ease); }
.jt-fleet-panel:hover .jt-fleet-art img { transform: scale(1.025); }
.jt-fleet-details { padding: 42px 45px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.jt-fleet-details .jt-eyebrow { font-size: 8px !important; margin-bottom: 10px; }
.jt-fleet-details h3 { font-size: 28px; line-height: 1.19; letter-spacing: -.04em !important; margin: 0 0 17px; }
.jt-fleet-details p:not(.jt-eyebrow) { font-size: 13px !important; color: var(--jt-muted) !important; line-height: 1.85 !important; margin: 0; }
.jt-fleet-details .jt-button { min-height: 39px; font-size: 10px; }
.jt-fleet-details .jt-subnote { font-size: 9px !important; color: var(--jt-muted) !important; }
.jt-check-list { list-style: none; margin: 20px 0 24px; padding: 0; display: flex; flex-wrap: wrap; gap: 9px 14px; }
.jt-check-list li { display: flex; align-items: center; gap: 6px; font-size: 9px; color: #566171; }
.jt-check-list .jt-ico { width: 14px; height: 14px; color: var(--jt-gold-dark); }

.jt-process-header { max-width: 565px; margin: 0 auto; text-align: center; }
.jt-process-header .jt-body-copy { margin-top: 19px; font-size: 13px !important; }
.jt-steps { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 56px; margin-top: 47px; }
.jt-steps::before { content: ""; position: absolute; top: 20px; left: 0; right: 0; height: 1px; background: var(--jt-line); }
.jt-step { position: relative; }
.jt-step-number { width: 41px; height: 41px; display: grid; place-items: center; margin-bottom: 24px; border: 1px solid #dfd7c7; border-radius: 50%; background: #fff; box-shadow: 0 0 0 12px #fff; font-size: 10px; letter-spacing: .06em; color: var(--jt-gold-dark); }
.jt-step h3 { font-size: 19px; letter-spacing: -.035em !important; margin: 0 0 12px; }
.jt-step p { font-size: 13px !important; color: var(--jt-muted) !important; line-height: 1.9 !important; margin: 0; }

.jt-empty-leg { display: grid; grid-template-columns: 1fr 1.1fr; min-height: 372px; background: var(--jt-warm); border: 1px solid #efede8; border-radius: 22px; overflow: hidden; }
.jt-empty-copy { padding: 44px 35px 41px 43px; }
.jt-empty-copy .jt-eyebrow { font-size: 8px !important; margin-bottom: 18px; }
.jt-empty-copy h2 { font-size: clamp(28px, 2.65vw, 36px); line-height: 1.17; letter-spacing: -.045em !important; margin: 0; }
.jt-empty-copy > p:not(.jt-eyebrow):not(.jt-subnote) { font-size: 13px !important; color: #75797f !important; line-height: 1.9 !important; margin: 20px 0 22px; max-width: 420px; }
.jt-empty-copy .jt-button { min-height: 41px; }
.jt-empty-art { overflow: hidden; }
.jt-empty-art img { width: 100%; height: 100%; min-height: 372px; object-fit: cover; transition: transform 1.3s var(--jt-ease); }
.jt-empty-leg:hover .jt-empty-art img { transform: scale(1.025); }
.jt-additional-travel { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 22px; }
.jt-additional-travel article { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 29px; border: 1px solid var(--jt-line); border-radius: 17px; background: #fff; }
.jt-additional-travel h3 { font-size: 20px; margin: 0 0 8px; }
.jt-additional-travel p { font-size: 11px !important; color: var(--jt-muted) !important; margin: 0; }
.jt-round-link { width: 36px; height: 36px; flex-shrink: 0; display: grid; place-items: center; border: 1px solid #ececef; border-radius: 50%; background: var(--jt-soft); color: var(--jt-navy) !important; transition: background .3s, transform .5s var(--jt-ease); }
.jt-round-link:hover { background: #f0ede7; transform: translate(2px, -2px); }
.jt-round-link .jt-ico { width: 17px; height: 17px; }

.jt-destinations-section { overflow: hidden; }
.jt-destination-head { align-items: flex-end; }
.jt-carousel-controls { display: flex; gap: 8px; }
.jt-destination-track { display: flex; gap: 23px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 6px; overscroll-behavior-x: contain; }
.jt-destination-track::-webkit-scrollbar { display: none; }
.jt-destination-card { flex: 0 0 calc((100% - 46px) / 3); scroll-snap-align: start; display: flex; flex-direction: column; background: #fff; border: 1px solid #eaeaec; border-radius: 17px; overflow: hidden; }
.jt-destination-card img { width: 100%; aspect-ratio: 1.02; object-fit: cover; transition: transform 1s var(--jt-ease); }
.jt-destination-card:hover img { transform: scale(1.025); }
.jt-destination-label { padding: 23px 24px 25px; }
.jt-destination-label small { display: block; margin-bottom: 8px; font-size: 8px; letter-spacing: .13em; text-transform: uppercase; color: var(--jt-gold-dark); }
.jt-destination-label strong { display: block; font-size: 22px; font-weight: 450; letter-spacing: -.035em; color: var(--jt-ink); }
.jt-destination-tag { display: block; margin-top: 8px; font-size: 10px; line-height: 1.6; color: #7a7e86; }

.jt-service-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.jt-service-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #ebebed; border-radius: 17px; overflow: hidden; }
.jt-service-card img { width: 100%; aspect-ratio: 1.28; object-fit: cover; object-position: center 28%; }
.jt-service-card-body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; padding: 23px; }
.jt-service-card h3 { font-size: 19px; line-height: 1.3; letter-spacing: -.035em !important; margin: 0 0 12px; }
.jt-service-card p { font-size: 12px !important; color: var(--jt-muted) !important; line-height: 1.85 !important; margin: 0 0 20px; }
.jt-service-card .jt-text-link { margin-top: auto; font-size: 10px; }
.jt-service-note { display: flex; align-items: center; gap: 10px; margin: 28px 0 0; font-size: 10px !important; color: var(--jt-muted) !important; }
.jt-service-note .jt-ico { width: 15px; height: 15px; color: var(--jt-gold); }
.jt-service-note a { color: var(--jt-navy) !important; text-decoration: underline !important; text-underline-offset: 4px; }

.jt-journal-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.jt-journal-card a { display: block; color: inherit !important; text-decoration: none !important; }
.jt-journal-card img { width: 100%; aspect-ratio: 1.15; object-fit: cover; border-radius: 15px; transition: opacity .2s; }
.jt-journal-card a:hover img { opacity: .88; }
.jt-journal-meta { display: flex; gap: 6px; margin: 16px 0 10px; font-size: 8px; letter-spacing: .06em; text-transform: uppercase; color: var(--jt-muted); }
.jt-journal-meta span:first-child { color: var(--jt-gold-dark); }
.jt-journal-card h3 { font-size: 17px; line-height: 1.45; letter-spacing: -.025em !important; margin: 0 0 10px; }
.jt-journal-card p { font-size: 12px !important; color: var(--jt-muted) !important; margin: 0 0 14px; }
.jt-journal-card .jt-text-link { font-size: 10px; }

/* --------------------------------------------------------------------------
   Final CTA + footer
   -------------------------------------------------------------------------- */
.jt-final-cta-wrap { padding: 40px 0 0; }
.jt-final-cta { padding: 78px 20px; text-align: center; border-top: 1px solid var(--jt-line); }
.jt-final-cta .jt-eyebrow { font-size: 9px !important; }
.jt-final-cta h2 { font-size: clamp(29px, 3.1vw, 42px); line-height: 1.2; letter-spacing: -.045em !important; margin: 0; }
.jt-final-cta > p:not(.jt-eyebrow) { max-width: 460px; margin: 18px auto 25px; font-size: 13px !important; color: var(--jt-muted) !important; }
.jt-final-cta .jt-button { margin: 6px; }

footer.jt-footer { background: #fff; color: var(--jt-ink); padding: 0; }
.jt-footer-body { background: var(--jt-soft); border-top: 1px solid #efeff2; padding-bottom: 24px; }
.jt-footer-inner { padding-top: 62px; }
.jt-footer-main { display: grid; grid-template-columns: 1.3fr .8fr .9fr 1.2fr; gap: 44px; }
.jt-footer-brand img { width: 146px; height: auto; margin-bottom: 20px; }
.jt-footer-brand p { max-width: 290px; font-size: 11px !important; color: #7d8189 !important; line-height: 1.8 !important; margin: 0; }
.jt-footer-heading { margin: 4px 0 19px; font-size: 9px !important; font-weight: 600 !important; letter-spacing: .14em !important; text-transform: uppercase; color: var(--jt-gold-dark) !important; }
.jt-footer-links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 13px; }
.jt-footer-links a, .jt-social-links a { font-size: 10px; color: #646d7a !important; text-decoration: none !important; transition: color .2s; }
.jt-footer-links a:hover, .jt-social-links a:hover, .jt-footer-bottom a:hover { color: var(--jt-navy) !important; }
.jt-social-links { display: flex; gap: 18px; margin-top: 22px; flex-wrap: wrap; }
.jt-footer-address { font-style: normal; font-size: 10px; line-height: 1.9; color: #7d8189; margin: 0; }
.jt-footer-address strong { display: block; margin-bottom: 6px; font-size: 9px; font-weight: 600; color: #4f5868; letter-spacing: .02em; }
.jt-footer-address a { color: var(--jt-gold-dark) !important; }
.jt-footer-hours { margin: 14px 0 12px !important; font-size: 9px !important; line-height: 1.8 !important; color: #7d8189 !important; }
.jt-footer-updates { display: flex; justify-content: space-between; align-items: center; gap: 30px; margin-top: 46px; padding-top: 26px; border-top: 1px solid #e7e7eb; }
.jt-footer-updates h3 { font-size: 17px; font-weight: 500; margin: 0; }
.jt-footer-updates p { font-size: 10px !important; color: #7d8189 !important; margin: 4px 0 0; }
.jt-newsletter-wrap { width: 360px; max-width: 100%; }
.jt-newsletter { display: flex; align-items: center; gap: 8px; }
.jt-newsletter input { flex: 1; min-width: 0; height: 40px; margin: 0; padding: 0 18px; border: 1px solid #dedfe3; border-radius: 999px; background: #fff; font-size: 10px; color: var(--jt-ink); outline: none; }
.jt-newsletter input::placeholder { color: #92969e; }
.jt-newsletter input:focus { border-color: var(--jt-navy); }
.jt-newsletter button { width: 36px; height: 36px; flex-shrink: 0; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; background: var(--jt-navy); color: #fff; cursor: pointer; }
.jt-newsletter button:hover { background: var(--jt-navy-hover); }
.jt-newsletter button .jt-ico { width: 17px; height: 17px; }
.jt-newsletter-message { min-height: 16px; margin-top: 6px; padding-left: 18px; font-size: 10px; color: #2f6b3a; }
.jt-newsletter-message.is-error { color: #9e3131; }
.jt-footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 24px; padding-top: 20px; border-top: 1px solid #e7e7eb; font-size: 9px; color: #8a9099; flex-wrap: wrap; }
.jt-footer-bottom-links { display: flex; gap: 20px; flex-wrap: wrap; }
.jt-footer-bottom a { font-size: 9px; color: #8a9099 !important; text-decoration: none !important; transition: color .2s; }
.jt-back-top { display: inline-flex; align-items: center; gap: 6px; }
.jt-back-top .jt-ico { width: 13px; height: 13px; }

/* ==========================================================================
   Legacy components used on inner pages
   ========================================================================== */

/* Page banner on inner pages (info pages + booking flow): light, editorial panel. */
.faqBannerSec, .emptyLegBannerSec {
  display: block !important; height: auto !important; min-height: 0 !important;
  padding: calc(var(--jt-header-h) + 52px) 0 52px !important;
  background: var(--jt-warm) !important; border-bottom: 1px solid #efede8; text-align: center;
}
.faqBannerSec .overLayLayer, .emptyLegBannerSec .overLayLayer { display: none !important; }
.faqBannerSec .mainContainer > div, .emptyLegBannerSec .mainContainer > div { margin-inline: auto !important; text-align: center; }
.faqBannerSec h3, .emptyLegBannerSec h3 { font-size: clamp(28px, 2.85vw, 39px) !important; line-height: 1.19 !important; font-weight: 500 !important; letter-spacing: -.045em !important; color: var(--jt-ink) !important; margin-bottom: 12px !important; }
.faqBannerSec p, .emptyLegBannerSec p { color: var(--jt-muted) !important; font-size: 14px !important; margin-bottom: 12px !important; }
.faqBannerSec ul li, .emptyLegBannerSec ul li { color: var(--jt-muted) !important; font-size: 11px !important; }
.faqBannerSec ul li a, .emptyLegBannerSec ul li a { color: var(--jt-gold-dark) !important; font-size: 11px !important; }
.faqBannerSec ul li::after, .emptyLegBannerSec ul li::after { background: var(--jt-gold) !important; }

/* Modify-search bar on results pages: the row stretches its children, keep the button button-sized. */
.flight-search .search-btn { align-self: center; height: 43px !important; min-height: 43px; max-width: none; flex-shrink: 0; }

/* Fare options popup on commercial results (one-way + round trip). */
.bookNowPopupMain1 .modal-dialog { max-width: min(820px, calc(100% - 32px)) !important; margin-inline: auto; }
.bookNowPopupMain1 .modal-dialog.jt-fares-1 { max-width: min(400px, calc(100% - 32px)) !important; }
.bookNowPopupMain1 .modal-dialog.jt-fares-2 { max-width: min(620px, calc(100% - 32px)) !important; }
.bookNowPopupMain1 .jt-fares-1 .displayMainBookNow { flex-wrap: wrap; }
.bookNowPopupMain1 .modal-content { border-radius: 18px; overflow: hidden; }
.bookNowPopupMain1 .btn-close { position: absolute; top: 14px; right: 16px; z-index: 5; width: 10px; height: 10px; padding: 6px; background-size: 10px; opacity: .6; }
.bookNowPopupMain1 .modal-body { background: var(--jt-soft) !important; }
.bookNowPopupMain1 .modal-body > h4 { padding: 16px 48px 14px 20px !important; margin: 0; font-size: 14px !important; font-weight: 600 !important; color: var(--jt-navy) !important; background: #fff; letter-spacing: -.01em; }
.bookNowPopupMain1 .nav-tabs { border: 0; }
.bookNowPopupMain1 .nav-tabs .nav-link { padding: 9px 12px; border: 0 !important; border-radius: 0; font-size: 11px !important; font-weight: 500; letter-spacing: .04em; }
.bookNowPopupMain1 .nav-tabs .nav-link.active { background: var(--jt-navy) !important; color: #fff !important; }
.bookNowPopupMain1 .paddingScrollmainall { height: auto !important; max-height: calc(100dvh - 230px); overflow: auto; }
.bookNowPopupMain1 .displayMainBookNow { padding: 14px 20px 6px !important; gap: 12px; }
.bookNowPopupMain1 .displayMainBookNow h4 { font-size: 13px !important; font-weight: 600 !important; }
.bookNowPopupMain1 .displayMainBookNow h6 { gap: 10px; }
body.jt-site .bookNowPopupMain1 .modal-body .displayMainBookNow h6 img { width: 26px !important; height: 26px !important; object-fit: contain; }
.bookNowPopupMain1 .displayMainBookNow h6 p { font-size: 11px !important; color: var(--jt-muted) !important; }
.bookNowPopupMain1 .bookPopupslider { padding: 8px 20px 20px !important; }
.bookNowPopupMain1 .item { border: 1px solid var(--jt-line) !important; border-radius: 14px !important; margin: 0 6px !important; }
.bookNowPopupMain1 .item.selectactiveBox { border-color: var(--jt-gold) !important; box-shadow: 0 0 0 1px var(--jt-gold); }
.bookNowPopupMain1 .checkBoxDesignMain .form-check { padding: 10px 12px !important; gap: 10px !important; border-bottom-color: var(--jt-line) !important; }
.bookNowPopupMain1 .checkBoxDesignMain .priceRangeHeader { font-size: 14px !important; }
.bookNowPopupMain1 .checkBoxDesignMain .paraTxtMain, .bookNowPopupMain1 .checkBoxDesignMain p { font-size: 10px !important; color: var(--jt-muted) !important; }
.bookNowPopupMain1 .bookNowTxtShow { padding: 12px 14px 4px !important; }
.bookNowPopupMain1 .bookNowTxtShow h2 { margin: 0 0 8px; font-size: 10px !important; font-weight: 600 !important; letter-spacing: .1em; text-transform: uppercase; color: var(--jt-gold-dark) !important; }
.bookNowPopupMain1 .bookNowTxtShow ul { margin: 0 0 12px !important; }
.bookNowPopupMain1 .bookNowTxtShow ul li { margin-bottom: 6px !important; font-size: 11px !important; color: var(--jt-ink) !important; align-items: center !important; }
.bookNowPopupMain1 .bookNowTxtShow ul li span svg { width: 13px !important; height: 13px !important; }
.bookNowPopupMain1 .owl-nav .owl-prev, .bookNowPopupMain1 .owl-nav .owl-next { width: 32px !important; height: 32px !important; background: var(--jt-navy) !important; }
.bookNowPopupMain1 .owl-nav.disabled, .bookNowPopupMain1 .owl-nav .disabled { display: none !important; }
.bookNowPopupMain1 .modal-footer { padding: 12px 20px; border-top: 1px solid var(--jt-line); }
.bookNowPopupMain1 .footerFonttxtFlexAll { align-items: center; gap: 16px !important; }
.bookNowPopupMain1 .footerFonttxtFlex h6 { margin: 0; font-size: 15px; font-weight: 600; color: var(--jt-navy); }
.bookNowPopupMain1 .commonBtnMain { width: auto !important; min-width: 120px; min-height: 40px; }

/* Filters toggle on results pages (tablet/mobile). */
.mobilAccordionFilter .accordion-item { border: 1px solid var(--jt-line) !important; border-radius: 14px !important; overflow: hidden; background: #fff; }
.mobilAccordionFilter .accordion-button,
.mobilAccordionFilter .accordion-button:focus,
.mobilAccordionFilter .accordion-button:not(.collapsed) {
  padding: 14px 18px !important; background: #fff !important; color: var(--jt-navy) !important; border-radius: 14px !important; box-shadow: none !important;
}
.mobilAccordionFilter .accordion-button h4 { margin: 0; font-size: 13px !important; font-weight: 600 !important; letter-spacing: .02em; color: var(--jt-navy) !important; }
.mobilAccordionFilter .accordion-button::after { filter: none !important; background-size: 14px; }
.mobilAccordionFilter .accordion-header { margin-bottom: 0 !important; }

/* Booking-flow page body: white like the homepage, with tighter top spacing under the banner. */
.emptyLegBgMainAll, .emptyLegBgMainAllDetail { background: #fff !important; padding-top: 48px !important; padding-bottom: 80px !important; }

/* Primary call-to-action used across the booking flow. */
.commonBtnMain, a.commonBtnMain, button.commonBtnMain {
  display: inline-flex !important; align-items: center; justify-content: center; gap: 10px;
  width: auto; min-width: 130px; min-height: 43px; padding: 0 23px !important;
  border: 1px solid var(--jt-navy) !important; border-radius: 999px !important;
  background: var(--jt-navy) !important; color: #fff !important; box-shadow: none !important;
  font-size: 11px !important; font-weight: 500 !important; letter-spacing: .01em !important; text-transform: none !important;
  transition: background .25s, box-shadow .25s, transform .45s var(--jt-ease) !important;
}
.commonBtnMain::before, .commonBtnMain span::before, .commonBtnMain label::before { display: none !important; }
body.jt-site .commonBtnMain span, body.jt-site .commonBtnMain label, body.jt-site .commonBtnMain i,
body.jt-site section .commonBtnMain span, body.jt-site section .commonBtnMain label, body.jt-site section .commonBtnMain i { color: #fff !important; margin: 0 !important; font-size: inherit !important; font-weight: inherit; cursor: pointer; }
/* Font Awesome picks the glyph set by weight: solid icons only exist at 900. */
body.jt-site .commonBtnMain i.fas, body.jt-site .commonBtnMain i.fa-solid { font-weight: 900; }
body.jt-site .commonBtnMain i.far, body.jt-site .commonBtnMain i.fa-regular { font-weight: 400; }
/* styles.css colours the enquiry popup button label navy, which is invisible on the navy button. */
body.jt-site .bookPopupMain .modal-body .flexPopUpMain .fieldWrapper .contactUsBgSec .commonBtnMain label { color: #fff !important; }
.commonBtnMain:hover { background: var(--jt-navy-hover) !important; transform: translateY(-2px); box-shadow: 0 6px 20px #0c1a3315 !important; }
.commonBtnMain:disabled { opacity: .5; transform: none; }

.fare-refund-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; line-height: 1.4; white-space: nowrap; cursor: help; }
.fare-refund-refundable { background: #e6f6ee; color: #146c43; }
.fare-refund-partially_refundable { background: #fff4e0; color: #8a5300; }
.fare-refund-non_refundable { background: #fdeaea; color: #b42318; }
.fare-refund-note { margin: 6px 0 0; font-size: 12px; color: #5f6b7a; }

/* Forms */
body.jt-site .form-control, body.jt-site .form-select {
  border-color: var(--jt-line); border-radius: var(--jt-radius-sm); font-size: 13px; color: var(--jt-ink);
}
body.jt-site .form-control:focus, body.jt-site .form-select:focus { border-color: var(--jt-navy); box-shadow: 0 0 0 3px #0c1a3314; }
body.jt-site .form-check-input:checked { background-color: var(--jt-navy) !important; border-color: var(--jt-navy) !important; }
body.jt-site .form-check-input:focus { box-shadow: 0 0 0 3px #0c1a3314; }
body.jt-site label { font-weight: 500; font-size: 12px; }

/* Bootstrap components */
body.jt-site .modal-content { border: 0; border-radius: 22px; box-shadow: 0 30px 120px #0c1a332e; }
body.jt-site .modal-backdrop.show { opacity: .45; }
body.jt-site .accordion-item { border-color: var(--jt-line); }
body.jt-site .accordion-button { font-size: 14px; font-weight: 500; color: var(--jt-ink); }
body.jt-site .accordion-body { font-size: 13px; }
body.jt-site .accordion-button:not(.collapsed) { background: var(--jt-warm); color: var(--jt-navy); box-shadow: none; }
body.jt-site .accordion-button:focus { box-shadow: none; }
body.jt-site .owl-dots .owl-dot span { background: #d3d6db; }
body.jt-site .owl-dots .owl-dot.active span { background: var(--jt-navy); }
body.jt-site .offcanvas { border-color: var(--jt-line); }

/* Search widget used on results pages (legacy markup). */
.threeTabButtonDesign { display: inline-flex !important; gap: 3px; padding: 4px; border-radius: 999px !important; background: #f5f5f6; overflow: visible !important; }
.threeTabButtonDesign button {
  padding: 10px 17px !important; border: 0 !important; border-radius: 999px !important; background: transparent !important;
  font-size: 11px !important; font-weight: 550 !important; letter-spacing: 0 !important; color: var(--jt-muted) !important;
}
.threeTabButtonDesign button:hover { color: var(--jt-navy) !important; background: transparent !important; }
.threeTabButtonDesign .activeJet, .threeTabButtonDesign .active { background: #fff !important; color: var(--jt-navy) !important; box-shadow: 0 1px 7px #00000008; }
.homePageFormMain { border-radius: 18px !important; border: 1px solid #e9eaec; box-shadow: 0 7px 30px #0c1a3304; }
.gridSectionMainAll { border-color: var(--jt-line) !important; border-radius: 16px !important; overflow: visible; }
.gridSectionMainAll .fromMainalldiv { border-color: var(--jt-line) !important; }
.fromMainalldiv > label { font-size: 9px !important; font-weight: 500 !important; letter-spacing: .1em; text-transform: uppercase; color: var(--jt-muted) !important; }
.specialFare .form-check { border-color: var(--jt-line) !important; border-radius: 999px !important; }
.radioMainFlex .form-check-input:checked, .specialFare .form-check-input:checked { background-color: var(--jt-navy) !important; border-color: var(--jt-navy) !important; }
.homeContactMain { background: var(--jt-warm) !important; }
.homeContactMain::after { display: none !important; }
.homeContactMain h2 { color: var(--jt-ink) !important; }

/* ==========================================================================
   Auth pages (customer login / register)
   ========================================================================== */
body.jt-auth { margin: 0; background: #fff; }
body.jt-auth *, body.jt-auth *::before, body.jt-auth *::after { box-sizing: border-box; }
.jt-auth-shell { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 100vh; min-height: 100dvh; }
.jt-auth-visual {
  position: sticky; top: 0; height: 100vh; height: 100dvh;
  display: flex; align-items: flex-end; padding: 48px 56px;
  background-size: cover; background-position: center 30%; color: #fff; overflow: hidden;
}
.jt-auth-visual::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, #0c1a3314 0%, #0c1a3333 30%, #0c1a33a6 52%, #0c1a33eb 100%); }
.jt-auth-visual-copy { position: relative; max-width: 440px; }
.jt-auth-visual .jt-eyebrow { color: #ecd7a8 !important; text-shadow: 0 1px 8px #0c1a3399; }
body.jt-auth .jt-auth-visual h2 { color: #fff; font-size: clamp(28px, 2.85vw, 39px); line-height: 1.19; letter-spacing: -.045em; margin: 0 0 16px; }
body.jt-auth .jt-auth-visual p { color: #ffffffc7; font-size: 13px; line-height: 1.8; margin: 0 0 22px; }
.jt-auth-points { list-style: none; margin: 0; padding: 20px 0 0; border-top: 1px solid #ffffff2b; display: grid; gap: 12px; }
.jt-auth-points li { display: flex; align-items: center; gap: 12px; font-size: 12px; color: #ffffffe0; }
.jt-auth-points .jt-ico { width: 16px; height: 16px; color: var(--jt-gold); }

.jt-auth-panel { display: flex; flex-direction: column; padding: 28px 56px; background: #fff; }
.jt-auth-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.jt-auth-logo img { display: block; height: 34px; width: auto; }
.jt-auth-back { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 500; color: var(--jt-ink) !important; text-decoration: none !important; }
.jt-auth-back:hover { color: var(--jt-gold-dark) !important; }
.jt-auth-back-ico { width: 15px; height: 15px; transform: rotate(180deg); }

.jt-auth-card {
  width: 100%; max-width: 400px; margin: auto; padding: 40px 0;
}
body.jt-auth .jt-auth-title { font-size: clamp(26px, 2.3vw, 32px); line-height: 1.2; letter-spacing: -.04em; margin: 0 0 10px; }
body.jt-auth .jt-auth-lede { font-size: 13px; color: var(--jt-muted); margin: 0 0 28px; }
.jt-auth-alert { margin: 0 0 20px; padding: 12px 14px; border-radius: var(--jt-radius-sm); border: 1px solid #f0c9c4; background: #fdf3f2; color: #9b2c22; font-size: 12px; }
.jt-auth-alert-ok { border-color: #cfe3d3; background: #f2f8f3; color: #2c6b3a; }

.jt-auth-form { display: grid; gap: 18px; }
.jt-auth-field { display: grid; gap: 8px; margin: 0; }
.jt-auth-field > label { margin: 0; font-size: 9px; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; color: var(--jt-muted); }
.jt-auth-field input {
  width: 100%; height: 46px; padding: 0 16px; border-radius: var(--jt-radius-sm);
  border: 1px solid var(--jt-line); background: #fff; color: var(--jt-ink); font-size: 13px;
  transition: border-color .2s, box-shadow .2s;
}
.jt-auth-field input::placeholder { color: #a8acb3; }
.jt-auth-field input:focus { outline: none; border-color: var(--jt-gold); box-shadow: 0 0 0 3px #ba975326; }
.jt-auth-password { position: relative; display: block; }
.jt-auth-password input { padding-right: 68px; }
.jt-auth-toggle {
  position: absolute; top: 50%; right: 8px; transform: translateY(-50%);
  height: 30px; padding: 0 12px; border: 0; border-radius: 999px; background: transparent;
  font-size: 10px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--jt-gold-dark); cursor: pointer;
}
.jt-auth-toggle:hover { background: var(--jt-gold-soft); }
.jt-auth-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.jt-auth-error { margin: 0 !important; font-size: 11px !important; line-height: 1.5 !important; color: #b3392d !important; }
.jt-auth-field.is-invalid input { border-color: #e2a59e; }
.jt-auth-check { display: flex; align-items: flex-start; gap: 10px; }
.jt-auth-check input { flex-shrink: 0; width: 16px; height: 16px; margin: 1px 0 0; accent-color: var(--jt-navy); cursor: pointer; }
.jt-auth-check label { margin: 0; font-size: 12px; line-height: 1.5; color: var(--jt-muted); cursor: pointer; }
.jt-auth-check a { color: var(--jt-ink) !important; text-decoration: underline; text-underline-offset: 2px; }
.jt-auth-submit { width: 100%; margin-top: 6px; }
.jt-auth-switch { margin: 24px 0 0; font-size: 12px; color: var(--jt-muted); text-align: center; }
.jt-auth-switch a { margin-left: 4px; font-weight: 600; color: var(--jt-navy) !important; text-decoration: none; border-bottom: 1px solid var(--jt-gold); }
.jt-auth-legal { margin: 0; font-size: 10px; line-height: 1.7; color: #85817a; text-align: center; }
.jt-auth-legal a { color: var(--jt-ink) !important; text-decoration: underline; text-underline-offset: 2px; }

@media (max-width: 991px) {
  .jt-auth-shell { grid-template-columns: minmax(0, 1fr); }
  .jt-auth-visual { display: none; }
  .jt-auth-panel { min-height: 100vh; min-height: 100dvh; padding: 24px; }
}
@media (max-width: 480px) {
  .jt-auth-row { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1199px) {
  .jt-desktop-nav { gap: 22px; }
  .jt-nav-cta { display: none; }
  .jt-container { width: calc(100% - 72px); }
  .jt-nav-inner { width: calc(100% - 56px); }
  .jt-booking-shell { width: calc(100% - 100px); }
  .jt-hero-visual { width: calc(100% - 56px); }
  .jt-booking-assist { display: none; }
  .jt-booking-fields--charter { grid-template-columns: minmax(0, 1fr) 31px minmax(0, 1fr) minmax(0, .8fr) minmax(0, .8fr); }
  .jt-booking-fields--charter .jt-booking-submit { grid-column: 1 / -1; margin-top: 4px; }
  .jt-booking-fields--commercial,
  .jt-booking-fields--commercial:has(#return_date_wrapper[style*="none"]) { grid-template-columns: minmax(0, 1fr) 31px minmax(0, 1fr); }
  .jt-booking-fields--commercial .jt-booking-submit { grid-column: 1 / -1; margin-top: 4px; }
  .jt-booking-fields--commercial > .jt-field:nth-of-type(3) { grid-column: 1 / 3; }
  .jt-booking-fields--commercial > .jt-field:nth-of-type(4) { grid-column: 3; }
  .jt-booking-fields--commercial:has(#return_date_wrapper[style*="none"]) > .jt-field:nth-of-type(3) { grid-column: 1 / -1; }
  .jt-booking-fields--commercial .jt-travellers-field { grid-column: 1 / -1; }
  .jt-intro { gap: 65px; }
  .jt-fleet-details { padding: 34px; }
  .jt-service-grid { grid-template-columns: repeat(2, 1fr); }
  .jt-journal-grid { grid-template-columns: repeat(2, 1fr); gap: 32px 24px; }
  .jt-footer-main { grid-template-columns: 1.2fr 1fr 1fr; }
  .jt-footer-contact { grid-column: 1 / -1; }
}

@media (max-width: 991px) {
  :root { --jt-header-h: 64px; }
  .jt-desktop-nav { display: none; }
  .jt-nav-actions { margin-left: auto; }
  .jt-menu-toggle { display: grid; }
  .jt-nav-cta { display: inline-flex; }
  .jt-section { padding: 76px 0; }
  .jt-section-title { font-size: 32px; }
  .jt-body-copy { font-size: 13px !important; }
  .jt-hero-visual { aspect-ratio: 2.14; }
  .jt-hero-caption { left: 18px; bottom: 18px; }
  .jt-hero-controls { right: 18px; bottom: 18px; }
  .jt-intro { grid-template-columns: 1fr; gap: 20px; }
  .jt-intro-description { padding-top: 0; }
  .jt-travel-options { gap: 25px; margin-top: 44px; }
  .jt-travel-option h3 { font-size: 19px; }
  .jt-fleet-panel { grid-template-columns: 1fr 1fr; }
  .jt-fleet-details { padding: 29px; }
  .jt-fleet-details h3 { font-size: 25px; }
  .jt-empty-copy { padding: 33px; }
  .jt-empty-copy h2 { font-size: 30px; }
  .jt-additional-travel h3 { font-size: 18px; }
  .jt-destination-card { flex-basis: calc((100% - 22px) / 2.3); }
  .jt-destination-label { padding: 22px 20px; }
  .jt-destination-label strong { font-size: 21px; }
  .jt-steps { gap: 30px; }
}

@media (max-width: 767px) {
  .jt-brand img { width: 116px; }
  .jt-nav-inner { width: calc(100% - 32px); gap: 10px; }
  .jt-nav-cta { min-height: 33px; padding: 0 14px; font-size: 9px; }
  .jt-account-btn { height: 33px; min-width: 33px; }
  .jt-menu-toggle { width: 33px; height: 33px; }
  .jt-container { width: calc(100% - 40px); }
  .jt-booking-shell { width: calc(100% - 40px); }
  .jt-page-top { padding-top: calc(var(--jt-header-h) + 16px); }
  .jt-booking-shell { padding: 16px; border-radius: 16px; }
  .jt-booking-top { margin-bottom: 18px; }
  .jt-service-tabs { width: 100%; }
  .jt-service-tabs > button, .jt-service-tabs > a { flex: 1; padding: 10px 7px; font-size: 9px; gap: 5px; }
  .jt-service-tabs .jt-ico { width: 16px; height: 16px; }
  .jt-booking-fields--charter, .jt-booking-fields--commercial,
  .jt-booking-fields--commercial:has(#return_date_wrapper[style*="none"]) { grid-template-columns: minmax(0, 1fr) 30px minmax(0, 1fr); gap: 14px 9px; }
  .jt-booking-fields--charter > .jt-field:nth-of-type(3) { grid-column: 1 / 3; }
  .jt-booking-fields--charter > .jt-field:nth-of-type(4) { grid-column: 3; }
  .jt-travellers-field { grid-column: 1 / -1 !important; }
  .jt-swap { width: 30px; height: 30px; }
  .jt-booking-submit { min-height: 41px; font-size: 11px; }
  .jt-travellers-panel { width: 100%; left: 0; right: auto; }
  .jt-field .dropdown-box { width: calc(100vw - 72px); }
  .jt-airport-field:nth-of-type(2) .dropdown-box { left: auto; right: 0; }
  .jt-booking-footnote { flex-direction: column; gap: 6px; font-size: 8px; }
  .jt-trip-type { width: 100%; }
  .jt-promise-strip { gap: 13px; margin-top: 22px; font-size: 8px; }
  .jt-promise-strip .jt-ico { width: 12px; height: 12px; }
  .jt-hero-banner { padding-top: 25px; }
  .jt-hero-visual { width: calc(100% - 24px); aspect-ratio: 1.52; border-radius: 15px; }
  .jt-hero-caption { left: 12px; bottom: 13px; padding: 9px 12px; border-radius: 10px; }
  .jt-hero-caption span { font-size: 6px; letter-spacing: .08em; }
  .jt-hero-caption strong { font-size: 10px; }
  .jt-hero-controls { right: 11px; bottom: 13px; padding: 4px 5px; gap: 0; }
  .jt-hero-dot { width: 22px; height: 24px; }
  .jt-hero-dot[aria-pressed="true"]::after { width: 15px; }
  .jt-hero-counter { display: none; }
  .jt-section { padding: 64px 0; }
  .jt-section-title { font-size: 29px; line-height: 1.2; }
  .jt-body-copy { font-size: 14px !important; }
  .jt-experience { margin-top: 22px; }
  .jt-experience strong { font-size: 31px; }
  .jt-travel-options { grid-template-columns: 1fr; gap: 28px; margin-top: 37px; }
  .jt-travel-option h3 { font-size: 20px; }
  .jt-travel-option p { min-height: 0; }
  .jt-travel-option .jt-text-link { font-size: 10px; margin-top: 14px; }
  .jt-section-head { display: block; margin-bottom: 26px; }
  .jt-section-head .jt-body-copy { margin-top: 17px; font-size: 12px !important; }
  .jt-destination-head { display: flex; }
  .jt-destination-head .jt-section-title { font-size: 28px; }
  .jt-pill-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-bottom: 11px; padding-bottom: 11px; }
  .jt-pill-tabs button { flex-shrink: 0; font-size: 10px; padding: 9px 15px; }
  .jt-fleet-panel { grid-template-columns: 1fr; border-radius: 18px; }
  .jt-fleet-art img { min-height: 0; max-height: none; height: auto; aspect-ratio: 1.6; }
  .jt-fleet-details { padding: 27px; }
  .jt-fleet-details .jt-subnote { font-size: 8px !important; }
  .jt-process-header .jt-body-copy { font-size: 12px !important; }
  .jt-steps { grid-template-columns: 1fr; gap: 28px; margin-top: 34px; }
  .jt-steps::before { left: 20px; top: 0; bottom: 0; width: 1px; height: auto; right: auto; }
  .jt-step { padding-left: 66px; }
  .jt-step-number { position: absolute; left: 0; top: 0; margin: 0; box-shadow: 0 0 0 8px #fff; }
  .jt-empty-leg { grid-template-columns: 1fr; min-height: 0; border-radius: 19px; }
  .jt-empty-copy { padding: 30px 27px; }
  .jt-empty-copy h2 { font-size: 29px; }
  .jt-empty-copy .jt-button { min-height: 39px; font-size: 10px; }
  .jt-empty-art img { min-height: 0; aspect-ratio: 1.75; }
  .jt-additional-travel { grid-template-columns: 1fr; gap: 15px; margin-top: 16px; }
  .jt-additional-travel article { padding: 23px; border-radius: 16px; }
  .jt-additional-travel h3 { font-size: 19px; }
  .jt-circle-button { width: 32px; height: 32px; }
  .jt-destination-track { gap: 16px; }
  .jt-destination-card { flex-basis: 78%; }
  .jt-destination-label { padding: 20px; }
  .jt-destination-label strong { font-size: 22px; }
  .jt-service-grid { grid-template-columns: 1fr; }
  .jt-service-card { display: grid; grid-template-columns: 38% 1fr; border-radius: 16px; }
  .jt-service-card img { height: 100%; aspect-ratio: auto; }
  .jt-service-card-body { padding: 22px; }
  .jt-service-card h3 { font-size: 18px; }
  .jt-journal-grid { gap: 27px 17px; }
  .jt-journal-card h3 { font-size: 16px; }
  .jt-journal-meta { font-size: 7px; }
  .jt-journal-card .jt-text-link { font-size: 9px; }
  .jt-final-cta { padding: 57px 12px; }
  .jt-final-cta h2 { font-size: 30px; }
  .jt-final-cta > p:not(.jt-eyebrow) { font-size: 12px !important; }
  .jt-final-cta .jt-button { min-height: 39px; font-size: 10px; }
  .jt-footer-inner { padding-top: 44px; }
  .jt-footer-brand img { width: 137px; }
  .jt-footer-main { grid-template-columns: 1fr 1fr; gap: 35px; }
  .jt-footer-brand { grid-column: 1 / -1; }
  .jt-footer-updates { display: block; margin-top: 30px; }
  .jt-newsletter-wrap { margin-top: 20px; width: 100%; }
  .jt-footer-bottom { gap: 17px; }
  .jt-footer-bottom-links { gap: 14px; }
  .faqBannerSec, .emptyLegBannerSec { padding: calc(var(--jt-header-h) + 34px) 0 34px !important; }
  .faqBannerSec h3, .emptyLegBannerSec h3 { font-size: 29px !important; }
  .emptyLegBgMainAll, .emptyLegBgMainAllDetail { padding-top: 32px !important; padding-bottom: 56px !important; }
  .threeTabButtonDesign { display: flex !important; }
  .threeTabButtonDesign button { flex: 1; padding: 9px 6px !important; font-size: 9px !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .jt-site *, .jt-site *::before, .jt-site *::after { transition: none !important; animation: none !important; }
}
