/* =========================================================
   PingGovioTrips — Premium Travel Experience
   Global Stylesheet
   ========================================================= */

:root {
  --pg-ink: #050614;
  --pg-night: #0a0e27;
  --pg-twilight: #131736;
  --pg-violet: #7c3aed;
  --pg-violet-soft: #a78bfa;
  --pg-blue: #2563eb;
  --pg-sky: #38bdf8;
  --pg-sunset: #f97316;
  --pg-coral: #fb7185;
  --pg-gold: #fbbf24;
  --pg-cream: #fdf4e3;
  --pg-mist: #f4f4f8;
  --pg-line: rgba(255, 255, 255, 0.08);
  --pg-line-strong: rgba(255, 255, 255, 0.16);
  --pg-glass: rgba(255, 255, 255, 0.04);
  --pg-glass-strong: rgba(255, 255, 255, 0.08);
  --pg-grad-sunset: linear-gradient(135deg, #f97316 0%, #fb7185 45%, #7c3aed 100%);
  --pg-grad-night: linear-gradient(160deg, #0a0e27 0%, #1a1147 50%, #3b1d6a 100%);
  --pg-grad-aurora: linear-gradient(135deg, #38bdf8 0%, #7c3aed 50%, #fb7185 100%);
  --pg-grad-gold: linear-gradient(135deg, #fbbf24 0%, #f97316 100%);
  --pg-shadow-soft: 0 30px 60px -20px rgba(10, 14, 39, 0.45);
  --pg-shadow-glow: 0 20px 80px -20px rgba(124, 58, 237, 0.55);
  --pg-radius-lg: 28px;
  --pg-radius-xl: 36px;
  --pg-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

[data-theme="light"] {
  --pg-ink: #f7f7fb;
  --pg-night: #ffffff;
  --pg-twilight: #f3f4f9;
  --pg-line: rgba(10, 14, 39, 0.08);
  --pg-line-strong: rgba(10, 14, 39, 0.16);
  --pg-glass: rgba(10, 14, 39, 0.03);
  --pg-glass-strong: rgba(10, 14, 39, 0.06);
}

* { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

html { scroll-behavior: smooth; overflow-x: hidden; width: 100%; }

body {
  font-family: 'Inter', system-ui, sans-serif;
  background: var(--pg-ink);
  color: #e6e7ee;
  overflow-x: hidden;
  width: 100%;
  max-width: 100vw;
  position: relative;
  letter-spacing: -0.005em;
}

/* Belt-and-suspenders: prevent any decorative overflow from creating horizontal scroll */
.pg-skyway, .pg-hero { overflow: hidden; }
section { max-width: 100vw; overflow-x: clip; }

[data-theme="light"] body { color: #131736; }

.font-display { font-family: 'Space Grotesk', 'Inter', sans-serif; letter-spacing: -0.02em; }
.font-editorial { font-family: 'Cormorant Garamond', 'Playfair Display', serif; letter-spacing: -0.01em; }
.font-mono { font-family: 'JetBrains Mono', monospace; }

/* -------- Selection & Scrollbar -------- */
::selection { background: var(--pg-sunset); color: #fff; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--pg-ink); }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--pg-violet), var(--pg-sunset));
  border-radius: 999px;
}

/* =========================================================
   Preloader
   ========================================================= */
.pg-preloader {
  position: fixed; inset: 0; z-index: 9999;
  background: var(--pg-ink);
  display: flex; align-items: center; justify-content: center;
  flex-direction: column;
  transition: opacity .8s var(--pg-ease), visibility .8s var(--pg-ease);
}
.pg-preloader.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.pg-preloader__logo {
  font-family: 'Space Grotesk', sans-serif; font-weight: 700;
  font-size: clamp(2rem, 6vw, 3rem); letter-spacing: -0.02em;
  background: var(--pg-grad-aurora);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.pg-preloader__bar {
  margin-top: 1.5rem; width: min(280px, 60vw); height: 2px;
  background: var(--pg-line); border-radius: 999px; overflow: hidden;
}
.pg-preloader__bar::before {
  content: ''; display: block; width: 0; height: 100%;
  background: var(--pg-grad-sunset);
  animation: pg-load 1.4s var(--pg-ease) forwards;
}
@keyframes pg-load { to { width: 100%; } }

/* =========================================================
   Scroll Progress Bar
   ========================================================= */
.pg-progress {
  position: fixed; top: 0; left: 0; right: 0; height: 3px;
  z-index: 100; background: transparent;
}
.pg-progress__fill {
  height: 100%; width: 0;
  background: var(--pg-grad-sunset);
  box-shadow: 0 0 12px rgba(249, 115, 22, 0.55);
  transition: width .1s linear;
}

/* =========================================================
   Navigation
   ========================================================= */
.pg-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 60;
  transition: all .4s var(--pg-ease);
  padding: 1.25rem 0;
}
.pg-nav.is-scrolled {
  background: rgba(5, 6, 20, 0.7);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-bottom: 1px solid var(--pg-line);
  padding: 0.85rem 0;
}
[data-theme="light"] .pg-nav.is-scrolled {
  background: rgba(255, 255, 255, 0.75);
}

.pg-logo {
  font-family: 'Space Grotesk', sans-serif; font-weight: 700;
  font-size: 1.5rem; letter-spacing: -0.03em;
  display: inline-flex; align-items: center; gap: 0.5rem;
  color: #fff;
}

/* Image logo variant */
.pg-logo--img { padding: 0; gap: 0; }
.pg-logo--img img {
  display: block;
  height: 44px; width: auto;
  /* black-on-transparent PNG → render pure white */
  filter: brightness(0) invert(1) drop-shadow(0 4px 14px rgba(0,0,0,.35));
  transition: filter .3s var(--pg-ease), transform .35s var(--pg-ease);
}
.pg-logo--img:hover img { transform: translateY(-1px) scale(1.02); }
.pg-nav.is-scrolled .pg-logo--img img { height: 38px; }
.pg-logo--lg img { height: 56px; }
@media (max-width: 640px) {
  .pg-logo--img img { height: 38px; }
  .pg-logo--lg img { height: 48px; }
}
/* Light theme: keep logo black (it's a black asset) */
[data-theme="light"] .pg-logo--img img {
  filter: none;
}
.pg-logo__dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--pg-grad-sunset);
  box-shadow: 0 0 18px rgba(249, 115, 22, 0.85);
  animation: pg-pulse 2.4s ease-in-out infinite;
}
@keyframes pg-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.3); opacity: 0.7; }
}

.pg-nav__link {
  position: relative;
  padding: 0.5rem 0.25rem;
  font-size: 0.92rem; font-weight: 500;
  color: rgba(255, 255, 255, 0.78);
  transition: color .3s var(--pg-ease);
}
.pg-nav__link::after {
  content: ''; position: absolute; bottom: -2px; left: 0;
  width: 0; height: 2px;
  background: var(--pg-grad-sunset);
  transition: width .35s var(--pg-ease);
  border-radius: 2px;
}
.pg-nav__link:hover { color: #fff; }
.pg-nav__link:hover::after, .pg-nav__link.is-active::after { width: 100%; }
.pg-nav__link.is-active {
  color: #fff;
  font-weight: 600;
}
.pg-nav__link.is-active::after {
  height: 3px;
  box-shadow: 0 0 12px rgba(249,115,22,.6);
  animation: pg-nav-active-pulse 2.4s ease-in-out infinite;
}
@keyframes pg-nav-active-pulse {
  0%,100% { opacity: 1; transform: scaleX(1); }
  50%     { opacity: .8; transform: scaleX(.92); }
}
/* Mobile menu active link */
.pg-mobile-menu__link.is-active {
  color: #fbbf24 !important;
  background: linear-gradient(90deg, rgba(251,191,36,.08), transparent);
  padding-left: 1rem;
  border-radius: 8px;
}
/* Active dropdown item */
.pg-dropdown__item.is-active {
  background: rgba(255,255,255,.08);
  border-left: 3px solid var(--pg-sunset);
}
.pg-dropdown__item.is-active .pg-dropdown__title {
  color: #fbbf24;
}

[data-theme="light"] .pg-nav__link { color: rgba(10, 14, 39, 0.65); }
[data-theme="light"] .pg-nav__link:hover,
[data-theme="light"] .pg-nav__link.is-active { color: #0a0e27; }

/* CTA Button */
.pg-btn {
  position: relative; display: inline-flex; align-items: center; gap: 0.55rem;
  padding: 0.85rem 1.5rem; border-radius: 999px;
  font-weight: 600; font-size: 0.92rem;
  transition: all .35s var(--pg-ease);
  overflow: hidden; isolation: isolate;
  white-space: nowrap;
}
.pg-btn--primary {
  background: var(--pg-grad-sunset);
  color: #fff;
  box-shadow: 0 14px 36px -10px rgba(249, 115, 22, 0.55);
}
.pg-btn--primary::before {
  content: ''; position: absolute; inset: 0;
  background: var(--pg-grad-aurora);
  opacity: 0; transition: opacity .4s var(--pg-ease);
  z-index: -1;
}
.pg-btn--primary:hover::before { opacity: 1; }
.pg-btn--primary:hover { transform: translateY(-2px); box-shadow: 0 20px 50px -10px rgba(124, 58, 237, 0.65); }

.pg-btn--ghost {
  background: var(--pg-glass-strong);
  color: #fff;
  border: 1px solid var(--pg-line-strong);
  backdrop-filter: blur(12px);
}
.pg-btn--ghost:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.28);
  transform: translateY(-2px);
}

.pg-btn--outline {
  border: 1px solid var(--pg-line-strong);
  color: #fff;
}
.pg-btn--outline:hover { background: rgba(255, 255, 255, 0.06); }

/* Hamburger — visible up to xl, hidden on desktop */
.pg-burger {
  width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 12px;
  background: var(--pg-glass-strong);
  border: 1px solid var(--pg-line);
  cursor: pointer;
  flex-shrink: 0;
}
/* Hide burger on xl+ (when desktop nav appears) */
@media (min-width: 1280px) {
  .pg-burger { display: none; }
}
/* Mobile nav: tighter padding, smaller burger if needed */
@media (max-width: 640px) {
  .pg-nav > .max-w-7xl { padding-left: 1rem; padding-right: 1rem; }
  .pg-burger { width: 42px; height: 42px; }
  /* Hide secondary CTA + theme so only logo (left) + burger (right) remain */
  .pg-nav .pg-theme-toggle,
  .pg-nav .pg-btn--primary { display: none !important; }
}
.pg-burger__lines { width: 22px; height: 14px; position: relative; }
.pg-burger__lines span {
  position: absolute; left: 0; width: 100%; height: 2px;
  background: #fff; border-radius: 2px;
  transition: transform .4s var(--pg-ease), opacity .3s var(--pg-ease), top .4s var(--pg-ease);
}
.pg-burger__lines span:nth-child(1) { top: 0; }
.pg-burger__lines span:nth-child(2) { top: 6px; width: 70%; }
.pg-burger__lines span:nth-child(3) { top: 12px; }
.pg-burger.is-open .pg-burger__lines span:nth-child(1) { top: 6px; transform: rotate(45deg); }
.pg-burger.is-open .pg-burger__lines span:nth-child(2) { opacity: 0; }
.pg-burger.is-open .pg-burger__lines span:nth-child(3) { top: 6px; transform: rotate(-45deg); }

/* Mobile fullscreen menu */
/* ============ Premium Mobile Menu ============ */
.pg-mobile-menu {
  position: fixed; inset: 0; z-index: 55;
  background:
    radial-gradient(ellipse 80% 60% at 20% 0%, rgba(124,58,237,.25), transparent 60%),
    radial-gradient(ellipse 60% 60% at 90% 90%, rgba(249,115,22,.15), transparent 60%),
    linear-gradient(180deg, #0a0a12 0%, #11111d 50%, #050614 100%);
  display: flex; flex-direction: column;
  padding: 5rem 1.25rem 1.25rem;
  transform: translateY(-100%);
  transition: transform .6s var(--pg-ease);
  overflow: hidden;
}
.pg-mobile-menu.is-open { transform: translateY(0); }
.pg-mobile-menu__scroll {
  flex: 1;
  overflow-y: auto;
  padding: 0 .5rem;
  scrollbar-width: thin;
}
.pg-mobile-menu__scroll::-webkit-scrollbar { width: 4px; }
.pg-mobile-menu__scroll::-webkit-scrollbar-thumb { background: rgba(255,255,255,.15); border-radius: 4px; }
.pg-mobile-menu__section { margin-bottom: 1.75rem; }
.pg-mobile-menu__eyebrow {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--pg-sunset);
  margin-bottom: .35rem;
  padding-left: .25rem;
}
.pg-mobile-menu__link {
  display: block; padding: .9rem .25rem;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.4rem; font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  letter-spacing: -0.02em;
  opacity: 0; transform: translateY(20px);
  transition: color .25s, padding-left .25s;
}
.pg-mobile-menu__link:active,
.pg-mobile-menu__link:hover {
  color: #fbbf24;
  padding-left: .75rem;
}
.pg-mobile-menu__link--dest {
  font-size: 1.18rem;
  padding: .7rem .25rem;
}
.pg-mobile-menu__link--small {
  font-size: .95rem;
  font-weight: 500;
  padding: .6rem .25rem;
  color: rgba(255,255,255,.72);
}
.pg-mobile-menu__emoji {
  display: inline-block;
  width: 28px;
  font-size: 1.1rem;
}
.pg-mobile-menu__footer {
  padding-top: 1rem;
  border-top: 1px solid rgba(255,255,255,.08);
  margin-top: 1rem;
}
.pg-mobile-menu__socials {
  display: flex; justify-content: center; gap: .75rem;
}
.pg-mobile-menu__socials a {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  display: inline-flex; align-items: center; justify-content: center;
  color: #fff;
  transition: background .25s, transform .25s;
}
.pg-mobile-menu__socials a:hover {
  background: var(--pg-grad-sunset);
  transform: translateY(-3px);
}
.pg-mobile-menu.is-open .pg-mobile-menu__link {
  animation: pg-menu-in .55s var(--pg-ease) forwards;
}
.pg-mobile-menu.is-open .pg-mobile-menu__link:nth-child(1) { animation-delay: .08s; }
.pg-mobile-menu.is-open .pg-mobile-menu__link:nth-child(2) { animation-delay: .12s; }
.pg-mobile-menu.is-open .pg-mobile-menu__link:nth-child(3) { animation-delay: .16s; }
.pg-mobile-menu.is-open .pg-mobile-menu__link:nth-child(4) { animation-delay: .20s; }
.pg-mobile-menu.is-open .pg-mobile-menu__link:nth-child(5) { animation-delay: .24s; }
.pg-mobile-menu.is-open .pg-mobile-menu__link:nth-child(6) { animation-delay: .28s; }
.pg-mobile-menu.is-open .pg-mobile-menu__link:nth-child(7) { animation-delay: .32s; }
.pg-mobile-menu.is-open .pg-mobile-menu__link:nth-child(8) { animation-delay: .36s; }
@keyframes pg-menu-in { to { opacity: 1; transform: translateY(0); } }

/* ========== Hide all badges/tags across the site ========== */
.pg-trip__badge,
.pg-cat__tag,
.pg-mood-card__badge,
.pg-paradise-badge,
.pg-trip__price,
.pg-premium__tag,
.pg-premium__stat-badge {
  display: none !important;
}

/* Mobile hero adjustments — index page */
@media (max-width: 768px) {
  .pg-hero--cinematic { min-height: 56vh !important; height: auto !important; padding: 8rem 0 1rem !important; }
  .pg-hero__inner { flex-direction: column; gap: .75rem; }
  .pg-hero__content { text-align: left; padding-top: 0; }
  .pg-hero--cinematic .pg-hero__title { font-size: clamp(1.75rem, 6.5vw, 2.6rem); margin-bottom: .5rem; line-height: 1.05; }
  .pg-hero__tagline { font-size: .72rem; padding: .4rem .85rem; margin-top: .75rem; }
  .pg-hero__sub { font-size: .82rem; margin-top: .75rem; line-height: 1.45; }
  .pg-hero__cta { margin-top: 1rem; }
  .pg-hero__waves { height: 70px !important; }
  .pg-hero__waves svg { height: 70px !important; }
  .pg-route-card { display: none; }
  .pg-hero__title > * {
    opacity: 1 !important;
    transform: none !important;
  }
}
@media (max-width: 480px) {
  .pg-hero--cinematic { min-height: 52vh !important; padding: 7rem 0 .5rem !important; }
  .pg-hero--cinematic .pg-hero__title { font-size: clamp(1.6rem, 6vw, 2.2rem); }
  .pg-hero__sub { font-size: .78rem; }
  .pg-hero__waves { height: 55px !important; }
  .pg-hero__waves svg { height: 55px !important; }
}

/* =========================================================
   Glass + Card Utilities
   ========================================================= */
.pg-glass {
  background: var(--pg-glass-strong);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid var(--pg-line);
}
.pg-card {
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--pg-line);
  border-radius: var(--pg-radius-lg);
  transition: all .5s var(--pg-ease);
  position: relative; overflow: hidden;
}
.pg-card:hover {
  transform: translateY(-6px);
  border-color: rgba(255, 255, 255, 0.18);
  box-shadow: var(--pg-shadow-soft);
}
.pg-card::after {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(600px circle at var(--mx, 50%) var(--my, 50%),
              rgba(124, 58, 237, 0.18), transparent 40%);
  opacity: 0; transition: opacity .4s;
  pointer-events: none;
}
.pg-card:hover::after { opacity: 1; }

/* =========================================================
   Hero
   ========================================================= */
.pg-hero {
  position: relative;
  min-height: 100vh;
  padding: 8rem 0 4rem;
  overflow: hidden;
  isolation: isolate;
}

/* ---------- Cinematic Hero (photo + water) ---------- */
.pg-hero--cinematic {
  min-height: 100vh;
  padding: 7rem 0 6rem;
  display: flex; align-items: center;
}
/* Make the inner container take full width inside the flex hero */
.pg-hero--cinematic > .max-w-7xl { width: 100%; flex: 1 1 100%; }
.pg-hero__photo {
  position: absolute; inset: 0; z-index: -3;
  overflow: hidden;
}
.pg-hero__photo img {
  width: 100%; height: 100%; object-fit: cover;
  transform: scale(1.08);
  animation: pg-kenburns 24s ease-in-out infinite alternate;
  filter: saturate(1.15) contrast(1.08) brightness(.95);
}
/* Cinematic vignette over the photo */
.pg-hero__photo::after {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at center, transparent 40%, rgba(5,6,20,.55) 100%),
    linear-gradient(180deg, rgba(5,6,20,.15) 0%, transparent 30%, transparent 70%, rgba(5,6,20,.45) 100%);
  pointer-events: none;
}
@keyframes pg-kenburns {
  0%   { transform: scale(1.08) translate(0, 0); }
  100% { transform: scale(1.18) translate(-2%, -1%); }
}

.pg-hero__overlay {
  position: absolute; inset: 0; z-index: -2;
  background:
    radial-gradient(ellipse 80% 60% at 30% 30%, rgba(124,58,237,.18), transparent 60%),
    linear-gradient(180deg, rgba(5,6,20,.6) 0%, rgba(5,6,20,.25) 40%, rgba(5,6,20,.7) 100%),
    linear-gradient(90deg, rgba(5,6,20,.75) 0%, rgba(5,6,20,.2) 50%, rgba(5,6,20,.55) 100%);
}
/* Cinematic god-rays beaming down */
.pg-hero__overlay::before {
  content: '';
  position: absolute; inset: 0;
  background:
    linear-gradient(105deg, transparent 30%, rgba(255,255,255,.04) 42%, transparent 45%),
    linear-gradient(120deg, transparent 50%, rgba(255,255,255,.03) 62%, transparent 65%),
    linear-gradient(95deg, transparent 60%, rgba(255,255,255,.025) 70%, transparent 73%);
  mix-blend-mode: screen;
  pointer-events: none;
  animation: pg-rays-drift 18s ease-in-out infinite alternate;
}
@keyframes pg-rays-drift {
  0%   { transform: translateX(0)   scaleY(1); opacity: .8; }
  100% { transform: translateX(40px) scaleY(1.05); opacity: 1; }
}

/* Water shimmer — animated light caustics */
.pg-hero__shimmer {
  position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(ellipse 600px 200px at 30% 70%, rgba(94,234,212,.18), transparent 70%),
    radial-gradient(ellipse 400px 140px at 70% 80%, rgba(56,189,248,.16), transparent 70%);
  mix-blend-mode: screen;
  animation: pg-shimmer-drift 12s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes pg-shimmer-drift {
  0%   { transform: translate(0,0) scale(1); opacity: .9; }
  100% { transform: translate(60px,-20px) scale(1.08); opacity: 1; }
}

/* Floating dust particles */
.pg-hero__particles {
  position: absolute; inset: 0; z-index: -1;
  pointer-events: none;
}
.pg-hero__particles span {
  position: absolute;
  display: block;
  background: #fff;
  border-radius: 50%;
  opacity: 0;
  filter: blur(.5px);
  animation: pg-particle-rise 14s linear infinite;
}
.pg-hero__particles span:nth-child(1)  { left:  6%; width: 3px; height: 3px; animation-delay: 0s;   animation-duration: 16s; }
.pg-hero__particles span:nth-child(2)  { left: 18%; width: 2px; height: 2px; animation-delay: -3s;  animation-duration: 18s; }
.pg-hero__particles span:nth-child(3)  { left: 28%; width: 4px; height: 4px; animation-delay: -7s;  animation-duration: 14s; }
.pg-hero__particles span:nth-child(4)  { left: 38%; width: 2px; height: 2px; animation-delay: -2s;  animation-duration: 20s; }
.pg-hero__particles span:nth-child(5)  { left: 48%; width: 3px; height: 3px; animation-delay: -10s; animation-duration: 17s; }
.pg-hero__particles span:nth-child(6)  { left: 58%; width: 2px; height: 2px; animation-delay: -5s;  animation-duration: 22s; }
.pg-hero__particles span:nth-child(7)  { left: 68%; width: 4px; height: 4px; animation-delay: -8s;  animation-duration: 15s; }
.pg-hero__particles span:nth-child(8)  { left: 78%; width: 2px; height: 2px; animation-delay: -1s;  animation-duration: 19s; }
.pg-hero__particles span:nth-child(9)  { left: 88%; width: 3px; height: 3px; animation-delay: -6s;  animation-duration: 16s; }
.pg-hero__particles span:nth-child(10) { left: 12%; width: 2px; height: 2px; animation-delay: -9s;  animation-duration: 21s; }
.pg-hero__particles span:nth-child(11) { left: 72%; width: 3px; height: 3px; animation-delay: -4s;  animation-duration: 18s; }
.pg-hero__particles span:nth-child(12) { left: 94%; width: 2px; height: 2px; animation-delay: -11s; animation-duration: 17s; }
@keyframes pg-particle-rise {
  0%   { transform: translateY(105vh); opacity: 0; }
  10%  { opacity: .9; }
  90%  { opacity: .9; }
  100% { transform: translateY(-10vh); opacity: 0; }
}

/* ==========  Premium Ocean Waves  ========== */
.pg-hero__waves {
  position: absolute; left: 0; right: 0; bottom: -2px; z-index: 1;
  width: 100%; height: 180px;
  overflow: hidden;
  line-height: 0;
  pointer-events: none;
}
.pg-hero__waves svg {
  position: relative; display: block;
  width: calc(100% + 1.3px); height: 180px;
}
.pg-wave-parallax > use {
  animation: pg-wave-move 7s -2s linear infinite;
  transform-origin: center;
  will-change: transform;
}
.pg-wave-parallax > use:nth-child(1) { animation-duration: 7s;  animation-delay: -1s; opacity: .55; }
.pg-wave-parallax > use:nth-child(2) { animation-duration: 9s;  animation-delay: -2s; opacity: .7;  animation-direction: reverse; }
.pg-wave-parallax > use:nth-child(3) { animation-duration: 12s; animation-delay: -3s; opacity: .75; }
.pg-wave-parallax > use:nth-child(4) { animation-duration: 15s; animation-delay: -4s; opacity: .85; animation-direction: reverse; }
.pg-wave-parallax > use:nth-child(5) { animation-duration: 19s; animation-delay: -5s; opacity: .92; }
.pg-wave-parallax > use:nth-child(6) { animation-duration: 24s; animation-delay: -6s; opacity: 1; }
@keyframes pg-wave-move {
  0%   { transform: translate3d(-90px, 0, 0); }
  100% { transform: translate3d(85px,  0, 0); }
}

/* Sun-on-water reflection beam */
.pg-hero__waves-sun {
  position: absolute; bottom: 0; left: 50%;
  transform: translateX(-50%);
  width: 50%; max-width: 760px; height: 100%;
  background:
    radial-gradient(ellipse 60% 90% at 50% 100%, rgba(255,255,255,.14), transparent 60%),
    radial-gradient(ellipse 30% 100% at 50% 100%, rgba(125,211,252,.18), transparent 70%);
  mix-blend-mode: screen;
  filter: blur(8px);
  animation: pg-sun-shimmer 4.5s ease-in-out infinite alternate;
  pointer-events: none;
  z-index: 2;
}
@keyframes pg-sun-shimmer {
  0%   { opacity: .85; transform: translateX(-52%) scaleX(1); }
  100% { opacity: 1;   transform: translateX(-48%) scaleX(1.08); }
}

/* Animated caustic light pattern overlaying water */
.pg-hero__waves-caustics {
  position: absolute; inset: 0;
  background-image:
    radial-gradient(ellipse 80px 12px at 20% 70%, rgba(255,255,255,.4), transparent 70%),
    radial-gradient(ellipse 60px 10px at 60% 75%, rgba(255,255,255,.3), transparent 70%),
    radial-gradient(ellipse 100px 14px at 85% 65%, rgba(255,255,255,.35), transparent 70%),
    radial-gradient(ellipse 70px 11px at 40% 82%, rgba(255,255,255,.28), transparent 70%),
    radial-gradient(ellipse 90px 13px at 70% 88%, rgba(255,255,255,.3), transparent 70%);
  background-size: 400px 100%;
  mix-blend-mode: overlay;
  opacity: .9;
  animation: pg-caustics-drift 11s linear infinite;
  pointer-events: none;
  z-index: 2;
}
@keyframes pg-caustics-drift {
  0%   { background-position: 0% 0%,    0% 0%,    0% 0%,    0% 0%,    0% 0%; }
  100% { background-position: 400px 0%, -300px 0%, 500px 0%, -400px 0%, 350px 0%; }
}

/* Floating foam bubbles on water */
.pg-hero__waves-foam {
  position: absolute; inset: 0;
  pointer-events: none;
  z-index: 3;
}
.pg-hero__waves-foam span {
  position: absolute;
  width: 4px; height: 4px;
  border-radius: 50%;
  background: rgba(255,255,255,.85);
  box-shadow: 0 0 8px rgba(255,255,255,.7);
  bottom: 0;
  opacity: 0;
  animation: pg-foam-rise 7s ease-out infinite;
}
.pg-hero__waves-foam span:nth-child(1) { left: 5%;  width: 3px; height: 3px; animation-delay: 0s;   animation-duration: 8s; }
.pg-hero__waves-foam span:nth-child(2) { left: 18%; width: 5px; height: 5px; animation-delay: -1.5s; animation-duration: 9s; }
.pg-hero__waves-foam span:nth-child(3) { left: 30%; width: 3px; height: 3px; animation-delay: -3s;   animation-duration: 7s; }
.pg-hero__waves-foam span:nth-child(4) { left: 45%; width: 4px; height: 4px; animation-delay: -5s;   animation-duration: 10s; }
.pg-hero__waves-foam span:nth-child(5) { left: 60%; width: 3px; height: 3px; animation-delay: -2s;   animation-duration: 8.5s; }
.pg-hero__waves-foam span:nth-child(6) { left: 72%; width: 5px; height: 5px; animation-delay: -4s;   animation-duration: 9.5s; }
.pg-hero__waves-foam span:nth-child(7) { left: 85%; width: 3px; height: 3px; animation-delay: -6s;   animation-duration: 7.5s; }
.pg-hero__waves-foam span:nth-child(8) { left: 92%; width: 4px; height: 4px; animation-delay: -3.5s; animation-duration: 8s; }
@keyframes pg-foam-rise {
  0%   { transform: translateY(0) translateX(0)    scale(.4); opacity: 0; }
  15%  { opacity: 1; }
  100% { transform: translateY(-120px) translateX(20px) scale(1.2); opacity: 0; }
}

/* Decorative dashed arc */
.pg-hero__arc {
  position: absolute; top: 18%; left: 0; right: 0; width: 100%; height: 80px;
  z-index: 1; pointer-events: none;
  opacity: .65;
}

/* Hero content layout — text LEFT, route map RIGHT, side-by-side & centered as a group */
.pg-hero__inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 3.5rem;
  width: 100%;
  margin: 0 auto;
}
.pg-hero__content {
  flex: 1 1 0;
  max-width: 620px;
  text-align: left;
}
.pg-hero--cinematic .pg-hero__sub { margin-left: 0; margin-right: 0; }
.pg-hero--cinematic .pg-hero__cta { justify-content: flex-start; }
@media (max-width: 1023px) {
  .pg-hero__inner { flex-direction: column; gap: 2.5rem; }
  .pg-hero__content { max-width: 760px; text-align: center; align-self: center; }
  .pg-hero--cinematic .pg-hero__sub { margin-left: auto; margin-right: auto; }
  .pg-hero--cinematic .pg-hero__cta { justify-content: center; }
}

.pg-hero--cinematic .pg-hero__title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(2.75rem, 8vw, 7rem);
  font-weight: 700; line-height: 0.95;
  letter-spacing: -0.045em;
  color: #fff;
  text-shadow: 0 4px 30px rgba(0,0,0,.45);
}
.pg-hero--cinematic .pg-hero__title .accent {
  background: linear-gradient(135deg, #fbbf24 0%, #fb7185 50%, #f97316 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic; font-weight: 500;
}

/* Red/coral tagline pill — matches the reference */
.pg-hero__tagline {
  display: inline-flex; align-items: center;
  margin-top: 1.5rem;
  padding: .55rem 1.1rem;
  background: rgba(5,6,20,.55);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(251,113,133,.35);
  border-radius: 999px;
  position: relative;
  box-shadow: 0 14px 40px -10px rgba(251,113,133,.45);
}
.pg-hero__tagline::before {
  content: ''; position: absolute; inset: -1px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(251,113,133,.0), rgba(251,113,133,.6), rgba(249,115,22,.6), rgba(251,113,133,.0));
  z-index: -1;
  opacity: .55;
  filter: blur(10px);
  animation: pg-tagline-pulse 4s ease-in-out infinite;
}
@keyframes pg-tagline-pulse {
  0%,100% { opacity: .35; }
  50%     { opacity: .75; }
}
.pg-hero__tagline-inner {
  font-family: 'Inter', sans-serif;
  font-size: clamp(.78rem, 1vw, .92rem);
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #fb7185;
  text-transform: none;
}
.pg-hero__tagline-sep {
  color: rgba(255,255,255,.4);
  margin: 0 .4rem;
  font-weight: 300;
}

.pg-hero--cinematic .pg-hero__sub {
  font-size: clamp(1rem, 1.15vw, 1.15rem);
  color: rgba(255,255,255,.82);
  max-width: 580px; line-height: 1.65;
  margin-top: 1.5rem;
  text-shadow: 0 2px 18px rgba(0,0,0,.55);
}

.pg-hero--cinematic .pg-hero__cta {
  display: flex; flex-wrap: wrap; gap: .75rem;
  margin-top: 2rem;
}

/* WhatsApp pill — matches reference */
.pg-btn--whatsapp {
  background: linear-gradient(135deg, #25d366 0%, #1ebe5b 100%);
  color: #fff;
  padding: 1rem 1.75rem;
  font-size: 1rem; font-weight: 700;
  letter-spacing: .01em;
  box-shadow: 0 18px 45px -10px rgba(37,211,102,.65), 0 0 0 1px rgba(255,255,255,.08);
  position: relative;
}
.pg-btn--whatsapp::after {
  content: ''; position: absolute; inset: -3px;
  border-radius: inherit;
  background: radial-gradient(circle, rgba(37,211,102,.5), transparent 65%);
  z-index: -1;
  filter: blur(14px);
  opacity: .8;
  animation: pg-pulse-soft 2.4s ease-in-out infinite;
}
@keyframes pg-pulse-soft {
  0%,100% { opacity: .55; }
  50%     { opacity: 1; }
}
.pg-btn--whatsapp:hover { transform: translateY(-2px) scale(1.02); }

.pg-btn--ghost-light {
  background: rgba(255,255,255,.12);
  color: #fff;
  border: 1px solid rgba(255,255,255,.32);
  backdrop-filter: blur(14px);
  padding: 1rem 1.5rem;
}
.pg-btn--ghost-light:hover {
  background: rgba(255,255,255,.2);
  border-color: rgba(255,255,255,.5);
  transform: translateY(-2px);
}

/* Hero stat bar — horizontal */
.pg-hero__stats-bar {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: 1.5rem 2rem;
  margin-top: 3rem;
  padding: 1.25rem 1.5rem;
  background: rgba(5,6,20,.45);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 20px;
  max-width: 760px;
  box-shadow: 0 24px 60px -20px rgba(0,0,0,.45);
}
.pg-hero__stats-bar .pg-counter__num {
  font-size: clamp(1.6rem, 2.5vw, 2.4rem);
  background: linear-gradient(135deg, #fff 30%, #fbbf24 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.pg-hero__stats-bar .pg-counter__label {
  font-size: .72rem; letter-spacing: .14em;
  color: rgba(255,255,255,.7);
  margin-top: 2px;
}
.pg-hero__stat-div {
  width: 1px; height: 38px;
  background: rgba(255,255,255,.18);
  flex-shrink: 0;
}
@media (max-width: 640px) {
  .pg-hero__stat-div { display: none; }
  .pg-hero__stats-bar { gap: 1rem; padding: 1rem 1.1rem; }
}
.pg-hero__rating {
  display: flex; align-items: center; gap: .4rem;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700; font-size: 1rem;
  color: #fff;
}

/* Reposition hero airplane against photo bg */
.pg-hero--cinematic .pg-hero-plane {
  top: 18%; right: 4%;
  width: 140px; height: 140px;
  filter: drop-shadow(0 14px 30px rgba(251,191,36,.55)) drop-shadow(0 4px 8px rgba(0,0,0,.3));
}

/* ---------- Hero Route Map Widget — translucent glass, premium ---------- */
.pg-route-card {
  position: relative;
  margin: 0;
  top: auto; right: auto; left: auto;
  transform: none;
  flex: 0 0 auto;
  width: 460px; height: 380px;
  z-index: 5;
  border-radius: 32px;
  background:
    linear-gradient(160deg, rgba(255,255,255,.18) 0%, rgba(255,255,255,.06) 60%, rgba(255,255,255,.10) 100%);
  backdrop-filter: blur(28px) saturate(160%);
  -webkit-backdrop-filter: blur(28px) saturate(160%);
  border: 1px solid rgba(255,255,255,.32);
  box-shadow:
    0 50px 110px -20px rgba(0,0,0,.6),
    0 12px 36px -10px rgba(0,0,0,.4),
    inset 0 1px 0 rgba(255,255,255,.45),
    inset 0 -1px 0 rgba(255,255,255,.1);
  overflow: visible;
  animation: pg-route-float 7s ease-in-out infinite;
  isolation: isolate;
}
@keyframes pg-route-float {
  0%,100% { transform: translateY(0)     rotate(0); }
  50%     { transform: translateY(-10px) rotate(-.35deg); }
}
@media (max-width: 1280px) {
  .pg-route-card { width: 400px; height: 340px; right: 3%; }
}
@media (max-width: 1100px) {
  .pg-route-card { width: 360px; height: 310px; }
}
@media (max-width: 860px) {
  .pg-route-card { display: none; }
}

/* Subtle inner grid — gives depth */
.pg-route-card__grid {
  position: absolute; inset: 0;
  border-radius: inherit;
  background-image:
    linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px);
  background-size: 28px 28px;
  mask-image: radial-gradient(ellipse at center, black 50%, transparent 95%);
  -webkit-mask-image: radial-gradient(ellipse at center, black 50%, transparent 95%);
  pointer-events: none;
  z-index: 1;
}

/* Corner shine highlight */
.pg-route-card__shine {
  position: absolute;
  top: -2px; left: -2px;
  width: 60%; height: 60%;
  background: radial-gradient(circle at top left, rgba(255,255,255,.35), transparent 60%);
  border-radius: inherit;
  pointer-events: none;
  z-index: 1;
  mix-blend-mode: screen;
}

.pg-route-card__svg {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  z-index: 2;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,.18));
}

/* Flowing dashed routes */
.pg-route-card__line {
  animation: pg-route-flow 1.7s linear infinite;
}
.pg-route-card__line--amber { animation-duration: 1.6s; }
.pg-route-card__line--teal  { animation-duration: 2.0s; animation-direction: reverse; }
@keyframes pg-route-flow {
  to { stroke-dashoffset: -32; }
}

/* Pulsing destination dots */
.pg-route-card__dot { animation: pg-dot-pulse 2.8s ease-in-out infinite; transform-origin: center; transform-box: fill-box; }
.pg-route-card__dot:nth-child(2) { animation-delay: -1.2s; }
@keyframes pg-dot-pulse {
  0%,100% { opacity: 1;    filter: drop-shadow(0 0 0 rgba(94,234,212,0)); }
  50%     { opacity: .75;  filter: drop-shadow(0 0 6px rgba(255,255,255,.6)); }
}

/* Center compass disc */
.pg-route-card__plane {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 64px; height: 64px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,1) 0%, rgba(248,247,242,.95) 100%);
  border: 1px solid rgba(255,255,255,.6);
  box-shadow:
    0 12px 28px -6px rgba(0,0,0,.35),
    0 0 0 6px rgba(255,255,255,.08),
    inset 0 1px 0 rgba(255,255,255,1);
  display: flex; align-items: center; justify-content: center;
  z-index: 4;
}
.pg-route-card__plane::before {
  content: ''; position: absolute; inset: -14px;
  border-radius: 50%;
  border: 1px dashed rgba(255,255,255,.25);
  animation: pg-plane-ring 16s linear infinite;
}
@keyframes pg-plane-ring {
  to { transform: rotate(360deg); }
}
.pg-route-card__plane svg { animation: pg-plane-spin 24s linear infinite; transform-origin: 50% 50%; }
@keyframes pg-plane-spin {
  to { transform: rotate(360deg); }
}

/* Chip pills */
.pg-route-card__chip {
  position: absolute;
  background: #ffffff;
  padding: .7rem .95rem;
  border-radius: 14px;
  font-family: 'Inter', sans-serif;
  box-shadow:
    0 14px 32px -8px rgba(0,0,0,.4),
    0 0 0 1px rgba(0,0,0,.04),
    inset 0 1px 0 rgba(255,255,255,.85);
  z-index: 6;
  white-space: nowrap;
}
.pg-route-card__title {
  display: block;
  font-size: 1rem; font-weight: 700;
  color: #14201d;
  letter-spacing: -.012em;
}
.pg-route-card__sub {
  display: block;
  font-size: .78rem; font-weight: 500;
  color: #7a8480;
  margin-top: 2px;
}

.pg-route-card__chip-row {
  display: flex; align-items: center; gap: .6rem;
}
.pg-route-card__toggle {
  width: 30px; height: 16px;
  border-radius: 999px;
  background: #163e34;
  position: relative;
  display: inline-block;
  flex-shrink: 0;
  transition: background .3s var(--pg-ease);
}
.pg-route-card__toggle i {
  position: absolute; top: 2px; right: 2px;
  width: 12px; height: 12px; border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,.28);
  transition: right .3s var(--pg-ease);
}
.pg-route-card__toggle.is-on { background: #163e34; }

/* Position chips — overhang outside card edges */
.pg-route-card__chip--royal { top: 5%; right: 5%; }
.pg-route-card__chip--goa   { bottom: 22%; left: -6%; }
.pg-route-card__chip--crew {
  bottom: -8%; left: 50%;
  transform: translateX(-50%);
  background: #163e34;
  padding: .85rem 1.15rem;
}
.pg-route-card__chip--crew .pg-route-card__title { color: #fff; }
.pg-route-card__chip--crew .pg-route-card__sub   { color: rgba(255,255,255,.7); }

/* Hover micro-interaction */
.pg-route-card:hover .pg-route-card__plane {
  transform: translate(-50%, -50%) scale(1.08);
  transition: transform .4s var(--pg-ease);
}
.pg-route-card:hover { animation-play-state: paused; }

/* ==========  Route Card — Heavy Animation Layer  ========== */

/* Radar sweep */
.pg-route-card__radar {
  position: absolute; inset: 0;
  border-radius: inherit;
  overflow: hidden;
  pointer-events: none;
  z-index: 1;
  mask-image: radial-gradient(circle at center, black 5%, black 60%, transparent 80%);
  -webkit-mask-image: radial-gradient(circle at center, black 5%, black 60%, transparent 80%);
}
.pg-route-card__radar::before {
  content: '';
  position: absolute; top: 50%; left: 50%;
  width: 140%; height: 140%;
  transform-origin: 0 0;
  background: conic-gradient(from 0deg,
    rgba(95,168,147,0) 0deg,
    rgba(95,168,147,0) 280deg,
    rgba(95,168,147,0.28) 340deg,
    rgba(212,164,95,0.55) 358deg,
    rgba(95,168,147,0) 360deg);
  animation: pg-radar-sweep 5.5s linear infinite;
}
@keyframes pg-radar-sweep {
  from { transform: translate(-50%, -50%) rotate(0); }
  to   { transform: translate(-50%, -50%) rotate(360deg); }
}

/* Sonar pulses from center */
.pg-route-card__sonar {
  position: absolute; top: 50%; left: 50%;
  width: 64px; height: 64px;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 3;
}
.pg-route-card__sonar span {
  position: absolute; inset: 0;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.55);
  animation: pg-sonar 3.5s ease-out infinite;
  opacity: 0;
}
.pg-route-card__sonar span:nth-child(2) { animation-delay: 1.16s; }
.pg-route-card__sonar span:nth-child(3) { animation-delay: 2.33s; }
@keyframes pg-sonar {
  0%   { transform: scale(.7); opacity: .9; border-color: rgba(212,164,95,.7); }
  60%  { opacity: .35; }
  100% { transform: scale(4.2); opacity: 0; border-color: rgba(95,168,147,.4); }
}

/* Floating particles */
.pg-route-card__particles {
  position: absolute; inset: 0;
  pointer-events: none;
  z-index: 2;
  overflow: hidden;
  border-radius: inherit;
}
.pg-route-card__particles span {
  position: absolute;
  width: 3px; height: 3px;
  border-radius: 50%;
  background: rgba(255,255,255,.7);
  box-shadow: 0 0 6px rgba(255,255,255,.55);
  animation: pg-particle-drift 9s linear infinite;
  opacity: 0;
}
.pg-route-card__particles span:nth-child(1) { left: 8%;  top: 90%; animation-delay: 0s;    animation-duration: 11s; }
.pg-route-card__particles span:nth-child(2) { left: 22%; top: 90%; animation-delay: -2s;   animation-duration: 9s;  background: rgba(212,164,95,.85); box-shadow: 0 0 6px rgba(212,164,95,.7); }
.pg-route-card__particles span:nth-child(3) { left: 38%; top: 90%; animation-delay: -4.5s; animation-duration: 13s; }
.pg-route-card__particles span:nth-child(4) { left: 52%; top: 90%; animation-delay: -6s;   animation-duration: 10s; background: rgba(95,168,147,.85); box-shadow: 0 0 6px rgba(95,168,147,.7); }
.pg-route-card__particles span:nth-child(5) { left: 68%; top: 90%; animation-delay: -1.5s; animation-duration: 12s; }
.pg-route-card__particles span:nth-child(6) { left: 82%; top: 90%; animation-delay: -3.2s; animation-duration: 10.5s; background: rgba(125,211,252,.85); box-shadow: 0 0 6px rgba(125,211,252,.7); }
.pg-route-card__particles span:nth-child(7) { left: 14%; top: 90%; animation-delay: -7s;   animation-duration: 14s; background: rgba(251,191,36,.85); box-shadow: 0 0 6px rgba(251,191,36,.7); }
.pg-route-card__particles span:nth-child(8) { left: 92%; top: 90%; animation-delay: -5s;   animation-duration: 11.5s; background: rgba(251,113,133,.85); box-shadow: 0 0 6px rgba(251,113,133,.7); }
@keyframes pg-particle-drift {
  0%   { transform: translate(0, 0)        scale(.6); opacity: 0; }
  10%  { opacity: 1; }
  50%  { transform: translate(-12px, -55%) scale(1.1); }
  90%  { opacity: 1; }
  100% { transform: translate(-26px, -120%) scale(.5); opacity: 0; }
}

/* Compass ring with N/E/S/W marks */
.pg-route-card__compass {
  position: absolute; top: 50%; left: 50%;
  width: 220px; height: 220px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 1px dashed rgba(255,255,255,.18);
  z-index: 2;
  pointer-events: none;
  animation: pg-compass-spin 40s linear infinite;
}
.pg-route-card__compass::before {
  content: '';
  position: absolute; inset: 18px;
  border-radius: 50%;
  border: 1px dotted rgba(255,255,255,.1);
}
.pg-route-card__mark {
  position: absolute;
  font-family: 'JetBrains Mono', monospace;
  font-size: .62rem; font-weight: 600;
  color: rgba(255,255,255,.55);
  letter-spacing: .1em;
  background: rgba(20,32,29,.55);
  padding: 2px 6px; border-radius: 4px;
  backdrop-filter: blur(4px);
}
.pg-route-card__mark--n { top: -10px; left: 50%; transform: translateX(-50%); }
.pg-route-card__mark--s { bottom: -10px; left: 50%; transform: translateX(-50%); }
.pg-route-card__mark--e { right: -14px; top: 50%; transform: translateY(-50%); }
.pg-route-card__mark--w { left: -14px;  top: 50%; transform: translateY(-50%); }
@keyframes pg-compass-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }

/* Orbiting satellite */
.pg-route-card__orbit {
  position: absolute; top: 50%; left: 50%;
  width: 130px; height: 130px;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 5;
  animation: pg-orbit 7s linear infinite;
}
.pg-route-card__satellite {
  position: absolute; top: -4px; left: 50%;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #d4a45f;
  box-shadow: 0 0 12px rgba(212,164,95,.95), 0 0 28px rgba(212,164,95,.5);
  transform: translateX(-50%);
}
.pg-route-card__satellite::after {
  content: '';
  position: absolute; top: 50%; left: 50%;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: rgba(212,164,95,.18);
  transform: translate(-50%, -50%);
  animation: pg-sat-glow 1.6s ease-in-out infinite alternate;
}
@keyframes pg-orbit { to { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes pg-sat-glow {
  to { transform: translate(-50%, -50%) scale(1.5); opacity: .4; }
}

/* New subtle dotted route lines */
.pg-route-card__line--sky    { animation-duration: 2.5s; }
.pg-route-card__line--coral  { animation-duration: 2.2s; animation-direction: reverse; }
.pg-route-card__line--violet { animation-duration: 3.0s; }
.pg-route-card__line--gold   { animation-duration: 2.8s; animation-direction: reverse; }

/* Mini destination dots */
.pg-route-card__minidot {
  animation: pg-mini-pulse 2.4s ease-in-out infinite;
  transform-origin: center;
  transform-box: fill-box;
}
.pg-route-card__minidot--coral  { animation-delay: -.4s; }
.pg-route-card__minidot--violet { animation-delay: -.9s; }
.pg-route-card__minidot--gold   { animation-delay: -1.3s; }
@keyframes pg-mini-pulse {
  0%,100% { transform: scale(1);   opacity: 1; }
  50%     { transform: scale(1.4); opacity: .7; }
}

/* Plane flyers along routes */
.pg-route-card__flyer { filter: drop-shadow(0 0 6px rgba(255,255,255,.4)); }
.pg-route-card__flyer--goa { filter: drop-shadow(0 0 6px rgba(95,168,147,.6)); }

/* Live coordinates ticker */
.pg-route-card__ticker {
  position: absolute; bottom: 18px; left: 18px; right: 18px;
  height: 26px;
  display: flex; align-items: center; gap: .55rem;
  padding: 0 .8rem;
  border-radius: 999px;
  background: rgba(8,14,12,.72);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.08);
  font-family: 'JetBrains Mono', monospace;
  font-size: .58rem;
  letter-spacing: .08em;
  color: rgba(255,255,255,.78);
  overflow: hidden;
  z-index: 5;
}
.pg-route-card__ticker-dot {
  flex-shrink: 0;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #34d399;
  box-shadow: 0 0 6px #34d399;
  animation: pg-ticker-blink 1.1s ease-in-out infinite;
}
@keyframes pg-ticker-blink {
  0%,100% { opacity: 1; }
  50%     { opacity: .25; }
}
.pg-route-card__ticker-text {
  display: flex;
  flex-shrink: 0;
  white-space: nowrap;
  gap: 2.5rem;
  animation: pg-ticker-roll 18s linear infinite;
}
.pg-route-card__ticker-text > span { flex-shrink: 0; }
@keyframes pg-ticker-roll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.pg-hero__bg {
  position: absolute; inset: 0; z-index: -2;
}
.pg-hero__bg::before {
  content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at top, rgba(124, 58, 237, 0.3), transparent 50%),
    radial-gradient(ellipse at bottom right, rgba(56, 189, 248, 0.2), transparent 50%),
    radial-gradient(ellipse at bottom left, rgba(56, 189, 248, 0.18), transparent 50%),
    #050614;
}
.pg-hero__bg::after {
  content: ''; position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  opacity: 0.15; mix-blend-mode: overlay;
}

.pg-hero__grid {
  position: absolute; inset: 0; z-index: -1;
  background-image:
    linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: radial-gradient(ellipse at center, black 30%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse at center, black 30%, transparent 75%);
}

.pg-orb {
  position: absolute; border-radius: 50%;
  filter: blur(80px); opacity: 0.7;
  pointer-events: none; z-index: -1;
  animation: pg-float 14s ease-in-out infinite;
}
@keyframes pg-float {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(40px, -30px); }
}

.pg-hero__title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(2.75rem, 7vw, 6.5rem);
  font-weight: 700; line-height: 0.98;
  letter-spacing: -0.045em;
}
.pg-hero__title .accent {
  background: var(--pg-grad-sunset);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-weight: 500;
}

.pg-hero__sub {
  font-size: clamp(1rem, 1.2vw, 1.15rem);
  color: rgba(255, 255, 255, 0.7);
  max-width: 580px; line-height: 1.6;
}

/* Floating hero cards */
.pg-floating-card {
  position: absolute;
  background: rgba(10, 14, 39, 0.55);
  backdrop-filter: blur(18px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 22px;
  padding: 1rem 1.15rem;
  box-shadow: 0 20px 50px -10px rgba(0, 0, 0, 0.5);
  animation: pg-float 8s ease-in-out infinite;
}
.pg-floating-card--1 { top: 12%; right: 5%; animation-delay: 0s; }
.pg-floating-card--2 { bottom: 18%; left: 4%; animation-delay: 1.5s; }
.pg-floating-card--3 { top: 38%; right: 12%; animation-delay: 3s; }

@media (max-width: 768px) {
  .pg-floating-card { display: none; }
}

/* Scroll indicator */
.pg-scroll-indicator {
  position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 0.5rem;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.75rem; letter-spacing: 0.2em; text-transform: uppercase;
}
.pg-scroll-indicator__line {
  width: 1px; height: 40px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5), transparent);
  position: relative; overflow: hidden;
}
.pg-scroll-indicator__line::before {
  content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: linear-gradient(180deg, var(--pg-sunset), transparent);
  animation: pg-scroll-tick 2s var(--pg-ease) infinite;
}
@keyframes pg-scroll-tick {
  0% { transform: translateY(-100%); }
  100% { transform: translateY(100%); }
}

/* =========================================================
   Sections
   ========================================================= */
.pg-section { padding: 6rem 0; position: relative; }
@media (min-width: 1024px) { .pg-section { padding: 8rem 0; } }

.pg-eyebrow {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.78rem; font-weight: 600;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--pg-sunset);
  padding: 0.4rem 0.85rem; border-radius: 999px;
  background: rgba(249, 115, 22, 0.08);
  border: 1px solid rgba(249, 115, 22, 0.18);
}
.pg-eyebrow__dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--pg-sunset);
  box-shadow: 0 0 12px var(--pg-sunset);
}

.pg-section-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(2.25rem, 5vw, 4.25rem);
  font-weight: 700; line-height: 1.02;
  letter-spacing: -0.035em;
}
.pg-section-title em {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic; font-weight: 500;
  background: var(--pg-grad-sunset);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* =========================================================
   Feature Cards
   ========================================================= */
.pg-feature {
  padding: 2rem; border-radius: var(--pg-radius-lg);
  background: linear-gradient(160deg, rgba(255,255,255,0.05), rgba(255,255,255,0.01));
  border: 1px solid var(--pg-line);
  position: relative; overflow: hidden;
  transition: all .5s var(--pg-ease);
}
.pg-feature:hover {
  transform: translateY(-8px);
  border-color: rgba(255,255,255,0.16);
  box-shadow: 0 30px 60px -20px rgba(124, 58, 237, 0.25);
}
.pg-feature__icon {
  width: 56px; height: 56px; border-radius: 18px;
  display: flex; align-items: center; justify-content: center;
  background: var(--pg-grad-sunset);
  box-shadow: 0 12px 28px -8px rgba(249, 115, 22, 0.55);
  margin-bottom: 1.25rem;
}
.pg-feature__icon svg { color: #fff; }
.pg-feature__title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.4rem; font-weight: 600;
  margin-bottom: 0.6rem; color: #fff;
}
.pg-feature__text {
  color: rgba(255, 255, 255, 0.62); line-height: 1.65;
  font-size: 0.95rem;
}

/* =========================================================
   Trip Cards
   ========================================================= */
.pg-trip {
  position: relative; border-radius: var(--pg-radius-lg);
  overflow: hidden; isolation: isolate;
  transition: all .6s var(--pg-ease);
  background: var(--pg-twilight);
  border: 1px solid var(--pg-line);
}
.pg-trip:hover { transform: translateY(-6px); border-color: var(--pg-line-strong); }
.pg-trip__media {
  position: relative; aspect-ratio: 4/5; overflow: hidden;
}
.pg-trip__media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.2s var(--pg-ease);
}
.pg-trip:hover .pg-trip__media img { transform: scale(1.08); }
.pg-trip__media::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 35%, rgba(5,6,20,0.85) 100%);
}
.pg-trip__badge {
  position: absolute; top: 1rem; left: 1rem;
  padding: 0.4rem 0.85rem; border-radius: 999px;
  font-size: 0.72rem; font-weight: 600; letter-spacing: 0.06em;
  background: rgba(255, 255, 255, 0.94); color: #0a0e27;
  z-index: 2;
}
.pg-trip__price {
  position: absolute; top: 1rem; right: 1rem;
  padding: 0.5rem 0.95rem; border-radius: 999px;
  background: rgba(5,6,20,0.7); backdrop-filter: blur(12px);
  border: 1px solid var(--pg-line-strong);
  font-weight: 600; color: #fff; font-size: 0.85rem;
  z-index: 2;
}
.pg-trip__content {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 1.4rem; z-index: 2;
}
.pg-trip__location {
  display: inline-flex; align-items: center; gap: 0.35rem;
  font-size: 0.78rem; color: rgba(255,255,255,0.75);
  margin-bottom: 0.35rem;
}
.pg-trip__title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.55rem; font-weight: 600; color: #fff;
  letter-spacing: -0.02em; line-height: 1.15;
}
.pg-trip__meta {
  display: flex; align-items: center; gap: 1rem;
  margin-top: 0.75rem;
  font-size: 0.8rem; color: rgba(255,255,255,0.7);
}

/* =========================================================
   Experience Card
   ========================================================= */
.pg-exp {
  position: relative; height: 460px; border-radius: var(--pg-radius-lg);
  overflow: hidden; cursor: pointer;
  isolation: isolate;
}
.pg-exp img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; z-index: -2;
  transition: transform 1.2s var(--pg-ease);
}
.pg-exp::after {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, transparent 30%, rgba(5,6,20,0.92) 100%);
}
.pg-exp:hover img { transform: scale(1.08); }
.pg-exp__inner {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 1.75rem; color: #fff;
  transform: translateY(40px); transition: transform .5s var(--pg-ease);
}
.pg-exp:hover .pg-exp__inner { transform: translateY(0); }
.pg-exp__reveal {
  opacity: 0; transition: opacity .5s var(--pg-ease) .1s;
  max-height: 0; overflow: hidden;
}
.pg-exp:hover .pg-exp__reveal { opacity: 1; max-height: 200px; }
.pg-exp__title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.65rem; font-weight: 600;
  letter-spacing: -0.02em;
}

/* =========================================================
   Counter
   ========================================================= */
.pg-counter__num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 700; line-height: 1;
  background: var(--pg-grad-sunset);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.pg-counter__label {
  font-size: 0.85rem; color: rgba(255,255,255,0.6);
  margin-top: 0.5rem; letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* =========================================================
   Testimonial
   ========================================================= */
.pg-testimonial {
  padding: 2.25rem; border-radius: var(--pg-radius-lg);
  background: linear-gradient(160deg, rgba(255,255,255,0.05), rgba(255,255,255,0.01));
  border: 1px solid var(--pg-line);
  height: 100%;
}
.pg-testimonial__quote {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.2rem; line-height: 1.55;
  color: rgba(255,255,255,0.85);
  font-style: italic;
}
.pg-testimonial__author {
  display: flex; align-items: center; gap: 0.85rem;
  margin-top: 1.5rem; padding-top: 1.5rem;
  border-top: 1px solid var(--pg-line);
}
.pg-testimonial__avatar {
  width: 48px; height: 48px; border-radius: 50%;
  background: var(--pg-grad-sunset);
  display: flex; align-items: center; justify-content: center;
  font-weight: 600; color: #fff;
}

/* Colourful-world photo collage */
.pg-collage {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.pg-collage__tile {
  position: relative;
  margin: 0;
  border-radius: 24px;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  border: 1px solid rgba(255,255,255,0.18);
  box-shadow: 0 24px 50px -18px rgba(0,0,0,0.55);
  animation: pg-collage-in 0.7s cubic-bezier(.16,1,.3,1) both;
  animation-delay: var(--d, 0ms);
}
.pg-collage__tile--down { margin-top: 2.25rem; }
.pg-collage__tile img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 0.7s cubic-bezier(.16,1,.3,1);
}
.pg-collage__tile::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(8,6,24,0.7) 0%, rgba(8,6,24,0.05) 45%, transparent 70%);
  transition: opacity 0.4s ease;
}
.pg-collage__tile:hover img { transform: scale(1.08); }
.pg-collage__tile figcaption {
  position: absolute; left: 0; bottom: 0; z-index: 2;
  padding: 0.9rem;
}
.pg-collage__tag {
  display: inline-flex; align-items: center;
  font-size: 0.78rem; font-weight: 600; color: #fff;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.22);
  backdrop-filter: blur(8px);
  letter-spacing: 0.01em;
}
@keyframes pg-collage-in {
  from { opacity: 0; transform: translateY(24px) scale(0.96); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
@media (max-width: 480px) {
  .pg-collage { gap: 0.6rem; }
  .pg-collage__tile--down { margin-top: 1.25rem; }
  .pg-collage__tag { font-size: 0.68rem; padding: 0.3rem 0.6rem; }
}

/* Star-rating picker */
.pg-rating { display: inline-flex; gap: 0.25rem; }
.pg-rating__star {
  background: none; border: 0; cursor: pointer;
  font-size: 1.75rem; line-height: 1;
  color: rgba(255,255,255,0.2);
  transition: color 0.15s ease, transform 0.15s ease;
}
.pg-rating__star:hover { transform: scale(1.15); }
.pg-rating__star.is-on { color: #fb923c; }

/* =========================================================
   Newsletter
   ========================================================= */
.pg-newsletter {
  background:
    radial-gradient(ellipse at 20% 30%, rgba(249,115,22,0.25), transparent 50%),
    radial-gradient(ellipse at 80% 70%, rgba(124,58,237,0.35), transparent 55%),
    linear-gradient(160deg, #0a0e27 0%, #1a1147 100%);
  border-radius: var(--pg-radius-xl);
  padding: 4rem 2rem; position: relative;
  overflow: hidden;
  border: 1px solid var(--pg-line);
}
.pg-newsletter::before {
  content: ''; position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 50px 50px;
  mask-image: radial-gradient(ellipse at center, black 30%, transparent 80%);
}

.pg-input {
  background: rgba(5, 6, 20, 0.55);
  border: 1px solid var(--pg-line-strong);
  border-radius: 999px;
  padding: 0.95rem 1.5rem;
  color: #fff; width: 100%;
  font-family: inherit; font-size: 0.95rem;
  transition: all .3s var(--pg-ease);
}
.pg-input:focus {
  outline: none;
  border-color: var(--pg-sunset);
  box-shadow: 0 0 0 4px rgba(249, 115, 22, 0.15);
}
.pg-input::placeholder { color: rgba(255,255,255,0.45); }

textarea.pg-input { border-radius: 24px; resize: vertical; min-height: 140px; }

/* =========================================================
   Footer
   ========================================================= */
.pg-footer {
  position: relative;
  background:
    radial-gradient(ellipse at top, rgba(124,58,237,0.18), transparent 55%),
    #050614;
  border-top: 1px solid var(--pg-line);
  overflow: hidden;
}
.pg-footer__link {
  color: rgba(255,255,255,0.6); font-size: 0.92rem;
  transition: color .3s var(--pg-ease); display: inline-block;
}
.pg-footer__link:hover { color: var(--pg-sunset); transform: translateX(4px); }
.pg-footer__heading {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 0.78rem; font-weight: 600;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: #fff; margin-bottom: 1.25rem;
}

.pg-social {
  width: 44px; height: 44px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--pg-glass-strong); border: 1px solid var(--pg-line);
  color: #fff; transition: all .35s var(--pg-ease);
}
.pg-social:hover {
  background: var(--pg-grad-sunset);
  border-color: transparent;
  transform: translateY(-4px) rotate(-6deg);
}

/* =========================================================
   Floating buttons
   ========================================================= */
.pg-fab-wa {
  position: fixed; right: 1.5rem; bottom: 1.5rem; z-index: 50;
  width: 60px; height: 60px; border-radius: 50%;
  background: #25d366; color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 18px 40px -8px rgba(37, 211, 102, 0.5);
  transition: transform .3s var(--pg-ease);
  animation: pg-pulse-ring 2.4s ease-in-out infinite;
}
.pg-fab-wa:hover { transform: scale(1.08) rotate(-8deg); }
@keyframes pg-pulse-ring {
  0%, 100% { box-shadow: 0 18px 40px -8px rgba(37, 211, 102, 0.5), 0 0 0 0 rgba(37, 211, 102, 0.5); }
  50% { box-shadow: 0 18px 40px -8px rgba(37, 211, 102, 0.5), 0 0 0 14px rgba(37, 211, 102, 0); }
}

.pg-fab-top {
  position: fixed; right: 1.5rem; bottom: 7rem; z-index: 50;
  width: 48px; height: 48px; border-radius: 50%;
  background: rgba(5,6,20,0.85); backdrop-filter: blur(12px);
  color: #fff; border: 1px solid var(--pg-line-strong);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden;
  transition: all .35s var(--pg-ease);
}
.pg-fab-top.is-visible { opacity: 1; visibility: visible; }
.pg-fab-top:hover { transform: translateY(-4px); background: var(--pg-sunset); }

/* Theme toggle */
.pg-theme-toggle {
  width: 44px; height: 44px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--pg-glass-strong); border: 1px solid var(--pg-line);
  color: #fff; cursor: pointer;
  transition: all .3s var(--pg-ease);
}
.pg-theme-toggle:hover { transform: rotate(20deg); }

/* =========================================================
   Cookies
   ========================================================= */
.pg-cookies {
  position: fixed; bottom: 1.5rem; left: 1.5rem;
  max-width: 380px; z-index: 70;
  padding: 1.25rem 1.5rem;
  background: rgba(5,6,20,0.85);
  backdrop-filter: blur(20px);
  border: 1px solid var(--pg-line-strong);
  border-radius: 22px;
  color: #fff;
  transform: translateY(120%);
  transition: transform .6s var(--pg-ease) .8s;
  box-shadow: var(--pg-shadow-soft);
}
.pg-cookies.is-visible { transform: translateY(0); }

@media (max-width: 640px) {
  .pg-cookies { left: 1rem; right: 1rem; max-width: none; bottom: 1rem; }
  .pg-fab-wa { right: 1rem; bottom: 1rem; width: 52px; height: 52px; }
  .pg-fab-top { right: 1rem; bottom: 5rem; width: 42px; height: 42px; }
}

/* =========================================================
   Quick-Facts Strip + WhatsApp Planner — DARK THEME
   ========================================================= */
.pg-strip {
  position: relative;
  padding: 2.5rem 0 4rem;
  margin-top: 0;
  background: #050614;
  color: #e6e7ee;
  overflow: hidden;
  isolation: isolate;
}
.pg-strip::before {
  content: none;
}
.pg-strip::after {
  content: '';
  position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.08) 50%, transparent);
  z-index: 1;
}
.pg-strip__grid-bg {
  position: absolute; inset: 0;
  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: 56px 56px;
  mask-image: radial-gradient(ellipse 70% 80% at center, black 10%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 70% 80% at center, black 10%, transparent 80%);
  pointer-events: none;
  z-index: 0;
  opacity: .7;
}
.pg-strip__grid-bg::before {
  content: none;
}
.pg-strip__grid-bg::after {
  content: '';
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  opacity: .06;
  mix-blend-mode: overlay;
  pointer-events: none;
}

.pg-strip__plane {
  position: absolute;
  top: -22px; left: 50%;
  transform: translateX(-50%);
  width: 56px; height: 56px;
  border-radius: 50%;
  background: linear-gradient(160deg, rgba(255,255,255,.1), rgba(255,255,255,.03));
  backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(255,255,255,.18);
  box-shadow:
    0 14px 28px -8px rgba(0,0,0,.55),
    inset 0 1px 0 rgba(255,255,255,.25);
  display: flex; align-items: center; justify-content: center;
  z-index: 3;
}
.pg-strip__plane svg { animation: pg-plane-spin 22s linear infinite; }
.pg-strip__plane svg path { fill: rgba(255,255,255,.85); stroke: rgba(255,255,255,.5); }

/* Facts row — single glass strip with internal dividers */
.pg-strip__facts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  background:
    linear-gradient(160deg, rgba(255,255,255,.08), rgba(255,255,255,.02) 60%, rgba(124,58,237,.04));
  backdrop-filter: blur(22px) saturate(180%);
  -webkit-backdrop-filter: blur(22px) saturate(180%);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 24px;
  overflow: hidden;
  box-shadow:
    0 40px 90px -25px rgba(0,0,0,.75),
    0 0 0 1px rgba(255,255,255,.03),
    inset 0 1px 0 rgba(255,255,255,.12);
  margin-top: 1.5rem;
  position: relative;
  z-index: 2;
}
.pg-strip__facts::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 60% 100% at 50% 0%, rgba(255,255,255,.06), transparent 70%);
  pointer-events: none;
}
.pg-strip__facts > .pg-fact { min-width: 0; }
@media (max-width: 880px) {
  .pg-strip__facts { grid-template-columns: repeat(2, 1fr); }
  .pg-strip__facts .pg-fact:nth-child(2) { border-right: none; }
  .pg-strip__facts .pg-fact:nth-child(1),
  .pg-strip__facts .pg-fact:nth-child(2) { border-bottom: 1px solid rgba(255,255,255,.08); }
}
@media (max-width: 480px) {
  .pg-strip__facts { grid-template-columns: 1fr; }
  .pg-strip__facts .pg-fact { border-right: none; border-bottom: 1px solid rgba(255,255,255,.08); }
  .pg-strip__facts .pg-fact:last-child { border-bottom: none; }
}

.pg-fact {
  padding: 1.6rem 1.75rem;
  border-right: 1px solid rgba(255,255,255,.08);
  display: flex; flex-direction: column; justify-content: center;
  background: transparent;
  position: relative;
  transition: background .35s var(--pg-ease);
}
.pg-fact:hover {
  background: rgba(255,255,255,.04);
}
.pg-fact:last-child { border-right: none; }
.pg-fact__num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(1.65rem, 2.4vw, 2.2rem);
  font-weight: 700;
  background: var(--pg-grad-sunset);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  letter-spacing: -0.025em;
  line-height: 1;
}
.pg-fact__label {
  margin-top: 8px;
  font-size: .8rem;
  color: rgba(255,255,255,.55);
  font-weight: 500;
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: .08em;
}

/* Rating cell — gold stars + 4.9/5 */
.pg-fact__rating {
  display: flex; align-items: center; gap: .55rem;
  background: none !important; -webkit-text-fill-color: initial;
  color: #fff;
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(1.1rem, 1.6vw, 1.4rem);
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1;
}
.pg-fact__stars {
  color: #fbbf24;
  font-size: 1.05rem;
  letter-spacing: -0.06em;
  text-shadow: 0 0 12px rgba(251,191,36,.55);
}
.pg-fact__rating-num {
  background: var(--pg-grad-sunset);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* Marquee cell — distinct dark with violet→sunset gradient bar */
.pg-fact--marquee {
  padding: 0;
  background:
    linear-gradient(135deg, rgba(124,58,237,.22) 0%, rgba(249,115,22,.18) 100%),
    rgba(5,6,20,.65);
  position: relative;
  overflow: hidden;
  border-right: none;
}
.pg-fact-marquee {
  width: 100%; height: 100%;
  display: flex; align-items: center;
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, black 6%, black 94%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, black 6%, black 94%, transparent);
}
.pg-fact-marquee__track {
  display: flex; gap: 2.5rem;
  white-space: nowrap;
  animation: pg-fact-marquee 30s linear infinite;
}
.pg-fact-marquee__track span {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1.2rem;
  font-weight: 500;
  color: rgba(255,255,255,.92);
  padding: 0 1rem;
  letter-spacing: 0.005em;
  text-shadow: 0 2px 14px rgba(124,58,237,.3);
}
@keyframes pg-fact-marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Planner — dark glass */
.pg-planner {
  display: grid;
  grid-template-columns: 1.2fr 1.2fr 0.8fr auto;
  gap: 1rem;
  align-items: end;
  margin-top: 1.25rem;
  padding: 1.35rem 1.35rem;
  background:
    linear-gradient(160deg, rgba(255,255,255,.08), rgba(255,255,255,.02) 60%, rgba(249,115,22,.04));
  backdrop-filter: blur(22px) saturate(180%);
  -webkit-backdrop-filter: blur(22px) saturate(180%);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 24px;
  box-shadow:
    0 40px 90px -25px rgba(0,0,0,.75),
    0 0 0 1px rgba(255,255,255,.03),
    inset 0 1px 0 rgba(255,255,255,.12);
  position: relative;
  z-index: 2;
  overflow: hidden;
}
@media (max-width: 880px) {
  .pg-planner { grid-template-columns: 1fr 1fr; }
  .pg-planner__cta { grid-column: span 2; }
}
@media (max-width: 560px) {
  .pg-planner { grid-template-columns: 1fr; }
  .pg-planner__cta { grid-column: span 1; }
}

.pg-planner__field { display: flex; flex-direction: column; gap: 6px; }
.pg-planner__label {
  font-size: .72rem; font-weight: 700;
  color: var(--pg-sunset);
  letter-spacing: .14em;
  text-transform: uppercase;
}
.pg-planner__select {
  width: 100%;
  padding: .9rem 1rem;
  background: rgba(5,6,20,.55);
  border: 1px solid var(--pg-line-strong);
  border-radius: 12px;
  font-family: inherit;
  font-size: .95rem;
  color: #fff;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23f97316' stroke-width='2.5' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  transition: border-color .25s var(--pg-ease), box-shadow .25s var(--pg-ease), background-color .25s var(--pg-ease);
}
.pg-planner__select:focus,
.pg-planner__select:hover {
  outline: none;
  border-color: var(--pg-sunset);
  box-shadow: 0 0 0 4px rgba(249,115,22,.15);
}
.pg-planner__select option { background: var(--pg-night); color: #fff; }
input.pg-planner__select { background-image: none; cursor: text; }

/* WhatsApp green CTA — kept WA-green for instant recognition */
.pg-planner__cta {
  display: inline-flex; align-items: center; gap: .6rem;
  padding: .95rem 1.7rem;
  background: linear-gradient(135deg, #25d366 0%, #1ebe5b 100%);
  color: #fff;
  border-radius: 14px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: .95rem;
  font-weight: 700;
  letter-spacing: -0.005em;
  cursor: pointer;
  border: none;
  transition: all .3s var(--pg-ease);
  box-shadow:
    0 14px 30px -8px rgba(37,211,102,.55),
    0 0 0 1px rgba(255,255,255,.08);
  position: relative;
  isolation: isolate;
}
.pg-planner__cta::after {
  content: ''; position: absolute; inset: -3px;
  border-radius: inherit;
  background: radial-gradient(circle, rgba(37,211,102,.5), transparent 65%);
  z-index: -1; filter: blur(14px); opacity: .65;
  animation: pg-pulse-soft 2.4s ease-in-out infinite;
}
.pg-planner__cta:hover {
  transform: translateY(-2px);
  box-shadow:
    0 18px 40px -8px rgba(37,211,102,.75),
    0 0 0 1px rgba(255,255,255,.12);
}
.pg-planner__cta svg { transition: transform .3s var(--pg-ease); }
.pg-planner__cta:hover svg { transform: rotate(-8deg) scale(1.1); }

/* =========================================================
   Marquee
   ========================================================= */
.pg-marquee {
  display: flex; overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, black 10%, black 90%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, black 10%, black 90%, transparent);
}
.pg-marquee__track {
  display: flex; gap: 3rem; align-items: center;
  animation: pg-marquee 35s linear infinite;
  white-space: nowrap;
}
@keyframes pg-marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.pg-marquee__item {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.25rem, 5vw, 4rem);
  font-style: italic; font-weight: 500;
  color: rgba(255,255,255,0.85);
  display: inline-flex; align-items: center; gap: 3rem;
}
.pg-marquee__star {
  color: var(--pg-sunset);
  display: inline-flex; align-items: center;
}

/* =========================================================
   FAQ
   ========================================================= */
.pg-faq-item {
  border-radius: 20px;
  border: 1px solid var(--pg-line);
  background: rgba(255,255,255,0.025);
  overflow: hidden;
  transition: all .35s var(--pg-ease);
}
.pg-faq-item.is-open {
  border-color: rgba(249, 115, 22, 0.35);
  background: rgba(249, 115, 22, 0.04);
}
.pg-faq-item summary {
  cursor: pointer; padding: 1.5rem 1.75rem;
  display: flex; align-items: center; justify-content: space-between;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.05rem; font-weight: 600; color: #fff;
  list-style: none;
}
.pg-faq-item summary::-webkit-details-marker { display: none; }
.pg-faq-item__icon {
  width: 32px; height: 32px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.06); flex-shrink: 0;
  transition: transform .35s var(--pg-ease);
}
.pg-faq-item.is-open .pg-faq-item__icon { transform: rotate(45deg); background: var(--pg-sunset); }
.pg-faq-item__body {
  padding: 0 1.75rem 1.5rem;
  color: rgba(255,255,255,0.7);
  line-height: 1.65;
}

/* =========================================================
   Timeline (How to Book)
   ========================================================= */
.pg-timeline {
  position: relative;
}
.pg-timeline::before {
  content: ''; position: absolute;
  left: 28px; top: 0; bottom: 0; width: 2px;
  background: linear-gradient(180deg, var(--pg-sunset), var(--pg-violet), transparent);
}
@media (min-width: 768px) {
  .pg-timeline::before { left: 50%; transform: translateX(-50%); }
}
.pg-tl-step {
  position: relative; padding-left: 80px;
  margin-bottom: 3rem;
}
@media (min-width: 768px) {
  .pg-tl-step { padding-left: 0; width: 50%; }
  .pg-tl-step:nth-child(even) { margin-left: 50%; padding-left: 60px; }
  .pg-tl-step:nth-child(odd) { padding-right: 60px; text-align: right; }
}
.pg-tl-step__num {
  position: absolute; left: 0; top: 0;
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--pg-grad-sunset); color: #fff;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.25rem; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 14px 28px -8px rgba(249,115,22,.55);
  z-index: 2;
}
@media (min-width: 768px) {
  .pg-tl-step__num { left: 50%; transform: translateX(-50%); }
}

/* =========================================================
   Gallery
   ========================================================= */
.pg-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  grid-auto-rows: 240px;
  grid-auto-flow: dense;
  gap: 1rem;
}
.pg-gallery-item {
  position: relative; overflow: hidden; border-radius: 22px;
  cursor: pointer; background: var(--pg-twilight);
}
.pg-gallery-item img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1s var(--pg-ease);
}
.pg-gallery-item:hover img { transform: scale(1.1); }
.pg-gallery-item--tall { grid-row: span 2; }
.pg-gallery-item--wide { grid-column: span 2; }
.pg-gallery-item::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(5,6,20,0.7) 100%);
  opacity: 0; transition: opacity .4s var(--pg-ease);
}
.pg-gallery-item:hover::after { opacity: 1; }

/* Filter chips */
.pg-chip {
  padding: 0.55rem 1.1rem; border-radius: 999px;
  background: var(--pg-glass-strong);
  border: 1px solid var(--pg-line);
  color: rgba(255,255,255,0.7);
  font-size: 0.85rem; font-weight: 500;
  cursor: pointer; transition: all .3s var(--pg-ease);
}
.pg-chip:hover { color: #fff; border-color: rgba(255,255,255,0.2); }
.pg-chip.is-active {
  background: var(--pg-grad-sunset);
  color: #fff; border-color: transparent;
}

/* ==========  Lightbox (Pro)  ========== */
.pg-lightbox {
  position: fixed; inset: 0; z-index: 90;
  display: flex; align-items: center; justify-content: center;
  padding: 2rem;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s var(--pg-ease), visibility 0s linear .35s;
}
.pg-lightbox.is-open {
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
  transition: opacity .4s var(--pg-ease), visibility 0s linear 0s;
}
.pg-lightbox__backdrop {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at center, rgba(15,8,30,0.92) 0%, rgba(5,6,20,0.97) 100%);
  backdrop-filter: blur(24px) saturate(160%);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  transform: scale(1.08);
  opacity: 0;
  transition: transform .55s var(--pg-ease), opacity .35s var(--pg-ease);
}
.pg-lightbox.is-open .pg-lightbox__backdrop {
  transform: scale(1);
  opacity: 1;
}

/* Top bar — counter + caption + close */
.pg-lightbox__topbar {
  position: absolute; top: 0; left: 0; right: 0;
  z-index: 3;
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.25rem 1.5rem;
  background: linear-gradient(180deg, rgba(0,0,0,.55), transparent);
  pointer-events: none;
}
.pg-lightbox__topbar > * { pointer-events: auto; }
.pg-lightbox__meta {
  display: inline-flex; align-items: center; gap: .85rem;
  color: rgba(255,255,255,0.9);
  font-size: .9rem;
  opacity: 0; transform: translateY(-10px);
  transition: opacity .5s var(--pg-ease) .15s, transform .5s var(--pg-ease) .15s;
}
.pg-lightbox.is-open .pg-lightbox__meta { opacity: 1; transform: translateY(0); }
.pg-lightbox__counter {
  font-family: 'JetBrains Mono', monospace;
  font-size: .78rem;
  letter-spacing: .08em;
  padding: .35rem .65rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  border: 1px solid var(--pg-line-strong);
  color: rgba(255,255,255,0.85);
}
.pg-lightbox__divider {
  display: inline-block;
  width: 1px; height: 18px;
  background: rgba(255,255,255,0.18);
}
.pg-lightbox__caption {
  font-weight: 500;
  letter-spacing: -.005em;
  color: rgba(255,255,255,0.88);
  max-width: 60vw;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.pg-lightbox__close {
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,0.08);
  border: 1px solid var(--pg-line-strong);
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  opacity: 0; transform: scale(.7) rotate(-45deg);
  transition: background .25s, transform .45s var(--pg-ease) .2s, opacity .35s var(--pg-ease) .2s;
}
.pg-lightbox.is-open .pg-lightbox__close { opacity: 1; transform: scale(1) rotate(0); }
.pg-lightbox__close:hover { background: rgba(255,255,255,0.18); transform: scale(1.06) rotate(90deg); }

/* Stage — image area with FLIP-friendly clone target */
.pg-lightbox__stage {
  position: relative;
  z-index: 2;
  width: min(92vw, 1400px);
  height: min(82vh, 900px);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  cursor: zoom-in;
  touch-action: none;
}
.pg-lightbox__stage.is-zoomed { cursor: grab; }
.pg-lightbox__stage.is-panning { cursor: grabbing; }
.pg-lightbox img {
  max-width: 100%; max-height: 100%;
  border-radius: 18px;
  transform-origin: center center;
  user-select: none; -webkit-user-drag: none;
  will-change: transform, opacity;
  box-shadow: 0 40px 100px -20px rgba(0,0,0,.7), 0 0 0 1px rgba(255,255,255,.06);
  opacity: 0;
  transform: scale(.92) translateY(20px);
  transition: opacity .45s var(--pg-ease), transform .55s var(--pg-ease);
}
.pg-lightbox.is-open img.is-loaded {
  opacity: 1;
  transform: scale(1) translateY(0);
}
.pg-lightbox__stage.is-zooming img,
.pg-lightbox__stage.is-zoomed img { transition: transform .25s var(--pg-ease); }
.pg-lightbox__stage.is-panning img { transition: none; }

/* Loading spinner */
.pg-lightbox__spinner {
  position: absolute; top: 50%; left: 50%;
  width: 42px; height: 42px;
  margin: -21px 0 0 -21px;
  border-radius: 50%;
  border: 3px solid rgba(255,255,255,0.14);
  border-top-color: var(--pg-sunset);
  animation: pg-spin 0.85s linear infinite;
  opacity: 0;
  transition: opacity .25s;
  pointer-events: none;
}
.pg-lightbox__stage.is-loading .pg-lightbox__spinner { opacity: 1; }
@keyframes pg-spin { to { transform: rotate(360deg); } }

/* Prev/next nav */
.pg-lightbox__nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 52px; height: 52px; border-radius: 50%;
  background: rgba(255,255,255,0.08);
  border: 1px solid var(--pg-line-strong);
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  z-index: 3;
  backdrop-filter: blur(10px);
  opacity: 0;
  transition: background .25s var(--pg-ease), transform .45s var(--pg-ease) .25s, opacity .35s var(--pg-ease) .25s;
}
.pg-lightbox__nav--prev { left: 1.5rem; transform: translate(-12px, -50%); }
.pg-lightbox__nav--next { right: 1.5rem; transform: translate(12px, -50%); }
.pg-lightbox.is-open .pg-lightbox__nav { opacity: 1; transform: translateY(-50%); }
.pg-lightbox__nav:hover {
  background: rgba(255,255,255,0.18);
  transform: translateY(-50%) scale(1.08);
}
.pg-lightbox__nav--prev:hover { transform: translateY(-50%) scale(1.08) translateX(-3px); }
.pg-lightbox__nav--next:hover { transform: translateY(-50%) scale(1.08) translateX(3px); }
@media (max-width: 640px) {
  .pg-lightbox__nav { width: 42px; height: 42px; }
  .pg-lightbox__nav--prev { left: .5rem; }
  .pg-lightbox__nav--next { right: .5rem; }
  .pg-lightbox__caption { max-width: 40vw; font-size: .82rem; }
}

/* Bottom zoom dock */
.pg-lightbox__zoom {
  position: absolute; bottom: 1.5rem; left: 50%;
  z-index: 3;
  display: inline-flex; align-items: center; gap: .25rem;
  padding: .4rem .55rem;
  background: rgba(255,255,255,0.08);
  border: 1px solid var(--pg-line-strong);
  border-radius: 999px;
  backdrop-filter: blur(14px);
  opacity: 0;
  transform: translate(-50%, 30px);
  transition: opacity .4s var(--pg-ease) .25s, transform .55s var(--pg-ease) .25s;
}
.pg-lightbox.is-open .pg-lightbox__zoom {
  opacity: 1;
  transform: translate(-50%, 0);
}
.pg-lightbox__zoom .pg-lightbox__divider { margin: 0 .2rem; height: 20px; }
.pg-lightbox__btn {
  width: 36px; height: 36px; border-radius: 50%;
  background: transparent;
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background .2s var(--pg-ease), transform .2s var(--pg-ease);
}
.pg-lightbox__btn:hover { background: rgba(255,255,255,0.14); transform: scale(1.08); }
.pg-lightbox__btn:active { transform: scale(.92); }
.pg-lightbox__level {
  min-width: 56px; text-align: center;
  font-size: .82rem; font-weight: 600;
  color: rgba(255,255,255,0.92);
  font-variant-numeric: tabular-nums;
  font-family: 'JetBrains Mono', monospace;
}

/* FLIP origin clone — animates from thumbnail to centered image */
.pg-lightbox__ghost {
  position: fixed; z-index: 91;
  background-size: cover;
  background-position: center;
  border-radius: 14px;
  box-shadow: 0 40px 100px -20px rgba(0,0,0,.7);
  pointer-events: none;
  will-change: transform, border-radius;
}

/* Thumbnail polish */
.pg-gallery-item { cursor: zoom-in; }
.pg-gallery-item::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.45) 100%);
  opacity: 0;
  transition: opacity .35s var(--pg-ease);
  pointer-events: none;
}
.pg-gallery-item:hover::after { opacity: 1; }
.pg-gallery-item.is-source img { opacity: 0; }

/* =========================================================
   Animations & Reveals
   ========================================================= */
.pg-fade-up { opacity: 0; transform: translateY(40px); }
.pg-fade-up.is-visible {
  opacity: 1; transform: translateY(0);
  transition: opacity .8s var(--pg-ease), transform .8s var(--pg-ease);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* Page transitions */
.pg-page-transition {
  position: fixed; inset: 0; z-index: 9998;
  background: var(--pg-ink);
  transform: translateY(100%);
  pointer-events: none;
}
.pg-page-transition.is-active {
  transform: translateY(0);
  transition: transform .5s var(--pg-ease);
}

/* Pin ribbon */
.pg-ribbon {
  position: fixed; top: 0; left: 0; right: 0; z-index: 70;
  padding: 0.55rem 1rem; text-align: center;
  background: var(--pg-grad-sunset);
  color: #fff; font-size: 0.82rem; font-weight: 600;
  letter-spacing: 0.03em;
  transform: translateY(-100%);
  transition: transform .5s var(--pg-ease);
}
.pg-ribbon.is-visible { transform: translateY(0); }
.pg-ribbon .close {
  position: absolute; right: 1rem; top: 50%; transform: translateY(-50%);
  cursor: pointer; opacity: 0.85;
}

/* Hover glow */
.pg-glow-hover { position: relative; }
.pg-glow-hover::before {
  content: ''; position: absolute; inset: -2px; z-index: -1;
  border-radius: inherit;
  background: var(--pg-grad-aurora);
  opacity: 0; filter: blur(20px);
  transition: opacity .4s var(--pg-ease);
}
.pg-glow-hover:hover::before { opacity: 0.6; }

/* Map placeholder */
.pg-map {
  border-radius: var(--pg-radius-lg);
  overflow: hidden;
  border: 1px solid var(--pg-line);
  filter: hue-rotate(180deg) invert(0.92);
}

/* =========================================================
   Nav Dropdown ("Our Trip")
   ========================================================= */
.pg-has-dropdown { position: relative; }
.pg-nav__link--dropdown { display: inline-flex; align-items: center; gap: 6px; }
.pg-nav__link--dropdown svg { transition: transform .35s var(--pg-ease); }
.pg-has-dropdown:hover .pg-nav__link--dropdown svg { transform: rotate(180deg); }

.pg-dropdown {
  position: absolute; top: calc(100% + 18px); left: 50%;
  width: min(680px, 92vw);
  transform: translate(-50%, 10px);
  opacity: 0; visibility: hidden; pointer-events: none;
  background: rgba(10, 14, 39, 0.92);
  backdrop-filter: blur(28px) saturate(180%);
  -webkit-backdrop-filter: blur(28px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 24px;
  box-shadow: 0 30px 80px -20px rgba(0,0,0,.75);
  transition: opacity .35s var(--pg-ease), transform .35s var(--pg-ease), visibility .35s;
  z-index: 80;
}
.pg-dropdown::before {
  content: ''; position: absolute; top: -8px; left: 50%; transform: translateX(-50%) rotate(45deg);
  width: 16px; height: 16px;
  background: rgba(10, 14, 39, 0.92);
  border-left: 1px solid rgba(255,255,255,.12);
  border-top: 1px solid rgba(255,255,255,.12);
}
.pg-has-dropdown:hover .pg-dropdown,
.pg-has-dropdown:focus-within .pg-dropdown {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translate(-50%, 0);
}
.pg-dropdown__inner {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;
  padding: 1.25rem;
}
.pg-dropdown__col { display: flex; flex-direction: column; gap: 4px; }
.pg-dropdown__eyebrow {
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--pg-sunset);
  padding: 0.5rem 0.75rem 0.4rem;
}
.pg-dropdown__item {
  display: flex; align-items: center; gap: 0.9rem;
  padding: 0.75rem 0.85rem; border-radius: 14px;
  color: rgba(255,255,255,0.88);
  transition: all .3s var(--pg-ease);
  border: 1px solid transparent;
}
.pg-dropdown__item:hover {
  background: linear-gradient(135deg, rgba(249,115,22,.18), rgba(124,58,237,.18));
  border-color: rgba(255,255,255,.1);
  transform: translateX(4px);
}
.pg-dropdown__emoji {
  width: 38px; height: 38px; border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.06); font-size: 1.1rem; flex-shrink: 0;
  border: 1px solid rgba(255,255,255,.08);
}
.pg-dropdown__title {
  display: block; font-family: 'Space Grotesk', sans-serif;
  font-weight: 600; font-size: 0.95rem; color: #fff; letter-spacing: -0.01em;
}
.pg-dropdown__sub {
  display: block; font-size: 0.78rem; color: rgba(255,255,255,.55);
  margin-top: 2px;
}
.pg-dropdown__item--cta {
  background: linear-gradient(135deg, rgba(249,115,22,.16), rgba(124,58,237,.16));
  margin-top: 6px; border-color: rgba(249,115,22,.25);
}

/* =========================================================
   Sky Travel (clouds, plane, flight path)
   ========================================================= */
.pg-skyway {
  position: absolute; top: 0; left: 0; right: 0;
  height: 100%; min-height: 100vh;
  pointer-events: none; z-index: 0;
  overflow: hidden;
}
.pg-skyway__path {
  position: absolute; top: 0; left: 0;
  width: 100%; height: 100%;
  opacity: 0.45;
  pointer-events: none;
}
@media (max-width: 768px) { .pg-skyway__path { opacity: 0.25; } }

/* The traveling airplane */
.pg-plane {
  position: absolute;
  top: 0; left: 0;
  width: 56px; height: 56px;
  filter: drop-shadow(0 8px 20px rgba(249,115,22,.55));
  z-index: 2;
  will-change: transform;
}
.pg-plane svg { display: block; }
.pg-plane__trail {
  position: absolute; right: 100%; top: 50%;
  width: 80px; height: 2px;
  background: linear-gradient(90deg, rgba(251,113,133,0), rgba(251,113,133,.85));
  border-radius: 999px; transform: translateY(-50%);
  filter: blur(.6px);
}

/* Drifting clouds */
.pg-cloud {
  position: absolute;
  width: 220px; height: 80px;
  background: radial-gradient(ellipse at center, rgba(255,255,255,.10), rgba(255,255,255,0) 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: pg-cloud-drift 38s linear infinite;
}
.pg-cloud--1 { top: 18%; left: -240px; animation-delay: 0s; }
.pg-cloud--2 { top: 55%; left: -260px; width: 320px; height: 110px; animation-delay: -12s; animation-duration: 48s; }
.pg-cloud--3 { top: 78%; left: -200px; width: 180px; height: 70px; animation-delay: -24s; animation-duration: 42s; }
.pg-cloud--4 { top: 33%; left: -300px; width: 280px; height: 90px; animation-delay: -6s; animation-duration: 55s; }
@keyframes pg-cloud-drift {
  0%   { transform: translateX(0); }
  100% { transform: translateX(calc(100vw + 340px)); }
}

/* Hero plane — loops with bobbing */
.pg-hero-plane {
  position: absolute;
  top: 14%; right: 6%;
  width: 120px; height: 120px;
  z-index: 3;
  animation: pg-hero-plane-loop 14s ease-in-out infinite;
  filter: drop-shadow(0 14px 30px rgba(251,191,36,.4));
  pointer-events: none;
}
.pg-hero-plane svg { display: block; }
@keyframes pg-hero-plane-loop {
  0%   { transform: translate(0,0) rotate(-4deg); }
  25%  { transform: translate(-60px, 30px) rotate(2deg); }
  50%  { transform: translate(-180px, 60px) rotate(8deg); }
  60%  { transform: translate(-220px, 50px) rotate(-2deg); opacity: 0.85; }
  61%  { opacity: 0; }
  62%  { transform: translate(220px, -80px) rotate(-12deg); opacity: 0; }
  70%  { opacity: 1; }
  100% { transform: translate(0,0) rotate(-4deg); }
}

@media (max-width: 1024px) {
  .pg-hero-plane { width: 80px; height: 80px; top: 8%; }
}
@media (max-width: 768px) {
  .pg-hero-plane { display: none; }
  .pg-plane { width: 40px; height: 40px; }
  .pg-plane svg { width: 40px; height: 40px; }
}

/* =========================================================
   Trip Category Cards (Bento)
   ========================================================= */
.pg-cat-chip {
  padding: 0.55rem 1.1rem; border-radius: 999px;
  background: var(--pg-glass-strong);
  border: 1px solid var(--pg-line);
  color: rgba(255,255,255,.7);
  font-size: 0.85rem; font-weight: 600; letter-spacing: 0.02em;
  cursor: pointer; transition: all .3s var(--pg-ease);
}
.pg-cat-chip span { color: rgba(255,255,255,.45); margin-left: 4px; }
.pg-cat-chip:hover { color: #fff; transform: translateY(-2px); }
.pg-cat-chip.is-active {
  background: var(--pg-grad-sunset);
  color: #fff; border-color: transparent;
  box-shadow: 0 12px 28px -8px rgba(249,115,22,.55);
}
.pg-cat-chip.is-active span { color: rgba(255,255,255,.85); }

.pg-cat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.1rem;
  grid-auto-rows: 280px;
  grid-auto-flow: dense;
}
@media (max-width: 1024px) {
  .pg-cat-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 260px; }
}
@media (max-width: 560px) {
  .pg-cat-grid { grid-template-columns: 1fr; grid-auto-rows: 280px; }
}

.pg-cat {
  position: relative; display: block;
  border-radius: var(--pg-radius-lg);
  overflow: hidden; isolation: isolate;
  background: var(--pg-twilight);
  border: 1px solid var(--pg-line);
  transition: transform .6s var(--pg-ease), border-color .4s var(--pg-ease), box-shadow .5s var(--pg-ease);
  cursor: pointer;
  transform-style: preserve-3d;
}
.pg-cat--feature { grid-column: span 2; grid-row: span 2; }
.pg-cat--wide { grid-column: span 2; }
@media (max-width: 1024px) {
  .pg-cat--feature { grid-row: span 2; }
}
@media (max-width: 560px) {
  .pg-cat--feature, .pg-cat--wide { grid-column: span 1; grid-row: span 1; }
}

.pg-cat img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.6s var(--pg-ease), filter .6s var(--pg-ease);
  filter: saturate(1.05) brightness(0.85);
  z-index: 0;
}
.pg-cat:hover img { transform: scale(1.08); filter: saturate(1.2) brightness(0.95); }

.pg-cat__overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(5,6,20,0) 30%, rgba(5,6,20,0.55) 65%, rgba(5,6,20,0.94) 100%);
}
.pg-cat__overlay--warm {
  background: linear-gradient(180deg, rgba(249,115,22,0) 30%, rgba(249,115,22,0.25) 60%, rgba(5,6,20,0.95) 100%);
}
.pg-cat__overlay--pink {
  background: linear-gradient(180deg, rgba(251,113,133,0) 30%, rgba(251,113,133,0.22) 60%, rgba(5,6,20,0.95) 100%);
}
.pg-cat__overlay--cool {
  background: linear-gradient(180deg, rgba(56,189,248,0) 30%, rgba(56,189,248,0.22) 60%, rgba(5,6,20,0.95) 100%);
}

.pg-cat__plane {
  position: absolute; top: 18px; right: 18px;
  width: 42px; height: 42px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 12px;
  background: rgba(5,6,20,.55);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.16);
  font-size: 1.1rem;
  z-index: 3;
  transition: transform .5s var(--pg-ease);
}
.pg-cat:hover .pg-cat__plane {
  transform: translate(8px, -8px) rotate(-12deg) scale(1.08);
  background: rgba(249,115,22,.85); border-color: transparent;
}

.pg-cat__body {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 1.5rem 1.5rem 1.6rem;
  z-index: 2;
  color: #fff;
}
.pg-cat--feature .pg-cat__body { padding: 2rem 2rem 2.1rem; }

.pg-cat__tag {
  display: inline-block;
  padding: 0.3rem 0.7rem; border-radius: 999px;
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.16em;
  text-transform: uppercase;
  background: rgba(255,255,255,.95); color: #0a0e27;
  margin-bottom: 0.85rem;
}
.pg-cat__title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.55rem; font-weight: 700;
  letter-spacing: -0.02em; line-height: 1.05;
  margin-bottom: 6px;
}
.pg-cat--feature .pg-cat__title { font-size: 2.4rem; }
.pg-cat--wide .pg-cat__title { font-size: 1.9rem; }
.pg-cat__desc {
  font-size: 0.88rem; line-height: 1.5;
  color: rgba(255,255,255,.78);
  max-height: 0; opacity: 0; overflow: hidden;
  transition: max-height .5s var(--pg-ease), opacity .5s var(--pg-ease), margin .4s var(--pg-ease);
}
.pg-cat:hover .pg-cat__desc { max-height: 200px; opacity: 1; margin-top: 6px; }
.pg-cat--feature .pg-cat__desc,
.pg-cat--wide .pg-cat__desc {
  max-height: 200px; opacity: 1; margin-top: 6px;
}

.pg-cat__meta {
  display: flex; gap: 1rem; flex-wrap: wrap;
  font-size: 0.78rem; color: rgba(255,255,255,.7);
  margin-top: 10px;
}
.pg-cat__cta {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 12px;
  font-size: 0.85rem; font-weight: 600; letter-spacing: 0.02em;
  color: #fff;
  border-bottom: 1px solid transparent;
  padding-bottom: 2px;
  transition: border-color .35s var(--pg-ease), gap .35s var(--pg-ease);
}
.pg-cat:hover .pg-cat__cta {
  border-color: var(--pg-sunset);
  gap: 12px;
}

.pg-cat:hover {
  transform: translateY(-6px);
  border-color: rgba(255,255,255,.18);
  box-shadow: 0 30px 60px -20px rgba(124,58,237,.45);
}

.pg-cat[data-hidden="true"] {
  display: none !important;
}

/* Magnetic CTA helper */
.pg-magnet { transition: transform .25s var(--pg-ease); }

/* =========================================================
   About — Professional Planners (Paradise on Earth style)
   ========================================================= */
:root {
  --pg-teal:        #14b8a6;
  --pg-teal-soft:   #2dd4bf;
  --pg-teal-deep:   #0d9488;
}

.pg-about-pro { position: relative; overflow: hidden; }
.pg-about-pro__path {
  position: absolute; top: 8%; right: 0; width: 50%; height: 220px;
  pointer-events: none; opacity: .65;
}

/* ---------- Two-blob visual stack ---------- */
.pg-about-pro__visual {
  position: relative;
  min-height: 540px;
  padding: 1rem;
}
@media (max-width: 1024px) { .pg-about-pro__visual { min-height: 440px; } }
@media (max-width: 640px)  { .pg-about-pro__visual { min-height: 360px; padding: 0; } }

.pg-blob {
  position: absolute; overflow: hidden;
  border: 6px solid rgba(255,255,255,.06);
  box-shadow:
    0 30px 80px -20px rgba(20,184,166,.35),
    0 10px 30px -10px rgba(0,0,0,.55);
  isolation: isolate;
  transition: transform 1s var(--pg-ease);
}
.pg-blob img {
  width: 100%; height: 100%; object-fit: cover;
  display: block;
  transition: transform 1.6s var(--pg-ease);
}
.pg-blob:hover img { transform: scale(1.08); }

/* Big organic blob — sailboat */
.pg-blob--lg {
  top: 0; left: 0;
  width: 55%; aspect-ratio: 3/4;
  border-radius: 56% 44% 60% 40% / 50% 60% 40% 50%;
  animation: pg-blob-morph 18s ease-in-out infinite;
}
/* Smaller blob — landmark */
.pg-blob--sm {
  bottom: 0; right: 0;
  width: 45%; aspect-ratio: 3/4;
  border-radius: 60% 40% 50% 50% / 40% 50% 50% 60%;
  animation: pg-blob-morph2 20s ease-in-out infinite;
}
@keyframes pg-blob-morph {
  0%,100% { border-radius: 56% 44% 60% 40% / 50% 60% 40% 50%; }
  50%     { border-radius: 48% 52% 44% 56% / 60% 44% 56% 40%; }
}
@keyframes pg-blob-morph2 {
  0%,100% { border-radius: 60% 40% 50% 50% / 40% 50% 50% 60%; }
  50%     { border-radius: 46% 54% 60% 40% / 56% 40% 60% 44%; }
}

@media (max-width: 640px) {
  .pg-blob--lg { width: 70%; left: 0; }
  .pg-blob--sm { width: 50%; right: 0; }
}

/* Decorative dots */
.pg-blob__dot {
  position: absolute; width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--pg-teal-soft);
  box-shadow: 0 0 16px var(--pg-teal-soft);
  animation: pg-pulse 2.6s ease-in-out infinite;
}
.pg-blob__dot--1 { top: 6%;  right: 8%; }
.pg-blob__dot--2 { bottom: 22%; left: 2%; width: 8px; height: 8px; background: #fb7185; box-shadow: 0 0 14px #fb7185; animation-delay: .6s; }
.pg-blob__dot--3 { top: 48%; right: 2%; width: 10px; height: 10px; background: #fbbf24; box-shadow: 0 0 14px #fbbf24; animation-delay: 1.2s; }

/* "Paradise on Earth" floating pill badge */
.pg-paradise-badge {
  position: absolute; top: 4%; left: 38%;
  display: inline-flex; align-items: center; gap: .65rem;
  padding: .65rem .95rem .65rem .6rem;
  background: #fff;
  color: #0a0e27;
  border-radius: 999px;
  box-shadow: 0 18px 45px -10px rgba(0,0,0,.4), 0 0 0 1px rgba(255,255,255,.4);
  font-weight: 600; font-size: .9rem;
  animation: pg-float-soft 5s ease-in-out infinite;
  z-index: 3;
  white-space: nowrap;
}
.pg-paradise-badge__pin {
  width: 28px; height: 28px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--pg-teal); color: #fff;
}
@media (max-width: 640px) {
  .pg-paradise-badge { left: auto; right: 4%; top: 4%; font-size: .78rem; padding: .5rem .8rem .5rem .5rem; }
  .pg-paradise-badge__pin { width: 24px; height: 24px; }
}
@keyframes pg-float-soft {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-10px); }
}

/* ---------- Right-side content ---------- */
.pg-about-pro__eyebrow {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic; font-weight: 500;
  font-size: 1.4rem;
  letter-spacing: .35em;
  text-transform: uppercase;
  color: var(--pg-teal-soft);
  position: relative;
  display: inline-block;
  padding-left: 38px;
}
.pg-about-pro__eyebrow::before {
  content: '';
  position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 28px; height: 2px;
  background: var(--pg-teal-soft);
  border-radius: 2px;
}

.pg-about-pro__title {
  font-family: 'Cormorant Garamond', 'Space Grotesk', serif;
  font-size: clamp(2.25rem, 4.2vw, 3.6rem);
  font-weight: 600; line-height: 1.05;
  letter-spacing: -0.02em;
  color: #fff;
}
.pg-about-pro__accent {
  display: inline; position: relative;
  background: linear-gradient(135deg, var(--pg-teal-soft) 0%, var(--pg-teal) 50%, #5eead4 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}

.pg-about-pro__lead {
  display: flex; align-items: flex-start; gap: 1rem;
}
.pg-about-pro__lead-line {
  flex-shrink: 0;
  display: inline-block;
  width: 40px; height: 2px;
  background: var(--pg-teal-soft);
  border-radius: 2px;
  margin-top: 14px;
}
.pg-about-pro__lead p {
  color: rgba(255,255,255,.72);
  font-size: 1.02rem; line-height: 1.7;
}

.pg-direct-call {
  display: inline-block;
  color: var(--pg-teal-soft);
  font-size: 1.02rem; font-weight: 500;
  line-height: 1.5;
  letter-spacing: -0.005em;
  border-bottom: 1px dashed rgba(45,212,191,.45);
  padding-bottom: 6px;
  transition: color .3s var(--pg-ease), border-color .3s var(--pg-ease);
}
.pg-direct-call strong { font-weight: 700; color: #5eead4; }
.pg-direct-call:hover {
  color: #5eead4;
  border-bottom-color: var(--pg-teal-soft);
}

/* Teal check-list */
.pg-check-list {
  display: grid; gap: 14px;
  margin-top: 0;
}
.pg-check-list li {
  display: flex; align-items: center; gap: 14px;
  color: rgba(255,255,255,.85);
  font-size: 1rem;
}
.pg-check-list__icon {
  flex-shrink: 0;
  width: 30px; height: 30px; border-radius: 50%;
  background: linear-gradient(135deg, var(--pg-teal-soft), var(--pg-teal));
  color: #052e2b;
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 18px -6px rgba(20,184,166,.65);
  transition: transform .35s var(--pg-ease);
}
.pg-check-list li:hover .pg-check-list__icon { transform: rotate(-8deg) scale(1.08); }

/* Teal CTA button (variant) */
.pg-btn--teal {
  background: linear-gradient(135deg, var(--pg-teal-soft), var(--pg-teal));
  color: #052e2b;
  box-shadow: 0 14px 36px -10px rgba(20,184,166,.6);
}
.pg-btn--teal:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 50px -10px rgba(20,184,166,.85);
  color: #042624;
}

/* Custom cursor (large screens only) */
.pg-cursor {
  position: fixed; top: 0; left: 0; width: 12px; height: 12px;
  border-radius: 50%; background: var(--pg-sunset);
  pointer-events: none; z-index: 9999;
  transform: translate(-50%, -50%);
  mix-blend-mode: difference;
  transition: width .25s var(--pg-ease), height .25s var(--pg-ease), background .25s;
}
.pg-cursor.is-hover { width: 38px; height: 38px; background: #fff; }
@media (max-width: 1024px), (hover: none) { .pg-cursor { display: none; } }

/* Light theme override */
[data-theme="light"] .pg-hero__bg::before {
  background:
    radial-gradient(ellipse at top, rgba(124, 58, 237, 0.12), transparent 50%),
    radial-gradient(ellipse at bottom right, rgba(249, 115, 22, 0.10), transparent 50%),
    #ffffff;
}
[data-theme="light"] body { background: #f7f7fb; color: #131736; }
[data-theme="light"] .pg-section-title,
[data-theme="light"] .pg-hero__title,
[data-theme="light"] .pg-feature__title,
[data-theme="light"] .pg-trip__title,
[data-theme="light"] .pg-footer__heading,
[data-theme="light"] .pg-logo,
[data-theme="light"] .pg-nav__link.is-active { color: #0a0e27; }
[data-theme="light"] .pg-feature__text,
[data-theme="light"] .pg-hero__sub { color: rgba(10, 14, 39, 0.65); }
[data-theme="light"] .pg-card,
[data-theme="light"] .pg-feature,
[data-theme="light"] .pg-testimonial {
  background: #ffffff;
  border-color: rgba(10, 14, 39, 0.08);
}
[data-theme="light"] .pg-footer { background: #f4f4f9; border-top-color: rgba(10,14,39,0.08); }

/* =========================================================
   PREMIUM LIGHT THEME — comprehensive sky-blue palette
   ========================================================= */
[data-theme="light"] {
  --pg-line:        rgba(8, 47, 73, 0.1);
  --pg-line-strong: rgba(8, 47, 73, 0.16);
  --pg-glass:       rgba(255, 255, 255, 0.7);
  --pg-glass-strong:rgba(255, 255, 255, 0.92);
  --pg-sky-50:      #f0f9ff;
  --pg-sky-100:     #e0f2fe;
  --pg-sky-200:     #bae6fd;
  --pg-sky-300:     #7dd3fc;
  --pg-sky-400:     #38bdf8;
  --pg-sky-500:     #0ea5e9;
  --pg-sky-600:     #0284c7;
  --pg-sky-700:     #0369a1;
  --pg-sky-900:     #082f49;
  --pg-grad-sky:    linear-gradient(135deg, #38bdf8 0%, #0ea5e9 50%, #0369a1 100%);
  --pg-grad-sky-soft: linear-gradient(135deg, #e0f2fe 0%, #bae6fd 50%, #7dd3fc 100%);
  --pg-text:        #082f49;
  --pg-text-muted:  rgba(8, 47, 73, 0.7);
  --pg-text-soft:   rgba(8, 47, 73, 0.5);
}
[data-theme="light"] body {
  background:
    radial-gradient(ellipse 80% 50% at 15% 0%, rgba(56,189,248,.18), transparent 60%),
    radial-gradient(ellipse 70% 50% at 90% 10%, rgba(125,211,252,.12), transparent 60%),
    radial-gradient(ellipse 60% 40% at 50% 100%, rgba(186,230,253,.15), transparent 65%),
    linear-gradient(180deg, #f0f9ff 0%, #ffffff 50%, #f0f9ff 100%);
  color: var(--pg-text);
}

/* ---- Floating clouds background (light theme only) ---- */
[data-theme="light"] body::before {
  content: '';
  position: fixed; inset: 0;
  pointer-events: none;
  z-index: 0;
  background-image:
    radial-gradient(ellipse 200px 60px at 10% 15%, rgba(255,255,255,.85), transparent 70%),
    radial-gradient(ellipse 260px 70px at 80% 28%, rgba(255,255,255,.75), transparent 70%),
    radial-gradient(ellipse 180px 50px at 40% 60%, rgba(255,255,255,.7), transparent 70%),
    radial-gradient(ellipse 220px 60px at 90% 75%, rgba(255,255,255,.8), transparent 70%);
  animation: pg-clouds-drift 60s ease-in-out infinite alternate;
  opacity: .8;
}
@keyframes pg-clouds-drift {
  0%   { transform: translate(0, 0); }
  100% { transform: translate(60px, 20px); }
}

/* ---- Scrollbar ---- */
[data-theme="light"] ::-webkit-scrollbar-track { background: #eeeef3; }
[data-theme="light"] ::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #c4b5fd, #fdba74); }

/* ---- Navigation ---- */
[data-theme="light"] .pg-nav.is-scrolled {
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(22px) saturate(180%);
  -webkit-backdrop-filter: blur(22px) saturate(180%);
  border-bottom: 1px solid rgba(14,165,233,.12);
  box-shadow: 0 8px 30px -10px rgba(14,165,233,.18);
}
/* ============================================
   Premium Light Nav — dark sky by default
   White only when over the cinematic home hero
   ============================================ */
[data-theme="light"] .pg-nav__link {
  color: rgba(8,47,73,.85);
  font-weight: 600;
  letter-spacing: -.005em;
  transition: color .3s var(--pg-ease), transform .3s var(--pg-ease);
}
[data-theme="light"] .pg-nav__link:hover,
[data-theme="light"] .pg-nav__link.is-active {
  color: #0284c7;
}

/* Home page only: white nav text over cinematic photo hero */
[data-theme="light"] body:has(.pg-hero--cinematic) .pg-nav:not(.is-scrolled) .pg-nav__link {
  color: rgba(255,255,255,.95);
  text-shadow: 0 1px 8px rgba(8,47,73,.55);
}
[data-theme="light"] body:has(.pg-hero--cinematic) .pg-nav:not(.is-scrolled) .pg-nav__link:hover,
[data-theme="light"] body:has(.pg-hero--cinematic) .pg-nav:not(.is-scrolled) .pg-nav__link.is-active {
  color: #ffffff;
  text-shadow: 0 2px 12px rgba(8,47,73,.75);
}
[data-theme="light"] body:has(.pg-hero--cinematic) .pg-nav:not(.is-scrolled) .pg-burger__lines span {
  background: #ffffff; box-shadow: 0 1px 4px rgba(8,47,73,.4);
}
[data-theme="light"] body:has(.pg-hero--cinematic) .pg-nav:not(.is-scrolled) .pg-logo--img img {
  filter: brightness(0) invert(1) drop-shadow(0 2px 8px rgba(8,47,73,.5));
}

/* Default (inner pages): dark burger lines + logo */
[data-theme="light"] .pg-burger__lines span { background: var(--pg-sky-900); }
[data-theme="light"] .pg-logo--img img { filter: none; }

/* Active link underline (sky gradient) */
[data-theme="light"] .pg-nav__link.is-active {
  position: relative;
}
[data-theme="light"] .pg-nav__link.is-active::after {
  content: '';
  position: absolute; left: 0; right: 0; bottom: -6px;
  height: 2px;
  background: var(--pg-grad-sky);
  border-radius: 2px;
  animation: pg-nav-line-glow 2.4s ease-in-out infinite;
}
@keyframes pg-nav-line-glow {
  0%,100% { opacity: .85; transform: scaleX(.85); }
  50%     { opacity: 1;   transform: scaleX(1); }
}

/* Underline on hover for non-active links */
[data-theme="light"] .pg-nav__link:not(.is-active)::after {
  content: '';
  position: absolute; left: 50%; bottom: -6px;
  width: 0; height: 2px;
  background: var(--pg-grad-sky);
  border-radius: 2px;
  transition: width .35s var(--pg-ease), left .35s var(--pg-ease);
}
[data-theme="light"] .pg-nav__link:not(.is-active):hover::after {
  width: 100%; left: 0;
}
[data-theme="light"] .pg-nav__link { position: relative; }
[data-theme="light"] .pg-theme-toggle {
  background: rgba(255,255,255,.7);
  color: var(--pg-sky-700);
  border-color: rgba(14,165,233,.2);
  transition: all .3s var(--pg-ease);
}
[data-theme="light"] .pg-theme-toggle:hover { background: var(--pg-sky-100); transform: rotate(-15deg); }
[data-theme="light"] .pg-nav__link::after {
  content: ''; display: block; height: 2px; width: 0;
  background: var(--pg-grad-sky); transition: width .3s var(--pg-ease); border-radius: 2px;
}
[data-theme="light"] .pg-nav__link:hover::after,
[data-theme="light"] .pg-nav__link.is-active::after { width: 100%; }

/* ---- Mobile menu ---- */
[data-theme="light"] .pg-mobile-menu {
  background: linear-gradient(160deg, #ffffff 0%, #f6f4ff 60%, #fff3e8 100%);
}
[data-theme="light"] .pg-mobile-menu__link {
  color: #1a1f3a;
  border-bottom-color: rgba(10,14,39,.08);
}

/* ---- Hero (light) — sky-blue ambient over photo ---- */
[data-theme="light"] .pg-hero__photo img {
  filter: saturate(1.18) contrast(1.06) brightness(.78);
}
[data-theme="light"] .pg-hero__photo::after {
  background:
    radial-gradient(ellipse at center, transparent 35%, rgba(8,47,73,.5) 100%),
    linear-gradient(180deg, rgba(2,132,199,.35) 0%, transparent 30%, transparent 60%, rgba(8,47,73,.55) 100%);
}
[data-theme="light"] .pg-hero__overlay {
  background:
    radial-gradient(ellipse 80% 60% at 30% 30%, rgba(56,189,248,.32), transparent 60%),
    radial-gradient(ellipse 70% 60% at 80% 70%, rgba(125,211,252,.28), transparent 60%),
    linear-gradient(180deg, rgba(2,132,199,.4) 0%, rgba(2,132,199,.18) 40%, rgba(8,47,73,.55) 100%);
}
[data-theme="light"] .pg-hero__overlay::before {
  background:
    linear-gradient(105deg, transparent 30%, rgba(255,255,255,.18) 42%, transparent 45%),
    linear-gradient(120deg, transparent 50%, rgba(255,255,255,.12) 62%, transparent 65%);
}
[data-theme="light"] .pg-hero__title { color: #ffffff; text-shadow: 0 4px 28px rgba(8,47,73,.6); }
[data-theme="light"] .pg-hero__title .accent {
  background: linear-gradient(135deg, #fef3c7 0%, #fed7aa 50%, #fca5a5 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
[data-theme="light"] .pg-hero__sub { color: rgba(255,255,255,.95); text-shadow: 0 2px 14px rgba(8,47,73,.55); }
[data-theme="light"] .pg-hero__tagline {
  color: #ffffff;
  background: rgba(255,255,255,.18);
  border-color: rgba(255,255,255,.35);
  backdrop-filter: blur(10px);
}
[data-theme="light"] .pg-hero__tagline-sep { color: rgba(255,255,255,.5); }
[data-theme="light"] .pg-eyebrow { color: rgba(255,255,255,.9); }
[data-theme="light"] .pg-eyebrow__dot { background: #7dd3fc; }
[data-theme="light"] .pg-scroll-indicator,
[data-theme="light"] .pg-scroll-indicator__line { color: rgba(255,255,255,.9); background: rgba(255,255,255,.6); }

/* ---- Strip section (Quick Facts + Planner) — sky theme ---- */
[data-theme="light"] .pg-strip {
  background:
    radial-gradient(ellipse 70% 60% at 50% 0%, rgba(56,189,248,0.22), transparent 65%),
    radial-gradient(ellipse 55% 55% at 12% 90%, rgba(125,211,252,0.22), transparent 60%),
    radial-gradient(ellipse 55% 55% at 88% 90%, rgba(186,230,253,0.26), transparent 60%),
    linear-gradient(180deg, #e0f2fe 0%, #bae6fd 50%, #e0f2fe 100%);
  color: var(--pg-text);
}
[data-theme="light"] .pg-strip::before { background: linear-gradient(90deg, transparent, rgba(2,132,199,.18) 30%, rgba(2,132,199,.18) 70%, transparent); }
[data-theme="light"] .pg-strip::after  { background: linear-gradient(90deg, transparent, rgba(2,132,199,.1) 50%, transparent); }
[data-theme="light"] .pg-strip__grid-bg {
  background-image:
    linear-gradient(rgba(2,132,199,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(2,132,199,.06) 1px, transparent 1px);
}
[data-theme="light"] .pg-strip__plane {
  background: linear-gradient(160deg, rgba(255,255,255,.95), rgba(224,242,254,.8));
  border-color: rgba(2,132,199,.18);
  box-shadow: 0 14px 28px -8px rgba(14,165,233,.45), inset 0 1px 0 rgba(255,255,255,1);
}
[data-theme="light"] .pg-strip__facts,
[data-theme="light"] .pg-planner {
  background: linear-gradient(160deg, rgba(255,255,255,.95) 0%, rgba(240,249,255,.85) 60%, rgba(186,230,253,.5));
  border-color: rgba(14,165,233,.2);
  box-shadow:
    0 40px 90px -25px rgba(14,165,233,.25),
    0 0 0 1px rgba(14,165,233,.04),
    inset 0 1px 0 rgba(255,255,255,1);
}
[data-theme="light"] .pg-strip__facts > .pg-fact { border-right-color: rgba(14,165,233,.12); }
[data-theme="light"] .pg-fact:hover { background: rgba(14,165,233,.05); }
[data-theme="light"] .pg-fact__label { color: var(--pg-text-muted); }
[data-theme="light"] .pg-fact__num,
[data-theme="light"] .pg-counter__num,
[data-theme="light"] .pg-fact__rating-num {
  background: linear-gradient(135deg, #0ea5e9 0%, #0284c7 50%, #0369a1 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
[data-theme="light"] .pg-fact__stars { color: #fbbf24; }
[data-theme="light"] .pg-planner__label { color: #0284c7; }
[data-theme="light"] .pg-planner__select,
[data-theme="light"] .pg-input {
  background: #ffffff;
  border-color: rgba(14,165,233,.2);
  color: var(--pg-text);
}
[data-theme="light"] .pg-planner__select:focus,
[data-theme="light"] .pg-input:focus { border-color: #0ea5e9; box-shadow: 0 0 0 4px rgba(14,165,233,.12); }
[data-theme="light"] .pg-planner__select option { background: #fff; color: var(--pg-text); }
[data-theme="light"] .pg-planner__cta { background: var(--pg-grad-sky); color: #fff; box-shadow: 0 14px 30px -8px rgba(14,165,233,.55); }
[data-theme="light"] .pg-planner__cta:hover { transform: translateY(-2px); box-shadow: 0 18px 38px -8px rgba(14,165,233,.7); }

/* ---- Section titles & generic text ---- */
[data-theme="light"] .pg-section-title,
[data-theme="light"] .pg-feature__title,
[data-theme="light"] .pg-trip__title,
[data-theme="light"] .pg-footer__heading,
[data-theme="light"] .pg-about-pro__title,
[data-theme="light"] h1, [data-theme="light"] h2,
[data-theme="light"] h3, [data-theme="light"] h4 { color: var(--pg-sky-900); }

[data-theme="light"] .pg-feature__text,
[data-theme="light"] .pg-about-pro__lead p,
[data-theme="light"] p { color: var(--pg-text-muted); }

/* ---- Cards with sky-themed hover ---- */
[data-theme="light"] .pg-card,
[data-theme="light"] .pg-feature,
[data-theme="light"] .pg-testimonial,
[data-theme="light"] .pg-cat,
[data-theme="light"] .pg-trip-card,
[data-theme="light"] .pg-faq-item {
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(14,165,233,.15);
  box-shadow:
    0 20px 50px -20px rgba(14,165,233,.2),
    0 4px 14px -4px rgba(14,165,233,.08),
    inset 0 1px 0 rgba(255,255,255,1);
  color: var(--pg-text);
  transition: transform .45s var(--pg-ease), box-shadow .45s var(--pg-ease), border-color .45s;
}
[data-theme="light"] .pg-card:hover,
[data-theme="light"] .pg-feature:hover,
[data-theme="light"] .pg-cat:hover,
[data-theme="light"] .pg-trip-card:hover {
  transform: translateY(-6px);
  border-color: rgba(14,165,233,.35);
  box-shadow:
    0 30px 70px -20px rgba(14,165,233,.35),
    0 8px 24px -6px rgba(14,165,233,.18),
    inset 0 1px 0 rgba(255,255,255,1);
}

/* ---- Accents (sky-tinted) ---- */
[data-theme="light"] .pg-about-pro__eyebrow { color: #0284c7; }
[data-theme="light"] .pg-about-pro__eyebrow::before { background: var(--pg-sky-400); }
[data-theme="light"] .pg-about-pro__accent {
  background: var(--pg-grad-sky);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
[data-theme="light"] .pg-about-pro__lead-line { background: var(--pg-sky-400); }
[data-theme="light"] .pg-check-list li { color: rgba(8,47,73,.85); }
[data-theme="light"] .pg-check-list__icon {
  background: var(--pg-grad-sky);
  color: #fff;
  box-shadow: 0 8px 18px -6px rgba(14,165,233,.6);
}
[data-theme="light"] .pg-direct-call { color: #0284c7; border-bottom-color: rgba(14,165,233,.5); }
[data-theme="light"] .pg-direct-call strong { color: #0369a1; }
[data-theme="light"] .pg-direct-call:hover { color: #0369a1; border-bottom-color: #0ea5e9; }

/* ---- Buttons (sky variants) ---- */
[data-theme="light"] .pg-btn--ghost-light {
  background: rgba(255,255,255,.9);
  color: #0369a1;
  border: 1px solid rgba(14,165,233,.25);
  backdrop-filter: blur(10px);
  transition: all .35s var(--pg-ease);
}
[data-theme="light"] .pg-btn--ghost-light:hover {
  background: #fff;
  color: #0ea5e9;
  border-color: #0ea5e9;
  transform: translateY(-2px);
  box-shadow: 0 14px 28px -8px rgba(14,165,233,.4);
}

/* ---- Newsletter (light sky theme with animation) ---- */
[data-theme="light"] .pg-newsletter {
  background:
    radial-gradient(ellipse at 20% 30%, rgba(56,189,248,0.5), transparent 55%),
    radial-gradient(ellipse at 80% 70%, rgba(125,211,252,0.55), transparent 55%),
    linear-gradient(160deg, #f0f9ff 0%, #bae6fd 100%);
  border-color: rgba(14,165,233,.25);
  box-shadow: 0 50px 100px -25px rgba(14,165,233,.35);
  color: var(--pg-text);
}
[data-theme="light"] .pg-newsletter::before {
  background-image:
    linear-gradient(rgba(2,132,199,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(2,132,199,.06) 1px, transparent 1px);
}
[data-theme="light"] .pg-newsletter .pg-eyebrow {
  color: #0284c7;
  background: rgba(14,165,233,.1);
  border-color: rgba(14,165,233,.25);
}
[data-theme="light"] .pg-newsletter .pg-eyebrow__dot { background: #0ea5e9; }
[data-theme="light"] .pg-newsletter .pg-section-title { color: var(--pg-sky-900); }
[data-theme="light"] .pg-newsletter .pg-section-title em {
  background: var(--pg-grad-sky);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  font-style: italic;
}
[data-theme="light"] .pg-newsletter p { color: rgba(8,47,73,.7); }

/* Sun-shine pulse inside newsletter */
[data-theme="light"] .pg-newsletter::after {
  content: '';
  position: absolute; top: 50%; left: 50%;
  width: 600px; height: 600px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,255,255,.45), transparent 60%);
  pointer-events: none;
  animation: pg-sun-pulse 5s ease-in-out infinite;
}
@keyframes pg-sun-pulse {
  0%,100% { opacity: .4; transform: translate(-50%,-50%) scale(1); }
  50%     { opacity: .7; transform: translate(-50%,-50%) scale(1.12); }
}

/* ---- Eyebrow chips everywhere (light) ---- */
[data-theme="light"] .pg-eyebrow {
  color: #0284c7;
  background: rgba(14,165,233,.1);
  border-color: rgba(14,165,233,.22);
}
[data-theme="light"] .pg-eyebrow__dot { background: #0ea5e9; }

/* ---- "STAY IN THE LOOP" override (was orange) ---- */
[data-theme="light"] .pg-section-title em {
  background: var(--pg-grad-sky);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}

/* ====================================================
   "Colourful World" section — override inline dark bg
   ==================================================== */
/* ====================================================
   Page Hero Banner — wide photo header for inner pages
   ==================================================== */
.pg-page-hero {
  position: relative;
  min-height: 50vh;
  display: flex; align-items: center;
  overflow: hidden;
  isolation: isolate;
  padding: 6rem 0 4rem;
}
.pg-page-hero__photo {
  position: absolute; inset: 0;
  z-index: -2;
  background-size: cover;
  background-position: center;
  transform: scale(1.08);
  animation: pg-kenburns 28s ease-in-out infinite alternate;
  filter: saturate(1.1) contrast(1.05);
}
.pg-page-hero__overlay {
  position: absolute; inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(5,6,20,.45) 0%, rgba(5,6,20,.25) 50%, rgba(5,6,20,.85) 100%),
    linear-gradient(90deg, rgba(5,6,20,.65) 0%, rgba(5,6,20,.2) 50%, rgba(5,6,20,.55) 100%);
}
.pg-page-hero__inner {
  position: relative; z-index: 1;
  width: 100%;
}
.pg-page-hero__crumb {
  display: flex; align-items: center; gap: .5rem;
  font-size: .85rem;
  color: rgba(255,255,255,.7);
  margin-bottom: 1.25rem;
  letter-spacing: .02em;
}
.pg-page-hero__crumb a {
  color: rgba(255,255,255,.85);
  transition: color .3s var(--pg-ease);
}
.pg-page-hero__crumb a:hover { color: #fff; }
.pg-page-hero__crumb-sep { opacity: .4; }
.pg-page-hero__title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(3rem, 9vw, 7rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: .95;
  color: #ffffff;
  text-transform: uppercase;
  text-shadow: 0 4px 30px rgba(0,0,0,.55);
  margin-bottom: 1.5rem;
}
.pg-page-hero__title--mixed {
  text-transform: none;
  font-size: clamp(2.5rem, 7vw, 5.5rem);
}
.pg-page-hero__sub {
  font-family: 'Cormorant Garamond', 'Inter', serif;
  font-style: italic;
  font-size: clamp(1.1rem, 1.8vw, 1.55rem);
  font-weight: 500;
  color: rgba(255,255,255,.92);
  max-width: 720px;
  line-height: 1.45;
  text-shadow: 0 2px 14px rgba(0,0,0,.5);
}
@media (max-width: 768px) {
  .pg-page-hero { min-height: 42vh; padding: 5rem 0 3rem; }
}

/* Light theme — keep photo + text white over darker overlay */
[data-theme="light"] .pg-page-hero__overlay {
  background:
    linear-gradient(180deg, rgba(2,132,199,.35) 0%, rgba(2,132,199,.18) 50%, rgba(8,47,73,.7) 100%),
    linear-gradient(90deg, rgba(8,47,73,.55) 0%, rgba(8,47,73,.18) 50%, rgba(8,47,73,.5) 100%);
}
[data-theme="light"] .pg-page-hero__title { color: #fff; text-shadow: 0 4px 30px rgba(8,47,73,.6); }
[data-theme="light"] .pg-page-hero__sub { color: rgba(255,255,255,.95); }
[data-theme="light"] .pg-page-hero__crumb,
[data-theme="light"] .pg-page-hero__crumb a { color: rgba(255,255,255,.9); }

/* ---- Colourful World pill chips ---- */
.pg-colourful__pill {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  color: rgba(255,255,255,.95);
  font-size: .88rem; font-weight: 600;
  letter-spacing: -.005em;
  backdrop-filter: blur(10px);
  transition: transform .35s var(--pg-ease), background .35s;
}
.pg-colourful__pill:hover {
  transform: translateY(-2px);
  background: rgba(255,255,255,.2);
}
[data-theme="light"] .pg-colourful__pill {
  background: rgba(255,255,255,.85);
  border-color: rgba(14,165,233,.18);
  color: var(--pg-sky-700);
}

/* Premium polish for Colourful World — dark mode */
.pg-colourful {
  box-shadow: 0 60px 120px -30px rgba(124,58,237,.5), 0 0 0 1px rgba(255,255,255,.04);
  position: relative;
}
.pg-colourful::after {
  content: '';
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  opacity: .06;
  mix-blend-mode: overlay;
  pointer-events: none;
  border-radius: inherit;
}
.pg-colourful img {
  filter: saturate(1.15) contrast(1.05);
  transition: transform 1s var(--pg-ease), filter .6s;
}
.pg-colourful .rounded-3xl {
  box-shadow: 0 30px 60px -20px rgba(0,0,0,.5);
  transition: transform .5s var(--pg-ease);
}
.pg-colourful .rounded-3xl:hover {
  transform: translateY(-6px) scale(1.03) !important;
  z-index: 10;
}

[data-theme="light"] .pg-colourful {
  background: linear-gradient(135deg, #e0f2fe 0%, #7dd3fc 50%, #38bdf8 100%) !important;
  border: 1px solid rgba(14,165,233,.25);
  box-shadow: 0 50px 100px -25px rgba(14,165,233,.4);
}
[data-theme="light"] .pg-colourful .text-white { color: var(--pg-sky-900) !important; }
[data-theme="light"] .pg-colourful .text-white\/75,
[data-theme="light"] .pg-colourful .text-white\/85 { color: rgba(8,47,73,.85) !important; }
[data-theme="light"] .pg-colourful .border-white\/20 { border-color: rgba(255,255,255,.8) !important; }

/* Animated sun-glow inside */
[data-theme="light"] .pg-colourful::before {
  content: '';
  position: absolute; top: -120px; right: -120px;
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(255,255,255,.6), transparent 60%);
  animation: pg-sun-pulse 6s ease-in-out infinite;
  pointer-events: none;
  z-index: 1;
}

/* ====================================================
   Trip cards & category cards (image-bg) — keep text WHITE
   with stronger gradient overlay so it pops over photos
   ==================================================== */
[data-theme="light"] .pg-cat {
  border: 1px solid rgba(14,165,233,.18);
  box-shadow: 0 20px 50px -20px rgba(14,165,233,.25);
}
[data-theme="light"] .pg-cat__overlay {
  background: linear-gradient(180deg,
    rgba(8,47,73,0) 25%,
    rgba(8,47,73,0.55) 55%,
    rgba(8,47,73,0.92) 100%);
}
[data-theme="light"] .pg-cat__title {
  color: #ffffff;
  text-shadow: 0 2px 16px rgba(8,47,73,.7), 0 1px 4px rgba(0,0,0,.5);
}
[data-theme="light"] .pg-cat__desc {
  color: rgba(255,255,255,.92);
  text-shadow: 0 2px 8px rgba(8,47,73,.6);
}
[data-theme="light"] .pg-cat__body p {
  color: rgba(255,255,255,.92);
  text-shadow: 0 2px 8px rgba(8,47,73,.6);
}
[data-theme="light"] .pg-cat__tag {
  background: rgba(255,255,255,.95);
  color: var(--pg-sky-700);
  border: 1px solid rgba(255,255,255,.5);
  box-shadow: 0 4px 12px -4px rgba(0,0,0,.3);
}
[data-theme="light"] .pg-cat__cta { color: #ffffff; text-shadow: 0 2px 8px rgba(8,47,73,.6); }
[data-theme="light"] .pg-cat__meta { color: rgba(255,255,255,.85); text-shadow: 0 2px 8px rgba(8,47,73,.6); }

/* Trending destinations cards (.pg-trip) on photos */
[data-theme="light"] .pg-trip { box-shadow: 0 20px 50px -20px rgba(14,165,233,.25); }
[data-theme="light"] .pg-trip__title,
[data-theme="light"] .pg-trip__location {
  color: #ffffff !important;
  text-shadow: 0 2px 16px rgba(8,47,73,.75), 0 1px 4px rgba(0,0,0,.5);
}
[data-theme="light"] .pg-trip__meta,
[data-theme="light"] .pg-trip__meta span {
  color: rgba(255,255,255,.95) !important;
  text-shadow: 0 2px 8px rgba(8,47,73,.6);
}
[data-theme="light"] .pg-trip__media::after {
  background: linear-gradient(180deg, rgba(8,47,73,0) 30%, rgba(8,47,73,0.6) 65%, rgba(8,47,73,0.95) 100%) !important;
}
[data-theme="light"] .pg-trip__badge {
  background: rgba(255,255,255,.95);
  color: var(--pg-sky-700);
  border: 1px solid rgba(255,255,255,.5);
}
[data-theme="light"] .pg-trip__price {
  background: rgba(8,47,73,.85);
  color: #fff;
  backdrop-filter: blur(8px);
}

/* "Trending destinations" section heading */
[data-theme="light"] h3.text-white\/80 { color: var(--pg-sky-900) !important; }

/* ====================================================
   Experience cards (.pg-exp) — Scuba/Watersports/Bungee
   Image background — keep text WHITE with shadow
   ==================================================== */
[data-theme="light"] .pg-exp { box-shadow: 0 20px 50px -20px rgba(14,165,233,.3); }
[data-theme="light"] .pg-exp::after {
  background: linear-gradient(180deg, rgba(8,47,73,0) 30%, rgba(8,47,73,0.55) 65%, rgba(8,47,73,0.95) 100%) !important;
}
[data-theme="light"] .pg-exp__title {
  color: #ffffff !important;
  text-shadow: 0 2px 16px rgba(8,47,73,.75), 0 1px 4px rgba(0,0,0,.5);
}
[data-theme="light"] .pg-exp__reveal,
[data-theme="light"] .pg-exp .text-white\/70 {
  color: rgba(255,255,255,.95) !important;
  text-shadow: 0 2px 8px rgba(8,47,73,.6);
}
[data-theme="light"] .pg-exp .text-orange-300 {
  color: #fcd34d !important;
  text-shadow: 0 2px 8px rgba(8,47,73,.7);
}

/* ====================================================
   INNER PAGES — premium sky-themed hero (pages/*.html)
   ==================================================== */
[data-theme="light"] .pg-hero__bg::before {
  background:
    radial-gradient(ellipse 80% 60% at 20% 0%, rgba(56,189,248,.45), transparent 60%),
    radial-gradient(ellipse 70% 60% at 80% 30%, rgba(125,211,252,.4), transparent 60%),
    radial-gradient(ellipse 60% 70% at 50% 100%, rgba(186,230,253,.5), transparent 60%),
    linear-gradient(180deg, #e0f2fe 0%, #f0f9ff 50%, #ffffff 100%);
}
[data-theme="light"] .pg-hero__bg::after { opacity: .08; }

/* Inner hero — title needs to be dark/sky readable (no photo behind) */
[data-theme="light"] .pg-hero:not(.pg-hero--cinematic) .pg-hero__title {
  background: linear-gradient(135deg, #082f49 0%, #0369a1 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  text-shadow: none;
  animation: none;
}
[data-theme="light"] .pg-hero:not(.pg-hero--cinematic) .pg-hero__title .accent {
  background: linear-gradient(135deg, #38bdf8 0%, #0ea5e9 50%, #0369a1 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  filter: drop-shadow(0 4px 16px rgba(14,165,233,.4));
}
[data-theme="light"] .pg-hero:not(.pg-hero--cinematic) .pg-hero__sub {
  color: var(--pg-text-muted);
  text-shadow: none;
}

/* Inner-page orbs — recolor to sky tones */
[data-theme="light"] .pg-hero .pg-orb[style*="background:#7c3aed"],
[data-theme="light"] .pg-hero .pg-orb[style*="background:#fb7185"],
[data-theme="light"] .pg-hero .pg-orb[style*="background:#f97316"],
[data-theme="light"] .pg-hero .pg-orb[style*="background:#38bdf8"],
[data-theme="light"] .pg-hero .pg-orb[style*="background:#fbbf24"],
[data-theme="light"] .pg-hero .pg-orb[style*="background:#0ea5b7"] {
  background: radial-gradient(circle, rgba(56,189,248,.5), transparent 65%) !important;
  opacity: .7 !important;
}

/* Breadcrumb nav */
[data-theme="light"] .pg-hero nav.text-sm a { color: rgba(8,47,73,.55); }
[data-theme="light"] .pg-hero nav.text-sm a:hover { color: #0284c7; }
[data-theme="light"] .pg-hero nav.text-sm { color: rgba(8,47,73,.6); }

/* Floating animated decoration: drifting circles inside inner-page hero */
[data-theme="light"] .pg-hero:not(.pg-hero--cinematic)::after {
  content: '';
  position: absolute; inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(ellipse 180px 50px at 15% 25%, rgba(255,255,255,.7), transparent 70%),
    radial-gradient(ellipse 240px 60px at 80% 40%, rgba(255,255,255,.6), transparent 70%),
    radial-gradient(ellipse 200px 55px at 50% 70%, rgba(255,255,255,.75), transparent 70%);
  animation: pg-clouds-drift 35s ease-in-out infinite alternate;
  opacity: .55;
  z-index: 0;
}

/* ====================================================
   Inner page sections — Story, FAQ, Contact form, etc.
   ==================================================== */
[data-theme="light"] .pg-orb {
  filter: blur(40px);
  opacity: .35 !important;
}

/* Trip cards on /pages with dark photos — same treatment as index */
[data-theme="light"] .pg-faq__q { color: var(--pg-sky-900); }
[data-theme="light"] .pg-faq__a { color: var(--pg-text-muted); }

/* Contact form section */
[data-theme="light"] .pg-contact-card,
[data-theme="light"] .pg-form-card {
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(14,165,233,.18);
  box-shadow: 0 30px 70px -25px rgba(14,165,233,.25);
}
[data-theme="light"] .pg-form-label { color: var(--pg-sky-900); }

/* About page — story timeline / mission cards */
[data-theme="light"] .pg-mission,
[data-theme="light"] .pg-timeline-item,
[data-theme="light"] .pg-value-card {
  background: #ffffff;
  border: 1px solid rgba(14,165,233,.15);
  color: var(--pg-text);
}

/* Privacy / Terms — plain content text */
[data-theme="light"] .pg-prose,
[data-theme="light"] .pg-content h2,
[data-theme="light"] .pg-content h3 { color: var(--pg-sky-900); }
[data-theme="light"] .pg-content p,
[data-theme="light"] .pg-content li { color: var(--pg-text); }

/* Page mobile menu (when triggered) */
[data-theme="light"] .pg-mobile-menu .text-white\/40 { color: rgba(8,47,73,.5) !important; }

/* Gallery chips, hero title overrides for pages/gallery */
[data-theme="light"] .pg-chip { transition: all .3s var(--pg-ease); }
[data-theme="light"] .pg-chip:hover { transform: translateY(-2px); }

/* Animated underline pulse on all section titles in light mode */
@keyframes pg-section-line-glow {
  0%,100% { opacity: .8; transform: scaleX(.95); }
  50%     { opacity: 1;  transform: scaleX(1.05); }
}

/* Premium scroll-progress bar */
[data-theme="light"] .pg-progress {
  background: rgba(14,165,233,.08);
}

/* Sky-themed orb decorations everywhere */
[data-theme="light"] .pg-orb { mix-blend-mode: multiply; }

/* =========================================================
   PREMIUM HOSTED TRAVEL section — 2-column layout
   ========================================================= */
.pg-premium {
  position: relative;
  padding: 7rem 0;
  overflow: hidden;
  isolation: isolate;
  background: linear-gradient(180deg, transparent 0%, rgba(255,255,255,.02) 100%);
}
.pg-premium__layout {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 4rem;
  align-items: center;
}
@media (max-width: 1024px) {
  .pg-premium__layout { grid-template-columns: 1fr; gap: 3rem; }
}
.pg-premium__copy { text-align: left; }
.pg-premium__copy .pg-premium__chips { justify-content: flex-start; }
@media (max-width: 1024px) {
  .pg-premium__copy { text-align: center; }
  .pg-premium__copy .pg-premium__chips { justify-content: center; }
}

/* ========== Premium photo block ========== */
.pg-premium__photo {
  position: relative;
  width: 100%;
  max-width: 540px;
  margin: 0 auto;
  aspect-ratio: 4/5;
}
.pg-premium__photo-frame {
  position: relative;
  width: 100%; height: 100%;
  border-radius: 28px;
  overflow: hidden;
  isolation: isolate;
  box-shadow:
    0 50px 100px -25px rgba(14,165,233,.45),
    0 0 0 1px rgba(255,255,255,.06),
    inset 0 1px 0 rgba(255,255,255,.1);
  transform: rotate(-2deg);
  transition: transform .6s var(--pg-ease);
}
.pg-premium__photo:hover .pg-premium__photo-frame {
  transform: rotate(0);
}
.pg-premium__photo-frame img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.4s var(--pg-ease), filter .6s var(--pg-ease);
  filter: saturate(1.1) contrast(1.05);
}
.pg-premium__photo:hover .pg-premium__photo-frame img {
  transform: scale(1.06);
  filter: saturate(1.2) contrast(1.08);
}
.pg-premium__photo-shine {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.25) 0%, transparent 30%, transparent 70%, rgba(14,165,233,.2) 100%);
  pointer-events: none;
  mix-blend-mode: overlay;
  animation: pg-photo-shine 8s ease-in-out infinite alternate;
}
@keyframes pg-photo-shine {
  0%   { opacity: .6; transform: translateX(-10%); }
  100% { opacity: 1;  transform: translateX(10%); }
}

/* Floating stat badge */
.pg-premium__stat-badge {
  position: absolute;
  bottom: -1.5rem; left: -1.5rem;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(22px) saturate(180%);
  -webkit-backdrop-filter: blur(22px) saturate(180%);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 20px;
  padding: 1.25rem 1.5rem;
  z-index: 3;
  animation: pg-card-float 5s ease-in-out infinite;
  box-shadow: 0 30px 60px -20px rgba(0,0,0,.5);
}
.pg-premium__stat-num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 2.4rem;
  font-weight: 800;
  letter-spacing: -.03em;
  background: var(--pg-grad-sunset);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  line-height: 1;
}
.pg-premium__stat-label {
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
  margin-top: 6px;
}

/* Tag pill (top-right corner) */
.pg-premium__tag {
  position: absolute;
  top: 1rem; right: -.5rem;
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .55rem 1rem;
  border-radius: 999px;
  background: rgba(255,255,255,.95);
  color: #0a0e27;
  font-size: .82rem; font-weight: 700;
  letter-spacing: -.01em;
  z-index: 3;
  box-shadow: 0 14px 30px -8px rgba(0,0,0,.4);
  animation: pg-card-float 4s ease-in-out -1s infinite;
}
.pg-premium__tag-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #16a34a;
  box-shadow: 0 0 8px #16a34a;
  animation: pg-ticker-blink 1.2s ease-in-out infinite;
}

/* Light theme polish */
[data-theme="light"] .pg-premium__photo-frame {
  box-shadow:
    0 50px 100px -25px rgba(14,165,233,.45),
    0 0 0 1px rgba(14,165,233,.1),
    inset 0 1px 0 rgba(255,255,255,1);
}
[data-theme="light"] .pg-premium__stat-badge {
  background: rgba(255,255,255,.95);
  border-color: rgba(14,165,233,.18);
  box-shadow: 0 30px 60px -20px rgba(14,165,233,.35);
}
[data-theme="light"] .pg-premium__stat-num {
  background: var(--pg-grad-sky);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
[data-theme="light"] .pg-premium__stat-label { color: rgba(8,47,73,.65); }
[data-theme="light"] .pg-premium__tag {
  background: var(--pg-sky-900);
  color: #fff;
}
.pg-premium__grid-bg {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 70% 80% at center, black 25%, transparent 85%);
  -webkit-mask-image: radial-gradient(ellipse 70% 80% at center, black 25%, transparent 85%);
  pointer-events: none;
  z-index: 0;
}
.pg-premium__eyebrow {
  display: inline-block;
  font-family: 'Space Grotesk', sans-serif;
  font-size: .82rem; font-weight: 700;
  letter-spacing: .28em;
  color: var(--pg-sunset);
  margin-bottom: 1.75rem;
  text-transform: uppercase;
}
.pg-premium__title {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: clamp(2.5rem, 7vw, 6rem);
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1;
  color: #ffffff;
  margin-bottom: 2rem;
}
.pg-premium__accent {
  display: inline-block;
  position: relative;
  white-space: nowrap;
}
.pg-premium__accent::after {
  content: '';
  position: absolute; left: 0; right: 0; bottom: 0;
  height: .14em;
  background: var(--pg-grad-sunset);
  border-radius: 2px;
  opacity: .85;
  transform: scaleX(0);
  transform-origin: left;
  animation: pg-premium-underline 1.4s var(--pg-ease) .8s forwards;
}
.pg-premium__accent:nth-of-type(2)::after { animation-delay: 1.4s; }
@keyframes pg-premium-underline {
  to { transform: scaleX(1); }
}
.pg-premium__sub {
  font-size: clamp(1rem, 1.4vw, 1.25rem);
  line-height: 1.55;
  color: rgba(255,255,255,.72);
  max-width: 640px;
  margin: 0 auto 2.5rem;
}
.pg-premium__chips {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: .75rem;
}
.pg-premium__chip {
  display: inline-flex; align-items: center;
  padding: .7rem 1.3rem;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.16);
  color: #ffffff;
  font-size: .92rem; font-weight: 600;
  letter-spacing: -.005em;
  backdrop-filter: blur(14px);
  transition: transform .35s var(--pg-ease), background .35s, border-color .35s, box-shadow .35s;
}
.pg-premium__chip:hover {
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.4);
  transform: translateY(-3px);
  box-shadow: 0 14px 30px -8px rgba(249,115,22,.35);
}

/* Animated floating accent dots */
.pg-premium::before {
  content: '';
  position: absolute;
  top: 20%; left: 8%;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--pg-sunset);
  box-shadow: 0 0 20px var(--pg-sunset);
  animation: pg-premium-orb 6s ease-in-out infinite;
  opacity: .6;
}
.pg-premium::after {
  content: '';
  position: absolute;
  bottom: 25%; right: 12%;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--pg-coral);
  box-shadow: 0 0 24px var(--pg-coral);
  animation: pg-premium-orb 7s ease-in-out -2s infinite;
  opacity: .55;
}
@keyframes pg-premium-orb {
  0%,100% { transform: translate(0, 0); }
  50%     { transform: translate(15px, -20px); }
}

/* ---- Light theme variant ---- */
[data-theme="light"] .pg-premium {
  background:
    radial-gradient(ellipse 70% 50% at 50% 0%, rgba(56,189,248,.18), transparent 65%),
    radial-gradient(ellipse 60% 50% at 12% 90%, rgba(125,211,252,.16), transparent 60%),
    radial-gradient(ellipse 60% 50% at 88% 90%, rgba(186,230,253,.2), transparent 60%),
    linear-gradient(180deg, #fafdff 0%, #f0f9ff 50%, #fafdff 100%);
}
[data-theme="light"] .pg-premium__grid-bg {
  background-image:
    linear-gradient(rgba(2,132,199,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(2,132,199,.06) 1px, transparent 1px);
}
[data-theme="light"] .pg-premium__eyebrow { color: #ea580c; }
[data-theme="light"] .pg-premium__title { color: var(--pg-sky-900); }
[data-theme="light"] .pg-premium__accent::after { background: var(--pg-grad-sky); }
[data-theme="light"] .pg-premium__sub { color: rgba(8,47,73,.68); }
[data-theme="light"] .pg-premium__chip {
  background: rgba(255,255,255,.85);
  border: 1px solid rgba(14,165,233,.22);
  color: var(--pg-sky-700);
  box-shadow: 0 4px 12px -4px rgba(14,165,233,.18);
}
[data-theme="light"] .pg-premium__chip:hover {
  background: var(--pg-grad-sky);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 14px 30px -8px rgba(14,165,233,.45);
}
[data-theme="light"] .pg-premium::before { background: #0ea5e9; box-shadow: 0 0 20px #0ea5e9; }
[data-theme="light"] .pg-premium::after { background: #38bdf8; box-shadow: 0 0 24px #38bdf8; }

/* =========================================================
   TRIP MOODS GALLERY
   ========================================================= */
.pg-moods { position: relative; }
.pg-moods__header {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 3rem;
}
.pg-moods__sub {
  color: rgba(255,255,255,.65);
  font-size: 1.05rem;
  line-height: 1.6;
  margin-top: 1.1rem;
}
[data-theme="light"] .pg-moods__sub { color: rgba(8,47,73,.7); }

.pg-moods__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1rem;
}
@media (max-width: 1024px) { .pg-moods__grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 680px)  { .pg-moods__grid { grid-template-columns: repeat(2, 1fr); } }

.pg-mood-card {
  position: relative;
  grid-column: span 2;
  height: 340px;
  border-radius: 22px;
  overflow: hidden;
  isolation: isolate;
  cursor: pointer;
  display: block;
  text-decoration: none;
  box-shadow: 0 20px 50px -20px rgba(0,0,0,.5);
  transition: transform .5s var(--pg-ease), box-shadow .5s var(--pg-ease);
}
.pg-mood-card--lg { grid-column: span 3; }
@media (max-width: 1024px) {
  .pg-mood-card,
  .pg-mood-card--lg { grid-column: span 2; }
}
@media (max-width: 680px) {
  .pg-mood-card,
  .pg-mood-card--lg { grid-column: span 2; height: 280px; }
}
.pg-mood-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 30px 70px -20px rgba(14,165,233,.5);
}
.pg-mood-card img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.4s var(--pg-ease), filter .6s var(--pg-ease);
  z-index: 0;
  filter: saturate(1.08) brightness(.88);
}
.pg-mood-card:hover img {
  transform: scale(1.1);
  filter: saturate(1.2) brightness(.95);
}
.pg-mood-card__overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(5,6,20,0) 30%, rgba(5,6,20,.55) 65%, rgba(5,6,20,.95) 100%);
}
.pg-mood-card__overlay--warm {
  background: linear-gradient(180deg, rgba(249,115,22,0) 30%, rgba(249,115,22,.3) 60%, rgba(5,6,20,.95) 100%);
}
.pg-mood-card__overlay--pink {
  background: linear-gradient(180deg, rgba(251,113,133,0) 30%, rgba(251,113,133,.3) 60%, rgba(5,6,20,.95) 100%);
}
.pg-mood-card__overlay--cool {
  background: linear-gradient(180deg, rgba(56,189,248,0) 30%, rgba(56,189,248,.3) 60%, rgba(5,6,20,.95) 100%);
}
.pg-mood-card__body {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 1.5rem 1.5rem 1.6rem;
  z-index: 2;
  color: #fff;
}
.pg-mood-card__badge {
  display: inline-block;
  padding: .3rem .7rem;
  border-radius: 999px;
  font-size: .68rem; font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  background: rgba(255,255,255,.95);
  color: #0a0e27;
  margin-bottom: .85rem;
}
.pg-mood-card__title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.65rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin-bottom: 6px;
}
.pg-mood-card--lg .pg-mood-card__title { font-size: 2rem; }
.pg-mood-card__desc {
  font-size: .9rem;
  line-height: 1.5;
  color: rgba(255,255,255,.85);
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height .5s var(--pg-ease), opacity .5s var(--pg-ease), margin .4s var(--pg-ease);
}
.pg-mood-card:hover .pg-mood-card__desc {
  max-height: 200px;
  opacity: 1;
  margin-top: 6px;
}

/* Light theme — keep image cards white text with shadow */
[data-theme="light"] .pg-mood-card { box-shadow: 0 20px 50px -20px rgba(14,165,233,.3); }
[data-theme="light"] .pg-mood-card__title,
[data-theme="light"] .pg-mood-card__desc {
  color: #fff;
  text-shadow: 0 2px 12px rgba(8,47,73,.7);
}
[data-theme="light"] .pg-mood-card__badge {
  background: rgba(255,255,255,.95);
  color: var(--pg-sky-700);
}
[data-theme="light"] .pg-mood-card__overlay {
  background: linear-gradient(180deg, rgba(8,47,73,0) 30%, rgba(8,47,73,.55) 65%, rgba(8,47,73,.95) 100%);
}

/* =========================================================
   DESTINATIONS GALLERY
   ========================================================= */
.pg-dest-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem;
  max-width: 1100px;
  margin: 0 auto;
}
@media (max-width: 1024px) { .pg-dest-grid { grid-template-columns: repeat(3, 1fr); max-width: 720px; } }
@media (max-width: 680px)  { .pg-dest-grid { grid-template-columns: repeat(2, 1fr); max-width: 480px; } }

.pg-dest-card {
  position: relative;
  height: 320px;
  border-radius: 20px;
  overflow: hidden;
  isolation: isolate;
  cursor: pointer;
  display: block;
  text-decoration: none;
  box-shadow: 0 20px 50px -20px rgba(0,0,0,.55);
  transition: transform .5s var(--pg-ease), box-shadow .5s var(--pg-ease);
}
.pg-dest-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 36px 80px -20px rgba(14,165,233,.55);
}
.pg-dest-card img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.4s var(--pg-ease), filter .6s var(--pg-ease);
  filter: saturate(1.1) brightness(.85);
}
.pg-dest-card:hover img {
  transform: scale(1.12);
  filter: saturate(1.25) brightness(.95);
}
.pg-dest-card__shade {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(5,6,20,0) 30%, rgba(5,6,20,.55) 65%, rgba(5,6,20,.95) 100%);
}
.pg-dest-card__body {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 1.6rem 1.4rem 1.5rem;
  color: #fff;
  z-index: 2;
}
.pg-dest-card__pin {
  display: inline-flex;
  font-size: 1.05rem;
  margin-bottom: .5rem;
}
.pg-dest-card__title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.85rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin-bottom: 4px;
}
.pg-dest-card__tag {
  font-size: .85rem;
  color: rgba(255,255,255,.85);
  letter-spacing: .04em;
}
.pg-dest-card--custom {
  background: linear-gradient(135deg, #1a1147, #7c3aed);
}
.pg-dest-card--custom img { filter: saturate(.6) brightness(.55); }
.pg-dest-card--custom .pg-dest-card__pin { color: #fbbf24; font-size: 1.2rem; }

/* Light theme — same overlay treatment for dest cards */
[data-theme="light"] .pg-dest-card { box-shadow: 0 20px 50px -20px rgba(14,165,233,.3); }
[data-theme="light"] .pg-dest-card__shade {
  background: linear-gradient(180deg, rgba(8,47,73,0) 30%, rgba(8,47,73,.55) 65%, rgba(8,47,73,.95) 100%);
}
[data-theme="light"] .pg-dest-card__title,
[data-theme="light"] .pg-dest-card__tag {
  color: #fff;
  text-shadow: 0 2px 12px rgba(8,47,73,.7);
}
[data-theme="light"] .pg-dest-card--custom {
  background: linear-gradient(135deg, #0ea5e9, #0369a1);
}

/* =========================================================
   ABOUT PAGE — PREMIUM PRO QUALITY
   ========================================================= */

/* Hero — bigger title, animated decorations, floating elements */
[data-theme="light"] body:has(.pg-mobile-menu .pg-mobile-menu__link:nth-child(2)[href="about.html"]) .pg-hero:not(.pg-hero--cinematic),
.pg-hero:not(.pg-hero--cinematic) {
  position: relative;
  overflow: hidden;
}

/* Inner-page hero title — larger, more dramatic */
.pg-hero:not(.pg-hero--cinematic) .pg-hero__title {
  font-size: clamp(2.5rem, 6vw, 5.5rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
}
.pg-hero:not(.pg-hero--cinematic) .pg-hero__title .block {
  display: block;
  opacity: 0;
  transform: translateY(28px);
  animation: pg-hero-rise .9s var(--pg-ease) forwards;
}
.pg-hero:not(.pg-hero--cinematic) .pg-hero__title .block:nth-child(1) { animation-delay: .15s; }
.pg-hero:not(.pg-hero--cinematic) .pg-hero__title .block:nth-child(2) { animation-delay: .35s; }
@keyframes pg-hero-rise {
  to { opacity: 1; transform: translateY(0); }
}

/* Hero subtitle - max width + nicer spacing */
.pg-hero:not(.pg-hero--cinematic) .pg-hero__sub {
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  max-width: 640px;
  line-height: 1.6;
  opacity: 0;
  animation: pg-hero-rise 1s var(--pg-ease) .55s forwards;
}

/* Decorative animated dotted path arc across hero */
.pg-hero:not(.pg-hero--cinematic)::before {
  content: '';
  position: absolute;
  top: 30%; right: -5%;
  width: 60%; height: 280px;
  background-image:
    radial-gradient(circle, rgba(14,165,233,.45) 1.5px, transparent 2px),
    radial-gradient(circle, rgba(14,165,233,.45) 1.5px, transparent 2px);
  background-size: 32px 32px, 26px 26px;
  background-position: 0 0, 10px 10px;
  -webkit-mask-image: radial-gradient(ellipse at center, black 25%, transparent 75%);
  mask-image: radial-gradient(ellipse at center, black 25%, transparent 75%);
  opacity: .55;
  animation: pg-dots-drift 18s ease-in-out infinite alternate;
  pointer-events: none;
  z-index: 1;
}
@keyframes pg-dots-drift {
  0%   { transform: translate(0, 0) rotate(0); }
  100% { transform: translate(20px, -15px) rotate(2deg); }
}

/* Floating decorative airplane icon in inner hero */
[data-theme="light"] .pg-hero:not(.pg-hero--cinematic) .pg-hero__eyebrow {
  position: relative;
}
[data-theme="light"] .pg-hero:not(.pg-hero--cinematic) .pg-hero__eyebrow::after {
  content: '✈';
  position: absolute;
  top: -10px; right: -50px;
  font-size: 1.6rem;
  color: #0ea5e9;
  animation: pg-plane-fly 8s ease-in-out infinite;
  filter: drop-shadow(0 4px 12px rgba(14,165,233,.5));
}
@keyframes pg-plane-fly {
  0%,100% { transform: translate(0, 0) rotate(-15deg); }
  50%     { transform: translate(20px, -8px) rotate(-10deg); }
}

/* ============================================
   Story section — premium card composition
   ============================================ */
[data-theme="light"] .pg-section img {
  transition: transform 1s var(--pg-ease), filter .6s var(--pg-ease);
}
[data-theme="light"] .pg-section .aspect-\[4\/5\]:hover img,
[data-theme="light"] .pg-section .aspect-\[3\/4\]:hover img {
  transform: scale(1.05);
  filter: saturate(1.15);
}

/* Floating glass stat card overlap (Story section) */
[data-theme="light"] .pg-glass {
  background: rgba(255,255,255,.92) !important;
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(14,165,233,.18) !important;
  box-shadow:
    0 30px 70px -25px rgba(14,165,233,.4),
    0 0 0 1px rgba(255,255,255,.5),
    inset 0 1px 0 rgba(255,255,255,1);
  animation: pg-card-float 6s ease-in-out infinite;
}
@keyframes pg-card-float {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-8px); }
}

/* Story section text */
[data-theme="light"] .space-y-5 p { color: rgba(8,47,73,.78); }
[data-theme="light"] .space-y-5 .text-white { color: var(--pg-sky-700) !important; font-weight: 600; }

/* ============================================
   Values cards — premium with icon glow
   ============================================ */
[data-theme="light"] .pg-feature {
  position: relative;
  background: rgba(255,255,255,.92) !important;
  backdrop-filter: blur(12px);
  border: 1px solid rgba(14,165,233,.14) !important;
  padding: 2rem 1.5rem;
  border-radius: 24px;
  transition: transform .5s var(--pg-ease), box-shadow .5s var(--pg-ease), border-color .5s;
  overflow: hidden;
}
[data-theme="light"] .pg-feature::before {
  content: '';
  position: absolute; top: -2px; left: -2px; right: -2px;
  height: 3px;
  background: var(--pg-grad-sky);
  border-radius: 24px 24px 0 0;
  opacity: 0;
  transition: opacity .4s var(--pg-ease);
}
[data-theme="light"] .pg-feature:hover {
  transform: translateY(-8px);
  border-color: rgba(14,165,233,.35) !important;
  box-shadow: 0 40px 80px -25px rgba(14,165,233,.45);
}
[data-theme="light"] .pg-feature:hover::before { opacity: 1; }
[data-theme="light"] .pg-feature__icon {
  width: 56px; height: 56px;
  border-radius: 16px;
  display: inline-flex; align-items: center; justify-content: center;
  color: #fff;
  margin-bottom: 1rem;
  transition: transform .5s var(--pg-ease);
}
[data-theme="light"] .pg-feature:hover .pg-feature__icon {
  transform: rotate(-6deg) scale(1.08);
}

/* ============================================
   Numbers section — bigger, animated glow
   ============================================ */
[data-theme="light"] .grid .pg-counter__num {
  font-size: clamp(3rem, 6vw, 5rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  filter: drop-shadow(0 4px 16px rgba(14,165,233,.3));
}
[data-theme="light"] .pg-counter__label {
  color: rgba(8,47,73,.6);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-top: 6px;
}

/* ============================================
   Team cards — premium hover with image zoom
   ============================================ */
[data-theme="light"] .pg-card.overflow-hidden {
  border-radius: 20px;
  transition: transform .5s var(--pg-ease), box-shadow .5s var(--pg-ease);
  position: relative;
  overflow: hidden;
}
[data-theme="light"] .pg-card.overflow-hidden:hover {
  transform: translateY(-10px);
  box-shadow: 0 40px 80px -20px rgba(14,165,233,.4);
}
[data-theme="light"] .pg-card.overflow-hidden .aspect-\[3\/4\] {
  overflow: hidden;
}
[data-theme="light"] .pg-card.overflow-hidden img {
  transition: transform 1s var(--pg-ease), filter .6s var(--pg-ease);
}
[data-theme="light"] .pg-card.overflow-hidden:hover img {
  transform: scale(1.1);
  filter: saturate(1.2);
}
[data-theme="light"] .pg-card.overflow-hidden h4 { color: var(--pg-sky-900); font-weight: 700; }
[data-theme="light"] .pg-card.overflow-hidden .text-white\/55 { color: rgba(8,47,73,.6) !important; }

/* ============================================
   CTA section
   ============================================ */
[data-theme="light"] .pg-cta {
  background: linear-gradient(135deg, #e0f2fe 0%, #7dd3fc 100%);
  border-radius: 32px;
  padding: 4rem 2rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
[data-theme="light"] .pg-cta::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(circle at center, rgba(255,255,255,.5), transparent 60%);
  animation: pg-sun-pulse 5s ease-in-out infinite;
}

/* Section title em emphasized in sky */
[data-theme="light"] .pg-section-title em {
  font-style: italic;
  background: var(--pg-grad-sky);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}

/* Story body text */
[data-theme="light"] .text-white\/70 { color: rgba(8,47,73,.7) !important; }
[data-theme="light"] .text-white\/55 { color: rgba(8,47,73,.55) !important; }
[data-theme="light"] .text-white\/65 { color: rgba(8,47,73,.65) !important; }

/* The 8,500+ floating stat */
[data-theme="light"] .from-orange-400.to-pink-500.bg-clip-text {
  background-image: linear-gradient(135deg, #0ea5e9, #0369a1) !important;
}

/* ====================================================
   Cinematic experiences cards (.pg-cat--feature variant)
   already covered by .pg-cat__title above
   ==================================================== */

/* ====================================================
   FAQ items
   ==================================================== */
[data-theme="light"] .pg-faq-item__head { color: var(--pg-sky-900); }
[data-theme="light"] .pg-faq-item__body { color: var(--pg-text-muted); }

/* ====================================================
   Testimonials
   ==================================================== */
[data-theme="light"] .pg-testimonial p { color: var(--pg-text); }
[data-theme="light"] .pg-testimonial__name { color: var(--pg-sky-900); }
[data-theme="light"] .pg-testimonial__role { color: var(--pg-text-soft); }

/* ====================================================
   Premium hero waves — all sky tones in light, seamless merge
   ==================================================== */
[data-theme="light"] .pg-hero__waves use[fill="url(#pg-wave-grad-1)"] { fill: #bae6fd !important; opacity: .55; }
[data-theme="light"] .pg-hero__waves use[fill="url(#pg-wave-grad-2)"] { fill: #7dd3fc !important; opacity: .75; }
[data-theme="light"] .pg-hero__waves use[fill="url(#pg-wave-grad-3)"] { fill: #38bdf8 !important; opacity: .55; }
[data-theme="light"] .pg-hero__waves use[fill="#050614"] { fill: #e0f2fe !important; }
[data-theme="light"] .pg-hero__waves-caustics { opacity: .6; }
[data-theme="light"] .pg-hero__waves-sun { opacity: .5; }
/* Smooth fade-out at bottom of waves into the next section */
[data-theme="light"] .pg-hero__waves::after {
  content: '';
  position: absolute; left: 0; right: 0; bottom: 0; height: 50px;
  background: linear-gradient(180deg, transparent 0%, #e0f2fe 100%);
  pointer-events: none;
  z-index: 4;
}

/* ====================================================
   Premium text highlight underline animation
   (sky highlight on key headings)
   ==================================================== */
[data-theme="light"] .pg-section-title {
  background-image: linear-gradient(180deg, transparent 60%, rgba(125,211,252,.4) 60%, rgba(125,211,252,.4) 92%, transparent 92%);
  background-repeat: no-repeat;
  background-size: 0 100%;
  background-position: 0 0;
  display: inline-block;
  transition: background-size 1.2s var(--pg-ease);
}
[data-theme="light"] .pg-section-title.aos-animate,
[data-theme="light"] [data-aos].aos-animate .pg-section-title { background-size: 100% 100%; }

/* Generic strong text glow on hover */
[data-theme="light"] a:not(.pg-btn):not(.pg-nav__link):not(.pg-footer__link):not(.pg-dropdown__item):hover {
  color: #0284c7;
}

/* ====================================================
   Stats bar, hero stats numbers, all gradient texts
   ==================================================== */
[data-theme="light"] .pg-hero__stats-bar .pg-counter__num {
  background: linear-gradient(135deg, #0ea5e9 30%, #0369a1 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
[data-theme="light"] .pg-hero__stats-bar .pg-counter__label { color: rgba(255,255,255,.85); }

/* ====================================================
   Hero title accent — make "Together" pop in light
   ==================================================== */
[data-theme="light"] .pg-hero--cinematic .pg-hero__title .accent,
[data-theme="light"] h1 .accent,
[data-theme="light"] h2 .accent {
  background: linear-gradient(135deg, #fde68a 0%, #fcd34d 50%, #f59e0b 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  filter: drop-shadow(0 2px 12px rgba(254,243,199,.55));
}

/* ====================================================
   "Group trips, but better." headline
   ==================================================== */
[data-theme="light"] .pg-section-title { color: var(--pg-sky-900); }
[data-theme="light"] .pg-section-title em,
[data-theme="light"] .pg-section-title .accent {
  background: var(--pg-grad-sky);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  font-style: italic;
}

/* ====================================================
   Feature icons — keep their gradients but ensure visible borders
   ==================================================== */
[data-theme="light"] .pg-feature__icon { box-shadow: 0 12px 28px -8px rgba(14,165,233,.35); }

/* ====================================================
   Cookie banner / cookies
   ==================================================== */
[data-theme="light"] .pg-cookies {
  background: rgba(255,255,255,.95);
  border-color: rgba(14,165,233,.2);
  color: var(--pg-text);
  box-shadow: 0 20px 60px -20px rgba(14,165,233,.35);
}
[data-theme="light"] .pg-cookies p { color: var(--pg-text-muted); }

/* ====================================================
   WhatsApp button — keep green (universal recognition)
   FAB top — sky themed
   ==================================================== */
[data-theme="light"] .pg-fab-top {
  background: linear-gradient(135deg, #ffffff, #e0f2fe);
  color: #0369a1;
  border: 1px solid rgba(14,165,233,.2);
  box-shadow: 0 14px 32px -8px rgba(14,165,233,.4);
}
[data-theme="light"] .pg-fab-top:hover {
  background: var(--pg-grad-sky);
  color: #fff;
  transform: translateY(-4px);
}

/* ====================================================
   Progress bar at top of page
   ==================================================== */
[data-theme="light"] .pg-progress__fill { background: var(--pg-grad-sky); }

/* ====================================================
   Mobile menu
   ==================================================== */
[data-theme="light"] .pg-mobile-menu__link:hover { color: #0284c7; }

/* ====================================================
   Glassy text on dark sections (counter labels etc.)
   ==================================================== */
[data-theme="light"] .pg-fact__rating-num { color: var(--pg-sky-900); }

/* ====================================================
   Premium text reveal animation (light theme heroes)
   ==================================================== */
@keyframes pg-text-reveal {
  0%   { background-position: -200% 0; opacity: .7; }
  100% { background-position: 200% 0;  opacity: 1; }
}
[data-theme="light"] .pg-hero__title {
  background: linear-gradient(90deg, rgba(255,255,255,.92) 0%, rgba(186,230,253,1) 50%, rgba(255,255,255,.92) 100%);
  background-size: 200% 100%;
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  animation: pg-text-reveal 6s ease-in-out infinite alternate;
  text-shadow: none;
}
[data-theme="light"] .pg-hero__title .accent { animation: none; filter: drop-shadow(0 2px 12px rgba(254,243,199,.55)); }

/* ====================================================
   Dropdown menu (nav)
   ==================================================== */
[data-theme="light"] .pg-dropdown {
  background: rgba(255,255,255,.97);
  border: 1px solid rgba(14,165,233,.18);
  box-shadow: 0 30px 80px -20px rgba(14,165,233,.3);
}
[data-theme="light"] .pg-dropdown__eyebrow { color: #0284c7; }
[data-theme="light"] .pg-dropdown__title { color: var(--pg-sky-900); }
[data-theme="light"] .pg-dropdown__sub { color: var(--pg-text-soft); }
[data-theme="light"] .pg-dropdown__item:hover { background: rgba(14,165,233,.08); }
[data-theme="light"] .pg-dropdown__item--cta { background: var(--pg-sky-50); color: #0284c7; }

/* ====================================================
   Filter chips (gallery)
   ==================================================== */
[data-theme="light"] .pg-chip {
  background: #ffffff;
  border-color: rgba(14,165,233,.2);
  color: var(--pg-sky-900);
}
[data-theme="light"] .pg-chip:hover { border-color: #0ea5e9; color: #0284c7; }
[data-theme="light"] .pg-chip.is-active {
  background: var(--pg-grad-sky);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 8px 18px -6px rgba(14,165,233,.5);
}

/* ====================================================
   Black/dark backgrounds — convert any leftover to sky tone
   ==================================================== */
[data-theme="light"] [class*="bg-night"],
[data-theme="light"] [class*="bg-ink"] { background: var(--pg-sky-50) !important; }
[data-theme="light"] [class*="bg-twilight"] { background: #e0f2fe !important; }

/* ====================================================
   "Why PingGovioTrips" feature cards heading + text
   ==================================================== */
[data-theme="light"] .pg-feature__title { color: var(--pg-sky-900); }
[data-theme="light"] .pg-feature__text { color: var(--pg-text-muted); }
[data-theme="light"] .pg-feature__eyebrow { color: #0284c7; }

/* ====================================================
   Marquee / scroll banner
   ==================================================== */
[data-theme="light"] .pg-marquee { background: rgba(14,165,233,.06); color: #0284c7; border-color: rgba(14,165,233,.18); }

/* ---- Inputs ---- */
[data-theme="light"] .pg-input {
  background: #fff;
  color: #1a1f3a;
  border-color: rgba(10,14,39,.12);
}
[data-theme="light"] .pg-input::placeholder { color: rgba(10,14,39,.4); }

/* ---- Chips / filter buttons ---- */
[data-theme="light"] .pg-chip {
  background: #ffffff;
  border-color: rgba(10,14,39,.1);
  color: #1a1f3a;
  box-shadow: 0 4px 12px -4px rgba(10,14,39,.08);
}
[data-theme="light"] .pg-chip.is-active {
  background: var(--pg-grad-sunset);
  color: #fff;
  border-color: transparent;
}

/* ---- Footer (sky-themed premium with animation) ---- */
[data-theme="light"] .pg-footer {
  position: relative;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(56,189,248,.22), transparent 60%),
    radial-gradient(ellipse 60% 50% at 15% 100%, rgba(125,211,252,.18), transparent 60%),
    radial-gradient(ellipse 60% 50% at 85% 100%, rgba(186,230,253,.18), transparent 60%),
    linear-gradient(180deg, #e0f2fe 0%, #bae6fd 100%);
  border-top: 1px solid rgba(14,165,233,.2);
  color: var(--pg-text);
  overflow: hidden;
}
/* Animated cloud layer in footer */
[data-theme="light"] .pg-footer::before {
  content: '';
  position: absolute; inset: 0;
  background-image:
    radial-gradient(ellipse 240px 70px at 5%  20%, rgba(255,255,255,.9), transparent 70%),
    radial-gradient(ellipse 200px 60px at 35% 60%, rgba(255,255,255,.85), transparent 70%),
    radial-gradient(ellipse 280px 75px at 70% 30%, rgba(255,255,255,.92), transparent 70%),
    radial-gradient(ellipse 180px 55px at 90% 75%, rgba(255,255,255,.8), transparent 70%);
  animation: pg-clouds-drift 45s ease-in-out infinite alternate;
  pointer-events: none;
  opacity: .65;
}
/* Animated wave separator at top of footer */
[data-theme="light"] .pg-footer::after {
  content: '';
  position: absolute; top: -1px; left: 0; right: 0; height: 6px;
  background:
    linear-gradient(90deg,
      transparent 0%,
      rgba(14,165,233,.6) 20%,
      rgba(56,189,248,.85) 50%,
      rgba(14,165,233,.6) 80%,
      transparent 100%);
  filter: blur(2px);
  animation: pg-footer-shine 4s ease-in-out infinite alternate;
}
@keyframes pg-footer-shine {
  0%   { opacity: .55; transform: translateX(-20px); }
  100% { opacity: 1;   transform: translateX(20px); }
}
[data-theme="light"] .pg-footer > * { position: relative; z-index: 1; }
[data-theme="light"] .pg-footer__heading {
  color: var(--pg-sky-900);
  position: relative;
  padding-bottom: .5rem;
}
[data-theme="light"] .pg-footer__heading::after {
  content: '';
  position: absolute; bottom: 0; left: 0;
  width: 28px; height: 2px;
  background: var(--pg-grad-sky);
  border-radius: 2px;
}
[data-theme="light"] .pg-footer__link {
  color: rgba(8,47,73,.7);
  transition: color .3s var(--pg-ease), transform .3s var(--pg-ease);
}
[data-theme="light"] .pg-footer__link:hover { color: #0284c7; transform: translateX(4px); }
[data-theme="light"] .pg-social {
  background: rgba(255,255,255,.85);
  border: 1px solid rgba(14,165,233,.18);
  color: #0369a1;
  transition: transform .35s var(--pg-ease), background .35s, box-shadow .35s;
  box-shadow: 0 4px 12px -4px rgba(14,165,233,.18);
}
[data-theme="light"] .pg-social:hover {
  background: var(--pg-grad-sky);
  color: #fff;
  transform: translateY(-3px) rotate(-6deg);
  box-shadow: 0 14px 30px -6px rgba(14,165,233,.55);
}

/* ---- Lightbox ---- */
[data-theme="light"] .pg-lightbox__backdrop {
  background: radial-gradient(ellipse at center, rgba(245,243,255,0.92) 0%, rgba(230,228,240,0.97) 100%);
}
[data-theme="light"] .pg-lightbox__close,
[data-theme="light"] .pg-lightbox__nav,
[data-theme="light"] .pg-lightbox__zoom {
  background: rgba(10,14,39,.06);
  border-color: rgba(10,14,39,.12);
  color: #1a1f3a;
}
[data-theme="light"] .pg-lightbox__close svg,
[data-theme="light"] .pg-lightbox__nav svg,
[data-theme="light"] .pg-lightbox__btn svg { stroke: #1a1f3a; }
[data-theme="light"] .pg-lightbox__counter { background: rgba(10,14,39,.06); color: #1a1f3a; border-color: rgba(10,14,39,.1); }
[data-theme="light"] .pg-lightbox__caption { color: #1a1f3a; }
[data-theme="light"] .pg-lightbox__level { color: #1a1f3a; }
[data-theme="light"] .pg-lightbox__divider { background: rgba(10,14,39,.18); }

/* ---- Borders & dividers ---- */
[data-theme="light"] .border-white\/8 { border-color: rgba(10,14,39,.08) !important; }
[data-theme="light"] .border-white\/10 { border-color: rgba(10,14,39,.1) !important; }
[data-theme="light"] .text-white\/40 { color: rgba(10,14,39,.4) !important; }
[data-theme="light"] .text-white\/50 { color: rgba(10,14,39,.5) !important; }
[data-theme="light"] .text-white\/60 { color: rgba(10,14,39,.6) !important; }
[data-theme="light"] .text-white\/65 { color: rgba(10,14,39,.65) !important; }
[data-theme="light"] .text-white\/70 { color: rgba(10,14,39,.7) !important; }
[data-theme="light"] .text-white\/80 { color: rgba(10,14,39,.8) !important; }
[data-theme="light"] .bg-ink { background: #fafaf7 !important; }
[data-theme="light"] .text-white { color: #1a1f3a !important; }

/* ---- Headings inside hero stay white over photo ---- */
[data-theme="light"] .pg-hero .pg-hero__title { color: #fff; }
[data-theme="light"] .pg-hero .pg-hero__sub { color: rgba(255,255,255,.92); }

/* ---- Route card (already light bg) — keep but soften shadow ---- */
[data-theme="light"] .pg-route-card { box-shadow: 0 40px 90px -20px rgba(10,14,39,.25), 0 8px 28px -10px rgba(10,14,39,.15), inset 0 1px 0 rgba(255,255,255,1); }

/* ---- Scroll indicator ---- */
[data-theme="light"] .pg-scroll-indicator { color: rgba(255,255,255,.85); }

/* ---- FAB buttons ---- */
[data-theme="light"] .pg-fab-top { background: #fff; color: #1a1f3a; box-shadow: 0 12px 28px -8px rgba(10,14,39,.2); }
