/* ==========================================================================
   The Provence Group — Country Destination Page Stylesheet
   EXTENDS base styles.css (navy / teal / gold / cream palette, font-serif loaded)
   Contains ONLY country-page-specific component styles.
   NO navbar/footer overrides.
   ========================================================================== */

/* ==========================================================================
   (1) Country Hero — full-screen immersive header
   ========================================================================== */
.country-hero {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  overflow: hidden;
  isolation: isolate;
}

.country-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to top,
    rgba(7, 26, 46, 0.92) 0%,
    rgba(7, 26, 46, 0.55) 45%,
    rgba(7, 26, 46, 0.35) 100%
  );
  pointer-events: none;
}

.country-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(
      600px 400px at 20% 30%,
      rgba(27, 138, 158, 0.22),
      transparent 60%
    ),
    radial-gradient(
      700px 480px at 85% 75%,
      rgba(27, 138, 158, 0.18),
      transparent 55%
    );
  mix-blend-mode: screen;
  animation: countryHeroGlow 14s ease-in-out infinite alternate;
}

@keyframes countryHeroGlow {
  0%   { opacity: 0.7; transform: translate3d(0, 0, 0) scale(1); }
  50%  { opacity: 1;   transform: translate3d(-1%, 0.5%, 0) scale(1.03); }
  100% { opacity: 0.85; transform: translate3d(0.5%, -0.5%, 0) scale(1.05); }
}

.country-hero > *:not(.country-hero__img):not(.country-hero__scroll-indicator) {
  position: relative;
  z-index: 3;
}

/* ==========================================================================
   (2) Country Hero Image — Ken Burns slow zoom
   ========================================================================== */
.country-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  transform-origin: center center;
  will-change: transform;
  animation: kenburnsSlow 18s ease-out-in infinite alternate;
}

@keyframes kenburnsSlow {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.08) translate(-1%, -1%);
  }
}

/* ==========================================================================
   (3) Country Hero — scroll indicator (teal bouncing line)
   ========================================================================== */
.country-hero__scroll-indicator {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 4;
  width: 2px;
  height: 56px;
  overflow: hidden;
  background: rgba(27, 138, 158, 0.2);
  border-radius: 2px;
  pointer-events: none;
}

.country-hero__scroll-indicator::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 20px;
  background: linear-gradient(
    to bottom,
    rgba(27, 138, 158, 0),
    var(--teal-light) 40%,
    var(--teal-light)
  );
  box-shadow: 0 0 10px rgba(27, 138, 158, 0.6);
  animation: scrolllineBounce 2.4s var(--easing-premium) infinite;
}

@keyframes scrolllineBounce {
  0% {
    transform: translateY(-100%);
    opacity: 0;
  }
  15% {
    opacity: 1;
  }
  60% {
    transform: translateY(180%);
    opacity: 1;
  }
  75%, 100% {
    transform: translateY(220%);
    opacity: 0;
  }
}

/* ==========================================================================
   (4) Reveal on scroll — enhanced country-page variant
   ========================================================================== */
.country-page .reveal {
  opacity: 0;
  transform: translateY(24px);
  will-change: transform, opacity;
}

.country-page .reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.country-page .reveal[data-delay="1"] { transition-delay: 0.08s; }
.country-page .reveal[data-delay="2"] { transition-delay: 0.16s; }
.country-page .reveal[data-delay="3"] { transition-delay: 0.24s; }
.country-page .reveal[data-delay="4"] { transition-delay: 0.32s; }
.country-page .reveal[data-delay="5"] { transition-delay: 0.40s; }
.country-page .reveal[data-delay="6"] { transition-delay: 0.48s; }

/* ==========================================================================
   (5) 6-Step Process Timeline — vertical mobile, horizontal desktop (>=1024)
   ========================================================================== */
.timeline {
  position: relative;
  width: 100%;
  padding: 1rem 0;
}

/* Progress line (vertical on mobile, horizontal on desktop) */
.timeline__progress-line {
  position: absolute;
  left: 28px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(
    to bottom,
    rgba(27, 138, 158, 0.15),
    rgba(27, 138, 158, 0.4),
    rgba(27, 138, 158, 0.15)
  );
  border-radius: 2px;
  overflow: hidden;
}

.timeline__progress-line::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(27, 138, 158, 0),
    var(--teal-light),
    rgba(199, 168, 104, 0.7),
    var(--teal-light),
    rgba(27, 138, 158, 0)
  );
  filter: blur(1px);
  animation: timelinePulse 3.2s ease-in-out infinite;
}

@keyframes timelinePulse {
  0%, 100% {
    transform: translateY(-50%);
    opacity: 0.5;
  }
  50% {
    transform: translateY(50%);
    opacity: 1;
  }
}

.timeline__steps {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.timeline-step {
  position: relative;
  display: flex;
  gap: 1.5rem;
  padding-left: 0;
}

/* Gold number badge */
.timeline-step__badge {
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  border-radius: 9999px;
  display: grid;
  place-items: center;
  position: relative;
  z-index: 2;
  isolation: isolate;
  background: #fff;
  box-shadow:
    0 12px 32px -12px rgba(199, 168, 104, 0.55),
    0 0 0 1px rgba(11, 37, 64, 0.06);
}

.timeline-step__badge::before {
  content: "";
  position: absolute;
  inset: 5px;
  border-radius: 9999px;
  background: linear-gradient(135deg, #E0C487 0%, var(--gold) 50%, #A88B4F 100%);
  z-index: -1;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

.timeline-step__badge::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 9999px;
  pointer-events: none;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.85) inset,
    0 0 0 8px rgba(199, 168, 104, 0.08);
}

.timeline-step__num {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 20px;
  font-weight: 600;
  color: var(--navy-deep);
  letter-spacing: 0.02em;
}

.timeline-step__content {
  flex: 1;
  padding-top: 0.85rem;
}

.timeline-step__title {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 19px;
  font-weight: 500;
  color: var(--navy-deep);
  margin-bottom: 0.5rem;
  line-height: 1.3;
}

.timeline-step__desc {
  font-size: 14.5px;
  line-height: 1.75;
  color: rgba(11, 37, 64, 0.78);
}

/* Desktop: horizontal layout (>= 1024px) */
@media (min-width: 1024px) {
  .timeline {
    padding: 3rem 0 1rem;
  }

  .timeline__progress-line {
    left: 0;
    right: 0;
    top: 58px;
    bottom: auto;
    width: auto;
    height: 2px;
    background: linear-gradient(
      to right,
      rgba(27, 138, 158, 0.15),
      rgba(27, 138, 158, 0.45),
      rgba(27, 138, 158, 0.15)
    );
  }

  .timeline__progress-line::before {
    background: linear-gradient(
      to right,
      rgba(27, 138, 158, 0),
      var(--teal-light),
      rgba(199, 168, 104, 0.75),
      var(--teal-light),
      rgba(27, 138, 158, 0)
    );
    animation: timelinePulseHorizontal 3.6s ease-in-out infinite;
  }

  @keyframes timelinePulseHorizontal {
    0%, 100% {
      transform: translateX(-50%);
      opacity: 0.5;
    }
    50% {
      transform: translateX(50%);
      opacity: 1;
    }
  }

  .timeline__steps {
    flex-direction: row;
    gap: 0;
    justify-content: space-between;
    align-items: flex-start;
  }

  .timeline-step {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 1.25rem;
    flex: 1;
    padding: 0 0.5rem;
  }

  .timeline-step__content {
    padding-top: 0;
  }

  .timeline-step__badge {
    flex: 0 0 72px;
    width: 72px;
    height: 72px;
  }

  .timeline-step__num {
    font-size: 24px;
  }

  .timeline-step__title {
    font-size: 18px;
  }

  .timeline-step__desc {
    font-size: 14px;
  }
}

/* ==========================================================================
   (6) FAQ Accordion — country-page variant w/ plus SVG toggle
   ========================================================================== */
.faq-list {
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 10px 40px -16px rgba(11, 37, 64, 0.18);
  overflow: hidden;
}

.faq-item {
  border-top: 1px solid rgba(27, 138, 158, 0.10);
  background: #fff;
}

.faq-item:first-child {
  border-top: none;
}

.faq-question {
  margin: 0;
}

.faq-question button {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 1.35rem 1.6rem;
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 17px;
  font-weight: 500;
  color: var(--navy-deep);
  line-height: 1.45;
  transition: background-color 0.4s var(--easing-premium);
  -webkit-tap-highlight-color: transparent;
}

.faq-question button:hover {
  background: rgba(247, 246, 242, 0.65);
}

.faq-question button:focus-visible {
  outline: none;
  background: rgba(27, 138, 158, 0.06);
  box-shadow: inset 0 0 0 2px rgba(27, 138, 158, 0.35);
}

/* Plus / X icon (SVG-like using pseudo-elements) */
.faq-icon {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border-radius: 9999px;
  background: rgba(27, 138, 158, 0.08);
  position: relative;
  transition:
    background-color 0.4s var(--easing-premium),
    transform 0.4s var(--easing-premium);
  flex-shrink: 0;
}

.faq-icon::before,
.faq-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 2px;
  background: var(--teal-light);
  border-radius: 2px;
  transform: translate(-50%, -50%);
  transition:
    transform 0.45s var(--easing-premium),
    opacity 0.35s var(--easing-premium),
    background-color 0.4s var(--easing-premium);
}

.faq-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

/* Open state: plus rotates 45° → X */
.faq-item.is-open .faq-icon {
  background: var(--teal-light);
}

.faq-item.is-open .faq-icon::before,
.faq-item.is-open .faq-icon::after {
  background: #fff;
}

.faq-item.is-open .faq-icon::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.faq-item.is-open .faq-icon::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.faq-answer {
  max-height: 0;
  opacity: 0;
  transform: translateY(10px);
  overflow: hidden;
  padding: 0 1.6rem;
  color: rgba(11, 37, 64, 0.78);
  line-height: 1.85;
  font-size: 15px;
  transition:
    max-height 0.55s var(--easing-premium),
    opacity 0.5s var(--easing-premium),
    transform 0.5s var(--easing-premium),
    padding-bottom 0.5s var(--easing-premium);
}

.faq-item.is-open .faq-answer {
  max-height: none;
  opacity: 1;
  transform: translateY(0);
  padding-bottom: 1.5rem;
}

/* ==========================================================================
   (7) Who We Are / Why Choose — card hover lift + teal glow shadow
   ========================================================================== */
.who-card {
  position: relative;
  background: #fff;
  border-radius: 18px;
  padding: 2rem 1.75rem;
  border: 1px solid rgba(11, 37, 64, 0.06);
  box-shadow:
    0 6px 24px -12px rgba(11, 37, 64, 0.15),
    0 0 0 1px rgba(255, 255, 255, 0.5) inset;
  transition:
    transform 0.5s var(--easing-premium),
    box-shadow 0.5s var(--easing-premium),
    border-color 0.5s var(--easing-premium);
  overflow: hidden;
  will-change: transform;
  isolation: isolate;
}

.who-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(
    135deg,
    rgba(27, 138, 158, 0) 0%,
    rgba(27, 138, 158, 0) 100%
  );
  transition: background 0.5s var(--easing-premium);
  pointer-events: none;
}

.who-card:hover {
  transform: translateY(-6px) scale(1.01);
  border-color: rgba(27, 138, 158, 0.2);
  box-shadow:
    0 28px 60px -22px rgba(27, 138, 158, 0.55),
    0 0 0 1px rgba(27, 138, 158, 0.18),
    0 0 40px -10px rgba(27, 138, 158, 0.25);
}

.who-card:hover::before {
  background: linear-gradient(
    135deg,
    rgba(27, 138, 158, 0.04) 0%,
    rgba(199, 168, 104, 0.05) 100%
  );
}

.who-card__icon {
  width: 54px;
  height: 54px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  margin-bottom: 1.4rem;
  background: linear-gradient(
    135deg,
    rgba(27, 138, 158, 0.12),
    rgba(199, 168, 104, 0.10)
  );
  border: 1px solid rgba(27, 138, 158, 0.18);
  color: var(--teal-light);
  transition:
    transform 0.5s var(--easing-premium),
    background 0.5s var(--easing-premium),
    color 0.5s var(--easing-premium),
    border-color 0.5s var(--easing-premium),
    box-shadow 0.5s var(--easing-premium);
}

.who-card:hover .who-card__icon {
  transform: scale(1.06) rotate(-3deg);
  background: linear-gradient(135deg, var(--teal-light), var(--navy));
  color: #fff;
  border-color: transparent;
  box-shadow:
    0 16px 34px -14px rgba(27, 138, 158, 0.65),
    inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

.who-card__title {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 20px;
  font-weight: 500;
  color: var(--navy-deep);
  margin-bottom: 0.6rem;
  line-height: 1.3;
}

.who-card__desc {
  color: rgba(11, 37, 64, 0.76);
  line-height: 1.78;
  font-size: 14.5px;
  margin: 0;
}

/* ==========================================================================
   (8) Final CTA Section — navy radial-gradient glow + pulsing teal light
   ========================================================================== */
.final-cta {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: var(--navy-deep);
}

.final-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    radial-gradient(
      800px 500px at 50% 40%,
      rgba(27, 138, 158, 0.28) 0%,
      rgba(11, 37, 64, 0.4) 45%,
      var(--navy-deep) 75%
    );
  pointer-events: none;
}

.final-cta::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(
      2px 2px at 50% 35%,
      rgba(27, 138, 158, 0.9),
      transparent 60%
    );
  filter: blur(3px);
  opacity: 0;
  animation: finalCtaPulse 4s ease-in-out infinite;
  box-shadow: 0 0 120px 60px rgba(27, 138, 158, 0.35);
}

@keyframes finalCtaPulse {
  0%, 100% {
    opacity: 0.3;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.15);
  }
}

.final-cta > * {
  position: relative;
  z-index: 2;
}

/* ==========================================================================
   (9) Other Destinations — compact premium cards w/ hover Ken Burns
   ========================================================================== */
.other-card {
  position: relative;
  display: block;
  text-decoration: none;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(11, 37, 64, 0.08);
  box-shadow:
    0 8px 28px -14px rgba(11, 37, 64, 0.22),
    0 0 0 1px rgba(255, 255, 255, 0.6) inset;
  transition:
    transform 0.5s var(--easing-premium),
    box-shadow 0.5s var(--easing-premium),
    border-color 0.5s var(--easing-premium);
  will-change: transform;
}

.other-card:hover {
  transform: translateY(-6px);
  border-color: rgba(27, 138, 158, 0.25);
  box-shadow:
    0 26px 56px -20px rgba(11, 37, 64, 0.45),
    0 0 0 1px rgba(27, 138, 158, 0.2);
}

.other-card__media {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

.other-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.02);
  transform-origin: center center;
  transition: transform 1.3s cubic-bezier(0.22, 1, 0.36, 1),
              filter 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.other-card:hover .other-card__img {
  transform: scale(1.10) translate(-1%, -0.5%);
  filter: saturate(1.15) brightness(1.03);
}

.other-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(7, 26, 46, 0.55) 0%,
    rgba(11, 37, 64, 0.15) 45%,
    transparent 70%
  );
  pointer-events: none;
  transition: background 0.5s var(--easing-premium);
}

.other-card:hover .other-card__media::after {
  background: linear-gradient(
    to top,
    rgba(7, 26, 46, 0.68) 0%,
    rgba(11, 37, 64, 0.3) 45%,
    rgba(7, 26, 46, 0.08) 75%
  );
}

.other-card__flag {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 2;
  width: 32px;
  height: 24px;
  border-radius: 4px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 4px 12px -4px rgba(0, 0, 0, 0.35);
  background: rgba(255, 255, 255, 0.08);
}

.other-card__body {
  padding: 1.2rem 1.25rem 1.4rem;
  position: relative;
}

.other-card__country {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 18px;
  font-weight: 500;
  color: var(--navy-deep);
  margin-bottom: 0.35rem;
  line-height: 1.3;
}

.other-card__tagline {
  font-size: 13.5px;
  color: rgba(11, 37, 64, 0.65);
  line-height: 1.6;
  margin: 0 0 1rem;
}

.other-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 500;
  color: var(--teal-light);
  letter-spacing: 0.01em;
  transition: gap 0.4s var(--easing-premium), color 0.4s var(--easing-premium);
}

.other-card:hover .other-card__cta {
  gap: 10px;
  color: var(--navy-deep);
}

.other-card__cta-arrow {
  transition: transform 0.4s var(--easing-premium);
}

.other-card:hover .other-card__cta-arrow {
  transform: translateX(3px);
}

/* ==========================================================================
   (11) Program Overview Tiles — glass-dark style cards
   ========================================================================== */
.program-tile {
  position: relative;
  border-radius: 20px;
  padding: 1px;
  background: linear-gradient(
    145deg,
    rgba(27, 138, 158, 0.0),
    rgba(199, 168, 104, 0.0)
  );
  transition:
    background 0.5s var(--easing-premium),
    transform 0.5s var(--easing-premium);
  will-change: transform;
  isolation: isolate;
}

.program-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 20px;
  padding: 1px;
  background: linear-gradient(
    145deg,
    rgba(27, 138, 158, 0.0),
    rgba(11, 37, 64, 0.0)
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  transition: background 0.5s var(--easing-premium);
  pointer-events: none;
  z-index: 1;
}

.program-tile:hover {
  transform: translateY(-5px);
}

.program-tile:hover::before {
  background: linear-gradient(
    145deg,
    rgba(27, 138, 158, 0.5),
    rgba(199, 168, 104, 0.3) 55%,
    transparent
  );
}

.program-tile__inner {
  position: relative;
  z-index: 0;
  height: 100%;
  border-radius: 19px;
  padding: 2rem 1.75rem;
  background: linear-gradient(
    135deg,
    rgba(11, 37, 64, 0.82) 0%,
    rgba(18, 97, 122, 0.7) 100%
  );
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow:
    0 10px 40px -12px rgba(11, 37, 64, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
  transition:
    box-shadow 0.5s var(--easing-premium),
    background 0.5s var(--easing-premium);
  overflow: hidden;
}

.program-tile:hover .program-tile__inner {
  box-shadow:
    0 24px 56px -18px rgba(11, 37, 64, 0.7),
    0 0 0 1px rgba(27, 138, 158, 0.22),
    0 0 40px -8px rgba(27, 138, 158, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
  background: linear-gradient(
    135deg,
    rgba(11, 37, 64, 0.86) 0%,
    rgba(27, 138, 158, 0.62) 100%
  );
}

/* Ambient gradient accent inside tile */
.program-tile__inner::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 19px;
  pointer-events: none;
  background:
    radial-gradient(
      700px 260px at 0% 0%,
      rgba(199, 168, 104, 0.12),
      transparent 60%
    ),
    radial-gradient(
      700px 260px at 100% 100%,
      rgba(27, 138, 158, 0.18),
      transparent 55%
    );
  opacity: 0.9;
  transition: opacity 0.5s var(--easing-premium);
}

.program-tile:hover .program-tile__inner::before {
  opacity: 1;
}

.program-tile__inner > * {
  position: relative;
  z-index: 1;
}

.program-tile__tag {
  display: inline-block;
  padding: 5px 12px;
  border-radius: 9999px;
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(199, 168, 104, 0.95);
  background: rgba(199, 168, 104, 0.1);
  border: 1px solid rgba(199, 168, 104, 0.28);
  margin-bottom: 1.25rem;
}

.program-tile__title {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 22px;
  font-weight: 500;
  color: #fff;
  margin-bottom: 0.75rem;
  line-height: 1.25;
}

.program-tile__desc {
  color: rgba(255, 255, 255, 0.74);
  line-height: 1.75;
  font-size: 14.5px;
  margin: 0 0 1.5rem;
}

.program-tile__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.program-tile__meta-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.68);
}

.program-tile__meta-label {
  font-size: 10.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  margin-right: 2px;
}

.program-tile__meta-value {
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
  font-family: "Playfair Display", Georgia, serif;
  font-size: 14px;
}

/* ==========================================================================
   (10) MOBILE RESPONSIVE RULES
   Hero h1 smaller, timeline vertical, FAQ tap target >=56px
   ========================================================================== */

/* --- FAQ tap targets (enforce >=56px) --- */
@media (max-width: 767px) {
  .faq-question button {
    min-height: 56px;
    padding-top: 1rem;
    padding-bottom: 1rem;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    font-size: 16px;
  }

  .faq-icon {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
  }

  .faq-icon::before,
  .faq-icon::after {
    width: 18px;
  }

  .faq-answer {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    font-size: 14.5px;
  }

  .faq-item.is-open .faq-answer {
    padding-bottom: 1.25rem;
  }
}

/* --- Country hero h1 scaling + padding on mobile --- */
@media (max-width: 767px) {
  .country-hero {
    min-height: 100svh;
  }

  .country-hero__scroll-indicator {
    bottom: 24px;
    height: 48px;
  }

  /* Hero content spacing */
  .country-hero > .relative.z-10,
  .country-hero > div[class*="z-10"] {
    padding-top: 7.5rem !important;
    padding-bottom: 5.5rem !important;
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }

  /* h1 mobile sizing targets — via class-based overrides */
  .country-hero .country-hero__title,
  .country-page h1.country-hero__title {
    font-size: 38px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.015em;
  }

  .country-hero h1,
  .country-hero [class*="font-serif"][class*="text-5xl"],
  .country-hero [class*="font-serif"][class*="text-6xl"],
  .country-hero [class*="font-serif"][class*="text-7xl"] {
    font-size: 38px !important;
    line-height: 1.05 !important;
  }
}

@media (min-width: 480px) and (max-width: 767px) {
  .country-hero .country-hero__title,
  .country-page h1.country-hero__title,
  .country-hero h1,
  .country-hero [class*="font-serif"][class*="text-5xl"],
  .country-hero [class*="font-serif"][class*="text-6xl"],
  .country-hero [class*="font-serif"][class*="text-7xl"] {
    font-size: 44px !important;
  }
}

/* --- Timeline: stays vertical on mobile (<1024px) per horizontal breakpoint --- */
@media (max-width: 1023px) {
  .timeline__steps {
    gap: 2rem;
  }

  .timeline-step__badge {
    flex: 0 0 52px;
    width: 52px;
    height: 52px;
  }

  .timeline-step__num {
    font-size: 18px;
  }

  .timeline-step__title {
    font-size: 17.5px;
  }

  .timeline-step__desc {
    font-size: 14px;
  }
}

/* --- Cards: tighten padding on small screens --- */
@media (max-width: 639px) {
  .who-card {
    padding: 1.6rem 1.4rem;
  }

  .who-card__icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    margin-bottom: 1.1rem;
  }

  .who-card__title {
    font-size: 18px;
  }

  .who-card__desc {
    font-size: 14px;
  }

  .program-tile__inner {
    padding: 1.6rem 1.4rem;
  }

  .program-tile__title {
    font-size: 20px;
  }

  .program-tile__desc {
    font-size: 14px;
  }

  .final-cta {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
}

/* --- Touch device safety: remove fancy rotations, keep lifts --- */
@media (hover: none) and (pointer: coarse) {
  .who-card:hover {
    transform: translateY(-3px) scale(1);
  }

  .other-card:hover {
    transform: translateY(-3px);
  }

  .other-card:hover .other-card__img {
    transform: scale(1.05);
  }

  .program-tile:hover {
    transform: translateY(-3px);
  }

  .who-card:hover .who-card__icon {
    transform: scale(1.04);
  }
}

/* --- Small tablet tuning (768–1023) --- */
@media (min-width: 768px) and (max-width: 1023px) {
  .country-hero .country-hero__title,
  .country-page h1.country-hero__title,
  .country-hero h1 {
    font-size: 52px !important;
    line-height: 1.06 !important;
  }
}

/* ========================================================================
   DESTINATION HERO — PREMIUM CINEMATIC TWO-COLUMN
   ======================================================================== */

/* ---- Base hero container ---- */
.destination-hero-2col {
  position: relative;
  background:
    radial-gradient(1200px 600px at 85% 110%, rgba(27, 138, 158, 0.07) 0%, rgba(255, 255, 255, 0) 55%),
    radial-gradient(900px 500px at 15% -10%, rgba(199, 168, 104, 0.08) 0%, rgba(255, 255, 255, 0) 60%),
    linear-gradient(180deg, #FBFAF6 0%, #F9F7F1 55%, #F6F3EC 100%);
  isolation: isolate;
  -webkit-font-smoothing: antialiased;
}

/* Warm white fallback + very subtle grain/noise light (editorial feel) */
.destination-hero-2col::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0) 45%),
    radial-gradient(1px 1px at 20% 30%, rgba(11, 37, 64, 0.035) 50%, transparent 51%),
    radial-gradient(1px 1px at 80% 70%, rgba(11, 37, 64, 0.03) 50%, transparent 51%),
    radial-gradient(1px 1px at 40% 85%, rgba(11, 37, 64, 0.025) 50%, transparent 51%);
  background-size: auto, 280px 280px, 220px 220px, 320px 320px;
  opacity: 0.9;
}

/* ---- Oversized abbreviation watermark ---- */
.hero-watermark-abbr {
  position: absolute;
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  font-weight: 700;
  letter-spacing: -0.04em;
  color: #071A2E;
  opacity: 0.032;
  font-size: clamp(180px, 22vw, 420px);
  line-height: 1;
  pointer-events: none;
  left: 2%;
  top: 56%;
  transform: translateY(-50%);
  user-select: none;
  z-index: 0;
  white-space: nowrap;
  background: linear-gradient(180deg, #071A2E 0%, #12617A 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

@media (min-width: 1024px) {
  .hero-watermark-abbr {
    left: -1%;
    top: 54%;
    opacity: 0.035;
    font-size: clamp(320px, 30vw, 520px);
  }
}

/* ---- Hero image frame wrapper for floating badges positioning ---- */
.hero-image-frame-wrapper {
  position: relative;
  width: 100%;
  will-change: transform;
}

/* ---- Hero image frame ---- */
.hero-image-frame {
  position: relative;
  overflow: hidden;
  transform-origin: center center;
  transition: box-shadow 700ms cubic-bezier(0.22, 1, 0.36, 1),
              transform 700ms cubic-bezier(0.22, 1, 0.36, 1),
              border-color 700ms cubic-bezier(0.22, 1, 0.36, 1);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* ---- Ken Burns slow cinematic zoom (24s alternate loop) ---- */
@keyframes heroKenBurns {
  0% {
    transform: scale(1) translate3d(-0.4%, -0.3%, 0);
  }
  50% {
    transform: scale(1.04) translate3d(0.2%, 0.1%, 0);
  }
  100% {
    transform: scale(1.075) translate3d(0.6%, -0.5%, 0);
  }
}

.hero-img-kenburns {
  animation: heroKenBurns 26s ease-in-out infinite alternate;
  transform-origin: 50% 45%;
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
  transition: transform 900ms cubic-bezier(0.22, 1, 0.36, 1),
              filter 900ms cubic-bezier(0.22, 1, 0.36, 1);
  filter: saturate(1.04) contrast(1.015);
}

/* Hover: slightly increase scale (desktop only) */
@media (hover: hover) and (pointer: fine) {
  .hero-image-frame:hover .hero-img-kenburns {
    animation-play-state: paused;
    transform: scale(1.085) translate3d(-0.15%, -0.1%, 0);
    filter: saturate(1.08) contrast(1.03);
  }

  .hero-image-frame:hover {
    box-shadow:
      0 55px 120px -45px rgba(11, 37, 64, 0.55),
      0 0 0 1px rgba(199, 168, 104, 0.22);
    border-color: rgba(199, 168, 104, 0.35);
  }
}

/* Touch safety: never pause ken burns, keep soft hover-lift */
@media (hover: none) and (pointer: coarse) {
  .hero-img-kenburns {
    animation-duration: 30s;
  }
}

/* ---- Floating glassmorphism badges ---- */
.hero-floating-layer {
  position: absolute;
  inset: -24px -20px -24px -20px;
  pointer-events: none;
}

.hero-floating-badge {
  position: absolute;
  pointer-events: auto;
  backdrop-filter: blur(22px) saturate(1.5);
  -webkit-backdrop-filter: blur(22px) saturate(1.5);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.88) 0%, rgba(249, 248, 244, 0.78) 100%);
  border-radius: 999px;
  padding: 10px 18px 10px 14px;
  box-shadow:
    0 18px 40px -16px rgba(27, 138, 158, 0.38),
    0 2px 10px -3px rgba(11, 37, 64, 0.14),
    inset 0 0 0 1px rgba(27, 138, 158, 0.28),
    0 0 0 0 rgba(27, 138, 158, 0);
  transition: box-shadow 500ms cubic-bezier(0.22, 1, 0.36, 1),
              transform 500ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
  isolation: isolate;
  border: 1px solid rgba(255, 255, 255, 0.85);
  z-index: 3;
}

/* Very subtle teal/blue glowing border ring (cross-browser safe) */
.hero-floating-badge::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(27, 138, 158, 0.55) 0%, rgba(199, 168, 104, 0.28) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  pointer-events: none;
  opacity: 0.92;
  z-index: -1;
  box-shadow:
    0 0 18px -2px rgba(27, 138, 158, 0.14),
    0 0 32px -6px rgba(27, 138, 158, 0.09);
}

/* Float keyframes: each badge slightly different rhythm */
@keyframes heroFloat1 {
  0%   { transform: translate3d(0, 0, 0); }
  100% { transform: translate3d(0, -11px, 0); }
}
@keyframes heroFloat2 {
  0%   { transform: translate3d(0, 0, 0); }
  100% { transform: translate3d(0, 9px, 0); }
}
@keyframes heroFloat3 {
  0%   { transform: translate3d(0, 0, 0); }
  100% { transform: translate3d(0, -7px, 0); }
}

.hero-floating-badge.badge-1 {
  top: 6%;
  left: -10px;
  animation: heroFloat1 7.5s ease-in-out infinite alternate;
}
.hero-floating-badge.badge-2 {
  top: 46%;
  right: -14px;
  animation: heroFloat2 9s ease-in-out infinite alternate;
  animation-delay: -1.5s;
}
.hero-floating-badge.badge-3 {
  bottom: 8%;
  left: -4px;
  animation: heroFloat3 8.2s ease-in-out infinite alternate;
  animation-delay: -3s;
}

/* Mobile: tuck badges closer so they don't clip */
@media (max-width: 639px) {
  .hero-floating-layer { inset: -14px -8px -14px -8px; }
  .hero-floating-badge.badge-1 { top: 4%; left: 2px; padding: 8px 14px 8px 11px; }
  .hero-floating-badge.badge-2 { top: 48%; right: 0; padding: 8px 14px 8px 11px; }
  .hero-floating-badge.badge-3 { bottom: 6%; left: 4px; padding: 8px 14px 8px 11px; }
  .hero-floating-badge .flex > span:last-child { font-size: 11px; }
}

/* ---- Hero info strip ---- */
.hero-info-strip {
  position: relative;
}

.hero-strip-item {
  opacity: 0;
  transform: translateY(10px);
  will-change: transform, opacity;
}

/* ---- Primary gold button Provence accent ---- */
.btn-gold-primary {
  position: relative;
  overflow: hidden;
  will-change: transform;
}
.btn-gold-primary::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(255,255,255,0.32) 0%, rgba(255,255,255,0) 45%);
  transform: translateX(-120%) skewX(-15deg);
  transition: transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
}
@media (hover: hover) and (pointer: fine) {
  .btn-gold-primary:hover { transform: translateY(-2px); }
  .btn-gold-primary:hover::before { transform: translateX(120%) skewX(-15deg); }
  .btn-ghost-secondary:hover { transform: translateY(-2px); }
}
.btn-gold-primary, .btn-ghost-secondary {
  transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1),
              box-shadow 500ms cubic-bezier(0.22, 1, 0.36, 1),
              background 500ms cubic-bezier(0.22, 1, 0.36, 1),
              border-color 500ms cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---- Hero column left: mobile spacing ---- */
@media (max-width: 1023px) {
  .destination-hero-2col {
    min-height: 0 !important;
    padding-top: 7.5rem !important;
    padding-bottom: 3rem !important;
  }
  .hero-watermark-abbr {
    top: 22%;
    left: 50%;
    transform: translateX(-50%);
    font-size: 48vw;
    opacity: 0.028;
  }
  .hero-image-col { margin-top: 4px; }
}

/* XL desktop: nudge right column slightly to the right for editorial breakout */
@media (min-width: 1280px) {
  .hero-image-frame-wrapper {
    transform: translateX(14px);
  }
  .hero-left {
    transform: translateX(4px);
  }
}
@media (min-width: 1536px) {
  .hero-image-frame-wrapper { transform: translateX(28px); }
  .hero-left { transform: translateX(10px); }
}

/* ==========================================================================
   PREMIUM COMPONENT STYLES — Country Page Destinations
   Adds missing renderer classes: timeline nodes, counters, FAQ, cards, etc.
   ========================================================================== */

/* ==========================================================================
   TIMELINE — Journey vertical with glowing progress line + step nodes
   ========================================================================== */
#journey .glowing-progress-line {
  position: absolute;
  z-index: 0;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    rgba(27, 138, 158, 0.18) 15%,
    rgba(27, 138, 158, 0.55) 50%,
    rgba(199, 168, 104, 0.45) 75%,
    rgba(27, 138, 158, 0.18) 90%,
    transparent 100%
  );
  filter: drop-shadow(0 0 12px rgba(27, 138, 158, 0.25));
}
#journey .glowing-progress-line::before {
  content: "";
  position: absolute;
  left: -1px;
  top: 0;
  width: 3px;
  height: 14%;
  background: linear-gradient(
    to bottom,
    transparent,
    var(--teal-light),
    rgba(199, 168, 104, 0.9),
    transparent
  );
  border-radius: 2px;
  filter: blur(0.5px);
  animation: progressGlowPulse 6s ease-in-out infinite;
}
@keyframes progressGlowPulse {
  0%, 100% { transform: translateY(0%); opacity: 0.4; }
  50%      { transform: translateY(550%); opacity: 1; }
}
#journey .process-node {
  width: 56px;
  height: 56px;
  border-radius: 9999px;
  display: grid;
  place-items: center;
  position: relative;
  z-index: 2;
  background: #fff;
  flex-shrink: 0;
  box-shadow:
    0 14px 36px -12px rgba(27, 138, 158, 0.45),
    0 0 0 1px rgba(11, 37, 64, 0.06),
    0 0 40px -10px rgba(199, 168, 104, 0.2);
}
#journey .process-node::before {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: inherit;
  background: linear-gradient(135deg, #E8CB89 0%, #C7A868 45%, #A88B4F 100%);
  z-index: 0;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
#journey .process-node::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.9),
    0 0 0 10px rgba(27, 138, 158, 0.06);
}
#journey .process-step-num {
  position: relative;
  z-index: 1;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 20px;
  font-weight: 600;
  color: var(--navy-deep);
  letter-spacing: 0.02em;
  line-height: 1;
}
#journey .timeline-step {
  position: relative;
}
@media (min-width: 768px) {
  #journey .process-node {
    width: 84px;
    height: 84px;
  }
  #journey .process-step-num {
    font-size: 26px;
  }
  #journey .glowing-progress-line {
    left: 42px;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  #journey .glowing-progress-line {
    left: 42px;
  }
}

/* ==========================================================================
   WHO FOR CARDS — hover-lift class + card ambient gradients
   ========================================================================== */
.hover-lift {
  transition: transform 0.55s var(--easing-premium),
              box-shadow 0.55s var(--easing-premium),
              border-color 0.55s var(--easing-premium);
  will-change: transform;
}
.hover-lift:hover {
  transform: translateY(-7px) scale(1.008);
  box-shadow:
    0 34px 70px -24px rgba(27, 138, 158, 0.45),
    0 0 0 1px rgba(27, 138, 158, 0.22),
    0 0 60px -12px rgba(199, 168, 104, 0.18);
  border-color: rgba(27, 138, 158, 0.22);
}
@media (hover: none) and (pointer: coarse) {
  .hover-lift:hover {
    transform: translateY(-3px) scale(1);
  }
}

/* ==========================================================================
   FINAL CTA — glow background + animated gradients
   ========================================================================== */
#final-cta .glow-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
#final-cta .glow-bg > div {
  will-change: transform;
  backface-visibility: hidden;
}
@keyframes ctagradient {
  0%, 100% {
    transform: translate3d(-2%, 0, 0) scale(1);
    opacity: 0.9;
  }
  33% {
    transform: translate3d(2%, -1.5%, 0) scale(1.05);
    opacity: 1;
  }
  66% {
    transform: translate3d(-1%, 2%, 0) scale(1.08);
    opacity: 0.95;
  }
}
#final-cta .animate-ctagradient {
  animation: ctagradient 14s ease-in-out infinite;
}

/* ==========================================================================
   LIFESTYLE — Animated number counters + pull quote
   ========================================================================== */
#lifestyle .reveal-counter .counter {
  display: inline-block;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}
#lifestyle .pull-quote {
  border-left: 0;
  position: relative;
}
#lifestyle .pull-quote::before {
  content: "";
  position: absolute;
  left: 0;
  top: 18px;
  bottom: 18px;
  width: 3px;
  background: linear-gradient(
    to bottom,
    transparent,
    var(--teal-light),
    rgba(199, 168, 104, 0.9),
    transparent
  );
  border-radius: 3px;
  filter: drop-shadow(0 0 8px rgba(27, 138, 158, 0.35));
}
#lifestyle .reveal-counter {
  position: relative;
  padding-left: 1.25rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
#lifestyle .reveal-counter::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.75rem;
  width: 2px;
  height: calc(100% - 1.5rem);
  background: linear-gradient(
    to bottom,
    transparent,
    rgba(199, 168, 104, 0.55),
    transparent
  );
  border-radius: 2px;
}

/* ==========================================================================
   FAQ ACCORDION — renderer's custom classes (faq-trigger, faq-toggle, body)
   ========================================================================== */
#faq .faq-item {
  position: relative;
  transition: box-shadow 0.5s var(--easing-premium),
              border-color 0.5s var(--easing-premium);
  overflow: hidden;
}
#faq .faq-item::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(27, 138, 158, 0) 0%,
    rgba(27, 138, 158, 0) 100%
  );
  pointer-events: none;
  transition: background 0.5s var(--easing-premium);
}
#faq .faq-item:hover {
  box-shadow:
    0 18px 48px -20px rgba(11, 37, 64, 0.28),
    0 0 0 1px rgba(27, 138, 158, 0.14);
  border-color: rgba(27, 138, 158, 0.16);
}
#faq .faq-item.is-open {
  box-shadow:
    0 22px 56px -22px rgba(27, 138, 158, 0.35),
    0 0 0 1px rgba(27, 138, 158, 0.26);
  border-color: rgba(27, 138, 158, 0.28);
}
#faq .faq-item.is-open::before {
  background: linear-gradient(
    135deg,
    rgba(27, 138, 158, 0.035) 0%,
    rgba(199, 168, 104, 0.035) 100%
  );
}
#faq .faq-trigger {
  transition: background 0.45s var(--easing-premium);
}
#faq .faq-trigger:hover {
  background: rgba(247, 246, 242, 0.7);
}
#faq .faq-item.is-open .faq-trigger {
  background: rgba(27, 138, 158, 0.03);
}
#faq .faq-toggle-wrap {
  background: rgba(27, 138, 158, 0.08);
  transition: background 0.45s var(--easing-premium),
              transform 0.45s var(--easing-premium);
}
#faq .faq-item.is-open .faq-toggle-wrap {
  background: var(--teal-light);
}
#faq .faq-toggle-icon {
  transition: transform 0.45s var(--easing-premium);
}
#faq .faq-icon-bar {
  transition: transform 0.45s var(--easing-premium),
              background 0.45s var(--easing-premium);
}
#faq .faq-item.is-open .faq-icon-h {
  transform: translate(-50%, -50%) rotate(0deg) !important;
  background: #fff;
}
#faq .faq-item.is-open .faq-icon-v {
  transform: translate(-50%, -50%) rotate(90deg) !important;
  background: #fff;
}
#faq .faq-body-inner {
  will-change: transform, opacity;
}

/* Mobile FAQ tap targets — enforce >=56px height */
@media (max-width: 767px) {
  #faq .faq-trigger {
    min-height: 64px !important;
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
  }
  #faq .faq-toggle-wrap {
    width: 44px !important;
    height: 44px !important;
  }
}

/* ==========================================================================
   WPU GLASS CARD (Benefits section - dark glass)
   ========================================================================== */
.wpu-glass-card {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  isolation: isolate;
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.06) 0%,
    rgba(255, 255, 255, 0.03) 100%
  );
  backdrop-filter: blur(14px) saturate(130%);
  -webkit-backdrop-filter: blur(14px) saturate(130%);
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow:
    0 12px 44px -20px rgba(0, 0, 0, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
  transition:
    transform 0.55s var(--easing-premium),
    box-shadow 0.55s var(--easing-premium),
    border-color 0.55s var(--easing-premium);
  will-change: transform;
}
.wpu-glass-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    radial-gradient(
      700px 300px at 120% -20%,
      rgba(199, 168, 104, 0.16),
      transparent 55%
    ),
    radial-gradient(
      500px 260px at -20% 120%,
      rgba(27, 138, 158, 0.20),
      transparent 55%
    );
  opacity: 0.75;
  transition: opacity 0.55s var(--easing-premium);
  pointer-events: none;
}
.wpu-glass-card:hover {
  transform: translateY(-8px) scale(1.006);
  border-color: rgba(27, 138, 158, 0.32);
  box-shadow:
    0 38px 80px -30px rgba(0, 0, 0, 0.7),
    0 0 60px -12px rgba(27, 138, 158, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.10);
}
.wpu-glass-card:hover::before {
  opacity: 1;
}
.wpu-card-spotlight {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(
    400px 220px at var(--mx, 50%) var(--my, 0%),
    rgba(255, 255, 255, 0.10),
    transparent 60%
  );
  transition: opacity 0.55s var(--easing-premium);
}
.wpu-glass-card:hover .wpu-card-spotlight { opacity: 1; }

.wpu-card-icon {
  position: relative;
  width: 58px;
  height: 58px;
  border-radius: 18px;
  margin-bottom: 1.5rem;
  display: grid;
  place-items: center;
  background: linear-gradient(
    135deg,
    rgba(27, 138, 158, 0.22),
    rgba(199, 168, 104, 0.16)
  );
  border: 1px solid rgba(27, 138, 158, 0.32);
  color: #fff;
  transition:
    transform 0.55s var(--easing-premium),
    background 0.55s var(--easing-premium),
    color 0.55s var(--easing-premium),
    border-color 0.55s var(--easing-premium),
    box-shadow 0.55s var(--easing-premium);
  overflow: hidden;
  isolation: isolate;
}
.wpu-card-icon::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      200px 80px at -20% -20%,
      rgba(255, 255, 255, 0.18),
      transparent 60%
    );
  opacity: 0;
  transition: opacity 0.55s var(--easing-premium);
  pointer-events: none;
  z-index: -1;
}
.wpu-card-icon::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.3),
    transparent 45%,
    transparent 65%,
    rgba(199, 168, 104, 0.4)
  );
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.55s var(--easing-premium);
  pointer-events: none;
}
.wpu-card-icon svg {
  width: 26px;
  height: 26px;
  color: #fff;
  transition: transform 0.55s var(--easing-premium),
              color 0.55s var(--easing-premium);
  position: relative;
  z-index: 1;
}
.wpu-glass-card:hover .wpu-card-icon {
  transform: scale(1.07) rotate(-2deg);
  background: linear-gradient(135deg, var(--teal-light), rgba(199, 168, 104, 0.65));
  color: #fff;
  border-color: transparent;
  box-shadow:
    0 22px 48px -18px rgba(27, 138, 158, 0.7),
    inset 0 1px 0 rgba(255, 255, 255, 0.18);
}
.wpu-glass-card:hover .wpu-card-icon::before { opacity: 1; }
.wpu-glass-card:hover .wpu-card-icon::after { opacity: 1; }
.wpu-glass-card:hover .wpu-card-icon svg {
  transform: rotate(4deg) scale(1.04);
  color: #fff;
}
.wpu-card-title {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 22px;
  font-weight: 500;
  color: #fff;
  line-height: 1.3;
  margin-bottom: 0.85rem;
  display: inline-block;
  position: relative;
}
.wpu-card-title > span:first-child {
  position: relative;
  z-index: 1;
}
.wpu-card-underline {
  display: block;
  width: 0;
  height: 2px;
  margin-top: 0.55rem;
  background: linear-gradient(
    to right,
    var(--teal-light),
    rgba(199, 168, 104, 0.9),
    var(--teal-light)
  );
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(27, 138, 158, 0.45);
  transition: width 0.85s var(--easing-premium);
}
.wpu-glass-card:hover .wpu-card-underline {
  width: 58px;
}
.wpu-card-desc {
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.82;
  font-size: 14.5px;
  margin: 0;
  font-weight: 300;
}

/* ==========================================================================
   WPU — Ambient particles (dark navy sections)
   ========================================================================== */
.wpu-particle {
  position: absolute;
  left: var(--l, 50%);
  top: var(--t, 50%);
  width: var(--s, 4px);
  height: var(--s, 4px);
  border-radius: 9999px;
  background: rgba(199, 168, 104, 0.45);
  box-shadow:
    0 0 14px 1px rgba(27, 138, 158, 0.55),
    0 0 6px 1px rgba(199, 168, 104, 0.45);
  animation: particleFloat 12s ease-in-out infinite;
  animation-delay: var(--d, 0s);
  opacity: 0.75;
  will-change: transform, opacity;
}
@keyframes particleFloat {
  0%, 100% {
    transform: translate3d(0, 0, 0);
    opacity: 0.35;
  }
  50% {
    transform: translate3d(var(--tx, 20px), var(--ty, -20px), 0);
    opacity: 0.95;
  }
}

/* ==========================================================================
   WPU — Ken Burns slow zoom on section images
   ========================================================================== */
.wpu-kenburns {
  position: relative;
  overflow: hidden;
  border-radius: inherit;
  isolation: isolate;
}
.wpu-kenburns img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform-origin: 55% 45%;
  animation: wpuKenBurns 22s ease-out-in infinite alternate;
  will-change: transform;
  filter: saturate(1.05) contrast(1.02);
  backface-visibility: hidden;
}
@keyframes wpuKenBurns {
  0%   { transform: scale(1.0) translate3d(0, 0, 0); }
  50%  { transform: scale(1.05) translate3d(-0.4%, 0.3%, 0); }
  100% { transform: scale(1.10) translate3d(-0.8%, -0.4%, 0); }
}

/* ==========================================================================
   DESTINATION — Other Countries card styles (renderer uses country-card-*)
   ========================================================================== */
#other-destinations .country-card {
  position: relative;
  display: block;
  text-decoration: none;
  border-radius: 22px;
  overflow: hidden;
  isolation: isolate;
  min-height: 340px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow:
    0 18px 50px -24px rgba(11, 37, 64, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.04) inset;
  transition:
    transform 0.55s var(--easing-premium),
    box-shadow 0.55s var(--easing-premium),
    border-color 0.55s var(--easing-premium);
  will-change: transform;
  backface-visibility: hidden;
}
#other-destinations .country-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    to top,
    rgba(7, 26, 46, 0.85) 0%,
    rgba(7, 26, 46, 0.55) 40%,
    rgba(7, 26, 46, 0.15) 70%,
    rgba(7, 26, 46, 0) 100%
  );
  transition: background 0.55s var(--easing-premium);
}
#other-destinations .country-card:hover {
  transform: translateY(-8px);
  border-color: rgba(27, 138, 158, 0.3);
  box-shadow:
    0 44px 90px -30px rgba(11, 37, 64, 0.75),
    0 0 0 1px rgba(27, 138, 158, 0.25);
}
#other-destinations .country-card:hover .country-card-bg {
  transform: scale(1.12);
  filter: saturate(1.2);
}
#other-destinations .country-card:hover::after {
  background: linear-gradient(
    to top,
    rgba(7, 26, 46, 0.94) 0%,
    rgba(7, 26, 46, 0.7) 45%,
    rgba(7, 26, 46, 0.28) 75%,
    rgba(7, 26, 46, 0.06) 100%
  );
}
#other-destinations .country-card-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.02);
  transform-origin: center center;
  transition:
    transform 1.35s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.95s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
  backface-visibility: hidden;
}
#other-destinations .country-card-inner {
  position: relative;
  z-index: 2;
  height: 100%;
  min-height: 340px;
  padding: 1.75rem 1.6rem 1.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
}
#other-destinations .country-card-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: rgba(255, 255, 255, 0.72);
  letter-spacing: 0.03em;
  font-weight: 500;
  opacity: 0;
  transform: translateY(8px);
  transition:
    opacity 0.55s var(--easing-premium),
    transform 0.55s var(--easing-premium),
    color 0.55s var(--easing-premium),
    gap 0.55s var(--easing-premium);
  padding: 10px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(8px);
}
#other-destinations .country-card:hover .country-card-cta,
#other-destinations .touchevents .country-card .country-card-cta {
  opacity: 1;
  transform: translateY(0);
}
#other-destinations .country-card:hover .country-card-cta {
  color: #fff;
  gap: 14px;
  background: rgba(27, 138, 158, 0.22);
  border-color: rgba(27, 138, 158, 0.45);
}

/* ==========================================================================
   PROGRAM OVERVIEW — tile polish (hover lift, underlines, gradients)
   ========================================================================== */
#program-overview .reveal[data-delay] {
  will-change: transform;
}
#program-overview .reveal[data-delay]:hover {
  transform: translateY(-4px);
  border-color: rgba(27, 138, 158, 0.22);
}
#program-overview .reveal[data-delay]:hover p.font-serif {
  background: linear-gradient(135deg, var(--navy-deep) 0%, var(--teal) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ==========================================================================
   MOBILE RESPONSIVE TUNES — Country page specifics
   ========================================================================== */
@media (max-width: 639px) {
  .wpu-glass-card {
    border-radius: 20px;
    padding: 1.75rem 1.5rem !important;
  }
  .wpu-card-icon {
    width: 50px;
    height: 50px;
    border-radius: 14px;
    margin-bottom: 1.1rem;
  }
  .wpu-card-icon svg {
    width: 22px;
    height: 22px;
  }
  .wpu-card-title {
    font-size: 19px;
  }
  .wpu-card-desc {
    font-size: 14px;
    line-height: 1.72;
  }
  #other-destinations .country-card {
    min-height: 300px;
  }
  #other-destinations .country-card-inner {
    min-height: 300px;
  }
}

/* Touch safety — disable spotlight and soften hovers */
@media (hover: none) and (pointer: coarse) {
  .wpu-glass-card:hover {
    transform: translateY(-3px) scale(1);
  }
  .wpu-card-spotlight { display: none !important; }
  .wpu-glass-card:hover .wpu-card-underline {
    width: 0 !important;
  }
  #other-destinations .country-card:hover .country-card-bg {
    transform: scale(1.05);
  }
}
