/* ==========================================================
   IslandTravelAtlas Flight White Label V1

   Scope:
   - body.ita-wl-flight-page
   - body.ita-wl-results-page
   ========================================================== */

body.ita-wl-flight-page,
body.ita-wl-results-page {
  --wl-page: #f3f7f5;
  --wl-surface: #ffffff;
  --wl-soft: #eaf4f1;
  --wl-border: #d8e4df;

  --wl-ink: #14271f;
  --wl-text: #455c52;
  --wl-muted: #6a7c74;

  --wl-accent: #008f7b;
  --wl-accent-hover: #007565;

  --wl-dark: #092d25;
  --wl-dark-two: #12483a;
  --wl-on-dark: #edf7f3;
  --wl-on-dark-muted: #d1e5dc;

  --wl-radius: 18px;
  --wl-radius-large: 24px;

  --wl-shadow:
    0 18px 48px rgba(15, 47, 37, 0.10);
}

body.ita-wl-flight-page .ita-wl-section,
body.ita-wl-results-page .ita-wl-section {
  padding:
    clamp(48px, 6vw, 76px)
    0;

  background: var(--wl-page);
}

body.ita-wl-flight-page .ita-wl-shell,
body.ita-wl-results-page .ita-wl-shell {
  width:
    min(1160px, calc(100% - 36px));

  margin-inline: auto;
}

body.ita-wl-flight-page .ita-wl-hero,
body.ita-wl-results-page .ita-wl-hero {
  padding:
    clamp(48px, 6vw, 76px)
    0
    clamp(34px, 4vw, 52px);

  border-bottom:
    1px solid var(--wl-border);

  background:
    radial-gradient(
      circle at 92% 0%,
      rgba(0, 143, 123, 0.13),
      transparent 30%
    ),
    linear-gradient(
      180deg,
      #f5fbf9,
      #edf6f3
    );
}

body.ita-wl-flight-page .ita-wl-breadcrumbs,
body.ita-wl-results-page .ita-wl-breadcrumbs {
  display: flex;
  flex-wrap: wrap;

  gap: 7px;

  margin-bottom: 18px;

  color: var(--wl-muted);

  font-size: 0.83rem;
}

body.ita-wl-flight-page .ita-wl-breadcrumbs a,
body.ita-wl-results-page .ita-wl-breadcrumbs a {
  color: var(--wl-accent-hover);
}

body.ita-wl-flight-page .ita-wl-eyebrow,
body.ita-wl-results-page .ita-wl-eyebrow {
  margin: 0 0 10px;

  color: var(--wl-accent) !important;

  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.ita-wl-flight-page .ita-wl-hero h1,
body.ita-wl-results-page .ita-wl-hero h1 {
  max-width: 850px;

  margin: 0;

  color: var(--wl-ink) !important;

  font-size:
    clamp(2.2rem, 4.7vw, 3.55rem);

  line-height: 1.03;
  letter-spacing: -0.052em;
}

body.ita-wl-flight-page .ita-wl-hero-copy,
body.ita-wl-results-page .ita-wl-hero-copy {
  max-width: 760px;

  margin: 18px 0 0;

  color: var(--wl-text) !important;

  font-size: 1.05rem;
  line-height: 1.68;
}

/* ==========================================================
   SEARCH PAGE
   ========================================================== */

body.ita-wl-flight-page .ita-wl-search-layout {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    minmax(280px, 340px);

  align-items: start;

  gap: 22px;
}

body.ita-wl-flight-page .ita-wl-search-card,
body.ita-wl-results-page .ita-wl-results-card {
  min-width: 0;

  padding:
    clamp(20px, 3vw, 32px);

  border:
    1px solid var(--wl-border);

  border-radius:
    var(--wl-radius-large);

  background:
    var(--wl-surface);

  box-shadow:
    var(--wl-shadow);
}

body.ita-wl-flight-page .ita-wl-search-card h2,
body.ita-wl-results-page .ita-wl-results-card h2 {
  margin:
    0
    0
    8px;

  color: var(--wl-ink) !important;

  font-size:
    clamp(1.45rem, 2.6vw, 2rem);

  line-height: 1.15;
  letter-spacing: -0.032em;
}

body.ita-wl-flight-page .ita-wl-search-card > p,
body.ita-wl-results-page .ita-wl-results-card > p {
  margin:
    0
    0
    24px;

  color: var(--wl-muted) !important;
}

body.ita-wl-flight-page #tpwl-search,
body.ita-wl-results-page #tpwl-search {
  position: relative;

  min-height: 145px;
}

body.ita-wl-results-page #tpwl-tickets {
  position: relative;

  min-height: 520px;

  margin-top: 22px;
  padding-top: 22px;

  border-top:
    1px solid var(--wl-border);
}

body.ita-wl-flight-page #tpwl-search:empty::before,
body.ita-wl-results-page #tpwl-search:empty::before,
body.ita-wl-results-page #tpwl-tickets:empty::before {
  display: grid;
  place-items: center;

  min-height: 120px;

  padding: 22px;

  border:
    1px dashed #bad1c8;

  border-radius:
    14px;

  background: var(--wl-soft);

  color: var(--wl-muted);

  font-size: 0.9rem;
  text-align: center;
}

body.ita-wl-flight-page #tpwl-search:empty::before,
body.ita-wl-results-page #tpwl-search:empty::before {
  content:
    "Loading the IslandTravelAtlas flight search…";
}

body.ita-wl-results-page #tpwl-tickets:empty::before {
  content:
    "Searching live flight options. Results will appear here.";
}

/* ==========================================================
   ROUTE REVIEW
   ========================================================== */

body.ita-wl-flight-page .ita-wl-review,
body.ita-wl-results-page .ita-wl-review {
  padding: 24px;

  border-radius:
    var(--wl-radius-large);

  background:
    linear-gradient(
      145deg,
      var(--wl-dark),
      var(--wl-dark-two)
    );

  color: var(--wl-on-dark);
}

body.ita-wl-flight-page .ita-wl-review h2,
body.ita-wl-results-page .ita-wl-review h2 {
  margin: 0;

  color: #ffffff !important;

  font-size: 1.28rem;
  line-height: 1.25;
}

body.ita-wl-flight-page .ita-wl-review > p,
body.ita-wl-results-page .ita-wl-review > p {
  margin:
    10px
    0
    20px;

  color:
    var(--wl-on-dark-muted) !important;

  font-size: 0.9rem;
  line-height: 1.58;
}

body.ita-wl-flight-page .ita-wl-checklist,
body.ita-wl-results-page .ita-wl-checklist {
  display: grid;

  gap: 12px;

  margin: 0;
  padding: 0;

  list-style: none;
}

body.ita-wl-flight-page .ita-wl-checklist label,
body.ita-wl-results-page .ita-wl-checklist label {
  display: grid;

  grid-template-columns:
    18px 1fr;

  align-items: start;

  gap: 10px;

  color: var(--wl-on-dark) !important;

  font-size: 0.88rem;
  line-height: 1.45;

  cursor: pointer;
}

body.ita-wl-flight-page .ita-wl-checklist input,
body.ita-wl-results-page .ita-wl-checklist input {
  width: 16px;
  height: 16px;

  margin-top: 2px;

  accent-color: #55c9ae;
}

body.ita-wl-flight-page .ita-wl-review-links,
body.ita-wl-results-page .ita-wl-review-links {
  display: grid;

  gap: 8px;

  margin-top: 22px;
  padding-top: 18px;

  border-top:
    1px solid rgba(255, 255, 255, 0.17);
}

body.ita-wl-flight-page .ita-wl-review-links a,
body.ita-wl-results-page .ita-wl-review-links a {
  color: #ffffff !important;

  font-size: 0.86rem;
  font-weight: 750;
}

body.ita-wl-flight-page .ita-wl-disclosure,
body.ita-wl-results-page .ita-wl-disclosure {
  margin:
    18px
    0
    0 !important;

  color:
    var(--wl-on-dark-muted) !important;

  font-size:
    0.76rem !important;

  line-height:
    1.5 !important;
}

/* ==========================================================
   SEARCH PAGE NEXT STEPS
   ========================================================== */

body.ita-wl-flight-page .ita-wl-next {
  margin-top: 22px;
}

body.ita-wl-flight-page .ita-wl-next h2 {
  margin:
    0
    0
    15px;

  color: var(--wl-ink) !important;

  font-size:
    1.25rem;
}

body.ita-wl-flight-page .ita-wl-next-grid {
  display: grid;

  grid-template-columns:
    repeat(3, minmax(0, 1fr));

  gap: 12px;
}

body.ita-wl-flight-page .ita-wl-next-card {
  display: block;

  padding: 18px;

  border:
    1px solid var(--wl-border);

  border-radius: 14px;

  background:
    var(--wl-surface);

  color:
    var(--wl-ink);

  text-decoration: none;
}

body.ita-wl-flight-page .ita-wl-next-card:hover {
  border-color: #afcbc0;

  background: var(--wl-soft);
}

body.ita-wl-flight-page .ita-wl-next-card strong {
  display: block;

  color: var(--wl-ink) !important;

  font-size: 0.94rem;
}

body.ita-wl-flight-page .ita-wl-next-card span {
  display: block;

  margin-top: 6px;

  color: var(--wl-muted) !important;

  font-size: 0.82rem;
  line-height: 1.45;
}

/* ==========================================================
   RESULTS PAGE
   ========================================================== */

body.ita-wl-results-page .ita-wl-results-layout {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    minmax(280px, 340px);

  align-items: start;

  gap: 22px;
}

body.ita-wl-results-page .ita-wl-results-card {
  padding:
    clamp(18px, 2.6vw, 28px);
}

body.ita-wl-results-page .ita-wl-results-note {
  display: flex;

  align-items: flex-start;

  gap: 10px;

  margin-bottom: 20px;
  padding: 13px 15px;

  border:
    1px solid #cfe1da;

  border-radius: 12px;

  background: var(--wl-soft);

  color: var(--wl-text);
}

body.ita-wl-results-page
.ita-wl-results-note strong {
  color: var(--wl-ink) !important;
}

body.ita-wl-results-page
.ita-wl-results-note p {
  margin: 0;

  color: var(--wl-text) !important;

  font-size: 0.84rem;
  line-height: 1.48;
}

/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width: 900px) {
  body.ita-wl-flight-page
  .ita-wl-search-layout,
  body.ita-wl-results-page
  .ita-wl-results-layout {
    grid-template-columns: 1fr;
  }

  body.ita-wl-flight-page .ita-wl-review,
  body.ita-wl-results-page .ita-wl-review {
    order: -1;
  }
}

@media (max-width: 680px) {
  body.ita-wl-flight-page .ita-wl-shell,
  body.ita-wl-results-page .ita-wl-shell {
    width:
      min(100% - 24px, 1160px);
  }

  body.ita-wl-flight-page .ita-wl-section,
  body.ita-wl-results-page .ita-wl-section {
    padding:
      40px
      0;
  }

  body.ita-wl-flight-page
  .ita-wl-next-grid {
    grid-template-columns: 1fr;
  }

  body.ita-wl-flight-page
  .ita-wl-search-card,
  body.ita-wl-results-page
  .ita-wl-results-card {
    padding: 18px 14px;
  }

  body.ita-wl-results-page #tpwl-tickets {
    min-height: 420px;
  }
}
