.ps-hero {
  padding: clamp(4rem, 10vw, 8rem) 0;
  color: var(--white);
  background: var(--secondary);
}

.ps-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(19rem, 0.65fr);
  gap: clamp(2rem, 6vw, 5rem);
  align-items: center;
}

.ps-hero-copy { max-width: 52rem; }
.ps-hero-grid-single {
  grid-template-columns: minmax(0, 1fr);
}
.ps-hero-grid-single .ps-hero-copy {
  max-width: 58rem;
}
.ps-kicker,
.ps-card-label,
.ps-panel-label {
  margin: 0 0 1rem;
  color: var(--primary-dark);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.ps-hero h1 { color: var(--white); }
.ps-hero-lead { max-width: 47rem; font-size: clamp(1.08rem, 2vw, 1.3rem); color: #eeeeee; }
.ps-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.8rem; }

.ps-hero-panel {
  padding: clamp(1.5rem, 4vw, 2.3rem);
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line);
}
.ps-hero-panel h2 { font-size: clamp(1.7rem, 3vw, 2.35rem); }
.ps-contact-list { margin: 1.6rem 0 0; }
.ps-contact-list div { padding: .85rem 0; border-top: 1px solid var(--line); }
.ps-contact-list dt { color: var(--muted); font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.ps-contact-list dd { margin: .2rem 0 0; font-weight: 700; }

.ps-strip { background: var(--primary-dark); color: var(--white); }
.ps-strip-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.ps-strip-grid div { padding: 1.25rem; border-right: 1px solid rgba(255,255,255,.35); }
.ps-strip-grid div:last-child { border-right: 0; }
.ps-strip-grid strong,
.ps-strip-grid span { display: block; }
.ps-strip-grid span { margin-top: .2rem; font-size: .86rem; }

.ps-card-grid { display: grid; gap: 1.25rem; }
.ps-three-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ps-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: clamp(1.35rem, 3vw, 2rem);
  background: var(--surface);
  border: 1px solid var(--line);
}
.ps-card h3 { margin-bottom: .8rem; }
.ps-card h3 a { color: inherit; text-decoration: none; }
.ps-card p { color: var(--muted); }
.ps-card .text-link { margin-top: auto; }
.ps-card-topline,
.ps-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.ps-card-topline { margin-bottom: 1.2rem; color: var(--muted); font-size: .8rem; font-weight: 700; text-transform: uppercase; }
.ps-card-footer { margin-top: auto; padding-top: 1.2rem; border-top: 1px solid var(--line); }

.ps-empty-state { padding: 2rem; background: var(--surface); border: 1px dashed var(--primary); }
.ps-empty-state h3 { margin-bottom: .5rem; }

.ps-destination-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.ps-destination {
  display: flex;
  min-height: 11rem;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.4rem;
  color: var(--white);
  background: var(--secondary);
  border: 1px solid var(--secondary);
  text-decoration: none;
}
.ps-destination:hover { color: var(--white); background: var(--primary-dark); border-color: var(--primary-dark); }
.ps-destination small { margin-bottom: .5rem; font-weight: 700; text-transform: uppercase; }
.ps-destination strong { font-size: 1.3rem; }
.ps-destination span { margin-top: .45rem; font-size: .88rem; }

.ps-process { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; padding: 0; list-style: none; }
.ps-process li { padding: 1.7rem; background: var(--surface); border: 1px solid var(--line); }
.ps-process li > span { display: block; margin-bottom: 1.4rem; color: var(--primary); font-size: 1.8rem; font-weight: 800; }

.ps-review { margin: 0; }
.ps-review > p { color: var(--ink); font-size: 1.08rem; }
.ps-review footer { display: flex; flex-direction: column; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--line); }
.ps-review footer span { color: var(--muted); font-size: .85rem; }

.ps-cta { padding: clamp(3rem, 7vw, 5.5rem) 0; color: var(--white); background: var(--secondary); }
.ps-cta h2 { margin: 0; color: var(--white); }
.ps-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.ps-cta .button-outline { color: var(--white); border-color: var(--white); }
.ps-cta .button-outline:hover { color: var(--secondary); background: var(--white); }

/* Final discovery CTA: dashboard-managed static/slider photography with a
   restrained parallax feel on desktop and a strong readability overlay. */
.ps-discovery-cta {
  position: relative;
  isolation: isolate;
  display: grid;
  min-height: clamp(25rem, 45vw, 38rem);
  align-items: center;
  overflow: hidden;
  background: var(--secondary);
}
.ps-discovery-cta-media,
.ps-discovery-cta-overlay,
.ps-discovery-cta-slide { position: absolute; inset: 0; }
.ps-discovery-cta-media { z-index: -3; overflow: hidden; }
.ps-discovery-cta-slide {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 0;
  transform: scale(1.025);
  transition: opacity 1.1s ease, transform 7s ease;
}
.ps-discovery-cta-slide.is-active { opacity: 1; transform: scale(1.08); }
.ps-discovery-cta-overlay {
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(10,21,14,.84) 0%, rgba(10,21,14,.63) 50%, rgba(10,21,14,.76) 100%),
    linear-gradient(0deg, rgba(7,14,10,.28), rgba(7,14,10,.08));
}
.ps-discovery-cta .ps-cta-inner { position: relative; z-index: 1; }
.ps-discovery-cta-copy { max-width: 46rem; }
.ps-discovery-cta-copy h2 { font-size: clamp(2rem, 4vw, 4.2rem); line-height: 1.02; }
.ps-discovery-cta-copy > p:last-child { max-width: 41rem; margin: 1rem 0 0; color: rgba(255,255,255,.88); font-size: clamp(1rem,1.35vw,1.15rem); }
.ps-discovery-cta .ps-kicker { color: rgba(255,255,255,.8); }
@media (min-width: 64.01rem) {
  .ps-discovery-cta-slide { background-attachment: fixed; }
}
@media (prefers-reduced-motion: reduce) {
  .ps-discovery-cta-slide { transition: opacity .15s linear; transform: none !important; }
}

@media (max-width: 950px) {
  .ps-hero-grid,
  .ps-three-columns,
  .ps-process { grid-template-columns: 1fr; }
  .ps-strip-grid,
  .ps-destination-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ps-cta-inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 560px) {
  .ps-hero-grid-single .ps-hero-copy {
    margin-inline: auto;
    text-align: center;
  }
  .ps-hero-grid-single .ps-hero-lead { margin-inline: auto; }
  .ps-hero-grid-single .ps-actions { justify-content: center; }

  .ps-strip-grid,
  .ps-destination-grid { grid-template-columns: 1fr; }
  .ps-strip-grid div { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.35); }
  .ps-card-topline,
  .ps-card-footer { align-items: flex-start; flex-direction: column; }
}

/* =========================================================
   Responsive homepage hero slider
   ========================================================= */
.ps-hero-slider {
  position: relative;
  overflow: hidden;
  min-height: clamp(34rem, 72vh, 48rem);
  background: var(--secondary);
  color: var(--white);
  touch-action: pan-y;
  overscroll-behavior-x: contain;
}

.ps-hero-slides,
.ps-hero-slide {
  position: absolute;
  inset: 0;
}

.ps-hero-slide {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.65s ease;
  backface-visibility: hidden;
  transform: translateZ(0);
}

.ps-hero-slide.is-transitioning {
  will-change: opacity, transform, filter, clip-path;
}

.ps-hero-slide.is-active {
  z-index: 2;
  opacity: 1;
  pointer-events: auto;
}

.ps-hero-slide-media,
.ps-hero-slide-media img,
.ps-hero-slide-media video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.ps-hero-slide-media {
  background: #0f1712;
}

.ps-hero-slide-media img,
.ps-hero-slide-media video {
  object-fit: cover;
  object-position: center;
}

.ps-hero-slide-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(10, 19, 13, 0.78) 0%, rgba(10, 19, 13, 0.47) 48%, rgba(10, 19, 13, 0.16) 78%, rgba(10, 19, 13, 0.08) 100%),
    linear-gradient(0deg, rgba(7, 14, 9, 0.35), transparent 45%);
}

.ps-hero-slide-content {
  position: relative;
  z-index: 2;
  display: grid;
  min-height: clamp(34rem, 72vh, 48rem);
  grid-template-columns: minmax(0, 1fr) clamp(22rem, 28vw, 30rem);
  gap: clamp(2rem, 3.5vw, 4rem);
  align-items: center;
  padding-block: clamp(5rem, 9vw, 7rem);
}

.ps-hero-slide-content.has-no-package {
  grid-template-columns: minmax(0, 1fr);
}

.ps-hero-slide-copy {
  max-width: min(48rem, 100%);
}

.ps-hero-slide-copy h1,
.ps-hero-slide-copy h2 {
  max-width: 47rem;
  margin-bottom: 1rem;
  color: var(--white);
  font-size: clamp(2.5rem, 5.2vw, 5.2rem);
  line-height: 0.98;
  text-wrap: balance;
}

.ps-hero-slider .ps-hero-lead {
  max-width: 42rem;
  color: rgba(255, 255, 255, 0.92);
}

.ps-hero-slider .button-outline {
  color: var(--white);
  border-color: rgba(255, 255, 255, 0.82);
}

.ps-hero-slider .button-outline:hover,
.ps-hero-slider .button-outline:focus-visible {
  color: var(--secondary);
  background: var(--white);
}

/* Hero readability: keep the green accent text legible on every photo.
   The kicker and primary slide CTA use soft white pill-shaped blocks
   so the green accent text stays readable while matching the hero button language. */
.ps-hero-slide-copy > .ps-kicker {
  display: table;
  width: fit-content;
  max-width: 100%;
  margin-bottom: 1.15rem;
  padding: 0.5rem 0.78rem;
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14);
  color: var(--primary-dark, var(--primary));
  line-height: 1.2;
  text-shadow: none;
}

.ps-hero-slider .ps-actions > .button:not(.button-outline) {
  border-color: rgba(255, 255, 255, 0.96);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.16);
  color: var(--primary-dark, var(--primary));
  text-shadow: none;
}

.ps-hero-slider .ps-actions > .button:not(.button-outline):hover,
.ps-hero-slider .ps-actions > .button:not(.button-outline):focus-visible {
  border-color: var(--white);
  background: var(--white);
  color: var(--primary-dark, var(--primary));
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.2);
}

/* Package card paired one-to-one with the active hero slide. */
.ps-hero-package-card {
  width: 100%;
  height: min(34rem, calc(72vh - 2rem));
  min-height: 29rem;
  max-height: 36rem;
  overflow: hidden;
  align-self: center;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.97);
  color: var(--ink);
  box-shadow: 0 24px 55px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(12px);
}

.ps-hero-package-media {
  position: relative;
  display: block;
  height: 46%;
  min-height: 12rem;
  overflow: hidden;
  background: #e8eee9;
}

.ps-hero-package-media img {
  position: static;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.5s ease;
}

.ps-hero-package-card:hover .ps-hero-package-media img {
  transform: scale(1.035);
}

.ps-hero-package-body {
  display: flex;
  height: 54%;
  min-height: 0;
  flex-direction: column;
  padding: clamp(1.25rem, 1.8vw, 1.6rem);
}

.ps-hero-package-eyebrow {
  margin: 0 0 0.35rem;
  overflow: hidden;
  color: var(--primary-dark);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.ps-hero-package-card h3 {
  margin: 0 0 0.5rem;
  font-size: clamp(1.35rem, 1.65vw, 1.85rem);
  line-height: 1.08;
}

.ps-hero-package-card h3 a {
  color: var(--secondary);
  text-decoration: none;
}

.ps-hero-package-price {
  margin: 0 0 0.55rem;
  color: var(--primary-dark);
  font-size: 1.08rem;
  font-weight: 850;
}

.ps-hero-package-summary {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.ps-hero-package-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: auto;
  padding-top: 0.75rem;
  color: var(--secondary);
  font-size: 0.92rem;
  font-weight: 800;
  text-decoration: none;
}

.ps-hero-package-link:hover,
.ps-hero-package-link:focus-visible,
.ps-hero-package-card h3 a:hover,
.ps-hero-package-card h3 a:focus-visible {
  color: var(--primary-dark);
}

.ps-hero-arrow {
  position: absolute;
  z-index: 5;
  top: 50%;
  display: grid;
  width: 3.1rem;
  height: 3.1rem;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  background: rgba(12, 21, 15, 0.42);
  color: var(--white);
  backdrop-filter: blur(10px);
  transform: translateY(-50%);
}

.ps-hero-arrow:hover,
.ps-hero-arrow:focus-visible {
  background: rgba(12, 21, 15, 0.7);
}

.ps-hero-arrow svg,
.home-search-icon svg,
.home-search-submit svg {
  width: 1.25rem;
  height: 1.25rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ps-hero-arrow-prev { left: clamp(0.8rem, 2vw, 2rem); }
.ps-hero-arrow-next { right: clamp(0.8rem, 2vw, 2rem); }

.ps-hero-dots {
  position: absolute;
  z-index: 5;
  right: 50%;
  bottom: 1.5rem;
  display: flex;
  gap: 0.55rem;
  transform: translateX(50%);
}

.ps-hero-dot {
  width: 0.7rem;
  height: 0.7rem;
  padding: 0;
  border: 1px solid rgba(255,255,255,.9);
  border-radius: 50%;
  background: rgba(255,255,255,.25);
}

.ps-hero-dot.is-active {
  background: var(--white);
  transform: scale(1.15);
}

/* =========================================================
   Search widget directly below hero
   ========================================================= */
.home-search-section {
  position: relative;
  z-index: 10;
  padding: 0 0 1rem;
  background: linear-gradient(to bottom, var(--surface-soft) 0, var(--surface-soft) 50%, transparent 50%);
}

.home-search-widget {
  display: grid;
  grid-template-columns: minmax(12rem, 1.05fr) minmax(10rem, 1fr) minmax(10rem, 1fr) minmax(11rem, 1fr) auto;
  gap: 0;
  align-items: stretch;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 1.2rem;
  background: var(--white);
  box-shadow: 0 18px 45px rgba(23, 32, 25, 0.13);
}

.home-search-heading {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.15rem;
  background: color-mix(in srgb, var(--primary) 8%, var(--white));
}

.home-search-heading > span:last-child {
  display: grid;
  gap: 0.12rem;
}

.home-search-heading strong {
  color: var(--secondary);
  font-size: 0.95rem;
}

.home-search-heading small {
  color: var(--muted);
  font-size: 0.7rem;
  line-height: 1.25;
}

.home-search-icon {
  display: grid;
  width: 2.35rem;
  height: 2.35rem;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 50%;
  background: var(--primary-dark);
  color: var(--white);
}

.home-search-field {
  display: grid;
  gap: 0.34rem;
  min-width: 0;
  padding: 0.78rem 1rem;
  border-left: 1px solid var(--line);
}

.home-search-field > span {
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.home-search-field input,
.home-search-field select {
  width: 100%;
  min-width: 0;
  min-height: 2rem;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 0.9rem;
  font-weight: 650;
}

.home-search-field input::placeholder {
  color: color-mix(in srgb, var(--muted) 75%, white);
}

.home-search-field:focus-within {
  background: color-mix(in srgb, var(--primary) 5%, var(--white));
}

.home-search-submit {
  align-self: stretch;
  min-height: 100%;
  gap: 0.5rem;
  border-radius: 0;
  padding-inline: 1.35rem;
  white-space: nowrap;
}

.home-search-submit svg {
  flex: 0 0 auto;
}

@media (min-width: 68.01rem) and (max-width: 82rem) {
  .ps-hero-slide-content {
    grid-template-columns: minmax(0, 1fr) minmax(21rem, 23.5rem);
    gap: 2rem;
  }

  .ps-hero-package-card {
    height: min(31rem, calc(72vh - 2rem));
    min-height: 27rem;
  }
}

@media (max-width: 68rem) {
  .ps-hero-slide-content,
  .ps-hero-slide-content.has-package {
    grid-template-columns: minmax(0, 1fr);
  }

  .ps-hero-package-card {
    display: none;
  }

  .ps-hero-slide-copy {
    max-width: 48rem;
  }
}

@media (max-width: 72rem) {
  .home-search-widget {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .home-search-heading {
    grid-column: 1 / -1;
    border-bottom: 1px solid var(--line);
  }

  .home-search-field:first-of-type {
    border-left: 0;
  }

  .home-search-submit {
    min-height: 4.6rem;
  }
}

@media (max-width: 48rem) {
  .ps-hero-slider {
    min-height: 0;
    overflow: hidden;
    background: var(--secondary);
  }

  .ps-hero-slides,
  .ps-hero-slide {
    position: relative;
    inset: auto;
  }

  .ps-hero-slide {
    display: none;
    opacity: 1;
    transition: none;
  }

  .ps-hero-slide.is-active {
    display: block;
  }

  .ps-hero-slide-media {
    position: relative;
    inset: auto;
    width: 100%;
    min-height: 0;
    aspect-ratio: 4 / 3;
    background: #0e1510;
  }

  .ps-hero-slide-media img,
  .ps-hero-slide-media video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
  }

  .ps-hero-slide-shade {
    display: none;
  }

  .ps-hero-slide-content {
    min-height: 0;
    padding-block: 2.1rem 4rem;
    background: var(--secondary);
  }

  .ps-hero-slide-copy {
    width: 100%;
    max-width: none;
    margin-inline: auto;
    text-align: center;
  }

  .ps-hero-slide-copy .ps-hero-lead {
    margin-inline: auto;
  }

  .ps-hero-slider .ps-actions {
    justify-content: center;
  }

  .ps-hero-slide-copy h1,
  .ps-hero-slide-copy h2 {
    font-size: clamp(2.15rem, 11vw, 3.3rem);
  }

  .ps-hero-arrow {
    top: min(38vw, 9.5rem);
    width: 2.7rem;
    height: 2.7rem;
  }

  .ps-hero-dots {
    bottom: 1.2rem;
  }

  .home-search-section {
    padding-top: 0;
    background: var(--surface-soft);
  }

  .home-search-widget {
    grid-template-columns: 1fr;
    margin-top: 0;
    border-radius: 0 0 1rem 1rem;
    box-shadow: 0 10px 28px rgba(23, 32, 25, 0.1);
  }

  .home-search-heading,
  .home-search-field,
  .home-search-field:first-of-type {
    grid-column: auto;
    border-left: 0;
    border-bottom: 1px solid var(--line);
  }

  .home-search-heading {
    padding: 1rem;
  }

  .home-search-field {
    padding: 0.85rem 1rem;
  }

  .home-search-submit {
    min-height: 3.8rem;
    border-radius: 0;
  }
}

@media (max-width: 32rem) {
  .ps-hero-slide-media {
    aspect-ratio: 1 / 1;
  }

  .ps-hero-arrow {
    top: 50vw;
  }

  .ps-hero-slider .ps-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .ps-hero-slider .ps-actions .button {
    width: 100%;
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ps-hero-slide {
    transition: none !important;
  }
}

/* =========================================================
   Mobile hero parity: keep copy layered over the slide image
   instead of stacking the image above the wording.
   ========================================================= */
@media (max-width: 48rem) {
  .ps-hero-slider {
    position: relative;
    min-height: clamp(31rem, 76svh, 42rem);
    overflow: hidden;
    background: #0e1510;
  }

  .ps-hero-slides,
  .ps-hero-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .ps-hero-slide {
    display: block;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.65s ease;
  }

  .ps-hero-slide.is-active {
    display: block;
    opacity: 1;
    pointer-events: auto;
  }

  .ps-hero-slide-media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    aspect-ratio: auto;
    overflow: hidden;
    background: #0e1510;
  }

  /* Mobile hero fills the complete slider area. Using cover avoids the
     empty bands created by object-fit: contain while keeping the image
     and copy as one layered composition. */
  .ps-hero-slide-media[style*="--hero-mobile-image"]::before {
    content: none;
  }

  .ps-hero-slide-media img,
  .ps-hero-slide-media video {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
  }

  /* Full dark veil keeps headings/buttons readable on bright safari photos. */
  .ps-hero-slide-shade {
    display: block;
    z-index: 1;
    background:
      linear-gradient(180deg, rgba(4, 9, 6, 0.50) 0%, rgba(4, 9, 6, 0.42) 38%, rgba(4, 9, 6, 0.56) 68%, rgba(4, 9, 6, 0.72) 100%),
      rgba(4, 9, 6, 0.18);
  }

  .ps-hero-slide-content,
  .ps-hero-slide-content.has-package,
  .ps-hero-slide-content.has-no-package {
    position: relative;
    z-index: 2;
    display: grid;
    min-height: clamp(31rem, 76svh, 42rem);
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    padding-block: clamp(4.5rem, 12vh, 6.25rem) 5rem;
    background: transparent;
  }

  .ps-hero-slide-copy {
    width: min(100%, 38rem);
    max-width: 38rem;
    margin-inline: auto;
    padding-inline: 0.2rem;
    text-align: center;
    text-shadow: 0 2px 22px rgba(0, 0, 0, 0.42);
  }

  .ps-hero-slide-copy .ps-kicker,
  .ps-hero-slide-copy .ps-hero-lead {
    margin-inline: auto;
  }

  .ps-hero-slide-copy .ps-hero-lead {
    max-width: 32rem;
    font-size: clamp(0.98rem, 3.5vw, 1.15rem);
    line-height: 1.55;
  }

  .ps-hero-slide-copy h1,
  .ps-hero-slide-copy h2 {
    max-width: 100%;
    margin-inline: auto;
    font-size: clamp(2rem, 9.5vw, 3.35rem);
    line-height: 1;
  }

  .ps-hero-slider .ps-actions {
    justify-content: center;
  }

  .ps-hero-arrow {
    top: 50%;
    width: 2.55rem;
    height: 2.55rem;
  }

  .ps-hero-arrow-prev { left: 0.55rem; }
  .ps-hero-arrow-next { right: 0.55rem; }

  .ps-hero-dots {
    bottom: 1.15rem;
  }
}

@media (max-width: 32rem) {
  .ps-hero-slider,
  .ps-hero-slide-content,
  .ps-hero-slide-content.has-package,
  .ps-hero-slide-content.has-no-package {
    min-height: clamp(29rem, 74svh, 38rem);
  }

  .ps-hero-slide-media {
    aspect-ratio: auto;
  }

  .ps-hero-arrow {
    top: 50%;
  }

  .ps-hero-slider .ps-actions {
    align-items: center;
    flex-direction: row;
    flex-wrap: wrap;
  }

  .ps-hero-slider .ps-actions .button {
    width: auto;
    min-width: min(100%, 11.5rem);
    justify-content: center;
    padding-inline: 1rem;
    font-size: 0.88rem;
  }
}

/* Homepage destination tabs: classification stays simple here; the full
   park/reserve/conservancy explanation lives on National Parks & Reserves. */
.home-destination-section {
  background: var(--surface);
}

.home-destination-tabs {
  display: flex;
  gap: .65rem;
  margin: 0 0 1.5rem;
  padding: .35rem;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface-soft);
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.home-destination-tabs::-webkit-scrollbar { display: none; }

.home-destination-tab {
  display: inline-flex;
  min-width: max-content;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: .78rem 1.15rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--secondary);
  font: inherit;
  font-size: .9rem;
  font-weight: 800;
  cursor: pointer;
  transition: color .22s ease, background-color .22s ease, transform .22s ease, box-shadow .22s ease;
}

.home-destination-tab small {
  display: grid;
  min-width: 1.65rem;
  height: 1.65rem;
  place-items: center;
  padding-inline: .35rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--secondary) 8%, transparent);
  color: inherit;
  font-size: .7rem;
  line-height: 1;
}

.home-destination-tab:hover,
.home-destination-tab:focus-visible {
  color: var(--primary-dark);
  background: var(--white);
}

.home-destination-tab.is-active {
  background: var(--primary-dark);
  color: var(--white);
  box-shadow: 0 8px 22px rgba(11, 122, 69, .2);
}

.home-destination-tab.is-active small {
  background: rgba(255,255,255,.2);
}

.home-destination-tab-panel,
.home-destination-panel[hidden] {
  display: none;
}

.home-destination-panel.is-active {
  display: block;
  animation: home-destination-panel-in .34s ease both;
}

.home-destination-panel-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 1.2rem;
}

.home-destination-empty { margin-top: .25rem; }

@keyframes home-destination-panel-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 42rem) {
  .home-destination-tabs {
    margin-inline: calc(var(--site-gutter, 1rem) * -.1);
    border-radius: .9rem;
  }

  .home-destination-tab {
    flex: 1 0 auto;
    padding-inline: 1rem;
  }

  .home-destination-panel-footer {
    justify-content: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-destination-panel.is-active { animation: none; }
  .home-destination-tab { transition: none; }
}

/* Homepage trust upgrade */
.home-trust-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.home-trust-grid article{padding:1.35rem;border:1px solid var(--line);border-radius:1.15rem;background:#fff;box-shadow:var(--shadow-sm)}.home-trust-grid article>span:first-child{display:grid;width:2.6rem;height:2.6rem;place-items:center;margin-bottom:1rem;border-radius:50%;background:color-mix(in srgb,var(--primary) 10%,#fff);color:var(--primary-dark);font-weight:900}.home-trust-grid article>strong{display:block;color:var(--primary-dark);font-size:1.45rem}.home-trust-grid h3{margin:.35rem 0 .6rem;font-size:1.05rem}.home-trust-grid p{margin:0;color:var(--muted);font-size:.9rem}.home-review-profiles{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-top:1.2rem;padding:1rem 1.1rem;border-radius:1rem;background:var(--surface-soft)}.home-review-profiles>span{font-weight:850}.home-review-profiles a{font-weight:750;text-decoration:none}@media(max-width:68rem){.home-trust-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:42rem){.home-trust-grid{grid-template-columns:1fr}}

/* =========================================================
   Homepage cover-image cards + safari route marquee
   ========================================================= */
.home-cover-card {
  display: flex;
  overflow: hidden;
  padding: 0;
  flex-direction: column;
  border-radius: 1rem;
}

.home-card-media {
  position: relative;
  display: block;
  overflow: hidden;
  flex: 0 0 auto;
  order: 0;
  aspect-ratio: 3 / 2;
  background: color-mix(in srgb, var(--secondary) 8%, var(--surface-soft));
}

.home-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Keep dashboard-managed cover media visible above card copy.
   The base .ps-card uses flex layout, so media must not shrink to zero height. */
.home-journey-card > .home-card-media,
.home-guide-card > .home-card-media {
  width: 100%;
}


.home-card-body {
  display: flex;
  min-height: 0;
  flex: 1 1 auto;
  order: 1;
  flex-direction: column;
  padding: clamp(1.25rem, 2.4vw, 1.7rem);
}

.home-card-body .ps-card-label {
  margin-bottom: .75rem;
}

.home-card-body .text-link {
  margin-top: auto;
}

.home-tour-media {
  position: relative;
  overflow: hidden;
  flex: 0 0 auto;
  order: 0;
  background: var(--secondary);
}

.home-tour-price-badge {
  position: absolute;
  z-index: 4;
  top: .8rem;
  left: .8rem;
  max-width: calc(100% - 1.6rem);
  padding: .52rem .72rem;
  border-radius: .45rem;
  background: rgba(58, 45, 7, .92);
  color: #fff;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
  font-size: .82rem;
  font-weight: 850;
  line-height: 1;
  backdrop-filter: blur(5px);
}

.home-tour-route {
  --home-route-distance: 0px;
  --home-route-duration: 14s;
  position: absolute;
  z-index: 4;
  right: .65rem;
  bottom: .65rem;
  left: .65rem;
  display: flex;
  align-items: center;
  gap: .7rem;
  overflow: hidden;
  padding: .82rem .9rem;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: .6rem;
  background: linear-gradient(90deg, rgba(31, 26, 10, .9), rgba(31, 26, 10, .78));
  color: #fff;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .2);
  font-size: .83rem;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
  backdrop-filter: blur(6px);
}

.home-tour-route-label {
  flex: 0 0 auto;
  color: rgba(255, 255, 255, .72);
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.home-tour-route-viewport {
  display: block;
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
}

.home-tour-route-track {
  display: flex;
  width: max-content;
  max-width: none;
  align-items: center;
  will-change: transform;
}

.home-tour-route-copy {
  display: inline-block;
  flex: 0 0 auto;
}

.home-tour-route.is-marquee .home-tour-route-track {
  gap: 2.25rem;
  animation: home-tour-route-scroll var(--home-route-duration) linear infinite;
}

.home-tour-route.is-marquee:hover .home-tour-route-track,
.home-tour-route.is-marquee:focus-within .home-tour-route-track {
  animation-play-state: paused;
}

@keyframes home-tour-route-scroll {
  to { transform: translate3d(calc(-1 * var(--home-route-distance)), 0, 0); }
}

.home-destination-card {
  position: relative;
  isolation: isolate;
  min-height: 14.5rem;
  overflow: hidden;
  padding: 0;
  border-radius: .9rem;
  background: var(--secondary);
}

.home-destination-cover,
.home-destination-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.home-destination-cover {
  z-index: -2;
  object-fit: cover;
  object-position: center;
}

.home-destination-overlay {
  z-index: -1;
  background: linear-gradient(180deg, rgba(5, 12, 8, .42) 0%, rgba(5, 12, 8, .50) 45%, rgba(5, 12, 8, .88) 100%);
  transition: background .3s ease;
}

.home-destination-copy {
  display: flex;
  min-height: 14.5rem;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.3rem;
}

.home-destination-copy > span {
  color: rgba(255, 255, 255, .9);
}

.home-destination-card:hover {
  background: var(--secondary);
}

.home-destination-card:hover .home-destination-overlay {
  background: linear-gradient(180deg, rgba(5, 12, 8, .48) 0%, rgba(5, 12, 8, .56) 45%, rgba(5, 12, 8, .92) 100%);
}

.home-guide-card .home-card-media,
.home-journey-card .home-card-media {
  aspect-ratio: 16 / 10;
}

@media (max-width: 60rem) {
  .home-tour-route {
    font-size: .8rem;
  }
}

@media (max-width: 42rem) {
  .home-card-media,
  .home-guide-card .home-card-media,
  .home-journey-card .home-card-media {
    aspect-ratio: 16 / 10;
  }

  .home-tour-price-badge {
    top: .65rem;
    left: .65rem;
    font-size: .76rem;
  }

  .home-tour-route {
    right: .5rem;
    bottom: .5rem;
    left: .5rem;
    padding: .72rem .75rem;
    border-radius: .5rem;
    font-size: .76rem;
  }

  .home-tour-route-label {
    font-size: .6rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-tour-route.is-marquee .home-tour-route-track {
    animation: none;
  }
}


/* =========================================================
   Homepage Experiences & Travel Styles discovery
   ========================================================= */
.home-discovery-section {
  position: relative;
  overflow: hidden;
  padding: clamp(4rem, 7vw, 6.5rem) 0;
  color: #fff;
  background:
    radial-gradient(circle at 86% 8%, color-mix(in srgb, var(--primary) 18%, transparent), transparent 25rem),
    radial-gradient(circle at 8% 100%, rgba(255,255,255,.055), transparent 24rem),
    color-mix(in srgb, var(--secondary) 91%, #0d1510);
}

.home-discovery-section::before {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
  opacity: .22;
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 52px 52px;
  mask-image: linear-gradient(90deg, #000, transparent 72%);
}

.home-discovery-section > .site-container { position: relative; z-index: 1; }

.home-discovery-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: end;
  margin-bottom: clamp(2rem, 4vw, 3.25rem);
}

.home-discovery-copy { max-width: 48rem; }
.home-discovery-kicker {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  margin-bottom: 1rem;
  color: color-mix(in srgb, var(--primary) 70%, #fff);
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.home-discovery-kicker::before { width: 2rem; height: 2px; content: ""; background: currentColor; }
.home-discovery-copy h2 { max-width: 43rem; margin-bottom: 1.1rem; color: #fff; font-size: clamp(2.15rem, 5vw, 4.25rem); line-height: .98; letter-spacing: -.035em; }
.home-discovery-copy p { max-width: 44rem; margin: 0; color: rgba(255,255,255,.78); font-size: clamp(1rem, 1.4vw, 1.1rem); line-height: 1.7; }

.home-discovery-actions { display: grid; gap: 1.1rem; justify-items: end; }
.home-discovery-tabs {
  display: inline-flex;
  gap: .35rem;
  max-width: 100%;
  padding: .35rem;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  background: rgba(255,255,255,.055);
  backdrop-filter: blur(10px);
}
.home-discovery-tab {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  min-height: 2.85rem;
  padding: .65rem 1rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(255,255,255,.76);
  cursor: pointer;
  font: inherit;
  font-size: .85rem;
  font-weight: 850;
  transition: color .2s ease, background .2s ease, transform .2s ease;
}
.home-discovery-tab small {
  display: grid;
  min-width: 1.45rem;
  height: 1.45rem;
  place-items: center;
  padding: 0 .32rem;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: inherit;
  font-size: .68rem;
}
.home-discovery-tab:hover { color: #fff; }
.home-discovery-tab.is-active { background: var(--primary-dark); color: #fff; box-shadow: 0 10px 24px rgba(0,0,0,.2); }
.home-discovery-tab.is-active small { background: rgba(255,255,255,.2); }
.home-discovery-tab:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary) 65%, #fff); outline-offset: 3px; }
.home-discovery-all { color: #fff; font-size: .86rem; font-weight: 850; text-decoration: none; }
.home-discovery-all span { display: inline-block; margin-left: .35rem; transition: transform .2s ease; }
.home-discovery-all:hover span { transform: translateX(.25rem); }

.home-discovery-panel[hidden] { display: none; }
.home-discovery-panel.is-active { animation: home-discovery-panel-in .36s ease both; }
@keyframes home-discovery-panel-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

.home-discovery-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: .85rem;
}
.home-discovery-card {
  position: relative;
  display: flex;
  min-height: 17rem;
  grid-column: span 3;
  overflow: hidden;
  isolation: isolate;
  align-items: flex-end;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 1rem;
  background: #18201a;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 14px 32px rgba(0,0,0,.13);
}
.home-discovery-card:nth-child(-n+2) { min-height: 22rem; grid-column: span 6; }
.home-discovery-card > img,
.home-discovery-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.home-discovery-card > img { z-index: -3; object-fit: cover; object-position: center; transition: transform .6s cubic-bezier(.2,.75,.2,1), filter .4s ease; }
.home-discovery-overlay {
  z-index: -2;
  background: linear-gradient(180deg, rgba(4,10,7,.2) 0%, rgba(4,10,7,.25) 30%, rgba(4,10,7,.88) 100%);
  transition: background .35s ease;
}
.home-discovery-card::after {
  position: absolute;
  z-index: -1;
  inset: auto 1.1rem 0;
  height: 1px;
  content: "";
  background: linear-gradient(90deg, var(--primary), transparent);
  opacity: .8;
  transform: scaleX(.35);
  transform-origin: left;
  transition: transform .35s ease;
}
.home-discovery-card-top {
  position: absolute;
  z-index: 2;
  top: .85rem;
  right: .85rem;
  left: .85rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .6rem;
}
.home-discovery-type,
.home-discovery-journey {
  display: inline-flex;
  max-width: 70%;
  padding: .42rem .62rem;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  background: rgba(5,12,8,.54);
  color: rgba(255,255,255,.92);
  backdrop-filter: blur(7px);
  font-size: .64rem;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.home-discovery-journey { max-width: 48%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-discovery-card-copy { display: grid; width: 100%; gap: .45rem; padding: 1.15rem 1.15rem 1.2rem; }
.home-discovery-card-copy > strong { color: #fff; font-size: clamp(1.05rem, 1.7vw, 1.32rem); line-height: 1.12; }
.home-discovery-card:nth-child(-n+2) .home-discovery-card-copy > strong { font-size: clamp(1.25rem, 2vw, 1.65rem); }
.home-discovery-card-copy > span { display: -webkit-box; overflow: hidden; color: rgba(255,255,255,.76); font-size: .78rem; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.home-discovery-card-copy em { margin-top: .2rem; color: #fff; font-size: .72rem; font-style: normal; font-weight: 850; opacity: 0; transform: translateY(.35rem); transition: opacity .25s ease, transform .25s ease; }
.home-discovery-card:hover > img { transform: scale(1.055); filter: saturate(1.06) contrast(1.03); }
.home-discovery-card:hover .home-discovery-overlay { background: linear-gradient(180deg, rgba(4,10,7,.28) 0%, rgba(4,10,7,.32) 30%, rgba(4,10,7,.93) 100%); }
.home-discovery-card:hover::after { transform: scaleX(1); }
.home-discovery-card:hover .home-discovery-card-copy em { opacity: 1; transform: translateY(0); }
.home-discovery-card:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary) 70%, #fff); outline-offset: 4px; }
.home-discovery-empty { display: grid; gap: .4rem; padding: 1.5rem; border: 1px dashed rgba(255,255,255,.25); border-radius: 1rem; color: rgba(255,255,255,.75); }
.home-discovery-empty strong { color: #fff; }

@media (max-width: 68rem) {
  .home-discovery-heading { grid-template-columns: 1fr; }
  .home-discovery-actions { justify-items: start; }
  .home-discovery-card,
  .home-discovery-card:nth-child(-n+2) { min-height: 18rem; grid-column: span 6; }
}
@media (max-width: 42rem) {
  .home-discovery-section { padding-block: 3.6rem; }
  .home-discovery-copy h2 { font-size: clamp(2rem, 11vw, 3rem); }
  .home-discovery-actions { width: 100%; }
  .home-discovery-tabs { width: 100%; overflow-x: auto; justify-content: flex-start; scrollbar-width: none; }
  .home-discovery-tabs::-webkit-scrollbar { display: none; }
  .home-discovery-tab { flex: 1 0 auto; justify-content: center; }
  .home-discovery-grid { grid-template-columns: 1fr; }
  .home-discovery-card,
  .home-discovery-card:nth-child(-n+2) { min-height: 19rem; grid-column: 1; }
  .home-discovery-card-copy em { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .home-discovery-panel.is-active { animation: none; }
  .home-discovery-card > img,
  .home-discovery-card::after,
  .home-discovery-card-copy em,
  .home-discovery-all span,
  .home-discovery-tab { transition: none; }
}

/* =========================================================
   Homepage trust / planning / reviews / affiliations / FAQs
   ========================================================= */
.home-trust-heading{max-width:70rem}.home-trust-grid-refined article{position:relative;overflow:hidden}.home-trust-grid-refined article::after{position:absolute;right:-2rem;bottom:-2rem;width:7rem;height:7rem;border:1px solid color-mix(in srgb,var(--primary) 12%,transparent);border-radius:50%;content:""}.home-trust-grid-refined article>span:first-child{position:relative;z-index:1}.home-trust-grid-refined article>strong{font-size:clamp(1.25rem,1.6vw,1.55rem)}

.home-planning-section{overflow:hidden}.home-planning-heading{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(18rem,.9fr);align-items:end;gap:clamp(1.5rem,4vw,4rem);margin-bottom:2.25rem}.home-planning-heading h2{max-width:18ch;margin-bottom:0}.home-planning-heading>p{max-width:42rem;margin:0;color:var(--muted);font-size:1rem;line-height:1.75}.home-planning-steps{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:0;padding:0;list-style:none}.home-planning-steps::before{position:absolute;top:2.15rem;right:9%;left:9%;height:1px;background:color-mix(in srgb,var(--primary) 22%,var(--line));content:""}.home-planning-step{position:relative;z-index:1;min-height:18rem;padding:1.4rem;border:1px solid var(--line);border-radius:1.15rem;background:var(--white);box-shadow:var(--shadow-sm);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.home-planning-step:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--primary) 32%,var(--line));box-shadow:var(--shadow-md)}.home-planning-icon{display:grid;width:4.3rem;height:4.3rem;place-items:center;margin-bottom:1.2rem;border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line));border-radius:1rem;background:color-mix(in srgb,var(--primary) 8%,#fff);color:var(--primary-dark);box-shadow:0 10px 28px rgba(20,75,48,.08)}.home-planning-icon svg{width:2rem;height:2rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.home-planning-number{margin-bottom:.7rem;color:var(--primary-dark);font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.home-planning-step h3{margin:0 0 .7rem;font-size:1.1rem}.home-planning-step p{margin:0;color:var(--muted);font-size:.91rem;line-height:1.65}.home-planning-action{display:flex;justify-content:center;margin-top:1.6rem}

.home-reviews-section{overflow:hidden;background:linear-gradient(180deg,#fff 0%,color-mix(in srgb,var(--surface-soft) 70%,#fff) 100%)}.home-reviews-heading{align-items:end}.home-review-slider{position:relative}.home-review-controls{display:flex;justify-content:flex-end;gap:.55rem;margin-bottom:.8rem}.home-review-controls button{display:grid;width:2.8rem;height:2.8rem;place-items:center;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--secondary);cursor:pointer;font-size:1.1rem;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}.home-review-controls button:hover,.home-review-controls button:focus-visible{border-color:var(--primary-dark);background:var(--primary-dark);color:#fff;transform:translateY(-1px)}.home-review-controls button:disabled{opacity:.35;cursor:default;transform:none}.home-review-viewport{overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none;outline:0}.home-review-viewport::-webkit-scrollbar{display:none}.home-review-track{display:flex;gap:1rem}.home-review-slide{flex:0 0 calc((100% - 2rem)/3);display:flex;min-width:0;min-height:20rem;flex-direction:column;padding:1.45rem;border:1px solid var(--line);border-radius:1.2rem;background:#fff;box-shadow:var(--shadow-sm);scroll-snap-align:start}.home-review-card-top{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:1rem}.home-review-stars{color:#e5a900;font-size:1.05rem;letter-spacing:.08em;white-space:nowrap}.home-review-stars-empty{color:#d9ded9}.home-verified-review{display:inline-flex;align-items:center;gap:.35rem;color:#1877f2;font-size:.74rem;font-weight:850}.home-verified-review svg{width:1.3rem;height:1.3rem;fill:#1877f2;stroke:none}.home-verified-review svg .check{fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.home-review-slide h3{margin:0 0 .75rem;font-size:1.06rem}.home-review-slide blockquote{margin:0;color:var(--ink);font-size:1rem;line-height:1.72}.home-review-slide footer{display:grid;gap:.85rem;margin-top:auto;padding-top:1.2rem;border-top:1px solid var(--line)}.home-review-person{display:flex;align-items:center;gap:.65rem}.home-review-person .review-inline-flag{font-size:1.5rem}.home-review-person div{display:grid}.home-review-person strong{font-size:.92rem}.home-review-person span{color:var(--muted);font-size:.78rem}.home-review-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem .8rem;color:var(--muted);font-size:.75rem}.home-review-profiles-under-slider{margin-top:1rem}

.home-affiliations-section{overflow:hidden}.home-affiliations-heading{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(18rem,.9fr);align-items:end;gap:clamp(1.5rem,4vw,4rem);margin-bottom:1.6rem}.home-affiliations-heading h2{margin-bottom:0}.home-affiliations-heading>p{max-width:42rem;margin:0;color:var(--muted);line-height:1.7}.home-affiliation-marquee{overflow:hidden;border-block:1px solid var(--line);background:#fff}.home-affiliation-track{display:flex;width:max-content;will-change:transform}.home-affiliation-set{display:flex;align-items:stretch;gap:1rem;padding:1rem .5rem}.home-affiliation-item{display:grid;grid-template-columns:7rem minmax(11rem,1fr);align-items:center;gap:1rem;min-width:22rem;padding:1rem 1.2rem;border:1px solid var(--line);border-radius:1rem;background:#fff;color:var(--secondary);text-decoration:none;box-shadow:var(--shadow-sm)}.home-affiliation-item img{width:7rem;height:4.4rem;object-fit:contain}.home-affiliation-item>span{display:grid;gap:.25rem}.home-affiliation-item strong{font-size:.9rem;line-height:1.35}.home-affiliation-item small{color:var(--muted);font-size:.72rem;text-transform:capitalize}.home-affiliation-marquee.is-static .home-affiliation-track{width:100%;justify-content:center}.home-affiliation-marquee.is-animated .home-affiliation-track{animation:home-affiliation-scroll 28s linear infinite}.home-affiliation-marquee.is-animated:hover .home-affiliation-track,.home-affiliation-marquee.is-animated:focus-within .home-affiliation-track{animation-play-state:paused}@keyframes home-affiliation-scroll{to{transform:translate3d(-50%,0,0)}}

.home-faq-section{background:#fff}.home-faq-layout{display:grid;grid-template-columns:minmax(17rem,.62fr) minmax(0,1.38fr);align-items:start;gap:clamp(2rem,5vw,5rem)}.home-faq-heading{position:sticky;top:7.5rem;max-width:28rem}.home-faq-heading h2{margin-bottom:1rem}.home-faq-heading p{margin:0 0 1.4rem;color:var(--muted);line-height:1.72}.home-faq-list{border-top:1px solid var(--line)}.home-faq-list details{border-bottom:1px solid var(--line)}.home-faq-list summary{display:grid;grid-template-columns:2.4rem minmax(0,1fr);gap:.8rem;padding:1.15rem 3rem 1.15rem 0;color:var(--secondary);cursor:pointer;font-weight:800;list-style:none;position:relative}.home-faq-list summary::-webkit-details-marker{display:none}.home-faq-list summary>span{color:var(--primary-dark);font-size:.72rem;letter-spacing:.08em}.home-faq-list summary::after{position:absolute;top:.88rem;right:0;display:grid;width:2rem;height:2rem;place-items:center;border:1px solid var(--line);border-radius:50%;background:#fff;content:"+";font-size:1.1rem}.home-faq-list details[open] summary::after{content:"−"}.home-faq-list details>div{padding:0 3rem 1.2rem 3.2rem}.home-faq-list p{max-width:58rem;margin:0;color:var(--muted);line-height:1.75}

@media(max-width:72rem){.home-planning-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.home-planning-steps::before{display:none}.home-review-slide{flex-basis:calc((100% - 1rem)/2)}.home-affiliations-heading{grid-template-columns:1fr}.home-faq-layout{grid-template-columns:minmax(15rem,.55fr) minmax(0,1.45fr);gap:2rem}}
@media(max-width:54rem){.home-planning-heading,.home-affiliations-heading,.home-faq-layout{grid-template-columns:1fr}.home-planning-heading h2{max-width:none}.home-faq-heading{position:static;max-width:none}.home-review-slide{flex-basis:82%}.home-affiliation-item{grid-template-columns:5.6rem minmax(10rem,1fr);min-width:19rem}.home-affiliation-item img{width:5.6rem;height:3.8rem}}
@media(max-width:38rem){.home-planning-steps{grid-template-columns:1fr}.home-planning-step{min-height:0}.home-review-slide{flex-basis:92%;min-height:0;padding:1.2rem}.home-review-controls{margin-top:-.3rem}.home-affiliation-item{grid-template-columns:4.5rem minmax(8.5rem,1fr);min-width:16.5rem;padding:.85rem}.home-affiliation-item img{width:4.5rem;height:3.2rem}.home-faq-list summary{grid-template-columns:2rem minmax(0,1fr);padding-right:2.5rem}.home-faq-list details>div{padding-left:2.8rem;padding-right:.5rem}}
@media(prefers-reduced-motion:reduce){
  .home-planning-step,.home-review-viewport{scroll-behavior:auto}
  /* Functional homepage motion remains active because these are deliberately
     requested carousels/marquees, not decorative entrance effects. */
  .home-affiliation-marquee.is-animated .home-affiliation-track{
    animation-name:home-affiliation-scroll!important;
    animation-duration:28s!important;
    animation-timing-function:linear!important;
    animation-iteration-count:infinite!important;
  }
  .home-tour-route.is-marquee .home-tour-route-track{
    animation-name:home-tour-route-scroll!important;
    animation-duration:var(--home-route-duration)!important;
    animation-timing-function:linear!important;
    animation-iteration-count:infinite!important;
  }
}
.home-sample-review{display:inline-flex;align-items:center;padding:.28rem .55rem;border:1px solid var(--line);border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:.68rem;font-weight:850;letter-spacing:.03em;text-transform:uppercase}


/* Dashboard-managed photography for “Why travellers plan with us”. */
.home-trust-section.has-background-image {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: #fff;
  background: #102018;
}

.home-trust-section.has-background-image::before,
.home-trust-section.has-background-image::after {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
}

.home-trust-section.has-background-image::before {
  z-index: -2;
  inset: -8% 0;
  background-image: var(--home-trust-bg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  transform: translate3d(0, var(--home-trust-parallax-y, 0px), 0) scale(1.1);
  transform-origin: center center;
  will-change: transform;
}

.home-trust-section.has-background-image::after {
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(7, 18, 12, .76), rgba(7, 18, 12, .84)),
    linear-gradient(110deg, rgba(4, 59, 37, .36), rgba(0, 0, 0, .18));
}

.home-trust-section.has-background-image > .site-container {
  position: relative;
  z-index: 1;
}

.home-trust-section.has-background-image .home-trust-heading .eyebrow {
  color: #d8f1dd;
}

.home-trust-section.has-background-image .home-trust-heading h2,
.home-trust-section.has-background-image .home-trust-heading .lead {
  color: #fff;
}

.home-trust-section.has-background-image .home-trust-heading .lead {
  color: rgba(255,255,255,.88);
}

.home-trust-section.has-background-image .home-trust-grid-refined article {
  border-color: rgba(255,255,255,.2);
  background: rgba(12, 25, 18, .72);
  box-shadow: 0 18px 45px rgba(0,0,0,.2);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}

.home-trust-section.has-background-image .home-trust-grid-refined article > span:first-child {
  background: rgba(255,255,255,.13);
  color: #d8f1dd;
}

.home-trust-section.has-background-image .home-trust-grid-refined article > strong,
.home-trust-section.has-background-image .home-trust-grid-refined h3 {
  color: #fff;
}

.home-trust-section.has-background-image .home-trust-grid-refined p {
  color: rgba(255,255,255,.82);
}

.home-trust-section.has-background-image .home-trust-grid-refined article::after {
  border-color: rgba(216,241,221,.16);
}

@media (max-width: 61.99rem) {
  .home-trust-section.has-background-image::before {
    inset: -5% 0;
    transform: translate3d(0, var(--home-trust-parallax-y, 0px), 0) scale(1.07);
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-trust-section.has-background-image::before {
    inset: 0;
    transform: none;
    will-change: auto;
  }
}

/* =========================================================
   2026-08-16 Mobile/tablet hero image visibility — edge-to-edge
   Do not crop and do not add side bars. The media keeps its natural
   aspect ratio at 100% width; hero copy follows beneath it.
   ========================================================= */
@media (max-width: 68rem) {
  .ps-hero-slider {
    min-height: 0;
    overflow: hidden;
    background: var(--secondary);
  }

  .ps-hero-slides,
  .ps-hero-slide {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
  }

  .ps-hero-slide {
    display: none;
    opacity: 1;
    pointer-events: none;
    transition: none;
  }

  .ps-hero-slide.is-active {
    display: block;
    opacity: 1;
    pointer-events: auto;
  }

  .ps-hero-slide-media {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    min-height: 0;
    overflow: hidden;
    background: #0b120d;
  }

  .ps-hero-slide-media::before {
    display: none !important;
    content: none !important;
  }

  .ps-hero-slide-media img,
  .ps-hero-slide-media video {
    position: relative;
    z-index: 1;
    inset: auto;
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
    object-position: center center;
  }

  .ps-hero-slide-shade {
    display: none;
  }

  .ps-hero-slide-content,
  .ps-hero-slide-content.has-package,
  .ps-hero-slide-content.has-no-package {
    position: relative;
    z-index: 2;
    display: grid;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    padding-block: clamp(2rem, 5vw, 3.25rem) clamp(4rem, 7vw, 5rem);
    background: var(--secondary);
  }

  .ps-hero-slide-copy {
    width: min(100%, 48rem);
    max-width: 48rem;
    margin-inline: auto;
    text-align: center;
    text-shadow: none;
  }

  .ps-hero-slide-copy .ps-kicker,
  .ps-hero-slide-copy .ps-hero-lead {
    margin-inline: auto;
  }

  .ps-hero-slide-copy h1,
  .ps-hero-slide-copy h2 {
    max-width: 100%;
    margin-inline: auto;
    font-size: clamp(2.15rem, 7vw, 3.75rem);
  }

  .ps-hero-package-card {
    display: none;
  }

  .ps-hero-slider .ps-actions {
    justify-content: center;
  }

  /* Arrows sit over the media. This percentage tracks common safari image ratios
     without creating a fixed-height crop box. */
  .ps-hero-arrow {
    top: clamp(7rem, 31vw, 20rem);
  }

  .ps-hero-dots {
    bottom: 1.15rem;
  }
}

@media (max-width: 48rem) {
  .ps-hero-slide-content,
  .ps-hero-slide-content.has-package,
  .ps-hero-slide-content.has-no-package {
    padding-block: 1.9rem 4.2rem;
  }

  .ps-hero-slide-copy h1,
  .ps-hero-slide-copy h2 {
    font-size: clamp(2rem, 9vw, 3rem);
  }

  .ps-hero-arrow {
    top: 34vw;
  }
}

@media (max-width: 32rem) {
  .ps-hero-slider .ps-actions {
    align-items: stretch;
    flex-direction: column;
    flex-wrap: nowrap;
  }

  .ps-hero-slider .ps-actions .button {
    width: 100%;
    min-width: 0;
  }
}
