/* ═══════════════════════════════════════════════════════════════
   WANDERLUX TRAVEL THEME — MAIN STYLESHEET
   Version: 1.0.0
═══════════════════════════════════════════════════════════════ */

/* ── CSS Variables ─────────────────────────────────────────── */
:root {
  /* Brand palette — deep ocean blue + warm amber */
  --color-primary:       #0C4FA0;
  --color-primary-light: #1A68CC;
  --color-primary-dark:  #072F6B;
  --color-primary-rgb:   12,79,160;
  --color-secondary:     #F97316;
  --color-secondary-dark:#C2570A;
  --color-accent:        #10B981;
  --color-accent-light:  #D1FAE5;
  --color-danger:        #EF4444;
  --color-warning:       #F59E0B;

  /* Text */
  --color-text:          #111827;
  --color-text-muted:    #6B7280;
  --color-text-light:    #9CA3AF;
  --color-heading:       #0C4FA0;

  /* Surfaces */
  --color-bg:            #F8FAFF;
  --color-surface:       #FFFFFF;
  --color-surface-alt:   #F1F5FE;
  --color-border:        #E5E7EB;
  --color-border-light:  #F3F4F6;
  --color-shadow:        rgba(12,79,160,.12);
  --footer-bg:           #05152B;

  /* Gradients */
  --grad-primary: linear-gradient(135deg, #0C4FA0 0%, #1A68CC 100%);
  --grad-hero:    linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.55) 70%);
  --grad-card:    linear-gradient(180deg, transparent 50%, rgba(0,0,0,.75) 100%);

  --font-heading: 'Playfair Display', Georgia, serif;
  --font-body:    'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

  --radius-xs:   4px;
  --radius-sm:   8px;
  --radius-md:   14px;
  --radius-lg:   20px;
  --radius-xl:   28px;
  --radius-full: 9999px;

  --shadow-xs:   0 1px 2px rgba(0,0,0,.06);
  --shadow-sm:   0 2px 8px rgba(0,0,0,.08);
  --shadow-md:   0 6px 20px rgba(0,0,0,.1);
  --shadow-lg:   0 16px 48px rgba(0,0,0,.14);
  --shadow-xl:   0 32px 80px rgba(0,0,0,.18);
  --shadow-card: 0 4px 24px rgba(12,79,160,.08);

  --transition:  0.22s cubic-bezier(.4,0,.2,1);
  --transition-slow: 0.4s cubic-bezier(.4,0,.2,1);
  --header-h:    76px;

  /* Spacing scale */
  --sp-xs: 4px; --sp-sm: 8px; --sp-md: 16px;
  --sp-lg: 24px; --sp-xl: 40px; --sp-2xl: 64px;
}

/* ── Reset ─────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body { font-family: var(--font-body); color: var(--color-text); background: var(--color-bg); line-height: 1.65; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--color-primary); }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
input, textarea, select { font-family: inherit; font-size: inherit; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); color: var(--color-heading); line-height: 1.25; }
p { margin-bottom: 1rem; }
p:last-child { margin-bottom: 0; }

/* ── Layout ─────────────────────────────────────────────────── */
.wl-container { max-width: 1280px; margin: 0 auto; padding: 0 24px; }
.wl-section   { padding: 80px 0; }
.wl-section-sm { padding: 48px 0; }

/* ── Typography ─────────────────────────────────────────────── */
.wl-section-header { text-align: center; max-width: 640px; margin: 0 auto 48px; }
.wl-section-header h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); margin-bottom: 16px; }
.wl-section-header p  { color: var(--color-text-muted); font-size: 1.05rem; }
.wl-section-badge { display: inline-block; background: rgba(11,79,130,.08); color: var(--color-primary); font-size: 0.7rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; padding: 6px 14px; border-radius: var(--radius-full); margin-bottom: 12px; }
.wl-badge-gold { background: rgba(245,166,35,.12); color: var(--color-secondary-dark); }
.wl-section-header-white h2, .wl-section-header-white p { color: #fff; }

/* ── Buttons ─────────────────────────────────────────────────── */
.wl-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 24px; border-radius: var(--radius-full); font-weight: 600; font-size: 0.92rem; transition: all var(--transition); white-space: nowrap; cursor: pointer; text-decoration: none; justify-content: center; }
.wl-btn-lg   { padding: 15px 32px; font-size: 1rem; }
.wl-btn-sm   { padding: 8px 18px; font-size: 0.82rem; }
.wl-btn-block { width: 100%; display: flex; }

.wl-btn-primary       { background: var(--color-primary); color: #fff; box-shadow: 0 4px 16px rgba(11,79,130,.3); }
.wl-btn-primary:hover { background: var(--color-primary-dark); color: #fff; transform: translateY(-1px); box-shadow: 0 8px 24px rgba(11,79,130,.4); }

.wl-btn-secondary       { background: var(--color-secondary); color: #fff; }
.wl-btn-secondary:hover { background: var(--color-secondary-dark); color: #fff; }

.wl-btn-outline         { background: transparent; color: var(--color-primary); border: 2px solid var(--color-primary); }
.wl-btn-outline:hover   { background: var(--color-primary); color: #fff; }

.wl-btn-outline-primary { background: transparent; color: var(--color-primary); border: 2px solid var(--color-primary); }
.wl-btn-outline-primary:hover { background: var(--color-primary); color: #fff; }

.wl-btn-white           { background: #fff; color: var(--color-primary); }
.wl-btn-white:hover     { background: var(--color-primary); color: #fff; }

.wl-btn-glass           { background: rgba(255,255,255,.15); color: #fff; border: 2px solid rgba(255,255,255,.4); backdrop-filter: blur(8px); }
.wl-btn-glass:hover     { background: rgba(255,255,255,.25); color: #fff; }

.wl-btn-whatsapp        { background: #25D366; color: #fff; }
.wl-btn-whatsapp:hover  { background: #128C7E; color: #fff; }

.wl-btn-danger          { background: var(--color-danger); color: #fff; }
.wl-btn-danger:hover    { opacity: .9; }

.wl-btn-success         { background: var(--color-accent); color: #fff; }

/* ── Badges ─────────────────────────────────────────────────── */
.badge            { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: var(--radius-full); font-size: 0.72rem; font-weight: 600; }
.badge-success    { background: rgba(16,185,129,.12); color: #065F46; }
.badge-warning    { background: rgba(245,158,11,.12); color: #92400E; }
.badge-danger     { background: rgba(239,68,68,.12);  color: #991B1B; }
.badge-dark       { background: rgba(15,23,42,.12);   color: #1E293B; }
.badge-info       { background: rgba(59,130,246,.12); color: #1E40AF; }
.wl-badge-sm      { font-size: 0.65rem; background: rgba(245,166,35,.15); color: #92400E; padding: 2px 8px; border-radius: var(--radius-full); }

/* ── Top Bar ─────────────────────────────────────────────────── */
.wl-topbar { background: var(--color-primary-dark); color: rgba(255,255,255,.9); font-size: 0.82rem; padding: 8px 0; }
.wl-topbar .wl-container { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.wl-topbar-right { display: flex; align-items: center; gap: 16px; }
.wl-topbar-right a { color: rgba(255,255,255,.75); transition: color var(--transition); }
.wl-topbar-right a:hover { color: var(--color-secondary); }
.wl-topbar-link { display: flex; align-items: center; gap: 6px; }

/* ── Header ─────────────────────────────────────────────────── */
.wl-header { background: #fff; box-shadow: 0 2px 20px rgba(0,0,0,.06); position: relative; z-index: 1000; transition: all var(--transition); }
.wl-header.wl-sticky { position: sticky; top: 0; }
.wl-header.wl-scrolled { box-shadow: var(--shadow-lg); }
.wl-header-inner { display: flex; align-items: center; gap: 32px; min-height: var(--header-h); }

.wl-logo a { display: flex; align-items: center; }
.wl-text-logo { display: flex; align-items: center; gap: 10px; }
.wl-text-logo i { font-size: 1.6rem; color: var(--color-primary); }
.wl-text-logo span { font-family: var(--font-heading); font-size: 1.5rem; font-weight: 700; color: var(--color-primary); }
.wl-text-logo-white i, .wl-text-logo-white span { color: #fff; }

.wl-nav { flex: 1; }
.wl-menu { display: flex; align-items: center; gap: 4px; }
.wl-menu > li > a { display: block; padding: 10px 14px; font-weight: 500; font-size: 0.9rem; color: var(--color-text); border-radius: var(--radius-sm); transition: all var(--transition); position: relative; }
.wl-menu > li > a::after { content: ''; position: absolute; bottom: 4px; left: 14px; right: 14px; height: 2px; background: var(--color-primary); transform: scaleX(0); transition: transform var(--transition); border-radius: 2px; }
.wl-menu > li > a:hover, .wl-menu > li.current-menu-item > a { color: var(--color-primary); }
.wl-menu > li > a:hover::after, .wl-menu > li.current-menu-item > a::after { transform: scaleX(1); }

.wl-header-actions { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.wl-search-toggle { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--radius-full); color: var(--color-text); transition: all var(--transition); }
.wl-search-toggle:hover { background: var(--color-bg); color: var(--color-primary); }
.wl-hamburger { display: none; flex-direction: column; gap: 5px; width: 40px; height: 40px; align-items: center; justify-content: center; }
.wl-hamburger span { display: block; width: 22px; height: 2px; background: var(--color-text); border-radius: 2px; transition: all var(--transition); }
.wl-hamburger.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.wl-hamburger.active span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.wl-hamburger.active span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }

/* Search Overlay */
.wl-search-overlay { position: absolute; top: 100%; left: 0; right: 0; background: #fff; padding: 20px 0; box-shadow: var(--shadow-md); transform: translateY(-20px); opacity: 0; pointer-events: none; transition: all var(--transition); z-index: 999; }
.wl-search-overlay.open { transform: translateY(0); opacity: 1; pointer-events: all; }
.wl-search-form-overlay { display: flex; align-items: center; gap: 12px; }
.wl-search-form-overlay input { flex: 1; border: 2px solid var(--color-border); border-radius: var(--radius-full); padding: 12px 20px; font-size: 1rem; outline: none; }
.wl-search-form-overlay input:focus { border-color: var(--color-primary); }
.wl-search-form-overlay button { padding: 12px 20px; border-radius: var(--radius-full); background: var(--color-primary); color: #fff; }
.wl-close-search { background: transparent !important; color: var(--color-text-muted) !important; }

.wl-mobile-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 998; }
.wl-mobile-overlay.open { display: block; }

/* ── Hero Section ────────────────────────────────────────────── */
.wl-hero { position: relative; min-height: 92vh; display: flex; align-items: center; overflow: hidden; }
.wl-hero-bg-slider { position: absolute; inset: 0; }
.wl-hero-slide { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity 1.2s ease; }
.wl-hero-slide.active { opacity: 1; }
.wl-hero-overlay { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(7,54,89,.85) 0%, rgba(11,79,130,.6) 50%, rgba(0,0,0,.4) 100%); z-index: 1; }
.wl-hero-content { position: relative; z-index: 2; max-width: 720px; color: #fff; }
.wl-hero-badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(245,166,35,.2); border: 1px solid rgba(245,166,35,.4); color: var(--color-secondary); padding: 8px 18px; border-radius: var(--radius-full); font-size: 0.82rem; font-weight: 600; margin-bottom: 24px; backdrop-filter: blur(8px); }
.wl-hero-title { font-size: clamp(2.2rem, 5vw, 4rem); font-weight: 700; line-height: 1.15; margin-bottom: 20px; color: #fff; text-shadow: 0 2px 20px rgba(0,0,0,.3); }
.wl-hero-subtitle { font-size: 1.1rem; color: rgba(255,255,255,.85); margin-bottom: 36px; max-width: 560px; line-height: 1.7; }
.wl-hero-actions { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 40px; }
.wl-hero-trust { display: flex; gap: 24px; flex-wrap: wrap; }
.wl-trust-item { display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,.8); font-size: 0.85rem; }
.wl-trust-item i { color: var(--color-secondary); }

/* Hero Nav */
.wl-hero-nav { position: absolute; bottom: 40px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 12px; z-index: 3; }
.wl-hero-prev, .wl-hero-next { width: 40px; height: 40px; border-radius: var(--radius-full); background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.3); color: #fff; display: flex; align-items: center; justify-content: center; transition: all var(--transition); backdrop-filter: blur(8px); }
.wl-hero-prev:hover, .wl-hero-next:hover { background: rgba(255,255,255,.3); }
.wl-hero-dots { display: flex; gap: 8px; }
.wl-dot { width: 8px; height: 8px; border-radius: var(--radius-full); background: rgba(255,255,255,.4); transition: all var(--transition); }
.wl-dot.active { background: #fff; width: 24px; }

/* Scroll Indicator */
.wl-scroll-indicator { position: absolute; bottom: 48px; right: 40px; display: flex; flex-direction: column; align-items: center; gap: 8px; z-index: 3; }
.wl-scroll-mouse { width: 24px; height: 36px; border: 2px solid rgba(255,255,255,.4); border-radius: 12px; display: flex; justify-content: center; padding-top: 6px; }
.wl-scroll-wheel { width: 3px; height: 8px; background: #fff; border-radius: 2px; animation: scroll-anim 1.5s ease infinite; }
@keyframes scroll-anim { 0%,100%{transform:translateY(0);opacity:1} 80%{transform:translateY(8px);opacity:0} }

/* ── Search Bar ─────────────────────────────────────────────── */
.wl-search-section { padding: 0; margin-top: -40px; position: relative; z-index: 10; }
.wl-search-card { background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-xl); padding: 0; overflow: hidden; }
.wl-search-tabs { display: flex; border-bottom: 1px solid var(--color-border); }
.wl-stab { flex: 1; padding: 16px; font-weight: 600; font-size: 0.88rem; display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--color-text-muted); border-bottom: 2px solid transparent; margin-bottom: -1px; transition: all var(--transition); }
.wl-stab.active { color: var(--color-primary); border-color: var(--color-primary); }
.wl-stab:hover { color: var(--color-primary); }
.wl-hero-search-form { padding: 24px; }
.wl-search-fields { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.wl-search-field { flex: 1; min-width: 160px; }
.wl-search-field label { display: block; font-size: 0.78rem; font-weight: 600; color: var(--color-text-muted); margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.5px; }
.wl-search-field label i { margin-right: 4px; color: var(--color-primary); }
.wl-search-field select, .wl-search-field input { width: 100%; border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: 10px 14px; outline: none; color: var(--color-text); font-size: 0.9rem; background: var(--color-bg); transition: border-color var(--transition); }
.wl-search-field select:focus, .wl-search-field input:focus { border-color: var(--color-primary); background: #fff; }
.wl-search-submit { flex-shrink: 0; padding: 10px 28px; align-self: flex-end; }

/* ── Stats Section ──────────────────────────────────────────── */
.wl-stats-section { background: var(--color-primary); padding: 48px 0; }
.wl-stats-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.wl-stat-item { display: flex; align-items: center; gap: 16px; padding: 24px 32px; border-right: 1px solid rgba(255,255,255,.15); }
.wl-stat-item:last-child { border-right: none; }
.wl-stat-icon-wrap { width: 56px; height: 56px; border-radius: var(--radius-md); background: rgba(255,255,255,.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.wl-stat-icon-wrap i { font-size: 1.4rem; color: var(--color-secondary); }
.wl-stat-text { color: #fff; }
.wl-stat-text strong { display: block; font-size: 2rem; font-weight: 700; line-height: 1; font-family: var(--font-heading); }
.wl-stat-text span { font-size: 0.88rem; opacity: .8; margin-top: 4px; }

/* ── Package Cards ──────────────────────────────────────────── */
.wl-packages-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.wl-packages-grid-2 { grid-template-columns: repeat(2, 1fr); }
.wl-packages-grid-3 { grid-template-columns: repeat(3, 1fr); }
.wl-package-card { background: #fff; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); transition: all 0.3s ease; }
.wl-package-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-xl); }

.wl-card-media { position: relative; overflow: hidden; aspect-ratio: 16/10; }
.wl-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.wl-package-card:hover .wl-card-media img { transform: scale(1.06); }
.wl-card-overlay { position: absolute; inset: 0; background: rgba(7,54,89,.5); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity var(--transition); }
.wl-package-card:hover .wl-card-overlay { opacity: 1; }

.wl-badge { position: absolute; font-size: 0.7rem; font-weight: 700; padding: 5px 12px; border-radius: var(--radius-full); letter-spacing: 0.3px; }
.wl-badge-sale     { top: 14px; left: 14px; background: var(--color-danger); color: #fff; }
.wl-badge-featured { top: 14px; left: 14px; background: var(--color-secondary); color: #fff; }
.wl-badge-cat      { bottom: 14px; left: 14px; background: rgba(0,0,0,.5); color: #fff; backdrop-filter: blur(8px); }
.wl-card-rating    { position: absolute; bottom: 14px; right: 14px; background: rgba(0,0,0,.6); color: #fff; display: flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: var(--radius-full); font-size: 0.82rem; backdrop-filter: blur(8px); }
.wl-card-rating i  { color: var(--color-secondary); font-size: 0.72rem; }

.wl-card-body    { padding: 20px 20px 8px; }
.wl-card-dest    { font-size: 0.8rem; color: var(--color-primary); font-weight: 500; display: flex; align-items: center; gap: 4px; margin-bottom: 8px; }
.wl-card-title   { font-size: 1.05rem; margin-bottom: 10px; }
.wl-card-title a { color: var(--color-heading); }
.wl-card-title a:hover { color: var(--color-primary); }
.wl-card-excerpt { font-size: 0.85rem; color: var(--color-text-muted); line-height: 1.5; margin-bottom: 12px; }
.wl-card-meta    { display: flex; gap: 12px; flex-wrap: wrap; }
.wl-card-meta span { font-size: 0.8rem; color: var(--color-text-muted); display: flex; align-items: center; gap: 5px; }
.wl-card-meta i  { color: var(--color-primary); font-size: 0.75rem; }

.wl-card-footer  { padding: 14px 20px 20px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--color-border); margin-top: 12px; }
.wl-card-price   { display: flex; flex-direction: column; }
.wl-card-price small { font-size: 0.72rem; color: var(--color-text-muted); text-transform: uppercase; }

.wl-price ins    { font-size: 1.2rem; font-weight: 700; color: var(--color-primary); text-decoration: none; }
.wl-price del    { color: var(--color-text-muted); font-size: 0.85rem; }
.wl-price strong { font-size: 1.2rem; color: var(--color-primary); }
.wl-price small  { color: var(--color-text-muted); font-size: 0.72rem; }

/* ── Filter Pills ────────────────────────────────────────────── */
.wl-cat-filter { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-bottom: 36px; }
.wl-filter-pill { padding: 8px 20px; border-radius: var(--radius-full); font-size: 0.85rem; font-weight: 500; color: var(--color-text-muted); border: 1.5px solid var(--color-border); background: #fff; transition: all var(--transition); }
.wl-filter-pill:hover, .wl-filter-pill.active { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }

/* ── Destinations Grid ──────────────────────────────────────── */
.wl-destinations-masonry { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(2, 220px); gap: 16px; }
.wl-dest-card     { border-radius: var(--radius-lg); overflow: hidden; position: relative; }
.wl-dest-card-lg  { grid-column: span 2; }
.wl-dest-card:nth-child(4) { grid-column: 1 / 2; }
.wl-dest-link     { display: block; width: 100%; height: 100%; position: relative; }
.wl-dest-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.wl-dest-card:hover img { transform: scale(1.08); }
.wl-dest-overlay  { position: absolute; inset: 0; background: linear-gradient(to top, rgba(7,54,89,.85) 0%, rgba(0,0,0,.1) 60%); display: flex; align-items: flex-end; transition: background var(--transition); }
.wl-dest-card:hover .wl-dest-overlay { background: linear-gradient(to top, rgba(7,54,89,.9) 0%, rgba(0,0,0,.3) 60%); }
.wl-dest-info     { padding: 20px; color: #fff; }
.wl-dest-country  { font-size: 0.75rem; opacity: .8; display: flex; align-items: center; gap: 5px; margin-bottom: 6px; }
.wl-dest-info h3  { font-size: 1.2rem; color: #fff; margin-bottom: 6px; }
.wl-dest-count    { font-size: 0.78rem; background: rgba(255,255,255,.2); padding: 3px 10px; border-radius: var(--radius-full); backdrop-filter: blur(8px); margin-right: 8px; }
.wl-dest-explore  { font-size: 0.82rem; color: var(--color-secondary); font-weight: 600; opacity: 0; transform: translateX(-8px); transition: all var(--transition); display: inline-block; }
.wl-dest-card:hover .wl-dest-explore { opacity: 1; transform: translateX(0); }

/* ── Why Us ──────────────────────────────────────────────────── */
.wl-why-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.wl-why-image { position: relative; border-radius: var(--radius-xl); overflow: hidden; }
.wl-why-image img { width: 100%; height: 500px; object-fit: cover; border-radius: var(--radius-xl); }
.wl-why-badge-float { position: absolute; bottom: -20px; right: -20px; background: var(--color-primary); color: #fff; padding: 20px 24px; border-radius: var(--radius-lg); text-align: center; box-shadow: var(--shadow-lg); }
.wl-why-badge-float i { font-size: 1.5rem; color: var(--color-secondary); display: block; margin-bottom: 4px; }
.wl-why-badge-float strong { display: block; font-size: 1.6rem; line-height: 1; }
.wl-why-badge-float span { font-size: 0.75rem; opacity: .85; }
.wl-why-lead { font-size: 1.05rem; color: var(--color-text-muted); margin-bottom: 28px; }
.wl-features-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 32px; }
.wl-feature-item  { display: flex; gap: 14px; align-items: flex-start; }
.wl-feature-icon  { width: 44px; height: 44px; border-radius: var(--radius-md); background: rgba(11,79,130,.08); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.wl-feature-icon i { color: var(--color-primary); font-size: 1rem; }
.wl-feature-text h4 { font-size: 0.9rem; margin-bottom: 4px; }
.wl-feature-text p { font-size: 0.82rem; color: var(--color-text-muted); margin: 0; }

/* ── Activities Grid ─────────────────────────────────────────── */
.wl-activities-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.wl-activity-card { background: #fff; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); transition: all 0.3s ease; }
.wl-activity-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.wl-activity-media { position: relative; aspect-ratio: 4/3; overflow: hidden; }
.wl-activity-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.wl-activity-card:hover .wl-activity-media img { transform: scale(1.06); }
.wl-activity-price-badge { position: absolute; bottom: 14px; right: 14px; background: var(--color-primary); color: #fff; padding: 6px 14px; border-radius: var(--radius-full); font-size: 0.82rem; }
.wl-activity-price-badge strong { display: block; }
.wl-activity-price-badge small { opacity: .8; font-size: 0.7rem; }
.wl-activity-body { padding: 16px; }
.wl-activity-location { font-size: 0.78rem; color: var(--color-primary); display: flex; align-items: center; gap: 4px; margin-bottom: 6px; }
.wl-activity-body h3 { font-size: 0.98rem; margin-bottom: 8px; }
.wl-activity-duration { font-size: 0.8rem; color: var(--color-text-muted); display: flex; align-items: center; gap: 5px; }

/* ── Testimonials ─────────────────────────────────────────────── */
.wl-testimonials-section { padding: 80px 0; position: relative; overflow: hidden; }
.wl-testimonials-bg { position: absolute; inset: 0; background: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary) 100%); z-index: 0; }
.wl-testimonials-section .wl-container { position: relative; z-index: 1; }
.wl-testimonials-carousel { display: flex; gap: 24px; overflow: hidden; margin-bottom: 32px; }
.wl-testi-card { background: rgba(255,255,255,.06); backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,.1); border-radius: var(--radius-xl); padding: 32px; min-width: calc(33.333% - 16px); flex-shrink: 0; transition: all var(--transition); }
.wl-testi-card:hover { background: rgba(255,255,255,.1); transform: translateY(-4px); }
.wl-testi-quote { color: var(--color-secondary); font-size: 2rem; margin-bottom: 12px; opacity: .6; }
.wl-testi-stars { margin-bottom: 12px; }
.wl-testi-text  { color: rgba(255,255,255,.85); font-size: 0.92rem; line-height: 1.7; margin-bottom: 16px; }
.wl-testi-package { font-size: 0.78rem; color: var(--color-secondary); margin-bottom: 20px; display: flex; align-items: center; gap: 5px; }
.wl-testi-author { display: flex; align-items: center; gap: 14px; }
.wl-testi-avatar { width: 48px; height: 48px; border-radius: var(--radius-full); overflow: hidden; border: 2px solid rgba(255,255,255,.2); flex-shrink: 0; }
.wl-testi-avatar img { width: 100%; height: 100%; object-fit: cover; }
.wl-avatar-placeholder { background: rgba(255,255,255,.1); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.5); }
.wl-testi-author-info strong { color: #fff; font-size: 0.9rem; display: block; }
.wl-testi-author-info span   { color: rgba(255,255,255,.55); font-size: 0.8rem; }

.wl-slider-controls { display: flex; align-items: center; justify-content: center; gap: 16px; }
.wl-slider-prev, .wl-slider-next { width: 44px; height: 44px; border-radius: var(--radius-full); background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); color: #fff; display: flex; align-items: center; justify-content: center; transition: all var(--transition); }
.wl-slider-prev:hover, .wl-slider-next:hover { background: rgba(255,255,255,.2); }
.wl-slider-dots { display: flex; gap: 8px; }
.wl-slider-dot { width: 8px; height: 8px; border-radius: var(--radius-full); background: rgba(255,255,255,.3); transition: all var(--transition); cursor: pointer; }
.wl-slider-dot.active { background: #fff; width: 24px; }
.wl-stars i { color: var(--color-secondary); font-size: 0.85rem; }

/* ── Blog ────────────────────────────────────────────────────── */
.wl-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.wl-blog-card { background: #fff; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); transition: all 0.3s ease; }
.wl-blog-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.wl-blog-media { position: relative; aspect-ratio: 16/9; overflow: hidden; }
.wl-blog-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.wl-blog-card:hover .wl-blog-media img { transform: scale(1.05); }
.wl-blog-cat { position: absolute; top: 14px; left: 14px; }
.wl-blog-cat a { background: var(--color-primary); color: #fff; font-size: 0.72rem; font-weight: 600; padding: 4px 12px; border-radius: var(--radius-full); }
.wl-blog-body { padding: 20px; }
.wl-blog-meta { display: flex; gap: 12px; margin-bottom: 10px; }
.wl-blog-meta span { font-size: 0.78rem; color: var(--color-text-muted); display: flex; align-items: center; gap: 5px; }
.wl-blog-body h3 { font-size: 1.05rem; margin-bottom: 10px; line-height: 1.4; }
.wl-blog-body h3 a { color: var(--color-heading); }
.wl-blog-body h3 a:hover { color: var(--color-primary); }
.wl-blog-body p  { font-size: 0.85rem; color: var(--color-text-muted); margin-bottom: 14px; }
.wl-read-more   { font-size: 0.85rem; color: var(--color-primary); font-weight: 600; display: inline-flex; align-items: center; gap: 6px; }
.wl-read-more i { transition: transform var(--transition); }
.wl-read-more:hover i { transform: translateX(4px); }

/* ── Newsletter ──────────────────────────────────────────────── */
.wl-newsletter-section { padding: 80px 0; position: relative; overflow: hidden; }
.wl-newsletter-bg { position: absolute; inset: 0; background: url('https://images.unsplash.com/photo-1488085061387-422e29b40080?w=1920&q=80') center/cover; }
.wl-newsletter-bg::after { content: ''; position: absolute; inset: 0; background: rgba(7,54,89,.88); }
.wl-newsletter-inner { position: relative; z-index: 1; text-align: center; max-width: 640px; margin: 0 auto; color: #fff; }
.wl-newsletter-icon { font-size: 3rem; color: var(--color-secondary); margin-bottom: 16px; }
.wl-newsletter-inner h2 { color: #fff; font-size: 2.2rem; margin-bottom: 12px; }
.wl-newsletter-inner p  { color: rgba(255,255,255,.75); margin-bottom: 28px; }
.wl-newsletter-input-wrap { display: flex; background: rgba(255,255,255,.1); backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,.2); border-radius: var(--radius-full); padding: 6px 6px 6px 20px; gap: 8px; max-width: 480px; margin: 0 auto 16px; }
.wl-newsletter-input-wrap i { color: rgba(255,255,255,.5); align-self: center; }
.wl-newsletter-input-wrap input { flex: 1; background: transparent; border: none; color: #fff; outline: none; font-size: 0.9rem; }
.wl-newsletter-input-wrap input::placeholder { color: rgba(255,255,255,.5); }
.wl-newsletter-note { font-size: 0.78rem; color: rgba(255,255,255,.5); margin-bottom: 20px; }
.wl-newsletter-perks { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; }
.wl-newsletter-perks span { font-size: 0.82rem; color: rgba(255,255,255,.7); display: flex; align-items: center; gap: 6px; }
.wl-newsletter-perks i { color: var(--color-accent); }

/* ── Footer ──────────────────────────────────────────────────── */
.wl-footer { background: var(--footer-bg); color: rgba(255,255,255,.65); }
.wl-footer-top { padding: 64px 0; }
.wl-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 48px; }
.wl-footer-heading { font-size: 0.9rem; font-weight: 700; color: #fff; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 20px; font-family: var(--font-body); }
.wl-footer-links { display: flex; flex-direction: column; gap: 10px; }
.wl-footer-links a { font-size: 0.88rem; color: rgba(255,255,255,.6); transition: color var(--transition); display: flex; align-items: center; gap: 6px; }
.wl-footer-links a:hover { color: var(--color-secondary); padding-left: 4px; }
.wl-footer-tagline { color: rgba(255,255,255,.55); font-size: 0.9rem; margin-bottom: 24px; line-height: 1.7; }
.wl-footer-awards { display: flex; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.wl-award-badge { display: flex; align-items: center; gap: 8px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: var(--radius-md); padding: 10px 14px; }
.wl-award-badge i { color: var(--color-secondary); font-size: 1.1rem; }
.wl-award-badge span { font-size: 0.78rem; color: rgba(255,255,255,.75); }
.wl-award-badge small { display: block; font-size: 0.68rem; opacity: .6; }
.wl-footer-social { display: flex; gap: 10px; }
.wl-social-btn { width: 38px; height: 38px; border-radius: var(--radius-full); background: rgba(255,255,255,.08); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.6); transition: all var(--transition); font-size: 0.85rem; }
.wl-social-btn:hover { background: var(--color-primary); color: #fff; }
.wl-footer-contact { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
.wl-footer-contact li { display: flex; align-items: flex-start; gap: 10px; font-size: 0.85rem; }
.wl-footer-contact i { color: var(--color-secondary); margin-top: 2px; width: 14px; flex-shrink: 0; }
.wl-footer-contact a { color: rgba(255,255,255,.6); }
.wl-footer-contact a:hover { color: var(--color-secondary); }
.wl-footer-newsletter h5 { font-size: 0.88rem; color: rgba(255,255,255,.9); margin-bottom: 8px; }
.wl-footer-newsletter p  { font-size: 0.8rem; margin-bottom: 12px; color: rgba(255,255,255,.5); }
.wl-newsletter-form { display: flex; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.1); border-radius: var(--radius-full); overflow: hidden; }
.wl-newsletter-form input { flex: 1; background: transparent; border: none; padding: 10px 16px; color: #fff; font-size: 0.85rem; outline: none; }
.wl-newsletter-form input::placeholder { color: rgba(255,255,255,.35); }
.wl-newsletter-form button { padding: 10px 16px; color: var(--color-secondary); transition: color var(--transition); }
.wl-newsletter-form button:hover { color: #fff; }

.wl-footer-bottom { border-top: 1px solid rgba(255,255,255,.08); padding: 20px 0; }
.wl-footer-bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.wl-footer-bottom p { font-size: 0.82rem; color: rgba(255,255,255,.4); }
.wl-footer-bottom-links { display: flex; gap: 20px; }
.wl-footer-bottom-links a { font-size: 0.78rem; color: rgba(255,255,255,.4); }
.wl-footer-bottom-links a:hover { color: var(--color-secondary); }
.wl-payment-icons { display: flex; gap: 10px; }
.wl-payment-icons i { font-size: 1.6rem; color: rgba(255,255,255,.3); transition: color var(--transition); }
.wl-payment-icons i:hover { color: rgba(255,255,255,.6); }

/* ── WhatsApp Float ──────────────────────────────────────────── */
.wl-whatsapp-float { position: fixed; bottom: 24px; left: 24px; z-index: 9000; display: flex; align-items: center; gap: 10px; background: #25D366; color: #fff; padding: 12px 18px; border-radius: var(--radius-full); box-shadow: 0 4px 24px rgba(37,211,102,.4); animation: float 3s ease-in-out infinite; }
.wl-whatsapp-float i { font-size: 1.4rem; }
.wl-whatsapp-float span { font-size: 0.85rem; font-weight: 600; }
.wl-whatsapp-float:hover { background: #128C7E; color: #fff; }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-6px)} }

/* ── Back to Top ─────────────────────────────────────────────── */
.wl-back-to-top { position: fixed; bottom: 24px; right: 24px; z-index: 9000; width: 44px; height: 44px; border-radius: var(--radius-full); background: var(--color-primary); color: #fff; box-shadow: var(--shadow-lg); display: flex; align-items: center; justify-content: center; opacity: 0; transform: translateY(10px); transition: all var(--transition); pointer-events: none; }
.wl-back-to-top.visible { opacity: 1; transform: translateY(0); pointer-events: all; }
.wl-back-to-top:hover { background: var(--color-primary-dark); transform: translateY(-2px); }

/* ── Page Header ─────────────────────────────────────────────── */
.wl-page-header { position: relative; min-height: 320px; display: flex; align-items: flex-end; padding-bottom: 48px; background: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary) 100%); overflow: hidden; }
.wl-pkg-archive-header { background-image: url('https://images.unsplash.com/photo-1488085061387-422e29b40080?w=1920&q=80'); background-size: cover; background-position: center; }
.wl-page-header-overlay { position: absolute; inset: 0; background: linear-gradient(to right, rgba(7,54,89,.9) 0%, rgba(11,79,130,.7) 100%); }
.wl-page-header .wl-container { position: relative; z-index: 1; color: #fff; }
.wl-page-header h1 { font-size: clamp(1.8rem, 4vw, 3rem); color: #fff; margin-bottom: 12px; margin-top: 12px; }
.wl-page-header p  { color: rgba(255,255,255,.75); max-width: 600px; }

/* ── Breadcrumb ──────────────────────────────────────────────── */
.wl-breadcrumb { padding-bottom: 8px; }
.wl-breadcrumb-list { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 0.8rem; }
.wl-breadcrumb-list li { display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,.6); }
.wl-breadcrumb-list li:not(:last-child)::after { content: '/'; opacity: .5; }
.wl-breadcrumb-list a { color: rgba(255,255,255,.7); }
.wl-breadcrumb-list a:hover { color: var(--color-secondary); }
.wl-breadcrumb-list [aria-current="page"] { color: var(--color-secondary); }

/* ── Single Package ──────────────────────────────────────────── */
.wl-pkg-hero { position: relative; height: 500px; }
.wl-pkg-hero-img { width: 100%; height: 100%; object-fit: cover; }
.wl-pkg-hero-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(7,54,89,.9) 0%, rgba(0,0,0,.2) 70%); }
.wl-pkg-hero-content { position: absolute; bottom: 0; left: 0; right: 0; z-index: 2; padding-bottom: 36px; }
.wl-pkg-hero-content .wl-container { color: #fff; }
.wl-pkg-cats { display: flex; gap: 8px; margin-bottom: 10px; }
.wl-tag { background: rgba(255,255,255,.15); color: #fff; font-size: 0.75rem; font-weight: 600; padding: 4px 12px; border-radius: var(--radius-full); backdrop-filter: blur(8px); }
.wl-pkg-hero-content h1 { font-size: clamp(1.6rem, 3.5vw, 2.6rem); color: #fff; margin-bottom: 14px; }
.wl-pkg-hero-meta { display: flex; gap: 20px; flex-wrap: wrap; align-items: center; }
.wl-pkg-hero-meta span { font-size: 0.88rem; color: rgba(255,255,255,.8); display: flex; align-items: center; gap: 6px; }
.wl-pkg-hero-meta i { color: var(--color-secondary); }

.wl-pkg-layout { display: grid; grid-template-columns: 1fr 360px; gap: 40px; padding: 40px 0 80px; align-items: start; }
.wl-pkg-content { min-width: 0; }
.wl-pkg-section { margin-bottom: 40px; padding-bottom: 40px; border-bottom: 1px solid var(--color-border); }
.wl-pkg-section:last-child { border-bottom: none; }
.wl-pkg-section h2 { font-size: 1.5rem; margin-bottom: 20px; }
.wl-pkg-overview { color: var(--color-text); line-height: 1.8; }
.wl-pkg-overview p { margin-bottom: 1rem; }

/* Gallery */
.wl-pkg-gallery { margin-bottom: 0; border-bottom: none; padding-bottom: 0; }
.wl-gallery-main { position: relative; border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 16/9; margin-bottom: 12px; }
.wl-gallery-main img { width: 100%; height: 100%; object-fit: cover; }
.wl-gallery-expand { position: absolute; top: 16px; right: 16px; background: rgba(0,0,0,.4); color: #fff; border-radius: var(--radius-sm); padding: 8px 12px; }
.wl-gallery-thumbs { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
.wl-gallery-thumb { width: 80px; height: 60px; object-fit: cover; border-radius: var(--radius-sm); cursor: pointer; opacity: .65; transition: opacity var(--transition); flex-shrink: 0; border: 2px solid transparent; }
.wl-gallery-thumb.active, .wl-gallery-thumb:hover { opacity: 1; border-color: var(--color-primary); }

/* Highlights */
.wl-highlights-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.wl-highlight-item { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; background: rgba(11,79,130,.04); border-radius: var(--radius-md); font-size: 0.88rem; }
.wl-highlight-item i { color: var(--color-accent); margin-top: 1px; flex-shrink: 0; }

/* Itinerary */
.wl-itinerary { display: flex; flex-direction: column; gap: 4px; }
.wl-itin-item { border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; }
.wl-itin-toggle { width: 100%; display: flex; align-items: center; gap: 12px; padding: 16px 20px; text-align: left; font-size: 0.92rem; }
.wl-itin-toggle:hover { background: var(--color-bg); }
.wl-itin-day { background: var(--color-primary); color: #fff; font-size: 0.72rem; font-weight: 700; padding: 4px 10px; border-radius: var(--radius-full); flex-shrink: 0; }
.wl-itin-title { flex: 1; font-weight: 600; }
.wl-itin-toggle i { margin-left: auto; color: var(--color-text-muted); transition: transform var(--transition); }
.wl-itin-item.open .wl-itin-toggle i { transform: rotate(180deg); }
.wl-itin-body { display: none; padding: 0 20px 16px; color: var(--color-text-muted); font-size: 0.88rem; line-height: 1.7; }
.wl-itin-item.open .wl-itin-body { display: block; }

/* Inclusions/Exclusions */
.wl-inc-exc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.wl-inclusions h4, .wl-exclusions h4 { margin-bottom: 14px; font-size: 1rem; display: flex; align-items: center; gap: 8px; }
.wl-inclusions ul, .wl-exclusions ul { display: flex; flex-direction: column; gap: 8px; }
.wl-inclusions li, .wl-exclusions li { font-size: 0.88rem; display: flex; align-items: flex-start; gap: 8px; }
.wl-inclusions li i { color: var(--color-accent); margin-top: 1px; }
.wl-exclusions li i { color: var(--color-danger); margin-top: 1px; }
.text-success { color: var(--color-accent); }
.text-danger  { color: var(--color-danger); }

/* Map */
.wl-map-wrap iframe { width: 100%; height: 360px; border: none; border-radius: var(--radius-lg); }

/* ── Booking Sidebar ──────────────────────────────────────────── */
.wl-pkg-sidebar { position: sticky; top: calc(var(--header-h) + 20px); }
.wl-booking-card { background: #fff; border-radius: var(--radius-xl); box-shadow: var(--shadow-xl); padding: 28px; }
.wl-booking-price { margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--color-border); }
.wl-booking-price .wl-price { display: flex; align-items: baseline; gap: 8px; }
.wl-booking-price .wl-price ins { font-size: 1.8rem; font-weight: 700; color: var(--color-primary); text-decoration: none; }
.wl-booking-price .wl-price del { color: var(--color-text-muted); font-size: 1rem; }
.wl-booking-price .wl-price small { color: var(--color-text-muted); font-size: 0.82rem; }
.wl-price-big { font-size: 1.8rem; font-weight: 700; color: var(--color-primary); }
.wl-booking-info { display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--color-border); }
.wl-booking-info > div { display: flex; align-items: center; gap: 10px; font-size: 0.88rem; }
.wl-booking-info i { color: var(--color-primary); width: 16px; text-align: center; }
.wl-booking-trust { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 16px 0; }
.wl-booking-trust > div { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 8px; background: var(--color-bg); border-radius: var(--radius-md); font-size: 0.7rem; text-align: center; color: var(--color-text-muted); }
.wl-booking-trust i { color: var(--color-primary); font-size: 1rem; }

/* ── Booking Form ─────────────────────────────────────────────── */
.wl-booking-form { padding-bottom: 16px; border-bottom: 1px solid var(--color-border); margin-bottom: 16px; }
.wl-form-steps { display: flex; align-items: center; margin-bottom: 20px; gap: 4px; }
.wl-step { display: flex; align-items: center; gap: 6px; font-size: 0.78rem; font-weight: 500; color: var(--color-text-muted); flex: 1; }
.wl-step span { width: 24px; height: 24px; border-radius: var(--radius-full); background: var(--color-border); color: var(--color-text-muted); display: flex; align-items: center; justify-content: center; font-size: 0.72rem; font-weight: 700; }
.wl-step.active { color: var(--color-primary); }
.wl-step.active span { background: var(--color-primary); color: #fff; }
.wl-step.done span { background: var(--color-accent); color: #fff; }
.wl-step-divider { flex: 1; height: 1px; background: var(--color-border); }

.wl-form-step { }
.wl-form-step.hidden { display: none; }
.wl-form-group { margin-bottom: 14px; }
.wl-form-group label { display: block; font-size: 0.8rem; font-weight: 600; color: var(--color-text); margin-bottom: 6px; }
.wl-form-group input, .wl-form-group select, .wl-form-group textarea { width: 100%; border: 1.5px solid var(--color-border); border-radius: var(--radius-md); padding: 10px 14px; font-size: 0.88rem; outline: none; transition: border-color var(--transition); color: var(--color-text); background: #fff; }
.wl-form-group input:focus, .wl-form-group select:focus, .wl-form-group textarea:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(11,79,130,.08); }
.wl-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.wl-form-btn-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 16px; }
.wl-checkbox-label { display: flex; align-items: flex-start; gap: 8px; font-size: 0.8rem; cursor: pointer; }
.wl-checkbox-label input { margin-top: 2px; }
.wl-checkbox-label a { color: var(--color-primary); text-decoration: underline; }

/* Number Input */
.wl-number-input { display: flex; align-items: center; border: 1.5px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; }
.wl-num-btn { width: 36px; height: 36px; background: var(--color-bg); color: var(--color-primary); font-size: 1.1rem; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background var(--transition); }
.wl-num-btn:hover { background: var(--color-primary); color: #fff; }
.wl-number-input input { flex: 1; text-align: center; border: none; outline: none; padding: 8px; font-size: 0.9rem; font-weight: 600; }

/* Price Preview */
.wl-price-preview { background: var(--color-bg); border-radius: var(--radius-md); padding: 14px; margin: 14px 0; font-size: 0.85rem; }
.wl-price-row { display: flex; justify-content: space-between; margin-bottom: 8px; color: var(--color-text-muted); }
.wl-price-row:last-child { margin-bottom: 0; }
.wl-price-total { padding-top: 10px; border-top: 1px solid var(--color-border); font-weight: 600; color: var(--color-text); font-size: 0.9rem; }
.wl-price-total strong { color: var(--color-primary); font-size: 1.1rem; }

/* Payment Methods */
.wl-payment-methods { display: flex; flex-direction: column; gap: 8px; }
.wl-pm-option { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border: 1.5px solid var(--color-border); border-radius: var(--radius-md); cursor: pointer; font-size: 0.85rem; transition: all var(--transition); }
.wl-pm-option:has(input:checked), .wl-pm-option.active { border-color: var(--color-primary); background: rgba(11,79,130,.04); }
.wl-pm-option input { accent-color: var(--color-primary); }

/* Review Summary */
.wl-review-summary { background: var(--color-bg); border-radius: var(--radius-md); padding: 16px; font-size: 0.85rem; margin-bottom: 16px; }
.wl-review-row { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid var(--color-border); }
.wl-review-row:last-child { border-bottom: none; }
.wl-form-error { background: rgba(239,68,68,.08); color: var(--color-danger); border-radius: var(--radius-md); padding: 12px; font-size: 0.85rem; }

/* ── Archive Layout ───────────────────────────────────────────── */
.wl-archive-layout { display: grid; grid-template-columns: 280px 1fr; gap: 40px; padding: 40px 0 80px; align-items: start; }
.wl-archive-sidebar { position: sticky; top: calc(var(--header-h) + 20px); }
.wl-filter-card { background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 24px; }
.wl-filter-card h3 { font-size: 1.05rem; margin-bottom: 20px; }
.wl-filter-group { margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--color-border); }
.wl-filter-group:last-child { border-bottom: none; }
.wl-filter-group h4 { font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.5px; color: var(--color-text-muted); margin-bottom: 12px; font-family: var(--font-body); }
.wl-filter-check { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 0.88rem; cursor: pointer; }
.wl-filter-check input { accent-color: var(--color-primary); }
.wl-range-wrap input[type=range] { width: 100%; accent-color: var(--color-primary); }
.wl-range-labels { display: flex; justify-content: space-between; font-size: 0.78rem; color: var(--color-text-muted); margin-top: 6px; }

.wl-archive-controls { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; flex-wrap: wrap; gap: 12px; }
.wl-results-count { font-size: 0.88rem; color: var(--color-text-muted); }
.wl-controls-right { display: flex; gap: 12px; align-items: center; }
.wl-controls-right select { border: 1px solid var(--color-border); border-radius: var(--radius-full); padding: 8px 14px; font-size: 0.82rem; outline: none; }
.wl-view-toggle { display: flex; gap: 4px; }
.wl-view-btn { padding: 8px 12px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); color: var(--color-text-muted); transition: all var(--transition); }
.wl-view-btn.active, .wl-view-btn:hover { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }

/* ── Contact Page ─────────────────────────────────────────────── */
.wl-contact-layout { display: grid; grid-template-columns: 1fr 1.2fr; gap: 60px; align-items: start; margin-bottom: 48px; }
.wl-contact-info-col h2 { font-size: 1.8rem; margin-bottom: 16px; }
.wl-contact-info-col > p { color: var(--color-text-muted); margin-bottom: 32px; line-height: 1.7; }
.wl-contact-cards { display: flex; flex-direction: column; gap: 14px; margin-bottom: 28px; }
.wl-contact-card { display: flex; align-items: flex-start; gap: 14px; padding: 16px; background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.wl-contact-card-icon { width: 44px; height: 44px; border-radius: var(--radius-md); background: rgba(11,79,130,.08); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.wl-contact-card-icon i { color: var(--color-primary); }
.wl-contact-card-text strong { display: block; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.5px; color: var(--color-text-muted); margin-bottom: 4px; font-family: var(--font-body); }
.wl-contact-card-text a, .wl-contact-card-text span { font-size: 0.9rem; color: var(--color-text); }
.wl-contact-social h4 { font-size: 0.88rem; margin-bottom: 12px; }
.wl-contact-form { display: flex; flex-direction: column; }
.wl-map-section { border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-md); }
.wl-map-section iframe { border: none; display: block; }

/* ── Card Component ──────────────────────────────────────────── */
.wl-card { background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.wl-card-header { padding: 20px 24px; border-bottom: 1px solid var(--color-border); display: flex; align-items: center; justify-content: space-between; }
.wl-card-header h3 { font-size: 1.05rem; display: flex; align-items: center; gap: 8px; }
.wl-card-header h3 i { color: var(--color-primary); }
.wl-card-body { padding: 24px; }

/* ── Pagination ──────────────────────────────────────────────── */
.wl-pagination-wrap { margin-top: 40px; }
.wl-pagination-wrap .nav-links { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.wl-pagination-wrap .page-numbers { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--radius-md); border: 1.5px solid var(--color-border); color: var(--color-text); transition: all var(--transition); font-size: 0.88rem; }
.wl-pagination-wrap .page-numbers.current, .wl-pagination-wrap .page-numbers:hover { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.wl-pagination-wrap .page-numbers.dots { border: none; }

/* ── Section CTA ─────────────────────────────────────────────── */
.wl-section-cta { text-align: center; margin-top: 40px; }
.wl-no-results { grid-column: 1 / -1; text-align: center; padding: 60px; color: var(--color-text-muted); }
.wl-no-results i { font-size: 3rem; margin-bottom: 16px; display: block; }

/* ── About Page ──────────────────────────────────────────────── */
.wl-about-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 28px 0 32px; }
.wl-about-stat { text-align: center; background: rgba(11,79,130,.04); border-radius: var(--radius-lg); padding: 16px; }
.wl-about-stat strong { display: block; font-size: 1.5rem; color: var(--color-primary); font-family: var(--font-heading); }
.wl-about-stat span { font-size: 0.78rem; color: var(--color-text-muted); }
.wl-team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.wl-team-card { background: #fff; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); text-align: center; transition: all 0.3s ease; }
.wl-team-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.wl-team-photo { aspect-ratio: 1; overflow: hidden; }
.wl-team-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.wl-team-card:hover .wl-team-photo img { transform: scale(1.05); }
.wl-team-info { padding: 16px; }
.wl-team-info h4 { font-size: 1rem; margin-bottom: 4px; }
.wl-team-role { font-size: 0.78rem; color: var(--color-primary); font-weight: 600; }
.wl-team-info p { font-size: 0.82rem; color: var(--color-text-muted); margin: 10px 0; }
.wl-team-social { display: flex; gap: 8px; justify-content: center; }
.wl-team-social a { color: var(--color-text-muted); font-size: 0.9rem; transition: color var(--transition); }
.wl-team-social a:hover { color: var(--color-primary); }
.wl-values-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.wl-value-card { text-align: center; padding: 32px 20px; background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.wl-value-icon { width: 64px; height: 64px; border-radius: var(--radius-full); background: rgba(11,79,130,.08); display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; }
.wl-value-icon i { font-size: 1.4rem; color: var(--color-primary); }
.wl-value-card h4 { margin-bottom: 10px; }
.wl-value-card p { font-size: 0.85rem; color: var(--color-text-muted); }

/* ── Booking Confirmation ────────────────────────────────────── */
.wl-confirmation-card { background: #fff; border-radius: var(--radius-xl); box-shadow: var(--shadow-xl); padding: 48px; text-align: center; }
.wl-confirmation-card .wl-success-icon { font-size: 3.5rem; color: var(--color-accent); margin-bottom: 20px; }
.wl-confirmation-card h1 { margin-bottom: 12px; }
.wl-booking-summary-table { background: var(--color-bg); border-radius: var(--radius-lg); padding: 24px; margin: 28px 0; text-align: left; }
.wl-bst-ref { text-align: center; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--color-border); }
.wl-bst-ref span { display: block; font-size: 0.78rem; text-transform: uppercase; color: var(--color-text-muted); margin-bottom: 6px; }
.wl-bst-ref strong { font-size: 1.6rem; color: var(--color-primary); font-family: var(--font-heading); }
.wl-bst-row { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--color-border); font-size: 0.88rem; }
.wl-bst-row:last-child { border-bottom: none; }
.wl-bst-row span { color: var(--color-text-muted); }
.wl-confirmation-note { background: rgba(16,185,129,.06); border: 1px solid rgba(16,185,129,.2); border-radius: var(--radius-md); padding: 14px; font-size: 0.85rem; color: var(--color-text); margin: 20px 0; }

/* ── Success Modal ───────────────────────────────────────────── */
.wl-modal { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity var(--transition); }
.wl-modal.open { opacity: 1; pointer-events: all; }
.wl-modal-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.6); }
.wl-modal-box { position: relative; z-index: 1; background: #fff; border-radius: var(--radius-xl); padding: 40px; max-width: 440px; width: 90%; box-shadow: var(--shadow-xl); transform: scale(.95); transition: transform var(--transition); }
.wl-modal.open .wl-modal-box { transform: scale(1); }
.wl-modal-close { position: absolute; top: 16px; right: 16px; color: var(--color-text-muted); }
.wl-modal-success { text-align: center; }
.wl-success-icon { font-size: 3.5rem; color: var(--color-accent); margin-bottom: 16px; }
.wl-modal-success h3 { margin-bottom: 10px; }
.wl-modal-success p { color: var(--color-text-muted); margin-bottom: 16px; font-size: 0.9rem; }
.wl-success-ref { background: var(--color-bg); border-radius: var(--radius-md); padding: 12px; margin: 16px 0; display: flex; justify-content: space-between; align-items: center; font-size: 0.88rem; }
.wl-success-ref strong { color: var(--color-primary); font-size: 1.1rem; }
.wl-success-note { font-size: 0.8rem; color: var(--color-text-muted); margin-bottom: 20px; }

/* ── Blog layout ─────────────────────────────────────────────── */
.wl-blog-layout { display: grid; grid-template-columns: 1fr 280px; gap: 40px; }
.wl-blog-main .wl-blog-grid { grid-template-columns: repeat(2, 1fr); }
.wl-blog-sidebar { position: sticky; top: calc(var(--header-h) + 20px); }
.wl-single-post-layout { display: grid; grid-template-columns: 1fr 280px; gap: 40px; }
.wl-single-post { min-width: 0; }
.wl-post-meta { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; font-size: 0.85rem; color: var(--color-text-muted); }
.wl-post-meta span { display: flex; align-items: center; gap: 5px; }
.wl-post-thumb { border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 28px; }
.wl-post-thumb img { width: 100%; aspect-ratio: 16/7; object-fit: cover; }
.wl-post-content { line-height: 1.85; }
.wl-post-content h2 { font-size: 1.4rem; margin: 28px 0 12px; }
.wl-post-content p { margin-bottom: 1rem; }
.wl-post-content img { border-radius: var(--radius-md); margin: 16px 0; }

/* ── 404 ─────────────────────────────────────────────────────── */
.wl-404-content { display: flex; flex-direction: column; align-items: center; }
.wl-404-graphic i { font-size: 5rem; color: var(--color-primary); opacity: .2; margin-bottom: 8px; }
.wl-404-title { font-size: 8rem; color: var(--color-primary); opacity: .12; line-height: 1; margin-bottom: -20px; }

/* ── Widgets ──────────────────────────────────────────────────── */
.widget { margin-bottom: 28px; }
.widget-title { font-size: 1rem; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 2px solid var(--color-primary); }
.wl-widget-packages li { margin-bottom: 12px; }
.wl-widget-packages a { display: flex; gap: 12px; align-items: center; }
.wl-widget-packages .wl-widget-pkg-img { width: 60px; height: 50px; border-radius: var(--radius-sm); overflow: hidden; flex-shrink: 0; }
.wl-widget-packages .wl-widget-pkg-img img { width: 100%; height: 100%; object-fit: cover; }
.wl-widget-packages strong { display: block; font-size: 0.85rem; color: var(--color-text); }
.wl-widget-packages span { font-size: 0.78rem; color: var(--color-primary); }
.wl-widget-search { display: flex; gap: 8px; }
.wl-widget-search input { flex: 1; border: 1.5px solid var(--color-border); border-radius: var(--radius-full); padding: 8px 14px; font-size: 0.85rem; outline: none; }
.wl-widget-search input:focus { border-color: var(--color-primary); }
.wl-widget-search button { padding: 8px 14px; background: var(--color-primary); color: #fff; border-radius: var(--radius-full); }

/* ── Fallback menu ───────────────────────────────────────────── */
.wl-fallback-menu { display: flex; gap: 4px; }
.wl-fallback-menu a { padding: 10px 14px; font-weight: 500; font-size: 0.9rem; }

/* ── Helpers ─────────────────────────────────────────────────── */
.wl-empty-state { padding: 40px; text-align: center; color: var(--color-text-muted); }

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 1100px) {
  .wl-packages-grid    { grid-template-columns: repeat(2, 1fr); }
  .wl-activities-grid  { grid-template-columns: repeat(2, 1fr); }
  .wl-team-grid        { grid-template-columns: repeat(2, 1fr); }
  .wl-values-grid      { grid-template-columns: repeat(2, 1fr); }
  .wl-footer-grid      { grid-template-columns: 1fr 1fr; gap: 32px; }
  .wl-why-inner        { gap: 40px; }
}

@media (max-width: 900px) {
  .wl-stats-row        { grid-template-columns: repeat(2, 1fr); }
  .wl-stat-item:nth-child(2) { border-right: none; }
  .wl-pkg-layout       { grid-template-columns: 1fr; }
  .wl-pkg-sidebar      { position: static; }
  .wl-archive-layout   { grid-template-columns: 1fr; }
  .wl-archive-sidebar  { position: static; }
  .wl-contact-layout   { grid-template-columns: 1fr; }
  .wl-blog-layout      { grid-template-columns: 1fr; }
  .wl-single-post-layout { grid-template-columns: 1fr; }
  .wl-why-inner        { grid-template-columns: 1fr; }
  .wl-why-badge-float  { right: 0; bottom: 0; position: relative; margin-top: 16px; display: inline-flex; align-items: center; gap: 12px; }
  .wl-about-stats      { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  :root { --header-h: 64px; }
  .wl-section          { padding: 56px 0; }
  .wl-hamburger        { display: flex; }
  .wl-nav { position: fixed; top: 0; right: -100%; width: 80%; max-width: 320px; height: 100vh; background: #fff; box-shadow: var(--shadow-xl); z-index: 9999; transition: right var(--transition); overflow-y: auto; padding: 80px 24px 24px; }
  .wl-nav.open         { right: 0; }
  .wl-menu             { flex-direction: column; align-items: stretch; gap: 0; }
  .wl-menu > li > a    { padding: 12px 0; border-radius: 0; border-bottom: 1px solid var(--color-border); }
  .wl-menu > li:last-child > a { border-bottom: none; }
  .wl-header-cta       { display: none; }
  .wl-hero             { min-height: 75vh; }
  .wl-hero-title       { font-size: 2rem; }
  .wl-hero-actions     { flex-direction: column; }
  .wl-hero-trust       { gap: 12px; }
  .wl-scroll-indicator { display: none; }
  .wl-search-section   { margin-top: 0; }
  .wl-search-fields    { flex-direction: column; }
  .wl-search-submit    { width: 100%; }
  .wl-stats-row        { grid-template-columns: 1fr 1fr; }
  .wl-stat-item        { padding: 20px; border-right: none; border-bottom: 1px solid rgba(255,255,255,.15); }
  .wl-stat-item:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.15); }
  .wl-packages-grid    { grid-template-columns: 1fr; }
  .wl-destinations-masonry { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .wl-dest-card-lg     { grid-column: span 1; }
  .wl-activities-grid  { grid-template-columns: 1fr 1fr; }
  .wl-blog-grid        { grid-template-columns: 1fr; }
  .wl-blog-main .wl-blog-grid { grid-template-columns: 1fr; }
  .wl-testimonials-carousel .wl-testi-card { min-width: 85%; }
  .wl-footer-grid      { grid-template-columns: 1fr; }
  .wl-footer-bottom-inner { flex-direction: column; text-align: center; }
  .wl-inc-exc-grid     { grid-template-columns: 1fr; }
  .wl-highlights-grid  { grid-template-columns: 1fr; }
  .wl-features-grid    { grid-template-columns: 1fr; }
  .wl-team-grid        { grid-template-columns: 1fr 1fr; }
  .wl-values-grid      { grid-template-columns: 1fr 1fr; }
  .wl-topbar-left      { display: none; }
  .wl-pkg-hero         { height: 360px; }
  .wl-newsletter-input-wrap { flex-direction: column; border-radius: var(--radius-lg); padding: 12px; }
  .wl-newsletter-input-wrap input { width: 100%; }
  .wl-newsletter-input-wrap button { width: 100%; }
  .wl-form-row         { grid-template-columns: 1fr; }
  .wl-form-btn-row     { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .wl-destinations-masonry { grid-template-columns: 1fr; }
  .wl-activities-grid  { grid-template-columns: 1fr; }
  .wl-stats-row        { grid-template-columns: 1fr; }
  .wl-stat-item        { border-right: none; border-bottom: 1px solid rgba(255,255,255,.15); }
  .wl-team-grid        { grid-template-columns: 1fr; }
  .wl-values-grid      { grid-template-columns: 1fr; }
  .wl-about-stats      { grid-template-columns: 1fr 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   ARCHIVE — QUICK PILLS BAR + FILTER IMPROVEMENTS
═══════════════════════════════════════════════════════════════ */
.wl-archive-pills-bar {
  background: #fff; border-bottom: 1px solid var(--color-border);
  padding: 14px 0; position: sticky; top: var(--header-h); z-index: 80;
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
}
.wl-archive-pills {
  display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none;
  padding-bottom: 2px;
}
.wl-archive-pills::-webkit-scrollbar { display: none; }
.wl-arc-pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 16px; border-radius: 999px; white-space: nowrap;
  font-size: .82rem; font-weight: 600; flex-shrink: 0;
  border: 1.5px solid var(--color-border); background: #fff;
  color: var(--color-text-muted); cursor: pointer;
  transition: all var(--transition);
}
.wl-arc-pill:hover { border-color: var(--color-primary); color: var(--color-primary); }
.wl-arc-pill.active { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.wl-arc-pill i { font-size: .78rem; }
.wl-arc-pill-count {
  background: rgba(255,255,255,.25); padding: 1px 6px; border-radius: 999px;
  font-size: .68rem; font-weight: 700;
}
.wl-arc-pill.active .wl-arc-pill-count { background: rgba(255,255,255,.3); }
.wl-arc-pill:not(.active) .wl-arc-pill-count { background: var(--color-bg); color: var(--color-text-muted); }

/* Filter card improvements */
.wl-filter-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.wl-filter-card-head h3 { display: flex; align-items: center; gap: 8px; font-size: 1rem; }
.wl-filter-card-head h3 i { color: var(--color-primary); }
.wl-filter-reset { font-size: .78rem; color: var(--color-primary); font-weight: 600; text-decoration: underline; background: none; border: none; cursor: pointer; padding: 0; }
.wl-filter-check { display: flex; align-items: center; gap: 8px; padding: 7px 0; font-size: .88rem; cursor: pointer; }
.wl-filter-check input { accent-color: var(--color-primary); flex-shrink: 0; }
.wl-filter-check span { flex: 1; color: var(--color-text); }
.wl-filter-check small { color: var(--color-text-muted); font-size: .72rem; background: var(--color-bg); padding: 1px 7px; border-radius: 999px; }

/* List view for new cards */
.wl-list-view { grid-template-columns: 1fr !important; }
.wl-list-view .wl-tour-card { flex-direction: row; max-height: 200px; }
.wl-list-view .wl-tc-img-wrap { width: 280px; flex-shrink: 0; aspect-ratio: unset; }
.wl-list-view .wl-tc-footer { flex-direction: row; align-items: center; border-top: none; border-left: 1px solid var(--color-border); padding: 20px; }

/* ═══════════════════════════════════════════════════════════════
   WANDERLUX v2 — PROFESSIONAL TOUR CARD
═══════════════════════════════════════════════════════════════ */

/* Tour Card Container */
.wl-tour-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,.07);
  display: flex;
  flex-direction: column;
  transition: transform .3s ease, box-shadow .3s ease;
  position: relative;
}
.wl-tour-card:hover { transform: translateY(-6px); box-shadow: 0 16px 48px rgba(0,0,0,.14); }

/* Image */
.wl-tc-img-wrap { position: relative; aspect-ratio: 3/2; overflow: hidden; }
.wl-tc-img-link { display: block; width: 100%; height: 100%; }
.wl-tc-img-link img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.wl-tour-card:hover .wl-tc-img-link img { transform: scale(1.07); }
.wl-tc-img-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.55) 0%, transparent 50%);
  transition: opacity var(--transition);
}
.wl-tour-card:hover .wl-tc-img-overlay { opacity: .8; }

/* Badges */
.wl-tc-badge {
  position: absolute; top: 14px; left: 14px;
  font-size: .68rem; font-weight: 800; letter-spacing: .8px; text-transform: uppercase;
  padding: 5px 12px; border-radius: 999px;
  z-index: 2;
}
.wl-tc-badge-hot  { background: #EF4444; color: #fff; box-shadow: 0 2px 8px rgba(239,68,68,.4); }
.wl-tc-badge-best { background: var(--color-secondary); color: #fff; box-shadow: 0 2px 8px rgba(245,166,35,.4); }
.wl-tc-badge-save { background: #7C3AED; color: #fff; }
.wl-tc-badge-top  { background: var(--color-accent); color: #fff; }

/* Wishlist */
.wl-tc-wishlist {
  position: absolute; top: 12px; right: 12px; z-index: 2;
  width: 34px; height: 34px; border-radius: 50%;
  background: rgba(255,255,255,.85); backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center;
  color: var(--color-text-muted); font-size: .9rem;
  transition: all var(--transition);
}
.wl-tc-wishlist:hover { background: #fff; color: #EF4444; }
.wl-tc-wishlist.active i { font-family: "Font Awesome 6 Free"; font-weight: 900; color: #EF4444; }

/* Image footer: rating + duration */
.wl-tc-img-footer {
  position: absolute; bottom: 0; left: 0; right: 0;
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 14px; z-index: 2;
}
.wl-tc-rating {
  display: flex; align-items: center; gap: 5px;
  background: rgba(0,0,0,.55); backdrop-filter: blur(6px);
  color: #fff; padding: 4px 10px; border-radius: 999px; font-size: .8rem;
}
.wl-tc-rating i { color: #FBBF24; font-size: .72rem; }
.wl-tc-rating strong { font-weight: 700; }
.wl-tc-rating span { opacity: .75; font-size: .72rem; }
.wl-tc-dur-pill {
  background: var(--color-primary); color: #fff;
  font-size: .72rem; font-weight: 700; padding: 4px 10px; border-radius: 999px;
}

/* Body */
.wl-tc-body { padding: 16px 18px 10px; flex: 1; }
.wl-tc-top-meta { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; gap: 8px; }
.wl-tc-loc { font-size: .78rem; color: var(--color-text-muted); display: flex; align-items: center; gap: 4px; }
.wl-tc-loc i { color: var(--color-primary); font-size: .72rem; }
.wl-tc-cat-pill {
  font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .5px;
  padding: 3px 10px; border-radius: 999px;
  background: rgba(11,79,130,.08); color: var(--color-primary);
  white-space: nowrap; flex-shrink: 0;
}
.wl-tc-cat-pill:hover { background: var(--color-primary); color: #fff; }

.wl-tc-title { font-size: 1rem; line-height: 1.35; margin-bottom: 10px; font-family: var(--font-heading); }
.wl-tc-title a { color: var(--color-heading); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.wl-tc-title a:hover { color: var(--color-primary); }

/* Perk chips */
.wl-tc-perks { display: flex; gap: 6px; flex-wrap: wrap; }
.wl-tc-perk {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: .72rem; color: var(--color-text-muted);
  background: var(--color-bg); border: 1px solid var(--color-border);
  padding: 3px 9px; border-radius: 999px;
}
.wl-tc-perk i { color: var(--color-primary); font-size: .68rem; }

/* Footer */
.wl-tc-footer {
  padding: 12px 18px 16px;
  border-top: 1px solid var(--color-border);
  display: flex; align-items: flex-end; justify-content: space-between; gap: 10px;
  margin-top: auto;
}
.wl-tc-price-block { display: flex; flex-direction: column; gap: 2px; }
.wl-tc-from { font-size: .68rem; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: .5px; }
.wl-tc-price-row { display: flex; align-items: baseline; gap: 6px; }
.wl-tc-was { font-size: .82rem; color: var(--color-text-muted); text-decoration: line-through; }
.wl-tc-now { font-size: 1.25rem; font-weight: 800; color: var(--color-primary); font-family: var(--font-heading); }
.wl-tc-per { font-size: .72rem; color: var(--color-text-muted); }
.wl-tc-save {
  font-size: .68rem; font-weight: 700; color: var(--color-accent);
  background: rgba(16,185,129,.1); padding: 2px 8px; border-radius: 999px; display: inline-block;
}
.wl-tc-cta {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--color-primary); color: #fff;
  font-size: .82rem; font-weight: 700;
  padding: 9px 18px; border-radius: 999px;
  transition: all var(--transition); white-space: nowrap; flex-shrink: 0;
}
.wl-tc-cta:hover { background: var(--color-primary-dark); color: #fff; transform: translateX(2px); }
.wl-tc-cta i { font-size: .72rem; transition: transform var(--transition); }
.wl-tc-cta:hover i { transform: translateX(3px); }

/* ═══════════════════════════════════════════════════════════════
   SINGLE PACKAGE v2 — GALLERY GRID
═══════════════════════════════════════════════════════════════ */
.wl-single-package-v2 { background: #fff; }

.wl-pkg-gallery-section { padding: 20px 0 0; background: #fff; }
.wl-pkg-gallery-section .wl-breadcrumb { margin-bottom: 16px; }
.wl-pkg-gallery-section .wl-breadcrumb-list li { color: var(--color-text-muted); }
.wl-pkg-gallery-section .wl-breadcrumb-list a { color: var(--color-text-muted); }
.wl-pkg-gallery-section .wl-breadcrumb-list [aria-current] { color: var(--color-primary); font-weight: 600; }

.wl-pkg-gallery-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  grid-template-rows: 240px 240px;
  gap: 6px;
  border-radius: 20px;
  overflow: hidden;
  position: relative;
  cursor: pointer;
}
.wl-pg-cell { position: relative; overflow: hidden; }
.wl-pg-cell img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; display: block; }
.wl-pg-cell:hover img { transform: scale(1.05); }
.wl-pg-main { grid-row: 1 / 3; }
.wl-pg-side:nth-of-type(2) { /* top right */ }
.wl-pg-side:nth-of-type(3) { /* mid top */ }
.wl-pg-side:nth-of-type(4) { /* mid bot */ }
.wl-pg-side:nth-of-type(5) { /* bot right */ }

/* Hover overlay on each cell */
.wl-pg-cell::after {
  content: '';
  position: absolute; inset: 0;
  background: rgba(0,0,0,0);
  transition: background var(--transition);
}
.wl-pg-cell:hover::after { background: rgba(0,0,0,.12); }

/* Show all photos button */
.wl-gallery-show-all {
  position: absolute; bottom: 16px; right: 16px;
  display: flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,.92); backdrop-filter: blur(8px);
  color: var(--color-text); font-size: .85rem; font-weight: 600;
  padding: 9px 18px; border-radius: 999px;
  box-shadow: 0 2px 12px rgba(0,0,0,.2);
  transition: all var(--transition); z-index: 4;
  border: 1.5px solid rgba(255,255,255,.8);
}
.wl-gallery-show-all:hover { background: #fff; box-shadow: 0 4px 20px rgba(0,0,0,.25); }
.wl-gallery-show-all i { font-size: .8rem; }

/* ═══════════════════════════════════════════════════════════════
   PACKAGE HEADER BAR
═══════════════════════════════════════════════════════════════ */
.wl-pkg-header-bar {
  padding: 28px 0;
  background: #fff;
  border-bottom: 1px solid var(--color-border);
}
.wl-pkg-header-inner {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 32px;
}
.wl-pkg-header-left { flex: 1; min-width: 0; }
.wl-pkg-cats-row { display: flex; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.wl-pkg-cats-row .wl-tag {
  background: rgba(11,79,130,.08); color: var(--color-primary);
  font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .5px;
  padding: 4px 12px; border-radius: 999px;
  transition: all var(--transition);
}
.wl-pkg-cats-row .wl-tag:hover { background: var(--color-primary); color: #fff; }

.wl-pkg-title {
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  color: var(--color-heading); margin-bottom: 14px; line-height: 1.25;
}
.wl-pkg-header-meta { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.wl-phm-item { display: flex; align-items: center; gap: 6px; font-size: .88rem; color: var(--color-text-muted); }
.wl-phm-item i { color: var(--color-primary); font-size: .82rem; }
.wl-phm-item .wl-stars i { color: #FBBF24; }
.wl-phm-item strong { color: var(--color-text); font-weight: 700; }
.wl-phm-reviews { color: var(--color-text-muted); }

.wl-pkg-header-right {
  display: flex; flex-direction: column; align-items: flex-end; gap: 10px;
  flex-shrink: 0; text-align: right;
}
.wl-pkg-save-pill {
  background: #FEF2F2; color: #DC2626; font-size: .72rem; font-weight: 800;
  padding: 4px 12px; border-radius: 999px; letter-spacing: .5px;
}
.wl-pkg-header-price .wl-price ins { font-size: 2rem; font-weight: 800; text-decoration: none; color: var(--color-primary); }
.wl-pkg-header-price .wl-price del { color: var(--color-text-muted); font-size: 1.05rem; }
.wl-pkg-header-price .wl-price small { font-size: .82rem; color: var(--color-text-muted); }
.wl-pkg-header-price .wl-price strong { font-size: 2rem; font-weight: 800; color: var(--color-primary); }

/* ═══════════════════════════════════════════════════════════════
   STICKY TABS BAR
═══════════════════════════════════════════════════════════════ */
.wl-pkg-tabs-bar {
  background: #fff;
  border-bottom: 2px solid var(--color-border);
  position: sticky; top: var(--header-h); z-index: 90;
}
.wl-pkg-tabs-nav { display: flex; gap: 0; overflow-x: auto; scrollbar-width: none; }
.wl-pkg-tabs-nav::-webkit-scrollbar { display: none; }
.wl-pkg-tab {
  padding: 16px 22px;
  font-size: .88rem; font-weight: 600; color: var(--color-text-muted);
  white-space: nowrap; border-bottom: 3px solid transparent; margin-bottom: -2px;
  transition: all var(--transition); text-decoration: none;
}
.wl-pkg-tab:hover { color: var(--color-primary); }
.wl-pkg-tab.active { color: var(--color-primary); border-bottom-color: var(--color-primary); }

/* ═══════════════════════════════════════════════════════════════
   PACKAGE LAYOUT v2
═══════════════════════════════════════════════════════════════ */
.wl-pkg-layout-v2 {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 48px;
  padding: 40px 0 80px;
  align-items: start;
}
.wl-pkg-content-v2 { min-width: 0; }
.wl-pkg-sidebar-v2 { position: sticky; top: calc(var(--header-h) + 80px); }

/* Sections */
.wl-pkg-sec {
  padding-bottom: 40px; margin-bottom: 40px;
  border-bottom: 1px solid var(--color-border);
}
.wl-pkg-sec:last-child { border-bottom: none; }
.wl-pkg-sec-title {
  display: flex; align-items: center; gap: 10px;
  font-size: 1.35rem; color: var(--color-heading); margin-bottom: 20px;
}
.wl-pkg-sec-title i { color: var(--color-primary); font-size: 1.1rem; }

/* Overview text */
.wl-pkg-overview-text { color: var(--color-text); line-height: 1.85; margin-bottom: 28px; }
.wl-pkg-overview-text p { margin-bottom: 1rem; }

/* Tour Essentials */
.wl-tour-essentials {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
  margin-top: 28px;
}
.wl-essential-box {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  padding: 20px 12px; background: var(--color-bg);
  border: 1.5px solid var(--color-border); border-radius: 14px;
  text-align: center; transition: all var(--transition);
}
.wl-essential-box:hover { border-color: var(--color-primary); background: rgba(11,79,130,.04); }
.wl-ess-icon {
  width: 44px; height: 44px; border-radius: 12px;
  background: rgba(11,79,130,.08);
  display: flex; align-items: center; justify-content: center;
}
.wl-ess-icon i { font-size: 1.1rem; color: var(--color-primary); }
.wl-essential-box strong { font-size: .92rem; color: var(--color-heading); font-weight: 700; font-family: var(--font-body); }
.wl-essential-box span { font-size: .72rem; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: .5px; }

/* Highlights v2 */
.wl-highlights-v2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.wl-highlight-v2-item {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 12px 16px; background: var(--color-bg);
  border-radius: 10px; font-size: .88rem; color: var(--color-text);
  border: 1px solid var(--color-border);
}
.wl-hv2-check {
  width: 22px; height: 22px; border-radius: 50%;
  background: rgba(16,185,129,.1); color: var(--color-accent);
  display: flex; align-items: center; justify-content: center;
  font-size: .72rem; flex-shrink: 0; margin-top: 1px;
}

/* Itinerary Timeline v2 */
.wl-itin-timeline-v2 { position: relative; }
.wl-itin-day {
  position: relative; padding-left: 52px; margin-bottom: 6px;
}
.wl-itin-day::before {
  content: '';
  position: absolute; left: 16px; top: 48px; bottom: -6px;
  width: 2px; background: var(--color-border); z-index: 0;
}
.wl-itin-day:last-child::before { display: none; }

.wl-itin-day-btn {
  display: flex; align-items: center; gap: 12px;
  width: 100%; padding: 14px 20px 14px 0;
  text-align: left; background: transparent;
  font-family: var(--font-body);
  transition: all var(--transition);
  position: relative;
}
/* Timeline circle dot */
.wl-itin-day-btn::before {
  content: '';
  position: absolute; left: -38px; top: 50%; transform: translateY(-50%);
  width: 14px; height: 14px; border-radius: 50%;
  background: #fff; border: 3px solid var(--color-border);
  z-index: 1; transition: border-color var(--transition), background var(--transition);
}
.wl-itin-day.open .wl-itin-day-btn::before { border-color: var(--color-primary); background: var(--color-primary); }
.wl-itin-day:hover .wl-itin-day-btn::before { border-color: var(--color-primary); }

.wl-day-number {
  background: var(--color-primary); color: #fff;
  font-size: .72rem; font-weight: 700; padding: 4px 12px; border-radius: 999px;
  white-space: nowrap; flex-shrink: 0;
}
.wl-itin-day.open .wl-day-number { background: var(--color-primary-dark); }
.wl-day-label { flex: 1; font-weight: 600; font-size: .92rem; color: var(--color-text); }
.wl-itin-day-btn i { color: var(--color-text-muted); font-size: .78rem; transition: transform var(--transition); flex-shrink: 0; }
.wl-itin-day.open .wl-itin-day-btn i { transform: rotate(180deg); }

.wl-itin-day-body {
  display: none; padding: 0 20px 16px 0;
  color: var(--color-text-muted); font-size: .88rem; line-height: 1.7;
}
.wl-itin-day.open .wl-itin-day-body { display: block; }

/* Inclusions / Exclusions v2 */
.wl-inc-exc-v2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.wl-inc-col, .wl-exc-col {
  background: var(--color-bg); border-radius: 14px;
  padding: 20px; border: 1px solid var(--color-border);
}
.wl-inc-col h4, .wl-exc-col h4 {
  font-size: .88rem; text-transform: uppercase; letter-spacing: .5px;
  margin-bottom: 14px; display: flex; align-items: center; gap: 8px;
  font-family: var(--font-body); font-weight: 700;
}
.wl-inc-col h4 { color: var(--color-accent); }
.wl-inc-col h4 i { color: var(--color-accent); }
.wl-exc-col h4 { color: var(--color-danger); }
.wl-exc-col h4 i { color: var(--color-danger); }
.wl-inc-col ul, .wl-exc-col ul { display: flex; flex-direction: column; gap: 10px; }
.wl-inc-col li, .wl-exc-col li { display: flex; align-items: flex-start; gap: 10px; font-size: .88rem; }
.wl-inc-col li i { color: var(--color-accent); margin-top: 2px; font-size: .8rem; flex-shrink: 0; }
.wl-exc-col li i { color: var(--color-danger); margin-top: 2px; font-size: .8rem; flex-shrink: 0; }
.wl-inc-col li span, .wl-exc-col li span { color: var(--color-text); line-height: 1.4; }

/* ═══════════════════════════════════════════════════════════════
   BOOKING CARD v2
═══════════════════════════════════════════════════════════════ */
.wl-booking-card-v2 {
  background: #fff;
  border: 1.5px solid var(--color-border);
  border-radius: 20px;
  padding: 24px;
  box-shadow: 0 8px 32px rgba(0,0,0,.1);
}
.wl-bcv2-price {
  display: flex; align-items: center; justify-content: space-between;
  padding-bottom: 16px; margin-bottom: 16px;
  border-bottom: 1px solid var(--color-border);
}
.wl-bcv2-price .wl-price ins { font-size: 1.7rem; font-weight: 800; color: var(--color-primary); text-decoration: none; }
.wl-bcv2-price .wl-price del { color: var(--color-text-muted); font-size: .95rem; }
.wl-bcv2-price .wl-price strong { font-size: 1.7rem; font-weight: 800; color: var(--color-primary); }
.wl-bcv2-price .wl-price small { font-size: .78rem; color: var(--color-text-muted); }
.wl-bcv2-badge {
  background: #FEF2F2; color: #DC2626;
  font-size: .7rem; font-weight: 800; padding: 4px 10px; border-radius: 999px;
}
.wl-bcv2-quickinfo {
  display: flex; flex-direction: column; gap: 8px;
  padding-bottom: 16px; margin-bottom: 16px;
  border-bottom: 1px solid var(--color-border);
}
.wl-bcv2-quickinfo span {
  display: flex; align-items: center; gap: 8px;
  font-size: .85rem; color: var(--color-text-muted);
}
.wl-bcv2-quickinfo i { color: var(--color-primary); width: 14px; text-align: center; }

.wl-bcv2-trust {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 8px;
  margin: 16px 0;
}
.wl-bcv2-trust > div {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: 10px 6px; background: var(--color-bg); border-radius: 10px;
  font-size: .68rem; color: var(--color-text-muted); text-align: center;
  border: 1px solid var(--color-border);
}
.wl-bcv2-trust i { color: var(--color-primary); font-size: 1rem; margin-bottom: 2px; }

.wl-bcv2-help {
  display: flex; align-items: center; gap: 8px;
  font-size: .8rem; color: var(--color-text-muted);
  margin-top: 14px; text-align: center; justify-content: center;
}
.wl-bcv2-help i { color: var(--color-primary); }
.wl-bcv2-help a { color: var(--color-primary); font-weight: 600; }

/* ═══════════════════════════════════════════════════════════════
   GALLERY LIGHTBOX
═══════════════════════════════════════════════════════════════ */
.wl-lightbox {
  position: fixed; inset: 0; z-index: 99999;
  background: rgba(0,0,0,.95);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity .25s ease;
}
.wl-lightbox.open { opacity: 1; pointer-events: all; }
.wl-lightbox.open ~ * { pointer-events: none; }

.wl-lb-close {
  position: absolute; top: 20px; right: 20px;
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,.12); color: #fff; font-size: 1.2rem;
  display: flex; align-items: center; justify-content: center;
  transition: background var(--transition); z-index: 2;
}
.wl-lb-close:hover { background: rgba(255,255,255,.25); }

.wl-lb-prev, .wl-lb-next {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 52px; height: 52px; border-radius: 50%;
  background: rgba(255,255,255,.12); color: #fff; font-size: 1rem;
  display: flex; align-items: center; justify-content: center;
  transition: background var(--transition); z-index: 2;
}
.wl-lb-prev { left: 20px; }
.wl-lb-next { right: 20px; }
.wl-lb-prev:hover, .wl-lb-next:hover { background: rgba(255,255,255,.25); }

.wl-lb-content {
  flex: 1; display: flex; align-items: center; justify-content: center;
  padding: 60px 80px 20px; max-height: calc(100vh - 140px); width: 100%;
}
.wl-lb-content img {
  max-width: 100%; max-height: 100%; object-fit: contain;
  border-radius: 8px;
}
.wl-lb-counter {
  position: absolute; top: 24px; left: 50%; transform: translateX(-50%);
  color: rgba(255,255,255,.7); font-size: .85rem;
}

.wl-lb-thumbs {
  display: flex; gap: 8px; overflow-x: auto; padding: 12px 20px;
  background: rgba(0,0,0,.4); width: 100%; scrollbar-width: none;
}
.wl-lb-thumbs::-webkit-scrollbar { display: none; }
.wl-lb-thumb {
  width: 70px; height: 52px; object-fit: cover; border-radius: 6px;
  cursor: pointer; opacity: .5; transition: opacity var(--transition);
  flex-shrink: 0; border: 2px solid transparent;
}
.wl-lb-thumb:hover { opacity: .8; }
.wl-lb-thumb.active { opacity: 1; border-color: var(--color-secondary); }

/* ═══════════════════════════════════════════════════════════════
   RELATED SECTION
═══════════════════════════════════════════════════════════════ */
.wl-related-section { background: var(--color-bg); }

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE — SINGLE PACKAGE v2
═══════════════════════════════════════════════════════════════ */
@media (max-width: 1100px) {
  .wl-pkg-layout-v2 { grid-template-columns: 1fr 320px; gap: 32px; }
  .wl-tour-essentials { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .wl-pkg-gallery-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 200px 200px; }
  .wl-pg-main { grid-column: 1 / 2; grid-row: 1 / 3; }
  .wl-pkg-layout-v2 { grid-template-columns: 1fr; }
  .wl-pkg-sidebar-v2 { position: static; }
  .wl-pkg-header-inner { flex-direction: column; align-items: flex-start; }
  .wl-pkg-header-right { align-items: flex-start; flex-direction: row; flex-wrap: wrap; }
  .wl-highlights-v2 { grid-template-columns: 1fr; }
  .wl-inc-exc-v2 { grid-template-columns: 1fr; }
  .wl-tour-essentials { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 640px) {
  .wl-pkg-gallery-grid { height: auto; grid-template-columns: 1fr; grid-template-rows: 220px; }
  .wl-pg-main { grid-row: 1 / 2; grid-column: 1 / 2; }
  .wl-pg-side { display: none; }
  .wl-pkg-gallery-grid .wl-pg-side:first-of-type { display: block; }
  .wl-tour-essentials { grid-template-columns: repeat(2, 1fr); }
  .wl-pkg-tab { padding: 12px 14px; font-size: .8rem; }
  .wl-lb-prev { left: 8px; } .wl-lb-next { right: 8px; }
  .wl-lb-content { padding: 60px 50px 10px; }
}

/* ═══════════════════════════════════════════════════════════════
   SCROLL-TO-BOOKING SMOOTH OFFSET
═══════════════════════════════════════════════════════════════ */
.wl-scroll-to-booking { scroll-margin-top: 120px; }

/* ═══════════════════════════════════════════════════════════════
   V3 OVERHAUL — MODERN UI/UX
═══════════════════════════════════════════════════════════════ */

/* ── Global micro-interaction upgrades ───────────────────────── */
::selection { background: rgba(12,79,160,.18); color: var(--color-primary-dark); }
*:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; border-radius: 4px; }
.wl-btn { position: relative; overflow: hidden; }
.wl-btn::after {
  content: ''; position: absolute; inset: 0; border-radius: inherit;
  background: rgba(255,255,255,.18); opacity: 0;
  transition: opacity var(--transition);
}
.wl-btn:hover::after { opacity: 1; }
.wl-btn-primary { background: var(--grad-primary); }

/* ── Transparent header (front page) ─────────────────────────── */
.wl-header-transparent {
  background: transparent !important;
  box-shadow: none !important;
  position: absolute !important;
  top: 0; left: 0; right: 0;
}
.wl-header-transparent .wl-text-logo i,
.wl-header-transparent .wl-text-logo span { color: #fff; }
.wl-header-transparent .wl-menu > li > a { color: rgba(255,255,255,.9); }
.wl-header-transparent .wl-menu > li > a:hover,
.wl-header-transparent .wl-menu > li.current-menu-item > a { color: #fff; }
.wl-header-transparent .wl-menu > li > a::after { background: #fff; }
.wl-header-transparent .wl-search-toggle { color: rgba(255,255,255,.9); }
.wl-header-transparent .wl-search-toggle:hover { background: rgba(255,255,255,.15); color: #fff; }
.wl-header-transparent .wl-header-cta { background: rgba(255,255,255,.18); border: 1.5px solid rgba(255,255,255,.5); color: #fff; backdrop-filter: blur(8px); box-shadow: none; }
.wl-header-transparent .wl-header-cta:hover { background: #fff; color: var(--color-primary); }
.wl-header-transparent .wl-hamburger span { background: #fff; }

/* solid once page is scrolled */
.wl-header-transparent.wl-scrolled {
  background: rgba(255,255,255,.96) !important;
  backdrop-filter: blur(16px);
  box-shadow: 0 2px 24px rgba(0,0,0,.1) !important;
  position: fixed !important;
}
.wl-header-transparent.wl-scrolled .wl-text-logo i,
.wl-header-transparent.wl-scrolled .wl-text-logo span { color: var(--color-primary); }
.wl-header-transparent.wl-scrolled .wl-menu > li > a { color: var(--color-text); }
.wl-header-transparent.wl-scrolled .wl-menu > li > a::after { background: var(--color-primary); }
.wl-header-transparent.wl-scrolled .wl-search-toggle { color: var(--color-text); }
.wl-header-transparent.wl-scrolled .wl-header-cta { background: var(--grad-primary); border-color: transparent; color: #fff; box-shadow: 0 4px 16px rgba(12,79,160,.3); }
.wl-header-transparent.wl-scrolled .wl-hamburger span { background: var(--color-text); }

/* ── Hero V2 ─────────────────────────────────────────────────── */
.wl-hero-v2 { min-height: 100vh; align-items: flex-start; padding-top: 0; }
.wl-hero-overlay { background: var(--grad-hero); }

.wl-hero-v2-inner {
  position: relative; z-index: 2;
  display: flex; flex-direction: column; align-items: center;
  text-align: center; padding-top: clamp(120px, 18vh, 200px);
  padding-bottom: clamp(60px, 8vh, 100px);
}

/* Trust strip at top of hero */
.wl-hero-trust-strip {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  justify-content: center; margin-bottom: 32px;
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2);
  backdrop-filter: blur(12px); border-radius: var(--radius-full);
  padding: 10px 24px; font-size: .8rem; color: rgba(255,255,255,.9);
}
.wl-hero-trust-strip i { color: var(--color-secondary); }
.wl-hts-sep { opacity: .4; }

/* Headline */
.wl-hero-v2-title {
  font-size: clamp(2.4rem, 5.5vw, 4.2rem);
  font-weight: 800; color: #fff; line-height: 1.12;
  text-shadow: 0 4px 24px rgba(0,0,0,.35);
  margin-bottom: 18px; max-width: 820px;
}
.wl-hero-v2-sub {
  font-size: clamp(.95rem, 1.5vw, 1.15rem);
  color: rgba(255,255,255,.82); max-width: 600px;
  margin-bottom: 0; line-height: 1.7;
}

/* ── Hero Integrated Search Card ─────────────────────────────── */
.wl-hero-search-card {
  background: #fff; border-radius: var(--radius-xl);
  box-shadow: 0 28px 72px rgba(0,0,0,.28);
  width: 100%; max-width: 1040px;
  margin-top: 36px; overflow: hidden;
}

.wl-hsc-tabs {
  display: flex; background: #f8faff;
  border-bottom: 1px solid var(--color-border-light);
  padding: 0 8px;
}
.wl-hsc-tab {
  display: flex; align-items: center; gap: 7px;
  padding: 14px 22px; font-size: .85rem; font-weight: 600;
  color: var(--color-text-muted); border-bottom: 2.5px solid transparent;
  margin-bottom: -1px; transition: all var(--transition);
  white-space: nowrap;
}
.wl-hsc-tab i { font-size: .82rem; }
.wl-hsc-tab:hover { color: var(--color-primary); }
.wl-hsc-tab.active { color: var(--color-primary); border-bottom-color: var(--color-primary); }

.wl-hsc-form {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr auto;
  align-items: center; padding: 10px 10px 10px 4px;
}
.wl-hsc-field { padding: 10px 20px; text-align: left; }
.wl-hsc-label {
  display: flex; align-items: center; gap: 6px;
  font-size: .7rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .6px; color: var(--color-text-muted); margin-bottom: 5px;
}
.wl-hsc-label i { color: var(--color-primary); font-size: .7rem; }
.wl-hsc-select {
  width: 100%; border: none; outline: none; background: none;
  font-size: .95rem; font-weight: 500; color: var(--color-text);
  cursor: pointer; padding: 0; appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236B7280'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 2px center;
  padding-right: 16px;
}
.wl-hsc-sep {
  width: 1px; height: 44px; background: var(--color-border); flex-shrink: 0;
}
.wl-hsc-submit {
  display: flex; align-items: center; gap: 10px;
  background: var(--grad-primary); color: #fff;
  border-radius: var(--radius-md); padding: 16px 28px;
  font-size: .95rem; font-weight: 700; flex-shrink: 0;
  box-shadow: 0 6px 20px rgba(12,79,160,.4);
  transition: all var(--transition); margin: 4px 4px 4px 8px;
}
.wl-hsc-submit:hover { transform: translateY(-1px); box-shadow: 0 10px 28px rgba(12,79,160,.5); color: #fff; }
.wl-hsc-submit i { font-size: 1rem; }

/* Popular quick-links */
.wl-hero-popular {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  justify-content: center; margin-top: 20px;
}
.wl-hero-pop-label { font-size: .82rem; color: rgba(255,255,255,.7); }
.wl-hero-pop-link {
  font-size: .82rem; color: rgba(255,255,255,.9);
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25);
  border-radius: var(--radius-full); padding: 5px 14px;
  transition: all var(--transition); backdrop-filter: blur(4px);
}
.wl-hero-pop-link:hover { background: rgba(255,255,255,.25); color: #fff; }

/* ── Stats Section upgrade ────────────────────────────────────── */
.wl-stats-section { background: var(--grad-primary); }
.wl-stat-item { transition: background var(--transition); }
.wl-stat-item:hover { background: rgba(255,255,255,.06); }

/* ── Tour Card v3 — social proof + polish ────────────────────── */
.wl-tour-card {
  background: var(--color-surface); border-radius: var(--radius-lg);
  overflow: hidden; box-shadow: var(--shadow-card);
  transition: transform var(--transition-slow), box-shadow var(--transition-slow);
  display: flex; flex-direction: column;
  border: 1px solid var(--color-border-light);
}
.wl-tour-card:hover { transform: translateY(-7px); box-shadow: 0 20px 56px rgba(12,79,160,.16); }

.wl-tc-img-wrap { position: relative; aspect-ratio: 4/3; overflow: hidden; flex-shrink: 0; }
.wl-tc-img-link { display: block; width: 100%; height: 100%; }
.wl-tc-img-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.4,0,.2,1); }
.wl-tour-card:hover .wl-tc-img-wrap img { transform: scale(1.07); }
.wl-tc-img-overlay { position: absolute; inset: 0; background: var(--grad-card); pointer-events: none; }

/* Badge */
.wl-tc-badge {
  position: absolute; top: 14px; left: 14px; z-index: 2;
  font-size: .68rem; font-weight: 800; letter-spacing: .5px;
  padding: 5px 11px; border-radius: var(--radius-full);
  text-transform: uppercase;
}
.wl-tc-badge-hot  { background: #EF4444; color: #fff; animation: badge-pulse 2s ease infinite; }
.wl-tc-badge-best { background: var(--color-secondary); color: #fff; }
.wl-tc-badge-save { background: var(--color-accent); color: #fff; }
.wl-tc-badge-top  { background: #7C3AED; color: #fff; }
@keyframes badge-pulse { 0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.4)} 50%{box-shadow:0 0 0 6px rgba(239,68,68,0)} }

/* Wishlist heart */
.wl-tc-wishlist {
  position: absolute; top: 14px; right: 14px; z-index: 2;
  width: 34px; height: 34px; border-radius: var(--radius-full);
  background: rgba(255,255,255,.88); backdrop-filter: blur(8px);
  display: flex; align-items: center; justify-content: center;
  color: var(--color-text-muted); font-size: .95rem;
  transition: all var(--transition); border: 1px solid rgba(255,255,255,.5);
}
.wl-tc-wishlist:hover, .wl-tc-wishlist.active { color: #EF4444; transform: scale(1.1); background: #fff; }
.wl-tc-wishlist.active i { font-weight: 900; }

/* Image footer overlay: rating + duration */
.wl-tc-img-footer {
  position: absolute; bottom: 0; left: 0; right: 0; z-index: 2;
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 14px;
}
.wl-tc-rating {
  display: flex; align-items: center; gap: 5px;
  background: rgba(0,0,0,.55); backdrop-filter: blur(8px);
  color: #fff; border-radius: var(--radius-full); padding: 4px 10px;
  font-size: .78rem;
}
.wl-tc-rating i { color: #FBBF24; font-size: .72rem; }
.wl-tc-rating strong { font-weight: 700; }
.wl-tc-rating span { opacity: .75; }
.wl-tc-dur-pill {
  background: rgba(12,79,160,.75); backdrop-filter: blur(8px);
  color: #fff; font-size: .72rem; font-weight: 700;
  border-radius: var(--radius-full); padding: 4px 12px;
}

/* Card body */
.wl-tc-body { padding: 16px 18px 10px; flex: 1; }
.wl-tc-top-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.wl-tc-loc { font-size: .76rem; color: var(--color-text-muted); display: flex; align-items: center; gap: 4px; }
.wl-tc-loc i { color: var(--color-secondary); font-size: .72rem; }
.wl-tc-cat-pill {
  font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .4px;
  color: var(--color-primary); background: var(--color-surface-alt);
  border-radius: var(--radius-full); padding: 3px 10px; white-space: nowrap;
  transition: all var(--transition);
}
.wl-tc-cat-pill:hover { background: var(--color-primary); color: #fff; }
.wl-tc-title { font-size: 1rem; font-weight: 700; line-height: 1.35; margin-bottom: 10px; font-family: var(--font-heading); }
.wl-tc-title a { color: var(--color-text); }
.wl-tc-title a:hover { color: var(--color-primary); }

/* Perk chips */
.wl-tc-perks { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.wl-tc-perk {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: .71rem; font-weight: 600; color: var(--color-text-muted);
  background: var(--color-bg); border: 1px solid var(--color-border);
  border-radius: var(--radius-full); padding: 3px 10px;
}
.wl-tc-perk i { color: var(--color-accent); font-size: .65rem; }

/* Social proof */
.wl-tc-social-proof {
  font-size: .76rem; color: var(--color-secondary-dark); font-weight: 600;
  display: flex; align-items: center; gap: 5px; margin: 0;
}
.wl-tc-social-proof i { color: var(--color-secondary); }

/* Card footer — price */
.wl-tc-footer {
  padding: 12px 18px 16px; display: flex; align-items: center;
  justify-content: space-between; gap: 12px;
  border-top: 1px solid var(--color-border-light); margin-top: auto;
}
.wl-tc-price-block { display: flex; flex-direction: column; gap: 2px; }
.wl-tc-from { font-size: .68rem; text-transform: uppercase; letter-spacing: .5px; color: var(--color-text-muted); }
.wl-tc-price-row { display: flex; align-items: baseline; gap: 6px; }
.wl-tc-was { font-size: .82rem; color: var(--color-text-light); }
.wl-tc-now { font-size: 1.18rem; font-weight: 800; color: var(--color-primary); }
.wl-tc-per { font-size: .72rem; color: var(--color-text-muted); }
.wl-tc-save {
  font-size: .68rem; font-weight: 700; color: var(--color-accent);
  background: var(--color-accent-light); border-radius: var(--radius-full);
  padding: 2px 8px; width: fit-content;
}
.wl-tc-cta {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--grad-primary); color: #fff;
  border-radius: var(--radius-md); padding: 10px 18px;
  font-size: .82rem; font-weight: 700; white-space: nowrap;
  transition: all var(--transition); flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(12,79,160,.3);
}
.wl-tc-cta:hover { transform: translateX(2px); color: #fff; box-shadow: 0 6px 18px rgba(12,79,160,.45); }
.wl-tc-cta i { transition: transform var(--transition); }
.wl-tc-cta:hover i { transform: translateX(3px); }

/* List view */
.wl-list-view { grid-template-columns: 1fr !important; }
.wl-list-view .wl-tour-card { flex-direction: row; max-height: 210px; }
.wl-list-view .wl-tc-img-wrap { width: 260px; flex-shrink: 0; aspect-ratio: unset; }
.wl-list-view .wl-tc-footer { border-top: none; border-left: 1px solid var(--color-border-light); padding: 20px; }

/* ── Archive Pills Bar ────────────────────────────────────────── */
.wl-archive-pills-bar {
  background: #fff; border-bottom: 1px solid var(--color-border);
  padding: 14px 0; position: sticky; top: var(--header-h); z-index: 80;
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
}
.wl-archive-pills { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.wl-archive-pills::-webkit-scrollbar { display: none; }
.wl-arc-pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 16px; border-radius: var(--radius-full); white-space: nowrap;
  font-size: .82rem; font-weight: 600; flex-shrink: 0;
  border: 1.5px solid var(--color-border); background: #fff;
  color: var(--color-text-muted); cursor: pointer; transition: all var(--transition);
}
.wl-arc-pill:hover { border-color: var(--color-primary); color: var(--color-primary); }
.wl-arc-pill.active { background: var(--grad-primary); color: #fff; border-color: transparent; box-shadow: 0 4px 14px rgba(12,79,160,.3); }
.wl-arc-pill i { font-size: .78rem; }
.wl-arc-pill-count {
  background: rgba(255,255,255,.25); padding: 1px 6px; border-radius: var(--radius-full);
  font-size: .68rem; font-weight: 700;
}
.wl-arc-pill:not(.active) .wl-arc-pill-count { background: var(--color-bg); color: var(--color-text-muted); }

/* Filter card improvements */
.wl-filter-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.wl-filter-card-head h3 { display: flex; align-items: center; gap: 8px; font-size: 1rem; }
.wl-filter-card-head h3 i { color: var(--color-primary); }
.wl-filter-reset { font-size: .78rem; color: var(--color-primary); font-weight: 600; text-decoration: underline; background: none; border: none; cursor: pointer; padding: 0; }
.wl-filter-check { display: flex; align-items: center; gap: 8px; padding: 7px 0; font-size: .88rem; cursor: pointer; }
.wl-filter-check input { accent-color: var(--color-primary); flex-shrink: 0; }
.wl-filter-check span { flex: 1; color: var(--color-text); }
.wl-filter-check small { color: var(--color-text-muted); font-size: .72rem; background: var(--color-bg); padding: 1px 7px; border-radius: var(--radius-full); }

/* ── Gallery Grid ────────────────────────────────────────────── */
.wl-pkg-gallery-wrap { margin-bottom: 0; background: #111; }
.wl-pkg-gallery-grid {
  display: grid;
  grid-template-columns: 1.65fr 1fr;
  grid-template-rows: 248px 248px;
  gap: 4px; border-radius: 0; overflow: hidden;
  max-width: 100%; padding: 0;
}
.wl-pg-cell { position: relative; overflow: hidden; cursor: pointer; }
.wl-pg-main { grid-row: 1 / 3; }
.wl-pg-cell img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.wl-pg-cell:hover img { transform: scale(1.04); }
.wl-pg-cell::after {
  content: ''; position: absolute; inset: 0;
  background: rgba(0,0,0,0); transition: background var(--transition);
}
.wl-pg-cell:hover::after { background: rgba(0,0,0,.18); }
.wl-pg-show-all {
  position: absolute; bottom: 14px; right: 14px; z-index: 3;
  background: rgba(255,255,255,.94); backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.6); border-radius: var(--radius-sm);
  padding: 8px 16px; font-size: .82rem; font-weight: 700;
  color: var(--color-text); display: flex; align-items: center; gap: 7px;
  transition: all var(--transition);
}
.wl-pg-show-all:hover { background: #fff; box-shadow: var(--shadow-md); }

/* ── Package header bar ──────────────────────────────────────── */
.wl-pkg-header-bar {
  display: flex; gap: 32px; align-items: flex-start;
  justify-content: space-between; padding: 32px 0 20px;
}
.wl-pkg-header-left { flex: 1; min-width: 0; }
.wl-pkg-cats { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.wl-tag {
  display: inline-block; font-size: .72rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .5px;
  background: var(--color-surface-alt); color: var(--color-primary);
  border-radius: var(--radius-full); padding: 4px 12px;
  border: 1px solid var(--color-border);
}
.wl-pkg-title { font-size: clamp(1.6rem, 3vw, 2.2rem); color: var(--color-text); margin: 0 0 12px; line-height: 1.2; }
.wl-pkg-meta-row { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; color: var(--color-text-muted); font-size: .88rem; }
.wl-pkg-meta-row span { display: flex; align-items: center; gap: 6px; }
.wl-pkg-meta-row i { color: var(--color-primary); font-size: .82rem; }
.wl-pkg-rating-meta strong { color: var(--color-text); font-weight: 700; }
.wl-pkg-rating-meta i { color: #FBBF24; }

.wl-pkg-header-right { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; flex-shrink: 0; }
.wl-pkg-discount-pill {
  background: #FEF2F2; color: var(--color-danger); font-size: .78rem;
  font-weight: 800; padding: 5px 14px; border-radius: var(--radius-full);
  border: 1px solid #FECACA;
}
.wl-pkg-header-price { text-align: right; }
.wl-pkg-price-was { font-size: .9rem; color: var(--color-text-light); display: block; }
.wl-pkg-price-now { font-size: 2.2rem; font-weight: 900; color: var(--color-primary); line-height: 1; }
.wl-pkg-header-price small { font-size: .82rem; color: var(--color-text-muted); }

/* ── Sticky Tabs Bar ─────────────────────────────────────────── */
.wl-pkg-tabs-bar {
  position: sticky; top: var(--header-h); z-index: 88;
  background: #fff; border-bottom: 2px solid var(--color-border);
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
}
.wl-pkg-tabs-inner { display: flex; gap: 0; overflow-x: auto; scrollbar-width: none; }
.wl-pkg-tabs-inner::-webkit-scrollbar { display: none; }
.wl-pkg-tab {
  padding: 16px 22px; font-size: .88rem; font-weight: 600;
  color: var(--color-text-muted); border-bottom: 2.5px solid transparent;
  margin-bottom: -2px; white-space: nowrap; transition: all var(--transition);
}
.wl-pkg-tab:hover { color: var(--color-primary); }
.wl-pkg-tab.active { color: var(--color-primary); border-bottom-color: var(--color-primary); }

/* ── Package Layout v2 ───────────────────────────────────────── */
.wl-pkg-layout-v2 {
  display: grid; grid-template-columns: 1fr 360px;
  gap: 48px; padding-top: 40px; padding-bottom: 80px; align-items: start;
}
.wl-pkg-content-v2 { min-width: 0; }
.wl-pkg-section-v2 { margin-bottom: 48px; scroll-margin-top: 180px; }
.wl-pkg-section-title { font-size: 1.3rem; font-weight: 700; color: var(--color-text); margin-bottom: 20px; padding-bottom: 12px; border-bottom: 2px solid var(--color-border-light); }
.wl-pkg-overview-text { line-height: 1.8; color: var(--color-text); }
.wl-pkg-overview-text p { margin-bottom: 1rem; }
.wl-pkg-map-wrap { border-radius: var(--radius-md); overflow: hidden; }
.wl-pkg-map-wrap iframe { width: 100%; height: 340px; border: none; }

/* ── Tour Essentials ─────────────────────────────────────────── */
.wl-tour-essentials {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 14px; margin-top: 28px;
}
.wl-te-box {
  background: var(--color-bg); border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md); padding: 18px 14px; text-align: center;
  transition: all var(--transition);
}
.wl-te-box:hover { border-color: var(--color-primary); background: #fff; box-shadow: var(--shadow-sm); }
.wl-te-icon {
  width: 44px; height: 44px; border-radius: var(--radius-full);
  background: var(--color-surface-alt); display: flex; align-items: center;
  justify-content: center; margin: 0 auto 10px;
}
.wl-te-icon i { font-size: 1rem; color: var(--color-primary); }
.wl-te-box strong { display: block; font-size: .95rem; font-weight: 700; color: var(--color-text); margin-bottom: 2px; }
.wl-te-box small { font-size: .72rem; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: .4px; }

/* ── Highlights v2 ───────────────────────────────────────────── */
.wl-highlights-v2 {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
.wl-hl-item-v2 {
  display: flex; align-items: flex-start; gap: 12px;
  background: #fff; border: 1px solid var(--color-border);
  border-radius: var(--radius-md); padding: 14px 16px;
  transition: all var(--transition);
}
.wl-hl-item-v2:hover { border-color: var(--color-accent); box-shadow: var(--shadow-sm); }
.wl-hl-check {
  width: 28px; height: 28px; border-radius: var(--radius-full);
  background: var(--color-accent-light); color: var(--color-accent);
  display: flex; align-items: center; justify-content: center;
  font-size: .75rem; flex-shrink: 0;
}
.wl-hl-item-v2 span { font-size: .9rem; line-height: 1.5; color: var(--color-text); }

/* ── Itinerary Timeline ───────────────────────────────────────── */
.wl-itin-timeline-v2 { position: relative; }
.wl-itin-timeline-v2::before {
  content: ''; position: absolute; top: 0; bottom: 0; left: 18px;
  width: 2px; background: var(--color-border); border-radius: 2px;
}
.wl-itin-day { position: relative; padding-left: 52px; margin-bottom: 8px; }
.wl-itin-day-btn {
  width: 100%; display: flex; align-items: center; gap: 14px;
  padding: 14px 16px 14px 0; font-size: .92rem; font-weight: 600;
  color: var(--color-text); transition: color var(--transition); text-align: left;
}
.wl-itin-day-btn::before {
  content: ''; position: absolute; left: -40px; top: 50%; transform: translateY(-50%);
  width: 16px; height: 16px; border-radius: var(--radius-full);
  background: var(--color-border); border: 3px solid #fff;
  box-shadow: 0 0 0 2px var(--color-border); transition: all var(--transition);
}
.wl-itin-day.open .wl-itin-day-btn::before { background: var(--color-primary); box-shadow: 0 0 0 2px rgba(12,79,160,.3); }
.wl-itin-day-btn:hover { color: var(--color-primary); }
.wl-itin-day-badge {
  display: flex; align-items: center; justify-content: center;
  background: var(--color-surface-alt); color: var(--color-primary);
  border-radius: var(--radius-sm); padding: 3px 10px;
  font-size: .7rem; font-weight: 800; text-transform: uppercase;
  letter-spacing: .5px; flex-shrink: 0;
}
.wl-itin-day.open .wl-itin-day-badge { background: var(--color-primary); color: #fff; }
.wl-itin-day-chevron { margin-left: auto; color: var(--color-text-muted); font-size: .8rem; transition: transform var(--transition); }
.wl-itin-day.open .wl-itin-day-chevron { transform: rotate(180deg); }
.wl-itin-day-body { display: none; padding: 4px 0 20px; font-size: .9rem; color: var(--color-text-muted); line-height: 1.7; }
.wl-itin-day.open .wl-itin-day-body { display: block; }

/* ── Inclusions v2 ───────────────────────────────────────────── */
.wl-inc-exc-v2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.wl-inc-col, .wl-exc-col {
  background: #fff; border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md); padding: 20px;
}
.wl-inc-col { border-top: 3px solid var(--color-accent); }
.wl-exc-col { border-top: 3px solid var(--color-danger); }
.wl-inc-col h4 { color: var(--color-accent); margin-bottom: 14px; font-size: .9rem; display: flex; align-items: center; gap: 7px; }
.wl-exc-col h4 { color: var(--color-danger); margin-bottom: 14px; font-size: .9rem; display: flex; align-items: center; gap: 7px; }
.wl-ie-item { display: flex; align-items: flex-start; gap: 10px; padding: 7px 0; font-size: .87rem; color: var(--color-text); border-bottom: 1px solid var(--color-border-light); }
.wl-ie-item:last-child { border-bottom: none; }
.wl-ie-inc i { color: var(--color-accent); font-size: .8rem; flex-shrink: 0; margin-top: 2px; }
.wl-ie-exc i { color: var(--color-danger); font-size: .8rem; flex-shrink: 0; margin-top: 2px; }

/* ── Booking Card v2 ─────────────────────────────────────────── */
.wl-pkg-sidebar-v2 { position: sticky; top: calc(var(--header-h) + 100px); }
.wl-booking-card-v2 {
  background: #fff; border: 1.5px solid var(--color-border);
  border-radius: var(--radius-xl); box-shadow: 0 8px 40px rgba(12,79,160,.1);
  overflow: hidden;
}
.wl-bcv2-price {
  background: var(--color-surface-alt); padding: 20px;
  border-bottom: 1px solid var(--color-border);
}
.wl-bcv2-price del { font-size: .85rem; color: var(--color-text-light); }
.wl-bcv2-off {
  display: inline-block; margin-left: 8px;
  font-size: .72rem; font-weight: 800; color: var(--color-danger);
  background: #FEF2F2; border-radius: var(--radius-full); padding: 2px 8px;
}
.wl-bcv2-price-main { display: flex; align-items: baseline; gap: 6px; margin-top: 4px; }
.wl-bcv2-price-main strong { font-size: 1.9rem; font-weight: 900; color: var(--color-primary); line-height: 1; }
.wl-bcv2-price-main span { font-size: .82rem; color: var(--color-text-muted); }
.wl-bcv2-quickinfo {
  display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 20px;
  border-bottom: 1px solid var(--color-border);
}
.wl-bcv2-quickinfo span {
  display: flex; align-items: center; gap: 5px; font-size: .8rem;
  color: var(--color-text-muted); background: var(--color-bg);
  border-radius: var(--radius-full); padding: 5px 12px;
}
.wl-bcv2-quickinfo i { color: var(--color-primary); font-size: .75rem; }
.wl-bcv2-trust {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 0; border-top: 1px solid var(--color-border); margin: 0 20px;
  padding: 14px 0;
}
.wl-bcv2-trust > div {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  text-align: center; font-size: .7rem; color: var(--color-text-muted);
  padding: 0 8px;
}
.wl-bcv2-trust > div:not(:last-child) { border-right: 1px solid var(--color-border); }
.wl-bcv2-trust i { color: var(--color-accent); font-size: 1rem; }
.wl-bcv2-note {
  font-size: .78rem; color: var(--color-text-muted); display: flex;
  align-items: flex-start; gap: 6px; padding: 0 20px 16px; margin: 0; line-height: 1.5;
}
.wl-bcv2-note i { color: var(--color-primary); flex-shrink: 0; margin-top: 2px; }
.wl-btn-block + .wl-btn-block, .wl-bcv2-trust + .wl-btn-whatsapp { margin: 0 20px 12px; width: calc(100% - 40px); }

/* ── Lightbox ────────────────────────────────────────────────── */
.wl-lightbox {
  position: fixed; inset: 0; z-index: 99999;
  background: rgba(0,0,0,.96); display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  opacity: 0; pointer-events: none; transition: opacity var(--transition);
}
.wl-lightbox.open { opacity: 1; pointer-events: all; }
.wl-lb-close {
  position: absolute; top: 16px; right: 20px; z-index: 2;
  width: 40px; height: 40px; border-radius: var(--radius-full);
  background: rgba(255,255,255,.12); color: #fff; font-size: 1.1rem;
  display: flex; align-items: center; justify-content: center;
  transition: background var(--transition);
}
.wl-lb-close:hover { background: rgba(255,255,255,.25); }
.wl-lb-img-wrap { flex: 1; display: flex; align-items: center; justify-content: center; padding: 56px 80px 10px; width: 100%; position: relative; }
.wl-lb-img-wrap img { max-width: 100%; max-height: 75vh; object-fit: contain; border-radius: var(--radius-md); }
.wl-lb-counter { position: absolute; top: 16px; left: 50%; transform: translateX(-50%); font-size: .82rem; color: rgba(255,255,255,.7); background: rgba(255,255,255,.1); padding: 4px 14px; border-radius: var(--radius-full); }
.wl-lb-prev, .wl-lb-next {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 48px; height: 48px; border-radius: var(--radius-full);
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2);
  color: #fff; font-size: 1rem; display: flex; align-items: center; justify-content: center;
  transition: background var(--transition);
}
.wl-lb-prev { left: 16px; } .wl-lb-next { right: 16px; }
.wl-lb-prev:hover, .wl-lb-next:hover { background: rgba(255,255,255,.25); }
.wl-lb-thumbs {
  display: flex; gap: 8px; padding: 10px 20px 20px;
  overflow-x: auto; scrollbar-width: none; max-width: 100%;
}
.wl-lb-thumbs::-webkit-scrollbar { display: none; }
.wl-lb-thumb {
  width: 64px; height: 48px; object-fit: cover;
  border-radius: var(--radius-sm); cursor: pointer; flex-shrink: 0;
  opacity: .55; border: 2px solid transparent; transition: all var(--transition);
}
.wl-lb-thumb:hover { opacity: .85; }
.wl-lb-thumb.active { opacity: 1; border-color: var(--color-primary); }

/* ── Mobile Sticky Book Bar ──────────────────────────────────── */
.wl-mobile-sticky-bar {
  display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 200;
  background: #fff; border-top: 1px solid var(--color-border);
  padding: 12px 20px; align-items: center; justify-content: space-between;
  gap: 12px; box-shadow: 0 -4px 20px rgba(0,0,0,.12);
}
.wl-msb-price { display: flex; flex-direction: column; }
.wl-msb-price span { font-size: .7rem; color: var(--color-text-muted); }
.wl-msb-price strong { font-size: 1.25rem; font-weight: 800; color: var(--color-primary); }
.wl-msb-price small { font-size: .7rem; color: var(--color-text-muted); }

/* ── No results ──────────────────────────────────────────────── */
.wl-no-results { grid-column: 1/-1; text-align: center; padding: 80px 20px; color: var(--color-text-muted); }
.wl-no-results i { font-size: 2.5rem; margin-bottom: 16px; display: block; opacity: .3; }
.wl-no-results h3 { color: var(--color-text); margin-bottom: 8px; }

/* ── Section CTA row ─────────────────────────────────────────── */
.wl-section-cta { text-align: center; margin-top: 48px; }

/* ── Archive controls ────────────────────────────────────────── */
.wl-archive-controls {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; margin-bottom: 24px; flex-wrap: wrap;
}
.wl-results-count { font-size: .88rem; color: var(--color-text-muted); }
.wl-controls-right { display: flex; align-items: center; gap: 12px; }
.wl-view-toggle { display: flex; gap: 4px; }
.wl-view-btn { width: 36px; height: 36px; border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; color: var(--color-text-muted); border: 1.5px solid var(--color-border); font-size: .85rem; transition: all var(--transition); }
.wl-view-btn.active, .wl-view-btn:hover { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
#wl-sort-select { border: 1.5px solid var(--color-border); border-radius: var(--radius-sm); padding: 8px 12px; font-size: .85rem; color: var(--color-text); outline: none; background: #fff; }
#wl-sort-select:focus { border-color: var(--color-primary); }

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════════════ */
@media (max-width: 1100px) {
  .wl-pkg-gallery-grid { grid-template-rows: 220px 220px; }
  .wl-pkg-layout-v2 { grid-template-columns: 1fr 320px; gap: 32px; }
  .wl-tour-essentials { grid-template-columns: repeat(2, 1fr); }
  .wl-hsc-form { grid-template-columns: 1fr auto 1fr auto 1fr auto; }
  .wl-hsc-form .wl-hsc-field:last-of-type { display: none; }
}
@media (max-width: 900px) {
  .wl-hero-v2 { min-height: auto; }
  .wl-hero-v2-inner { padding-top: 100px; }
  .wl-hsc-form { grid-template-columns: 1fr 1fr; gap: 0; }
  .wl-hsc-sep { display: none; }
  .wl-hsc-field { border-bottom: 1px solid var(--color-border-light); }
  .wl-hsc-submit { grid-column: 1 / -1; margin: 8px; border-radius: var(--radius-md); }
  .wl-pkg-gallery-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 200px 200px; }
  .wl-pg-main { grid-column: 1 / 2; grid-row: 1 / 3; }
  .wl-pkg-layout-v2 { grid-template-columns: 1fr; }
  .wl-pkg-sidebar-v2 { position: static; display: none; }
  .wl-mobile-sticky-bar { display: flex; }
  .wl-pkg-header-bar { flex-direction: column; gap: 16px; }
  .wl-pkg-header-right { align-items: flex-start; flex-direction: row; flex-wrap: wrap; }
  .wl-highlights-v2 { grid-template-columns: 1fr; }
  .wl-inc-exc-v2 { grid-template-columns: 1fr; }
  .wl-tour-essentials { grid-template-columns: repeat(4, 1fr); }
  body { padding-bottom: 72px; }
}
@media (max-width: 640px) {
  .wl-hero-v2-title { font-size: 1.9rem; }
  .wl-hero-trust-strip { font-size: .72rem; gap: 8px; padding: 8px 16px; }
  .wl-hero-search-card { border-radius: var(--radius-lg); margin-top: 24px; }
  .wl-hsc-tabs { display: none; }
  .wl-hsc-form { grid-template-columns: 1fr; }
  .wl-hsc-field { padding: 10px 16px; }
  .wl-pkg-gallery-grid { grid-template-columns: 1fr; grid-template-rows: 240px; }
  .wl-pg-side { display: none !important; }
  .wl-pg-main { grid-row: 1; }
  .wl-tour-essentials { grid-template-columns: repeat(2, 1fr); }
  .wl-pkg-tab { padding: 12px 14px; font-size: .8rem; }
  .wl-lb-prev { left: 8px; } .wl-lb-next { right: 8px; }
  .wl-lb-img-wrap { padding: 56px 50px 10px; }
  .wl-stats-row { grid-template-columns: 1fr 1fr; }
  .wl-stat-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,.15); }
  .wl-stat-item:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.15); }
  .wl-packages-grid { grid-template-columns: 1fr; }
}
#wl-booking-card { scroll-margin-top: 120px; }
