/* =====================================================
   /theme/css/luxury-tours.css
   Luxury tour pages — light & refined
   Palette: aligned with tours.css (#fec107 / #f19107 / #f94141)
   Typography: Cormorant Garamond (display) + DM Sans (body)
   ===================================================== */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700&display=swap');

:root{
  /* ── Core palette — mirrors tours.css exactly ── */
  --lux-primary:#fec107;
  --lux-primary-dark:#f19107;
  --lux-accent:#f94141;
  --lux-accent-dark:#e63535;

  /* ── Derived luxury warm tones ── */
  --lux-gold:var(--lux-primary-dark);
  --lux-gold-light:var(--lux-primary);
  --lux-gold-pale:#fff9ef;
  --lux-gold-dim:rgba(241,145,7,.12);

  /* ── Backgrounds — white / cream / warm grey ── */
  --lux-bg:#ffffff;
  --lux-bg-warm:#faf8f4;
  --lux-bg-cream:#fff9ef;
  --lux-bg-soft:#f8fafc;
  --lux-bg-section:#f4f2ee;

  /* ── Ink (text) — from tours.css ── */
  --lux-ink:#0f172a;
  --lux-ink-soft:#1e293b;
  --lux-ink-muted:#475569;
  --lux-ink-dim:#64748b;

  /* ── Borders ── */
  --lux-line:rgba(15,23,42,.09);
  --lux-line-gold:rgba(241,145,7,.22);
  --lux-line-strong:rgba(15,23,42,.14);

  /* ── Status ── */
  --lux-success:#16a34a;
  --lux-danger:#ef4444;

  /* ── Fonts ── */
  --font-display:'Cormorant Garamond', 'Georgia', serif;
  --font-body:'DM Sans', 'Segoe UI', sans-serif;

  /* ── Radii ── */
  --r-xs:6px;
  --r-sm:10px;
  --r-md:18px;
  --r-lg:24px;
  --r-xl:32px;
  --r-pill:999px;

  /* ── Shadows ── */
  --shadow-sm:0 6px 18px rgba(2,8,23,.05);
  --shadow-md:0 14px 36px rgba(2,8,23,.08);
  --shadow-lg:0 22px 52px rgba(2,8,23,.10);
  --shadow-gold:0 14px 36px rgba(249,65,65,.18);

  /* ── Gradients — same as tours.css ── */
  --grad-primary:linear-gradient(135deg, var(--lux-primary), var(--lux-accent));
  --grad-gold:linear-gradient(135deg, var(--lux-primary-dark), var(--lux-primary));
  --grad-soft:linear-gradient(135deg, rgba(254,193,7,.14), rgba(249,65,65,.08));
}

/* =====================================================
   BASE
   ===================================================== */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

.lux-page{
  background:var(--lux-bg);
  color:var(--lux-ink);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* =====================================================
   LAYOUT
   ===================================================== */
.lux-container{
  max-width:1240px;
  margin:0 auto;
  padding:0 20px;
}

.lux-section{
  padding:84px 0;
  position:relative;
}

.lux-section--tight{ padding:60px 0; }
.lux-section--cream{ background:var(--lux-bg-cream); }
.lux-section--warm{  background:var(--lux-bg-warm);  }
.lux-section--soft{  background:var(--lux-bg-soft);  }
.lux-section--section{ background:var(--lux-bg-section); }

/* =====================================================
   TYPOGRAPHY
   ===================================================== */
.lux-overline{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:var(--font-body);
  font-size:11px;
  font-weight:700;
  letter-spacing:.20em;
  text-transform:uppercase;
  color:var(--lux-primary-dark);
  margin-bottom:16px;
}

.lux-overline::before,
.lux-overline::after{
  content:"";
  display:block;
  height:1px;
  width:28px;
  background:var(--grad-primary);
  opacity:.55;
}

.lux-display{
  font-family:var(--font-display);
  font-weight:400;
  color:var(--lux-ink);
  line-height:1.06;
  letter-spacing:-.015em;
}

.lux-heading{
  font-family:var(--font-display);
  font-weight:500;
  color:var(--lux-ink);
  line-height:1.10;
}

.lux-body-text{
  font-family:var(--font-body);
  font-size:15px;
  line-height:1.85;
  color:var(--lux-ink-muted);
  font-weight:400;
}

.lux-accent-text{
  background:var(--grad-primary);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}

/* =====================================================
   BUTTONS — harmonised with tours.css .tour-btn
   ===================================================== */
.lux-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  font-family:var(--font-body);
  font-size:13px;
  font-weight:700;
  letter-spacing:.07em;
  text-transform:uppercase;
  text-decoration:none;
  border:none;
  cursor:pointer;
  padding:14px 30px;
  border-radius:var(--r-pill);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease, opacity .2s ease;
  position:relative;
  overflow:hidden;
}

.lux-btn:hover{ transform:translateY(-2px); }

.lux-btn--primary{
  background:var(--grad-primary);
  color:#111827;
  box-shadow:var(--shadow-gold);
}

.lux-btn--primary:hover{
  box-shadow:0 18px 44px rgba(249,65,65,.28);
  opacity:.96;
}

.lux-btn--ghost{
  background:#fff;
  color:var(--lux-ink);
  border:1px solid var(--lux-line);
}

.lux-btn--ghost:hover{
  border-color:rgba(249,65,65,.20);
  box-shadow:var(--shadow-sm);
}

.lux-btn--outline{
  background:transparent;
  color:var(--lux-ink);
  border:1px solid rgba(15,23,42,.18);
}

.lux-btn--outline:hover{
  border-color:rgba(249,65,65,.22);
  background:rgba(254,193,7,.05);
}

.lux-btn-arrow{ transition:transform .22s ease; }
.lux-btn:hover .lux-btn-arrow{ transform:translateX(4px); }

/* =====================================================
   BADGE — same feel as tours.css .tour-badge
   ===================================================== */
.lux-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 13px;
  border-radius:var(--r-pill);
  background:#fff;
  border:1px solid var(--lux-line);
  font-family:var(--font-body);
  font-size:12px;
  font-weight:700;
  color:var(--lux-ink-muted);
  letter-spacing:.03em;
}

.lux-badge__dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--grad-primary);
  flex:0 0 8px;
}

/* =====================================================
   TRUST BAR
   ===================================================== */
.lux-trust{
  background:var(--lux-bg-cream);
  border-top:1px solid var(--lux-line-gold);
  border-bottom:1px solid var(--lux-line-gold);
  padding:18px 0;
}

.lux-trust__inner{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:40px;
  flex-wrap:wrap;
}

.lux-trust__item{
  display:flex;
  align-items:center;
  gap:9px;
  font-family:var(--font-body);
  font-size:13px;
  font-weight:600;
  color:var(--lux-ink-soft);
  letter-spacing:.03em;
}

.lux-trust__icon{
  color:var(--lux-primary-dark);
  font-size:14px;
}

/* =====================================================
   HERO — full-bleed image with warm gradient overlay
   ===================================================== */
.lux-hero{
  position:relative;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  padding-top:80px;
}

.lux-hero__bg{
  position:absolute;
  inset:0;
  z-index:0;
}

.lux-hero__img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 35%;
  display:block;
  transform:scale(1.04);
  animation:luxHeroPan 20s ease-in-out infinite alternate;
}

@keyframes luxHeroPan{
  from{ transform:scale(1.04) translateX(0); }
  to{   transform:scale(1.04) translateX(-2%); }
}

.lux-hero__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(
    180deg,
    rgba(15,23,42,.22)  0%,
    rgba(15,23,42,.05)  28%,
    rgba(15,23,42,.42)  62%,
    rgba(15,23,42,.82) 100%
  );
}

/* Amber warmth rising from base */
.lux-hero__overlay-warm{
  position:absolute;
  inset:0;
  background:radial-gradient(
    ellipse 80% 50% at 50% 110%,
    rgba(254,193,7,.10) 0%,
    transparent 70%
  );
}

.lux-hero__content{
  position:relative;
  z-index:2;
  padding:0 0 68px;
}

.lux-hero__grid{
  display:grid;
  grid-template-columns:1fr auto;
  gap:44px;
  align-items:flex-end;
}

.lux-hero__left{ min-width:0; }

.lux-hero__badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:26px;
}

/* Hero badges — white glass */
.lux-hero .lux-badge{
  background:rgba(255,255,255,.85);
  backdrop-filter:blur(8px);
  border-color:rgba(255,255,255,.50);
  color:var(--lux-ink-soft);
  font-size:11px;
}

.lux-hero__title{
  font-size:clamp(44px, 6vw, 84px);
  margin-bottom:22px;
  color:#ffffff;
  text-shadow:0 2px 24px rgba(0,0,0,.18);
}

.lux-hero__title em{
  font-style:italic;
  background:var(--grad-primary);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}

.lux-hero__subtitle{
  max-width:60ch;
  font-size:16px;
  line-height:1.82;
  color:rgba(255,255,255,.78);
  margin-bottom:34px;
  font-weight:300;
}

.lux-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
}

/* Hero price card — white glass */
.lux-hero__price-card{
  background:rgba(255,255,255,.93);
  backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.70);
  border-radius:var(--r-lg);
  padding:26px 24px;
  text-align:center;
  min-width:210px;
  box-shadow:0 24px 60px rgba(2,8,23,.16);
}

.lux-hero__price-label{
  font-family:var(--font-body);
  font-size:10px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--lux-primary-dark);
  margin-bottom:10px;
  display:block;
}

.lux-hero__price-from{
  font-size:11px;
  color:var(--lux-ink-dim);
  margin-bottom:4px;
}

.lux-hero__price-amount{
  font-family:var(--font-display);
  font-size:50px;
  font-weight:400;
  color:var(--lux-ink);
  line-height:1;
  margin-bottom:4px;
}

.lux-hero__price-amount sup{
  font-size:20px;
  vertical-align:super;
  background:var(--grad-primary);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}

.lux-hero__price-per{
  font-size:11px;
  color:var(--lux-ink-dim);
  margin-bottom:20px;
}

/* Scroll indicator */
.lux-hero__scroll{
  position:absolute;
  bottom:26px;
  left:50%;
  transform:translateX(-50%);
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:7px;
  color:rgba(255,255,255,.45);
  font-family:var(--font-body);
  font-size:10px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.lux-hero__scroll-line{
  width:1px;
  height:44px;
  background:linear-gradient(180deg, transparent, rgba(254,193,7,.70));
  animation:luxScrollPulse 2.2s ease-in-out infinite;
}

@keyframes luxScrollPulse{
  0%,100%{ opacity:.4; }
  50%{     opacity:1;  }
}

/* =====================================================
   STATS STRIP
   ===================================================== */
.lux-stats{
  background:#fff;
  border-bottom:1px solid var(--lux-line);
}

.lux-stats__grid{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
}

.lux-stat-item{
  padding:26px 16px;
  text-align:center;
  border-right:1px solid var(--lux-line);
}

.lux-stat-item:last-child{ border-right:none; }

.lux-stat-item__number{
  font-family:var(--font-display);
  font-size:42px;
  font-weight:400;
  line-height:1;
  margin-bottom:6px;
  background:var(--grad-primary);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}

.lux-stat-item__label{
  font-family:var(--font-body);
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--lux-ink-dim);
}

/* =====================================================
   OVERVIEW
   ===================================================== */
.lux-overview{ background:#fff; }

.lux-overview__grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:72px;
  align-items:start;
}

.lux-overview__text p{
  font-size:15px;
  line-height:1.88;
  color:var(--lux-ink-muted);
  margin-bottom:18px;
}

.lux-overview__text p:last-child{ margin-bottom:0; }

/* Pull-quote — amber left border, warm bg */
.lux-overview__pull-quote{
  margin:28px 0;
  padding:20px 24px;
  border-left:3px solid var(--lux-primary-dark);
  background:var(--grad-soft);
  border-radius:0 var(--r-sm) var(--r-sm) 0;
}

.lux-overview__pull-quote p{
  font-family:var(--font-display);
  font-size:22px;
  font-style:italic;
  line-height:1.52;
  color:var(--lux-ink) !important;
  margin:0 !important;
  font-weight:300;
}

.lux-fact-stack{ display:grid; gap:10px; }

.lux-fact-card{
  background:#fff;
  border:1px solid var(--lux-line);
  border-radius:var(--r-md);
  padding:18px 20px;
  box-shadow:var(--shadow-sm);
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.lux-fact-card:hover{
  transform:translateX(4px);
  border-color:var(--lux-line-gold);
  box-shadow:var(--shadow-md);
}

.lux-fact-card__label{
  font-family:var(--font-body);
  font-size:10px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--lux-primary-dark);
  margin-bottom:5px;
}

.lux-fact-card__value{
  font-family:var(--font-display);
  font-size:17px;
  font-weight:400;
  color:var(--lux-ink);
  line-height:1.4;
}

/* =====================================================
   GALLERY SLIDER
   ===================================================== */
.lux-gallery{ background:var(--lux-bg-warm); overflow:hidden; }

.lux-gallery__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:32px;
  flex-wrap:wrap;
}

.lux-gallery__controls{ display:flex; gap:10px; }

.lux-gallery__arrow{
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid var(--lux-line);
  background:#fff;
  color:var(--lux-ink);
  font-size:20px;
  cursor:pointer;
  display:grid;
  place-items:center;
  box-shadow:var(--shadow-sm);
  transition:all .22s ease;
}

.lux-gallery__arrow:hover{
  border-color:var(--lux-line-gold);
  box-shadow:var(--shadow-md);
  transform:translateY(-1px);
}

.lux-gallery__track{
  display:flex;
  gap:16px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding-bottom:4px;
}

.lux-gallery__track::-webkit-scrollbar{ display:none; }

.lux-gallery__slide{
  flex:0 0 clamp(260px, 30vw, 400px);
  scroll-snap-align:start;
  position:relative;
  border-radius:var(--r-lg);
  overflow:hidden;
  background:var(--lux-bg-section);
  aspect-ratio:3/4;
  box-shadow:var(--shadow-md);
}

.lux-gallery__slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .45s ease;
}

.lux-gallery__slide:hover img{ transform:scale(1.05); }

.lux-gallery__slide-caption{
  position:absolute;
  inset:auto 0 0 0;
  padding:22px 18px 16px;
  background:linear-gradient(0deg, rgba(15,23,42,.62), transparent);
  font-family:var(--font-body);
  font-size:13px;
  font-weight:600;
  color:#fff;
  letter-spacing:.04em;
}

/* =====================================================
   ITINERARY
   ===================================================== */
.lux-itinerary{ background:#fff; }

.lux-itinerary__layout{
  display:grid;
  grid-template-columns:1fr 340px;
  gap:56px;
  align-items:start;
}

/* Clean accordion */
.lux-accordion{ display:grid; gap:0; }

.lux-accordion__item{ border-bottom:1px solid var(--lux-line); }
.lux-accordion__item:first-child{ border-top:1px solid var(--lux-line); }

.lux-accordion__summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:18px;
  padding:22px 0;
}

.lux-accordion__summary::-webkit-details-marker{ display:none; }

.lux-accordion__summary:hover .lux-accordion__title{
  color:var(--lux-primary-dark);
}

/* Day pill — uses the same gradient as tours.css */
.lux-accordion__day-pill{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:72px;
  padding:8px 14px;
  border-radius:var(--r-pill);
  background:var(--grad-primary);
  color:#111827;
  font-family:var(--font-body);
  font-size:11px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  box-shadow:0 8px 18px rgba(249,65,65,.16);
  white-space:nowrap;
}

.lux-accordion__title{
  font-family:var(--font-display);
  font-size:21px;
  font-weight:400;
  color:var(--lux-ink-soft);
  flex:1;
  line-height:1.3;
  transition:color .2s ease;
}

.lux-accordion__icon{
  flex:0 0 auto;
  width:30px;
  height:30px;
  border-radius:50%;
  border:1px solid var(--lux-line);
  background:#fff;
  display:grid;
  place-items:center;
  color:var(--lux-primary-dark);
  font-size:18px;
  font-weight:400;
  box-shadow:var(--shadow-sm);
  transition:all .2s ease;
}

details[open] .lux-accordion__icon{
  background:var(--grad-primary);
  color:#111827;
  border-color:transparent;
  box-shadow:var(--shadow-gold);
  transform:rotate(45deg);
}

.lux-accordion__body{
  padding:4px 0 26px 90px;
}

.lux-accordion__body p{
  font-size:15px;
  line-height:1.88;
  color:var(--lux-ink-muted);
  margin-bottom:14px;
}

.lux-accordion__body p:last-of-type{ margin-bottom:0; }

.lux-accordion__highlights{
  list-style:none;
  display:grid;
  gap:8px;
  margin-top:16px;
}

.lux-accordion__highlights li{
  display:flex;
  align-items:flex-start;
  gap:12px;
  font-size:14px;
  color:var(--lux-ink-muted);
  line-height:1.65;
}

.lux-accordion__highlights li::before{
  content:"";
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--grad-primary);
  flex:0 0 9px;
  margin-top:5px;
  box-shadow:0 0 0 3px rgba(249,65,65,.10);
}

/* ── Sticky Sidebar ── */
.lux-itinerary__sidebar{
  position:sticky;
  top:96px;
}

.lux-booking-card{
  background:#fff;
  border:1px solid var(--lux-line);
  border-radius:var(--r-xl);
  overflow:hidden;
  box-shadow:var(--shadow-lg);
}

.lux-booking-card__header{
  background:var(--grad-soft);
  padding:22px 22px 18px;
  border-bottom:1px solid var(--lux-line);
  text-align:center;
}

.lux-booking-card__title{
  font-family:var(--font-display);
  font-size:26px;
  font-weight:400;
  color:var(--lux-ink);
  margin-bottom:3px;
}

.lux-booking-card__sub{
  font-size:12px;
  color:var(--lux-ink-dim);
}

.lux-booking-card__price-row{
  padding:20px 22px;
  border-bottom:1px solid var(--lux-line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.lux-booking-card__price-from{
  font-family:var(--font-body);
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--lux-ink-dim);
  display:block;
  margin-bottom:3px;
}

.lux-booking-card__price{
  font-family:var(--font-display);
  font-size:46px;
  font-weight:400;
  line-height:1;
  color:var(--lux-ink);
}

.lux-booking-card__price sup{
  font-size:18px;
  vertical-align:super;
  background:var(--grad-primary);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}

.lux-booking-card__price-per{
  font-size:11px;
  color:var(--lux-ink-dim);
  margin-top:3px;
}

.lux-booking-card__badge-stack{ display:grid; gap:5px; }

.lux-booking-card__mini-badge{
  font-family:var(--font-body);
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:6px 12px;
  border-radius:var(--r-pill);
  background:var(--lux-gold-pale);
  border:1px solid var(--lux-line-gold);
  color:var(--lux-primary-dark);
  text-align:center;
}

.lux-booking-card__features{
  padding:18px 22px;
  display:grid;
  gap:11px;
  border-bottom:1px solid var(--lux-line);
}

.lux-booking-card__feature{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:13px;
  color:var(--lux-ink-muted);
  line-height:1.5;
}

.lux-booking-card__feature-icon{
  width:26px;
  height:26px;
  border-radius:var(--r-xs);
  background:var(--grad-soft);
  border:1px solid var(--lux-line-gold);
  display:grid;
  place-items:center;
  font-size:12px;
  color:var(--lux-primary-dark);
  flex:0 0 26px;
  font-weight:700;
}

.lux-booking-card__actions{
  padding:18px 22px;
  display:grid;
  gap:9px;
}

.lux-booking-card__guarantee{
  padding:12px 22px;
  background:var(--lux-bg-cream);
  border-top:1px solid var(--lux-line);
  text-align:center;
  font-size:12px;
  color:var(--lux-ink-dim);
  font-weight:500;
  letter-spacing:.02em;
}

/* =====================================================
   TOUR INFORMATION BOX (tabs)
   ===================================================== */
.lux-info{ background:var(--lux-bg-soft); }

.lux-info__box{
  border:1px solid var(--lux-line);
  border-radius:var(--r-xl);
  overflow:hidden;
  background:#fff;
  box-shadow:var(--shadow-md);
}

.lux-info__top{
  padding:36px 44px 28px;
  border-bottom:1px solid var(--lux-line);
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  background:
    radial-gradient(700px 200px at 0% 0%, rgba(254,193,7,.10), transparent 60%),
    radial-gradient(700px 200px at 100% 0%, rgba(249,65,65,.07), transparent 60%),
    #fff;
}

.lux-info__route-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 16px;
  border:1px solid var(--lux-line-gold);
  background:var(--lux-gold-pale);
  border-radius:var(--r-pill);
  font-family:var(--font-body);
  font-size:12px;
  font-weight:700;
  letter-spacing:.06em;
  color:var(--lux-primary-dark);
  white-space:nowrap;
}

.lux-info__tabs{
  display:flex;
  gap:6px;
  padding:18px 44px 0;
  border-bottom:1px solid var(--lux-line);
  overflow-x:auto;
  scrollbar-width:none;
}

.lux-info__tabs::-webkit-scrollbar{ display:none; }

.lux-info__tab{
  appearance:none;
  border:1px solid var(--lux-line);
  background:#fff;
  font-family:var(--font-body);
  font-size:13px;
  font-weight:700;
  letter-spacing:.07em;
  text-transform:uppercase;
  color:var(--lux-ink-muted);
  padding:12px 20px;
  border-radius:var(--r-pill);
  cursor:pointer;
  white-space:nowrap;
  margin-bottom:16px;
  transition:all .2s ease;
}

.lux-info__tab:hover{
  border-color:var(--lux-line-gold);
  background:var(--lux-gold-pale);
  color:var(--lux-ink);
}

.lux-info__tab[aria-selected="true"]{
  background:var(--grad-primary);
  color:#111827;
  border-color:transparent;
  box-shadow:var(--shadow-gold);
}

.lux-info__panel-wrap{ padding:30px 44px; }

.lux-info__panel[hidden]{ display:none; }

.lux-info__panel-head{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:24px;
  flex-wrap:wrap;
}

.lux-info__panel-head h3{
  font-family:var(--font-display);
  font-size:30px;
  font-weight:400;
  color:var(--lux-ink);
  margin:0;
}

.lux-info__pill{
  font-family:var(--font-body);
  font-size:11px;
  font-weight:700;
  letter-spacing:.10em;
  text-transform:uppercase;
  padding:6px 14px;
  border-radius:var(--r-pill);
}

.lux-info__pill--neutral{
  background:var(--lux-gold-pale);
  border:1px solid var(--lux-line-gold);
  color:var(--lux-primary-dark);
}

.lux-info__pill--ok{
  background:rgba(22,163,74,.09);
  border:1px solid rgba(22,163,74,.22);
  color:var(--lux-success);
}

.lux-info__pill--no{
  background:rgba(239,68,68,.08);
  border:1px solid rgba(239,68,68,.22);
  color:var(--lux-danger);
}

.lux-info__grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:14px;
}

.lux-info__item{
  display:grid;
  grid-template-columns:28px 1fr;
  gap:12px;
  align-items:start;
  padding:16px;
  border:1px solid var(--lux-line);
  border-radius:var(--r-md);
  background:var(--lux-bg-soft);
  transition:border-color .2s ease, box-shadow .2s ease;
}

.lux-info__item:hover{
  border-color:var(--lux-line-gold);
  box-shadow:var(--shadow-sm);
}

.lux-info__icon{
  width:28px;
  height:28px;
  border-radius:var(--r-xs);
  display:grid;
  place-items:center;
  font-size:13px;
  font-weight:700;
  flex:0 0 28px;
}

.lux-info__icon--star{
  background:var(--grad-soft);
  border:1px solid var(--lux-line-gold);
  color:var(--lux-primary-dark);
}

.lux-info__icon--ok{
  background:rgba(22,163,74,.10);
  border:1px solid rgba(22,163,74,.22);
  color:var(--lux-success);
}

.lux-info__icon--no{
  background:rgba(239,68,68,.08);
  border:1px solid rgba(239,68,68,.22);
  color:var(--lux-danger);
}

.lux-info__icon--dot{
  background:var(--lux-gold-pale);
  border:1px solid var(--lux-line-gold);
  color:var(--lux-primary-dark);
  font-size:10px;
}

.lux-info__item-title{
  font-size:15px;
  font-weight:700;
  color:var(--lux-ink);
  margin-bottom:4px;
  display:block;
  line-height:1.3;
}

.lux-info__item-desc{
  font-size:13px;
  line-height:1.7;
  color:var(--lux-ink-muted);
}

.lux-info__note{
  margin-top:20px;
  padding:14px 18px;
  border:1px dashed rgba(249,65,65,.20);
  border-radius:var(--r-sm);
  background:var(--grad-soft);
  font-size:13px;
  color:var(--lux-ink-muted);
  line-height:1.72;
}

.lux-info__cta{
  margin:0;
  padding:28px 44px;
  background:var(--lux-bg-cream);
  border-top:1px solid var(--lux-line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  flex-wrap:wrap;
}

.lux-info__cta-text h3{
  font-family:var(--font-display);
  font-size:26px;
  font-weight:400;
  color:var(--lux-ink);
  margin-bottom:5px;
}

.lux-info__cta-text p{
  font-size:14px;
  color:var(--lux-ink-muted);
  line-height:1.65;
}

.lux-info__cta-actions{
  display:flex;
  gap:11px;
  flex-wrap:wrap;
}

/* =====================================================
   EXPERIENCE CARDS
   ===================================================== */
.lux-experience{ background:var(--lux-bg-warm); }

.lux-experience::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:640px;
  height:1px;
  background:var(--grad-primary);
  opacity:.25;
}

.lux-experience__grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
}

.lux-experience__card{
  background:#fff;
  border:1px solid var(--lux-line);
  border-radius:var(--r-lg);
  padding:32px 26px 28px;
  position:relative;
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.lux-experience__card::after{
  content:"";
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  height:3px;
  background:var(--grad-primary);
  transform:scaleX(0);
  transition:transform .3s ease;
  transform-origin:left;
}

.lux-experience__card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-lg);
  border-color:var(--lux-line-gold);
}

.lux-experience__card:hover::after{ transform:scaleX(1); }

.lux-experience__number{
  font-family:var(--font-display);
  font-size:72px;
  font-weight:300;
  line-height:1;
  background:var(--grad-primary);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  opacity:.12;
  position:absolute;
  top:16px;
  right:20px;
}

.lux-experience__icon{
  font-size:24px;
  margin-bottom:18px;
  color:var(--lux-primary-dark);
  display:block;
}

.lux-experience__card h3{
  font-family:var(--font-display);
  font-size:22px;
  font-weight:500;
  color:var(--lux-ink);
  margin-bottom:10px;
  line-height:1.3;
}

.lux-experience__card p{
  font-size:14px;
  line-height:1.8;
  color:var(--lux-ink-muted);
}

/* =====================================================
   TESTIMONIALS
   ===================================================== */
.lux-testimonials{ background:#fff; }

.lux-testimonials__grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
  margin-top:44px;
}

.lux-testimonial{
  background:var(--lux-bg-warm);
  border:1px solid var(--lux-line);
  border-radius:var(--r-lg);
  padding:28px 24px;
  position:relative;
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.lux-testimonial:hover{
  transform:translateY(-4px);
  border-color:var(--lux-line-gold);
  box-shadow:var(--shadow-md);
}

.lux-testimonial__quote{
  font-family:var(--font-display);
  font-size:80px;
  line-height:.7;
  color:rgba(249,65,65,.08);
  position:absolute;
  top:14px;
  right:18px;
  font-weight:700;
  user-select:none;
}

.lux-testimonial__stars{
  display:flex;
  gap:2px;
  margin-bottom:16px;
}

.lux-testimonial__star{ color:var(--lux-primary-dark); font-size:13px; }

.lux-testimonial__text{
  font-family:var(--font-display);
  font-size:18px;
  font-style:italic;
  font-weight:300;
  line-height:1.65;
  color:var(--lux-ink-soft);
  margin-bottom:22px;
}

.lux-testimonial__author{ display:flex; align-items:center; gap:13px; }

.lux-testimonial__avatar{
  width:40px;
  height:40px;
  border-radius:50%;
  background:var(--grad-primary);
  display:grid;
  place-items:center;
  font-family:var(--font-display);
  font-size:18px;
  color:#111827;
  flex:0 0 40px;
  font-weight:500;
}

.lux-testimonial__name{
  font-size:14px;
  font-weight:700;
  color:var(--lux-ink);
  margin-bottom:2px;
}

.lux-testimonial__origin{
  font-size:12px;
  color:var(--lux-ink-dim);
}

.lux-tripadvisor{
  margin-top:32px;
  display:flex;
  align-items:center;
  gap:16px;
  padding:18px 22px;
  border:1px solid var(--lux-line);
  border-radius:var(--r-md);
  background:var(--lux-bg-cream);
  text-decoration:none;
  box-shadow:var(--shadow-sm);
  transition:all .22s ease;
  max-width:440px;
}

.lux-tripadvisor:hover{
  border-color:var(--lux-line-gold);
  box-shadow:var(--shadow-md);
  transform:translateY(-2px);
}

.lux-tripadvisor__logo{
  width:76px;
  height:auto;
  object-fit:contain;
  flex:0 0 76px;
}

.lux-tripadvisor__text strong{
  display:block;
  font-size:15px;
  font-weight:700;
  color:var(--lux-ink);
  margin-bottom:2px;
}

.lux-tripadvisor__text span{
  font-size:13px;
  color:var(--lux-ink-dim);
}

/* =====================================================
   PRICING
   ===================================================== */
.lux-pricing{ background:var(--lux-bg-soft); }

.lux-pricing__grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
  margin-top:44px;
}

.lux-pricing__card{
  border:1px solid var(--lux-line);
  border-radius:var(--r-lg);
  overflow:hidden;
  background:#fff;
  box-shadow:var(--shadow-sm);
  transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.lux-pricing__card:hover{
  transform:translateY(-4px);
  border-color:var(--lux-line-gold);
  box-shadow:var(--shadow-md);
}

.lux-pricing__card--featured{
  border-color:rgba(249,65,65,.22);
  box-shadow:var(--shadow-gold);
}

.lux-pricing__card--featured::before{
  content:"Most Popular";
  display:block;
  text-align:center;
  padding:8px;
  background:var(--grad-primary);
  font-family:var(--font-body);
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#111827;
}

.lux-pricing__card-header{
  padding:26px 22px 18px;
  border-bottom:1px solid var(--lux-line);
  background:
    radial-gradient(500px 160px at 0% 0%, rgba(254,193,7,.09), transparent 60%),
    radial-gradient(500px 160px at 100% 0%, rgba(249,65,65,.06), transparent 60%),
    #fff;
}

.lux-pricing__card-type{
  font-family:var(--font-body);
  font-size:10px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--lux-primary-dark);
  margin-bottom:6px;
}

.lux-pricing__card-title{
  font-family:var(--font-display);
  font-size:26px;
  font-weight:400;
  color:var(--lux-ink);
  margin-bottom:10px;
}

.lux-pricing__card-price{
  font-family:var(--font-display);
  font-size:50px;
  font-weight:300;
  color:var(--lux-ink);
  line-height:1;
}

.lux-pricing__card-price sup{
  font-size:20px;
  vertical-align:super;
  background:var(--grad-primary);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}

.lux-pricing__card-per{
  font-size:12px;
  color:var(--lux-ink-dim);
  margin-top:4px;
}

.lux-pricing__card-features{
  padding:18px 22px;
  display:grid;
  gap:10px;
}

.lux-pricing__feature{
  font-size:13px;
  color:var(--lux-ink-muted);
  display:flex;
  align-items:flex-start;
  gap:10px;
  line-height:1.55;
}

.lux-pricing__feature::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--grad-primary);
  flex:0 0 8px;
  margin-top:4px;
  box-shadow:0 0 0 3px rgba(249,65,65,.10);
}

.lux-pricing__card-footer{ padding:14px 22px 22px; }

/* =====================================================
   FAQ
   ===================================================== */
.lux-faq{ background:#fff; }

.lux-faq__grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:14px;
  margin-top:44px;
}

.lux-faq__item{
  border:1px solid var(--lux-line);
  border-radius:var(--r-md);
  padding:22px;
  background:var(--lux-bg-soft);
  transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.lux-faq__item:hover{
  border-color:var(--lux-line-gold);
  transform:translateY(-2px);
  box-shadow:var(--shadow-sm);
}

.lux-faq__q{
  font-size:15px;
  font-weight:700;
  color:var(--lux-ink);
  margin-bottom:9px;
  line-height:1.45;
  display:flex;
  align-items:flex-start;
  gap:10px;
}

.lux-faq__q::before{
  content:"Q";
  flex:0 0 auto;
  font-family:var(--font-body);
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
  color:var(--lux-primary-dark);
  background:var(--lux-gold-pale);
  border:1px solid var(--lux-line-gold);
  padding:3px 7px;
  border-radius:var(--r-xs);
  margin-top:2px;
}

.lux-faq__a{
  font-size:14px;
  line-height:1.8;
  color:var(--lux-ink-muted);
  padding-left:30px;
}

/* =====================================================
   IMPORTANT NOTE BOX
   ===================================================== */
.lux-important{
  background:var(--lux-bg-cream);
  border:1px solid var(--lux-line-gold);
  border-radius:var(--r-md);
  padding:22px 26px;
  margin-top:28px;
}

.lux-important__title{
  font-family:var(--font-body);
  font-size:11px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--lux-primary-dark);
  margin-bottom:10px;
  display:flex;
  align-items:center;
  gap:8px;
}

.lux-important p{
  font-size:14px;
  line-height:1.8;
  color:var(--lux-ink-muted);
  margin-bottom:10px;
}

.lux-important ul{
  list-style:none;
  display:grid;
  gap:7px;
}

.lux-important li{
  font-size:13px;
  color:var(--lux-ink-muted);
  padding-left:20px;
  position:relative;
  line-height:1.6;
}

.lux-important li::before{
  content:"";
  position:absolute;
  left:0;
  top:7px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--grad-primary);
  box-shadow:0 0 0 3px rgba(249,65,65,.10);
}

/* =====================================================
   SUGGESTED TOURS SLIDER
   ===================================================== */
.lux-suggested{ background:var(--lux-bg-warm); overflow:hidden; }

.lux-suggested__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:28px;
  flex-wrap:wrap;
}

.lux-suggested__track{
  display:flex;
  gap:16px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding-bottom:4px;
}

.lux-suggested__track::-webkit-scrollbar{ display:none; }

.lux-suggested__card{
  flex:0 0 310px;
  scroll-snap-align:start;
  border:1px solid var(--lux-line);
  border-radius:var(--r-lg);
  overflow:hidden;
  background:#fff;
  box-shadow:var(--shadow-sm);
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.lux-suggested__card:hover{
  transform:translateY(-4px);
  border-color:var(--lux-line-gold);
  box-shadow:var(--shadow-md);
}

.lux-suggested__img-wrap{
  display:block;
  overflow:hidden;
  height:210px;
  background:var(--lux-bg-section);
}

.lux-suggested__img-wrap img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .4s ease;
}

.lux-suggested__card:hover .lux-suggested__img-wrap img{
  transform:scale(1.05);
}

.lux-suggested__body{ padding:20px 18px; }

.lux-suggested__body h3{
  font-family:var(--font-display);
  font-size:20px;
  font-weight:400;
  color:var(--lux-ink);
  margin-bottom:9px;
  line-height:1.3;
}

.lux-suggested__body h3 a{
  color:inherit;
  text-decoration:none;
  transition:color .2s ease;
}

.lux-suggested__body h3 a:hover{ color:var(--lux-primary-dark); }

.lux-suggested__body p{
  font-size:13px;
  line-height:1.75;
  color:var(--lux-ink-dim);
  margin-bottom:16px;
}

/* =====================================================
   FOOTER CTA
   ===================================================== */
.lux-cta-section{
  position:relative;
  overflow:hidden;
  background:var(--lux-bg-cream);
  padding:96px 0;
  text-align:center;
  border-top:1px solid var(--lux-line-gold);
}

.lux-cta-section::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 340px at 10% 0%, rgba(254,193,7,.14), transparent 60%),
    radial-gradient(900px 340px at 90% 0%, rgba(249,65,65,.10), transparent 60%);
  pointer-events:none;
}

.lux-cta-section__content{ position:relative; z-index:1; }

.lux-cta-section__title{
  font-size:clamp(38px, 5vw, 68px);
  margin-bottom:18px;
  color:var(--lux-ink);
}

.lux-cta-section__sub{
  max-width:60ch;
  margin:0 auto 36px;
  font-size:16px;
  line-height:1.82;
  color:var(--lux-ink-muted);
}

.lux-cta-section__actions{
  display:flex;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
}

/* =====================================================
   SCROLL REVEAL
   ===================================================== */
.lux-reveal{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .55s ease, transform .55s ease;
}

.lux-reveal.lux-visible{
  opacity:1;
  transform:translateY(0);
}

.lux-reveal--delay-1{ transition-delay:.10s; }
.lux-reveal--delay-2{ transition-delay:.20s; }
.lux-reveal--delay-3{ transition-delay:.30s; }
.lux-reveal--delay-4{ transition-delay:.40s; }

/* =====================================================
   RESPONSIVE
   ===================================================== */
@media (max-width:1200px){
  .lux-itinerary__layout{
    grid-template-columns:1fr 310px;
    gap:44px;
  }
}

@media (max-width:1024px){
  .lux-overview__grid,
  .lux-itinerary__layout{
    grid-template-columns:1fr;
    gap:44px;
  }

  .lux-itinerary__sidebar{ position:static; }

  .lux-stats__grid{ grid-template-columns:repeat(3, 1fr); }

  .lux-stats__grid .lux-stat-item:nth-child(4),
  .lux-stats__grid .lux-stat-item:nth-child(5){
    border-top:1px solid var(--lux-line);
  }

  .lux-info__top,
  .lux-info__panel-wrap,
  .lux-info__cta{
    padding-left:24px;
    padding-right:24px;
  }

  .lux-info__tabs{
    padding-left:24px;
    padding-right:24px;
  }

  .lux-experience__grid{ grid-template-columns:repeat(2, 1fr); }
}

@media (max-width:768px){
  .lux-section{ padding:60px 0; }

  .lux-hero__grid{
    grid-template-columns:1fr;
    gap:28px;
  }

  .lux-hero__right{ display:none; }

  .lux-hero__title{ font-size:clamp(34px, 8vw, 56px); }

  .lux-stats__grid{ grid-template-columns:repeat(2, 1fr); }

  .lux-stats__grid .lux-stat-item:nth-child(5){
    grid-column:span 2;
    border-top:1px solid var(--lux-line);
  }

  .lux-testimonials__grid{ grid-template-columns:1fr; }
  .lux-info__grid{ grid-template-columns:1fr; }
  .lux-pricing__grid{ grid-template-columns:1fr; }
  .lux-faq__grid{ grid-template-columns:1fr; }
  .lux-experience__grid{ grid-template-columns:1fr; }

  .lux-trust__inner{ gap:20px; }

  .lux-info__top{
    flex-direction:column;
    align-items:flex-start;
    padding:22px 20px 18px;
  }

  .lux-info__tabs{ padding:16px 20px 0; }

  .lux-info__panel-wrap{ padding:22px 20px; }

  .lux-info__cta{
    flex-direction:column;
    align-items:flex-start;
    padding:22px 20px;
  }

  .lux-accordion__body{ padding-left:0; }

  .lux-accordion__title{ font-size:18px; }

  .lux-booking-card{ max-width:460px; margin:0 auto; }
}

@media (max-width:480px){
  .lux-container{ padding:0 16px; }

  .lux-section{ padding:48px 0; }

  .lux-stats__grid{ grid-template-columns:repeat(2, 1fr); }

  .lux-hero__badges{ gap:6px; }

  .lux-badge{ font-size:11px; padding:6px 10px; }

  .lux-hero__actions{
    flex-direction:column;
    align-items:flex-start;
  }

  .lux-btn{
    width:100%;
    justify-content:center;
  }

  .lux-gallery__slide{
    flex-basis:clamp(220px, 80vw, 300px);
  }

  .lux-accordion__summary{ gap:10px; }

  .lux-accordion__day-pill{
    font-size:10px;
    padding:6px 11px;
    min-width:60px;
  }

  .lux-suggested__card{ flex-basis:268px; }

  .lux-tripadvisor{
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }

  .lux-info__tab{
    min-width:120px;
    padding:11px 14px;
    font-size:12px;
  }

  .lux-cta-section{ padding:64px 0; }
}

/* =====================================================
   PERFORMANCE
   ===================================================== */
.lux-gallery,
.lux-itinerary,
.lux-info,
.lux-experience,
.lux-testimonials,
.lux-faq,
.lux-pricing,
.lux-suggested{
  content-visibility:auto;
  contain-intrinsic-size:1px 900px;
}
