/*
Theme Name:  Global Gateway Nepal
Description: Premium Luxury Travel & Tourism Platform — v5.0
Version:     5.0.0
Author:      Global Gateway Nepal Travel & Tours Pvt. Ltd
*/

/* ════════════════════════════════════════════════════════════════
   1. DESIGN TOKENS
════════════════════════════════════════════════════════════════ */
:root {
  /* Brand */
  --navy:      #0A1628;
  --ocean:     #0A4F6E;
  --ocean-d:   #063348;
  --ocean-l:   #1A7A9E;
  --sky:       #E8F4FD;
  --flame:     #E8832A;
  --flame-d:   #C4651A;
  --flame-l:   #FDF0E5;
  --gold:      #C9A84C;
  --gold-l:    #FDF8EC;
  --pine:      #1B4332;
  --ink:       #111827;
  --slate:     #1E293B;
  --steel:     #475569;
  --mist:      #94A3B8;
  --border:    #E2E8F0;
  --surface:   #F8FAFC;
  --white:     #FFFFFF;

  /* Backward-compat aliases */
  --primary:           var(--ocean);
  --primary-dark:      var(--ocean-d);
  --accent:            var(--flame);
  --ggn-primary:       var(--ocean);
  --ggn-primary-dark:  var(--ocean-d);
  --ggn-accent:        var(--flame);
  --ggn-gold:          var(--gold);
  --ggn-white:         var(--white);
  --ggn-gray-50:       var(--surface);
  --ggn-gray-100:      #F1F5F9;
  --ggn-gray-200:      var(--border);
  --ggn-gray-400:      var(--mist);
  --ggn-gray-500:      var(--steel);
  --ggn-gray-600:      #334155;
  --ggn-gray-700:      #1E293B;
  --ggn-gray-800:      #0F172A;
  --ggn-gray-900:      var(--navy);
  --ggn-dark:          #071829;

  /* Type */
  --serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --sans:  'Montserrat', 'Segoe UI', system-ui, sans-serif;
  --body:  'Source Sans 3', 'Open Sans', system-ui, sans-serif;

  /* Radius */
  --r-xs:  4px;  --r-sm:  8px;  --r-md:  12px;
  --r-lg:  16px; --r-xl:  24px; --r-2xl: 32px; --r-pill: 9999px;

  /* Shadow */
  --shadow-xs: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --shadow-sm: 0 4px 6px rgba(0,0,0,.05), 0 2px 4px rgba(0,0,0,.04);
  --shadow-md: 0 10px 25px rgba(0,0,0,.08), 0 4px 10px rgba(0,0,0,.05);
  --shadow-lg: 0 20px 40px rgba(0,0,0,.10), 0 8px 16px rgba(0,0,0,.06);
  --shadow-xl: 0 32px 64px rgba(0,0,0,.12), 0 16px 32px rgba(0,0,0,.08);
  --shadow-card: 0 2px 8px rgba(0,0,0,.06), 0 0 0 1px rgba(0,0,0,.04);
  --shadow-hover: 0 20px 48px rgba(10,79,110,.16), 0 8px 20px rgba(0,0,0,.08);

  /* Easing */
  --ease:   cubic-bezier(.4,0,.2,1);
  --spring: cubic-bezier(.34,1.56,.64,1);
  --fast:   150ms;
  --base:   220ms;
  --slow:   350ms;

  /* Layout */
  --topbar-h: 40px;
  --nav-h:    72px;
  --header-h: 112px; /* topbar + nav */
  --max-w:    1240px;
  --max-w-sm: 860px;
}

/* ════════════════════════════════════════════════════════════════
   2. RESET
════════════════════════════════════════════════════════════════ */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0 }
html { font-size:16px; scroll-behavior:smooth; -webkit-text-size-adjust:100% }
body { font-family:var(--body); color:var(--ink); background:#fff; line-height:1.65; overflow-x:hidden }
img,video,svg { max-width:100%; display:block }
a { color:inherit; text-decoration:none }
button,input,select,textarea { font:inherit; color:inherit }
ul,ol { list-style:none }

/* ════════════════════════════════════════════════════════════════
   3. TYPOGRAPHY
════════════════════════════════════════════════════════════════ */
h1,h2,h3,h4,h5,h6 {
  font-family:var(--sans); font-weight:700; line-height:1.15;
  color:var(--navy); letter-spacing:-.025em;
}
h1 { font-size:clamp(2.25rem,5.5vw,4.25rem) }
h2 { font-size:clamp(1.75rem,3.5vw,2.875rem) }
h3 { font-size:clamp(1.2rem,2.5vw,1.75rem) }
h4 { font-size:1.2rem } h5 { font-size:1rem } h6 { font-size:.875rem }
p  { color:var(--steel); line-height:1.78 }
.serif       { font-family:var(--serif) }
.sans        { font-family:var(--sans) }
.eyebrow     { font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--flame) }
.section-eyebrow { font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--flame); display:block; margin-bottom:.75rem }
.lead        { font-size:1.125rem; color:var(--steel); line-height:1.8 }

/* Section headers */
.section-header    { text-align:center; max-width:640px; margin:0 auto 3.5rem }
.section-header h2 { margin-bottom:.875rem }
.section-subtitle  { color:var(--steel); font-size:1.05rem; line-height:1.75; margin:0 }
.section-rule,
.section-divider   { width:48px; height:3px; border-radius:var(--r-pill); background:linear-gradient(90deg,var(--ocean),var(--flame)); margin:.875rem auto 0 }
.section-header.left { text-align:left }
.section-header.left .section-rule,
.section-header.left .section-divider { margin-left:0 }

/* ════════════════════════════════════════════════════════════════
   4. LAYOUT
════════════════════════════════════════════════════════════════ */
.container    { width:100%; max-width:var(--max-w); margin:0 auto; padding:0 1.5rem }
.container-sm { max-width:var(--max-w-sm); margin:0 auto; padding:0 1.5rem }
.section      { padding:6rem 0 }
.section-sm   { padding:4rem 0 }
.section-lg   { padding:8rem 0 }
.section-pad  { padding:5.5rem 0 }
.section-light { background:var(--surface) }
.section-dark  { background:var(--navy); color:#fff }
.section-dark h1,.section-dark h2,.section-dark h3,.section-dark h4 { color:#fff }
.section-dark p { color:rgba(255,255,255,.72) }

/* Grid helpers */
.grid-2   { display:grid; grid-template-columns:1fr 1fr; gap:2rem }
.grid-3   { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem }
.grid-4   { display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem }
.ggn-cols-2      { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center }
.ggn-cols-2-hero { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center }
.ggn-cols-2-asym { display:grid; grid-template-columns:1fr 1.4fr; gap:3rem; align-items:start }
.ggn-cols-3      { display:grid; grid-template-columns:repeat(3,1fr); gap:1.75rem }
.ggn-form-row    { display:grid; grid-template-columns:1fr 1fr; gap:.875rem; margin-bottom:.875rem }
.ggn-layout-sidebar    { display:grid; grid-template-columns:1fr 360px; gap:2.5rem; align-items:start }
.ggn-dashboard-layout  { display:grid; grid-template-columns:240px 1fr; gap:2rem; align-items:start }

/* ════════════════════════════════════════════════════════════════
   5. BUTTONS
════════════════════════════════════════════════════════════════ */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.45rem;
  padding:.72rem 1.625rem; border-radius:var(--r-pill); font-family:var(--sans);
  font-size:.84rem; font-weight:700; letter-spacing:.01em; border:2px solid transparent;
  cursor:pointer; transition:all var(--base) var(--ease); white-space:nowrap; line-height:1;
}
.btn-sm  { padding:.5rem 1.125rem; font-size:.78rem }
.btn-lg  { padding:.9rem 2.25rem; font-size:.9rem }
.btn-xl  { padding:1.05rem 2.75rem; font-size:.975rem }
.btn-full { width:100%; justify-content:center }

.btn-primary {
  background:var(--ocean); color:#fff; border-color:var(--ocean);
  box-shadow:0 4px 14px rgba(10,79,110,.32);
}
.btn-primary:hover { background:var(--ocean-d); border-color:var(--ocean-d); transform:translateY(-1px); box-shadow:0 8px 24px rgba(10,79,110,.42) }
.btn-primary:active { transform:scale(.985) }

.btn-accent {
  background:var(--flame); color:#fff; border-color:var(--flame);
  box-shadow:0 4px 14px rgba(232,131,42,.30);
}
.btn-accent:hover { background:var(--flame-d); border-color:var(--flame-d); transform:translateY(-1px); box-shadow:0 8px 24px rgba(232,131,42,.40) }

.btn-white  { background:#fff; color:var(--ocean); border-color:#fff; box-shadow:var(--shadow-sm) }
.btn-white:hover { background:var(--surface) }

.btn-ghost  { background:transparent; border-color:rgba(255,255,255,.4); color:#fff }
.btn-ghost:hover { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.75) }

.btn-outline { background:transparent; border-color:var(--ocean); color:var(--ocean) }
.btn-outline:hover { background:var(--ocean); color:#fff }

.btn-ghost-dark { background:transparent; border-color:var(--border); color:var(--steel) }
.btn-ghost-dark:hover { border-color:var(--ocean); color:var(--ocean); background:rgba(10,79,110,.04) }

.btn-secondary { background:var(--ocean); color:#fff; border-color:var(--ocean) }
.btn-secondary:hover { background:var(--ocean-d) }
.btn:disabled { opacity:.5; cursor:not-allowed; pointer-events:none }

/* ════════════════════════════════════════════════════════════════
   6. BADGES
════════════════════════════════════════════════════════════════ */
.badge { display:inline-flex; align-items:center; gap:.2rem; padding:.22em .7em; border-radius:var(--r-pill); font-size:.67rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; line-height:1.4 }
.badge-primary { background:var(--ocean); color:#fff }
.badge-accent  { background:var(--flame);  color:#fff }
.badge-gold    { background:var(--gold);   color:#fff }
.badge-green   { background:#059669;       color:#fff }
.badge-red     { background:#dc2626;       color:#fff }
.badge-orange  { background:#ea580c;       color:#fff }

/* ════════════════════════════════════════════════════════════════
   7. HEADER — TOPBAR
════════════════════════════════════════════════════════════════ */
.site-header { position:fixed; top:0; left:0; right:0; z-index:800; display:flex; flex-direction:column }

.header-topbar {
  height:var(--topbar-h); background:var(--navy);
  display:flex; align-items:center;
  border-bottom:1px solid rgba(255,255,255,.07);
  font-size:.72rem; color:rgba(255,255,255,.7);
}
.header-topbar .container { display:flex; align-items:center; justify-content:space-between; height:100%; width:100% }
.tb-left,.tb-right { display:flex; align-items:center; gap:1.25rem }
.tb-contact { display:flex; align-items:center; gap:.35rem; color:rgba(255,255,255,.7); transition:color var(--fast) }
.tb-contact:hover,.tb-contact a:hover { color:#fff }
.tb-contact a { color:rgba(255,255,255,.7); transition:color var(--fast) }
.tb-divider { width:1px; height:16px; background:rgba(255,255,255,.15) }
.tb-currency { display:flex; align-items:center; gap:.4rem; font-size:.72rem }
.tb-currency input,.tb-currency select {
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15);
  border-radius:var(--r-sm); color:rgba(255,255,255,.85); padding:.15rem .45rem; font-size:.72rem
}
.tb-currency input { width:66px }
.tb-currency select { max-width:62px }
#currencyResult { font-weight:700; color:#fff; min-width:60px }
.tb-auth { display:flex; align-items:center; gap:.4rem }
.tb-login { color:rgba(255,255,255,.7); padding:.22rem .6rem; border-radius:var(--r-sm); transition:all var(--fast) }
.tb-login:hover { color:#fff }
.tb-register { background:var(--flame); color:#fff; padding:.22rem .75rem; border-radius:var(--r-sm); font-weight:700; transition:background var(--fast) }
.tb-register:hover { background:var(--flame-d) }

/* ════════════════════════════════════════════════════════════════
   8. HEADER — MAIN NAV
════════════════════════════════════════════════════════════════ */
.header-nav {
  height:var(--nav-h); display:flex; align-items:center;
  transition:background var(--base) var(--ease), box-shadow var(--base) var(--ease), height var(--base) var(--ease);
}
.nav-inner {
  width:100%; max-width:var(--max-w); margin:0 auto; padding:0 1.5rem;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
}

/* Transparent (hero pages) */
.header-transparent .header-nav { background:transparent }
.header-scrolled    .header-nav { background:#fff; box-shadow:0 1px 0 var(--border), var(--shadow-sm); height:64px }

/* Non-hero pages — always solid */
body:not(.has-hero) .site-header    { position:fixed }
body:not(.has-hero) .header-nav     { background:#fff; box-shadow:0 1px 0 var(--border) }
body:not(.has-hero) main            { padding-top:var(--header-h) }

/* Logo */
.site-logo { display:flex; align-items:center; gap:.6rem; flex-shrink:0 }
.site-logo .logo-icon { width:40px; height:40px; border-radius:50%; background:var(--flame); display:flex; align-items:center; justify-content:center; flex-shrink:0; box-shadow:0 4px 12px rgba(232,131,42,.4) }
.logo-name { font-family:var(--serif); font-size:1.1rem; font-weight:700; line-height:1.15; color:var(--navy) }
.logo-sub  { font-size:.56rem; letter-spacing:.12em; text-transform:uppercase; color:var(--steel); opacity:.85 }
.header-transparent .logo-name,
.header-transparent .logo-sub { color:#fff }
.header-transparent .logo-sub { opacity:.7 }
.header-scrolled .logo-name { color:var(--ocean) }
.header-scrolled .logo-sub  { color:var(--steel); opacity:1 }
body:not(.has-hero) .logo-name { color:var(--ocean) }
body:not(.has-hero) .logo-sub  { color:var(--steel); opacity:1 }

/* Nav links */
.nav-menu { display:flex; align-items:center; gap:.075rem }
.nav-link {
  display:inline-flex; align-items:center; gap:.3rem;
  padding:.45rem .875rem; border-radius:var(--r-md); font-family:var(--sans);
  font-size:.815rem; font-weight:600; letter-spacing:.01em;
  transition:all var(--fast) var(--ease); background:none; border:none; cursor:pointer;
}
.header-transparent .nav-link { color:rgba(255,255,255,.9) }
.header-transparent .nav-link:hover { color:#fff; background:rgba(255,255,255,.1) }
.header-scrolled .nav-link,
body:not(.has-hero) .nav-link { color:var(--slate) }
.header-scrolled .nav-link:hover,
body:not(.has-hero) .nav-link:hover { color:var(--ocean); background:rgba(10,79,110,.05) }

.nav-arrow { width:11px; height:11px; transition:transform var(--base); opacity:.55; flex-shrink:0 }
.nav-dropdown:hover .nav-arrow,
.nav-dropdown.open  .nav-arrow { transform:rotate(180deg); opacity:.9 }
.nav-cta { display:flex; align-items:center; gap:.5rem; flex-shrink:0 }

/* Hamburger */
.menu-toggle {
  display:none; flex-direction:column; gap:5px; cursor:pointer;
  padding:.5rem; background:none; border:none; border-radius:var(--r-md);
}
.menu-toggle span { display:block; width:22px; height:2px; background:currentColor; border-radius:2px; transition:all var(--base) var(--ease) }
.header-transparent .menu-toggle { color:#fff }
.header-scrolled .menu-toggle,
body:not(.has-hero) .menu-toggle { color:var(--slate) }

/* ════════════════════════════════════════════════════════════════
   9. DROPDOWN MENUS
════════════════════════════════════════════════════════════════ */
.nav-dropdown { position:relative }

.dropdown-menu,
.mega-menu {
  position:absolute; top:calc(100% + 10px); left:50%;
  transform:translateX(-50%) translateY(-6px);
  background:#fff; border:1px solid var(--border); border-radius:var(--r-xl);
  box-shadow:var(--shadow-xl); z-index:900;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity var(--base) var(--ease), visibility var(--base), transform var(--base) var(--ease);
  min-width:210px; padding:.5rem;
}
.nav-dropdown:hover>.dropdown-menu,
.nav-dropdown:hover>.mega-menu,
.nav-dropdown.open>.dropdown-menu,
.nav-dropdown.open>.mega-menu {
  opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0)
}
.dropdown-menu a {
  display:flex; align-items:center; gap:.4rem; padding:.5rem .95rem;
  border-radius:var(--r-md); font-size:.845rem; color:var(--steel); font-weight:500;
  transition:all var(--fast); white-space:nowrap;
}
.dropdown-menu a:hover { background:var(--surface); color:var(--ocean); padding-left:1.15rem }
.dropdown-menu a.highlight { color:var(--ocean); font-weight:700 }
.dropdown-menu hr { border:none; border-top:1px solid var(--border); margin:.4rem .5rem }
.mega-menu { width:min(700px,92vw); padding:1.75rem; left:50% }
.mega-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.75rem }
.mega-col-header { font-size:.67rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--mist); margin-bottom:.875rem; padding-bottom:.6rem; border-bottom:1px solid var(--border) }
.mega-col a { display:block; padding:.35rem 0; font-size:.845rem; color:var(--steel); font-weight:500; transition:color var(--fast) }
.mega-col a:hover { color:var(--ocean) }
.mega-col a.view-all { color:var(--ocean); font-weight:700; margin-top:.625rem }

/* ════════════════════════════════════════════════════════════════
   10. HERO SECTION
════════════════════════════════════════════════════════════════ */
.hero-section {
  position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden;
}
.hero-bg { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover }
.hero-overlay {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(160deg,rgba(10,22,40,.87) 0%,rgba(6,51,72,.70) 55%,rgba(10,79,110,.45) 100%);
}
.hero-body,.hero-content {
  position:relative; z-index:2; text-align:center;
  padding-top:calc(var(--header-h) + 4rem); padding-bottom:4.5rem; width:100%;
}
.hero-badge {
  display:inline-flex; align-items:center; gap:.5rem; margin-bottom:1.75rem;
  background:rgba(232,131,42,.15); border:1px solid rgba(232,131,42,.38);
  border-radius:var(--r-pill); padding:.45rem 1.25rem;
  color:rgba(255,255,255,.92); font-size:.76rem; font-weight:600; letter-spacing:.05em;
  backdrop-filter:blur(10px);
}
.hero-section h1 { color:#fff; text-shadow:0 2px 32px rgba(0,0,0,.28); margin-bottom:1.25rem; font-family:var(--serif) }
.hero-sub { color:rgba(255,255,255,.82); font-size:clamp(1rem,2vw,1.25rem); max-width:600px; margin:0 auto 2.75rem; line-height:1.75 }
.hero-ctas { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-bottom:3.5rem }
.hero-scroll-indicator {
  position:absolute; bottom:2.25rem; left:50%; transform:translateX(-50%); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:.4rem;
  color:rgba(255,255,255,.45); font-size:.65rem; letter-spacing:.12em; text-transform:uppercase;
  animation:scrollFloat 2.5s ease-in-out infinite;
}
.scroll-mouse {
  width:22px; height:36px; border:1.5px solid rgba(255,255,255,.32); border-radius:11px;
  display:flex; justify-content:center; padding-top:6px;
}
.scroll-mouse::after { content:''; width:3px; height:8px; background:rgba(255,255,255,.5); border-radius:2px; animation:scrollDot 2s ease infinite }
@keyframes scrollFloat { 0%,100%{opacity:.45;transform:translateX(-50%) translateY(0)} 50%{opacity:.8;transform:translateX(-50%) translateY(-4px)} }
@keyframes scrollDot   { 0%{opacity:1;transform:translateY(0)} 100%{opacity:0;transform:translateY(14px)} }
@keyframes float       { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }
@keyframes bounce      { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(-8px)} }
@keyframes scroll-dot  { 0%{opacity:1;transform:translateY(0)} 100%{opacity:0;transform:translateY(12px)} }
@keyframes fadeUp      { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:none} }
@keyframes spin        { to{transform:rotate(360deg)} }

/* Page hero (non-home) */
.page-hero {
  padding:calc(var(--header-h) + 2.5rem) 0 3rem;
  background:linear-gradient(135deg,var(--ocean) 0%,var(--ocean-d) 100%);
  text-align:center; color:#fff;
}
.page-hero h1 { color:#fff; margin-bottom:.5rem }
.breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:.35rem; font-size:.8rem; color:rgba(255,255,255,.65); justify-content:center }
.breadcrumb a { color:rgba(255,255,255,.65); transition:color var(--fast) }
.breadcrumb a:hover { color:#fff }
.breadcrumb-sep { color:rgba(255,255,255,.35) }
.breadcrumb-current { color:rgba(255,255,255,.88); font-weight:600 }

/* ════════════════════════════════════════════════════════════════
   11. SEARCH BAR — Premium version (ggn-search-*)
════════════════════════════════════════════════════════════════ */
.ggn-search-wrap { max-width:980px; margin:0 auto; padding:0 1.5rem }
.ggn-search-bar {
  display:flex; align-items:stretch; background:rgba(255,255,255,.97);
  backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  border-radius:20px;
  box-shadow:0 32px 80px rgba(0,0,0,.28), 0 8px 24px rgba(0,0,0,.14);
  border:1px solid rgba(255,255,255,.7); overflow:hidden;
  transition:box-shadow var(--base);
}
.ggn-search-bar:focus-within { box-shadow:0 36px 88px rgba(0,0,0,.32), 0 8px 24px rgba(0,0,0,.14), 0 0 0 3px rgba(10,79,110,.2) }
.ggn-search-field { flex:1; display:flex; flex-direction:column; justify-content:center; padding:.875rem 1.375rem; position:relative; cursor:pointer; transition:background var(--fast); min-width:0 }
.ggn-search-field:hover { background:rgba(10,79,110,.03) }
.ggn-search-field:focus-within { background:rgba(10,79,110,.05) }
.ggn-search-label {
  display:flex; align-items:center; gap:.3rem; font-family:var(--sans);
  font-size:.6rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ocean); margin-bottom:.35rem; white-space:nowrap; user-select:none;
}
.ggn-search-label svg { opacity:.75; flex-shrink:0 }
.ggn-search-input {
  border:none!important; outline:none!important; background:transparent!important;
  font-family:var(--sans); font-size:.9rem; font-weight:500; color:var(--ink);
  padding:0!important; width:100%; cursor:pointer; -webkit-appearance:none; appearance:none;
}
select.ggn-search-input { padding-right:1.25rem!important }
.ggn-search-input::placeholder { color:var(--mist) }
.ggn-search-input:focus { color:var(--ocean) }
.ggn-search-chevron { position:absolute; right:1.375rem; bottom:1.05rem; color:var(--mist); pointer-events:none; transition:transform var(--base),color var(--base) }
.ggn-search-field:focus-within .ggn-search-chevron { transform:rotate(180deg); color:var(--ocean) }
input[type="date"].ggn-search-input { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; z-index:2 }
.ggn-search-date-hint { font-family:var(--sans); font-size:.9rem; font-weight:500; color:var(--mist); pointer-events:none; transition:color var(--fast); position:relative; z-index:1; line-height:1.4 }
#sf-date { position:relative }
#sf-date .ggn-search-label { position:relative; z-index:3; pointer-events:none }
.ggn-search-divider { width:1px; background:var(--border); margin:.875rem 0; flex-shrink:0 }
.ggn-search-btn {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.1rem; padding:0 1.75rem;
  background:linear-gradient(160deg,var(--ocean) 0%,var(--ocean-d) 100%);
  border:none; cursor:pointer; flex-shrink:0; border-radius:0 18px 18px 0; min-width:108px;
  transition:background var(--base); color:#fff;
}
.ggn-search-btn:hover { background:linear-gradient(160deg,var(--flame),var(--flame-d)) }
.ggn-search-btn svg { display:block; margin-bottom:.2rem }
.ggn-search-btn-text { font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.8); text-align:center; line-height:1.3 }
.ggn-search-btn-text span { color:rgba(255,255,255,.55) }
.ggn-search-pills { display:flex; gap:.5rem; flex-wrap:wrap; justify-content:center; margin-top:1.25rem }
.ggn-pill {
  padding:.35rem 1rem; border-radius:var(--r-pill); font-family:var(--sans);
  font-size:.72rem; font-weight:600; letter-spacing:.02em;
  background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.3);
  color:rgba(255,255,255,.88); cursor:pointer; transition:all var(--fast);
  backdrop-filter:blur(8px);
}
.ggn-pill:hover { background:rgba(255,255,255,.26); border-color:rgba(255,255,255,.65); color:#fff; transform:translateY(-1px) }

/* ════════════════════════════════════════════════════════════════
   12. STATS BAR
════════════════════════════════════════════════════════════════ */
.stats-bar { background:var(--ocean); padding:1.375rem 0; display:flex; justify-content:center }
.stat-item { flex:1; max-width:180px; text-align:center; padding:.75rem 1rem; border-right:1px solid rgba(255,255,255,.12) }
.stat-item:last-child { border-right:none }
.stat-value,.stat-val { display:block; font-family:var(--sans); font-size:1.625rem; font-weight:800; color:var(--flame); line-height:1 }
.stat-label,.stat-lbl { display:block; font-size:.62rem; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.6); margin-top:.3rem }

/* ════════════════════════════════════════════════════════════════
   13. AFFILIATION STRIP
════════════════════════════════════════════════════════════════ */
.affiliations-strip { background:var(--surface); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:1rem 0 }
.affiliations-inner { display:flex; align-items:center; gap:1rem; flex-wrap:wrap }
.affiliation-label  { font-size:.66rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--mist); white-space:nowrap; margin-right:.5rem }
.affiliation-badge {
  display:inline-flex; align-items:center; gap:.4rem; padding:.32rem .875rem;
  background:#fff; border:1px solid var(--border); border-radius:var(--r-pill);
  font-size:.72rem; font-weight:700; color:var(--ocean); transition:all var(--fast); white-space:nowrap;
}
.affiliation-badge:hover { border-color:var(--ocean); box-shadow:var(--shadow-xs) }
.affiliation-abbr { font-weight:800 }
.affiliation-full  { color:var(--mist); font-weight:400 }

/* ════════════════════════════════════════════════════════════════
   14. TOUR CARDS — World-class redesign
════════════════════════════════════════════════════════════════ */
.tours-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.625rem }

.tour-card {
  background:#fff; border-radius:var(--r-xl); overflow:hidden;
  border:1px solid var(--border); display:flex; flex-direction:column;
  transition:transform var(--base) var(--ease), box-shadow var(--base) var(--ease);
  box-shadow:var(--shadow-card);
}
.tour-card:hover { transform:translateY(-7px); box-shadow:var(--shadow-hover) }

.tour-card-image,.tour-card-img {
  position:relative; aspect-ratio:16/10; overflow:hidden;
  background:linear-gradient(135deg,var(--ocean),var(--flame));
}
.tour-card-image img,.tour-card-img img { width:100%; height:100%; object-fit:cover; transition:transform var(--slow) var(--ease); display:block }
.tour-card:hover .tour-card-image img,
.tour-card:hover .tour-card-img img { transform:scale(1.07) }
.tour-card-img-placeholder {
  width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem; min-height:200px;
}
.tour-card-img-placeholder svg { opacity:.35; color:#fff }
.tour-card-img-placeholder span { font-size:.72rem; color:rgba(255,255,255,.4); text-align:center; padding:0 1rem }

.tour-card-badges,.tour-badges { position:absolute; top:.75rem; left:.75rem; display:flex; flex-wrap:wrap; gap:.35rem; z-index:2 }
.tour-wishlist,.tour-wish {
  position:absolute; top:.75rem; right:.75rem; z-index:2;
  width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.9);
  border:none; cursor:pointer; display:flex; align-items:center; justify-content:center;
  color:var(--mist); transition:all var(--fast); backdrop-filter:blur(8px); font-size:1.1rem;
}
.tour-wishlist:hover,.tour-wish:hover,.tour-wishlist.wished,.tour-wish.wished { color:#e11d48; transform:scale(1.1) }
.tour-wishlist.wished,.tour-wish.wished { color:#e11d48 }

.tour-card-body { padding:1.25rem 1.375rem; flex:1; display:flex; flex-direction:column; gap:.45rem }
.tour-card-meta { display:flex; align-items:center; justify-content:space-between; gap:.5rem }
.tour-card-location,.tour-card-region { display:flex; align-items:center; gap:.25rem; font-size:.72rem; color:var(--mist) }
.tour-card-category,.tour-card-cat { font-size:.63rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--flame); background:rgba(232,131,42,.09); padding:.18em .55em; border-radius:var(--r-pill) }
.tour-card-title { font-size:.95rem; font-weight:700; color:var(--navy); line-height:1.35; flex:1 }
.tour-card-title a { color:inherit; transition:color var(--fast) }
.tour-card-title a:hover { color:var(--ocean) }
.tour-card-rating { display:flex; align-items:center; gap:.3rem; font-size:.8rem; color:var(--steel) }
.tour-card-rating .stars,.stars { color:#F59E0B }
.tour-card-details,.tour-card-specs { display:flex; flex-wrap:wrap; gap:.35rem .875rem }
.tour-card-details span,.tour-card-spec { display:flex; align-items:center; gap:.22rem; font-size:.72rem; color:var(--steel) }

.tour-card-footer,.tour-card-foot {
  display:flex; align-items:center; justify-content:space-between;
  padding:.925rem 1.375rem; background:var(--surface);
  border-top:1px solid var(--border); gap:.75rem; flex-wrap:wrap;
}
.tour-card-price,.price-block { display:flex; flex-direction:column; gap:.1rem }
.price-original,.price-orig { font-size:.72rem; text-decoration:line-through; color:var(--mist); display:block }
.price-current,.price-curr  { font-size:1.2rem; font-weight:800; color:var(--ocean); line-height:1; display:block }
.price-note                  { font-size:.67rem; color:var(--mist) }
.price-on-request            { font-size:.875rem; font-weight:600; color:var(--flame) }

/* ════════════════════════════════════════════════════════════════
   15. FILTER TABS
════════════════════════════════════════════════════════════════ */
.tour-filter-tabs,.filter-tabs {
  display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center; margin-bottom:2.5rem;
}
.filter-tab,.tour-filter-tabs .btn {
  padding:.45rem 1.15rem; border-radius:var(--r-pill); font-size:.815rem; font-weight:600;
  border:1.5px solid var(--border); background:#fff; color:var(--steel);
  cursor:pointer; transition:all var(--fast); font-family:var(--sans);
}
.filter-tab:hover,.tour-filter-tabs .btn:hover { border-color:var(--ocean); color:var(--ocean); background:rgba(10,79,110,.04) }
.filter-tab.active,.tour-filter-tabs .btn.active,.tour-filter-tabs .btn-secondary { background:var(--ocean); border-color:var(--ocean); color:#fff; box-shadow:0 4px 14px rgba(10,79,110,.3) }

/* ════════════════════════════════════════════════════════════════
   16. DESTINATION CARDS
════════════════════════════════════════════════════════════════ */
.destinations-grid { display:grid; grid-template-columns:1.55fr 1fr 1fr 1fr; gap:1rem }
.destination-card { position:relative; border-radius:var(--r-xl); overflow:hidden; aspect-ratio:3/4; display:block; cursor:pointer; background:linear-gradient(135deg,var(--ocean),var(--ocean-d)) }
.destination-card-inner { position:absolute; inset:0; width:100%; height:100% }
.destination-card-inner img { width:100%; height:100%; object-fit:cover; transition:transform var(--slow) var(--ease) }
.destination-card:hover .destination-card-inner img { transform:scale(1.07) }
.destination-card-overlay {
  position:absolute; inset:0;
  background:linear-gradient(0deg,rgba(10,22,40,.9) 0%,rgba(10,22,40,.08) 55%,transparent 100%);
  display:flex; flex-direction:column; justify-content:flex-end; padding:1.375rem;
  transition:background var(--base);
}
.destination-card:hover .destination-card-overlay { background:linear-gradient(0deg,rgba(10,79,110,.93) 0%,rgba(10,79,110,.28) 65%,transparent 100%) }
.destination-card-name  { font-size:1.1rem; font-weight:700; color:#fff; margin-bottom:.25rem }
.destination-card-count { font-size:.73rem; color:rgba(255,255,255,.75) }

/* ════════════════════════════════════════════════════════════════
   17. ACTIVITY CARDS
════════════════════════════════════════════════════════════════ */
.activities-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem }
.activity-card { position:relative; border-radius:var(--r-xl); overflow:hidden; aspect-ratio:4/3; background:linear-gradient(135deg,var(--ocean),var(--ocean-d)); cursor:pointer }
.activity-card img,.activity-card-bg { width:100%; height:100%; object-fit:cover; transition:transform var(--slow) }
.activity-card:hover img,.activity-card:hover .activity-card-bg { transform:scale(1.07) }
.activity-card-overlay,.activity-overlay {
  position:absolute; inset:0;
  background:linear-gradient(0deg,rgba(10,22,40,.9) 0%,rgba(10,22,40,.1) 55%,transparent 100%);
  display:flex; flex-direction:column; justify-content:flex-end; padding:1.375rem;
}
.activity-icon   { font-size:2rem; line-height:1; margin-bottom:.4rem }
.activity-name   { font-size:1.05rem; font-weight:700; color:#fff; margin-bottom:.3rem }
.activity-excerpt,.activity-desc { font-size:.78rem; color:rgba(255,255,255,.75); line-height:1.55; margin-bottom:.75rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
.activity-btn { display:inline-flex; align-items:center; gap:.35rem; background:rgba(255,255,255,.14); color:#fff; border:1px solid rgba(255,255,255,.3); padding:.35rem .9rem; border-radius:var(--r-pill); font-size:.73rem; font-weight:600; transition:background var(--fast); width:fit-content }
.activity-btn:hover { background:rgba(255,255,255,.26); color:#fff }

/* ════════════════════════════════════════════════════════════════
   18. TESTIMONIALS
════════════════════════════════════════════════════════════════ */
.testimonials-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.625rem }
.testimonial-card {
  background:#fff; border-radius:var(--r-xl); padding:1.875rem;
  border:1px solid var(--border); position:relative; overflow:hidden;
  transition:transform var(--base) var(--ease), box-shadow var(--base) var(--ease);
  box-shadow:var(--shadow-xs);
}
.testimonial-card::before { content:'\201C'; position:absolute; top:.25rem; right:1.25rem; font-family:var(--serif); font-size:5.5rem; color:var(--border); line-height:1 }
.testimonial-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md) }
.testimonial-text { font-size:.9rem; line-height:1.8; color:var(--steel); font-style:italic; margin-bottom:1.375rem; position:relative; z-index:1 }
.testimonial-author { display:flex; align-items:center; gap:.875rem; padding-top:1.1rem; border-top:1px solid var(--border) }
.testimonial-avatar { width:46px; height:46px; border-radius:50%; object-fit:cover; flex-shrink:0; border:2px solid var(--border) }
.testimonial-name     { font-weight:700; font-size:.9rem; color:var(--navy) }
.testimonial-location { font-size:.75rem; color:var(--mist); margin-top:.1rem }

/* ════════════════════════════════════════════════════════════════
   19. WHY CHOOSE US
════════════════════════════════════════════════════════════════ */
.why-card {
  background:#fff; border-radius:var(--r-xl); padding:1.875rem;
  border:1px solid var(--border); transition:all var(--base) var(--ease);
  position:relative; overflow:hidden; box-shadow:var(--shadow-xs);
}
.why-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--ocean),var(--flame)); transform:scaleX(0); transform-origin:left; transition:transform var(--base) }
.why-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg) }
.why-card:hover::after { transform:scaleX(1) }
.why-icon {
  width:54px; height:54px; border-radius:var(--r-lg); margin-bottom:1.1rem;
  background:linear-gradient(135deg,rgba(10,79,110,.07),rgba(232,131,42,.06));
  display:flex; align-items:center; justify-content:center;
  font-size:1.6rem; transition:all var(--base); color:var(--ocean);
}
.why-card:hover .why-icon { background:linear-gradient(135deg,var(--ocean),var(--flame)); color:#fff }
.why-title { font-size:.95rem; font-weight:700; margin-bottom:.5rem; color:var(--navy) }
.why-desc  { font-size:.85rem; color:var(--steel); line-height:1.72 }

/* ════════════════════════════════════════════════════════════════
   20. GALLERY
════════════════════════════════════════════════════════════════ */
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.875rem }
.gallery-item { position:relative; border-radius:var(--r-lg); overflow:hidden; cursor:pointer; background:var(--surface); aspect-ratio:4/3 }
.gallery-item.wide { grid-column:span 2 } .gallery-item.tall { grid-row:span 2; aspect-ratio:auto }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform var(--slow); display:block }
.gallery-item:hover img { transform:scale(1.06) }
.gallery-overlay { position:absolute; inset:0; background:rgba(10,22,40,.45); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity var(--base) }
.gallery-item:hover .gallery-overlay { opacity:1 }
.gallery-zoom { color:#fff; font-size:1.5rem }

/* ════════════════════════════════════════════════════════════════
   21. FORMS — Premium inputs
════════════════════════════════════════════════════════════════ */
.contact-form-field,.form-field { margin-bottom:1rem }
.contact-form-field label,.form-field label { display:block; font-size:.79rem; font-weight:600; color:var(--ink); margin-bottom:.38rem; letter-spacing:.01em }
.contact-form-field input,.contact-form-field select,.contact-form-field textarea,
.form-field input,.form-field select,.form-field textarea {
  width:100%; padding:.8rem 1.1rem; border:1.5px solid var(--border);
  border-radius:var(--r-lg); font-size:.9rem; color:var(--ink);
  background:#fff; outline:none; transition:border-color var(--fast), box-shadow var(--fast);
  -webkit-appearance:none;
}
.contact-form-field input:focus,.contact-form-field select:focus,.contact-form-field textarea:focus,
.form-field input:focus,.form-field select:focus,.form-field textarea:focus {
  border-color:var(--ocean); box-shadow:0 0 0 3px rgba(10,79,110,.1);
}
.contact-form-field input.error,.form-field input.error { border-color:#dc2626 }
.contact-form-field textarea,.form-field textarea { resize:vertical; min-height:110px }
.contact-form-field select,.form-field select {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2394A3B8' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .9rem center; padding-right:2.5rem;
}
.form-row-2   { display:grid; grid-template-columns:1fr 1fr; gap:.75rem }
.form-field-error { font-size:.76rem; color:#dc2626; margin-top:.3rem; display:block }
.form-checkbox { display:flex; align-items:flex-start; gap:.6rem; margin-bottom:1rem }
.form-checkbox input[type="checkbox"] { width:1rem; height:1rem; margin-top:.2rem; accent-color:var(--ocean); flex-shrink:0 }
.form-checkbox label { font-size:.875rem; color:var(--steel); line-height:1.55 }
.form-checkbox label a { color:var(--ocean); text-decoration:underline }

/* Dark-mode input (custom trip form) */
.dark-input::placeholder { color:rgba(255,255,255,.45) }
.dark-input { outline:none; transition:border-color var(--fast), background var(--fast) }
.dark-input:focus { border-color:rgba(255,255,255,.45)!important; background:rgba(255,255,255,.14)!important }

/* ════════════════════════════════════════════════════════════════
   22. BOOKING PANEL
════════════════════════════════════════════════════════════════ */
.booking-panel,.booking-sidebar { background:#fff; border-radius:var(--r-xl); overflow:hidden; border:1px solid var(--border); box-shadow:var(--shadow-lg) }
.booking-sidebar-sticky { position:sticky; top:calc(var(--header-h) + 1.5rem) }
.booking-steps { display:flex; background:var(--surface); border-bottom:1px solid var(--border) }
.booking-step { flex:1; padding:.9rem .5rem; text-align:center; font-size:.65rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--mist); border-bottom:2px solid transparent; transition:all var(--fast) }
.booking-step.active    { color:var(--ocean); border-bottom-color:var(--ocean); background:#fff }
.booking-step.completed { color:#059669; border-bottom-color:#059669 }
.booking-body { padding:1.5rem }

/* Tour tabs */
.tour-tab-bar,.tab-nav-wrap { display:flex; border-bottom:2px solid var(--border); overflow-x:auto; scrollbar-width:none; gap:0 }
.tour-tab-bar::-webkit-scrollbar,.tab-nav-wrap::-webkit-scrollbar { display:none }
.tour-tab,.tab-nav-item { padding:.9rem 1.375rem; font-size:.845rem; font-weight:600; color:var(--steel); border-bottom:2px solid transparent; margin-bottom:-2px; cursor:pointer; white-space:nowrap; transition:all var(--fast); background:none; border-top:none; border-left:none; border-right:none; font-family:var(--sans) }
.tour-tab.active,.tab-nav-item.active { color:var(--ocean); border-bottom-color:var(--ocean) }
.tab-panel,.tour-tab-pane { display:none }
.tab-panel.active,.tour-tab-pane.active { display:block }
.tour-overview-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-bottom:2rem }
.tos-item { text-align:center; padding:1.1rem .75rem; background:var(--surface); border-radius:var(--r-lg); border:1px solid var(--border) }
.tos-icon  { display:flex; justify-content:center; color:var(--ocean); margin-bottom:.5rem; font-size:1.4rem }
.tos-label { font-size:.65rem; text-transform:uppercase; letter-spacing:.1em; color:var(--mist); display:block; margin-bottom:.2rem }
.tos-value { font-weight:700; font-size:.92rem; color:var(--navy); display:block }

/* FAQ */
.faq-item { border:1.5px solid var(--border); border-radius:var(--r-lg); margin-bottom:.625rem; overflow:hidden }
.faq-item.open { border-color:var(--ocean) }
.faq-q,.faq-question { display:flex; align-items:center; justify-content:space-between; padding:1.1rem 1.375rem; cursor:pointer; font-weight:600; font-size:.9rem; color:var(--ink); gap:1rem; background:#fff; border:none; width:100%; text-align:left; font-family:var(--sans); transition:background var(--fast) }
.faq-q:hover,.faq-question:hover { background:var(--surface) }
.faq-item.open .faq-q,.faq-item.open .faq-question { color:var(--ocean); background:rgba(10,79,110,.03) }
.faq-icon { width:22px; height:22px; border-radius:50%; background:var(--surface); display:flex; align-items:center; justify-content:center; color:var(--steel); flex-shrink:0; transition:all var(--base); font-size:.9rem }
.faq-item.open .faq-icon { background:var(--ocean); color:#fff; transform:rotate(45deg) }
.faq-a,.faq-answer { max-height:0; overflow:hidden; transition:max-height .35s ease }
.faq-a-inner,.faq-item.open .faq-answer { padding:0 1.375rem 1.25rem; font-size:.875rem; color:var(--steel); line-height:1.8 }

/* ════════════════════════════════════════════════════════════════
   23. NEWSLETTER
════════════════════════════════════════════════════════════════ */
.newsletter { background:linear-gradient(135deg,var(--ocean),var(--ocean-d)); padding:4rem 0 }
.newsletter-inner { display:flex; align-items:center; justify-content:space-between; gap:2.5rem; flex-wrap:wrap }
.newsletter h3 { color:#fff; font-size:1.625rem; margin-bottom:.4rem }
.newsletter p  { color:rgba(255,255,255,.72); font-size:.9rem }
.newsletter-form { display:flex; gap:.5rem; flex-wrap:wrap }
.newsletter-form input { padding:.8rem 1.375rem; border:1px solid rgba(255,255,255,.2); border-radius:var(--r-pill); background:rgba(255,255,255,.14); color:#fff; font-size:.875rem; width:275px; outline:none; backdrop-filter:blur(4px); transition:background var(--fast) }
.newsletter-form input::placeholder { color:rgba(255,255,255,.5) }
.newsletter-form input:focus { background:rgba(255,255,255,.24) }

/* ════════════════════════════════════════════════════════════════
   24. FOOTER
════════════════════════════════════════════════════════════════ */
.footer-grid { display:grid; grid-template-columns:1.6fr repeat(3,1fr); gap:3rem }

/* ════════════════════════════════════════════════════════════════
   25. AUTH PAGES
════════════════════════════════════════════════════════════════ */
.ggn-auth-page,.auth-page { min-height:100svh; display:grid; grid-template-columns:1fr 1fr }
.ggn-auth-visual,.auth-visual { position:relative; background:linear-gradient(135deg,var(--ocean) 0%,var(--ocean-d) 100%); display:flex; flex-direction:column; justify-content:space-between; padding:3rem; overflow:hidden }
.ggn-auth-visual::before,.auth-visual::before { content:''; position:absolute; inset:0; background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.04) 1px,transparent 0); background-size:28px 28px }
.ggn-auth-visual-logo,.auth-visual-logo { display:flex; align-items:center; gap:.75rem; position:relative; z-index:1 }
.ggn-auth-visual-logo .logo-icon,.auth-visual-logo .logo-icon { width:44px; height:44px; border-radius:50%; background:rgba(232,131,42,.22); border:2px solid rgba(232,131,42,.45); display:flex; align-items:center; justify-content:center }
.ggn-auth-visual-logo-text .name,.auth-visual-logo-text .name { font-family:var(--serif); font-size:1.15rem; font-weight:700; color:#fff; line-height:1.1 }
.ggn-auth-visual-logo-text .sub,.auth-visual-logo-text .sub  { font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.55) }
.ggn-auth-visual-content,.auth-visual-content { position:relative; z-index:1 }
.ggn-auth-visual-content h2,.auth-visual-content h2 { font-family:var(--serif); font-size:clamp(1.6rem,2.8vw,2.2rem); color:#fff; margin-bottom:1rem; line-height:1.2 }
.ggn-auth-visual-content p,.auth-visual-content p { color:rgba(255,255,255,.72); line-height:1.75; font-size:.9rem }
.ggn-auth-stats,.auth-stats { display:flex; gap:2rem; position:relative; z-index:1 }
.ggn-auth-stat-value,.auth-stat-value { font-size:1.75rem; font-weight:800; color:var(--flame); display:block }
.ggn-auth-stat-label,.auth-stat-label { font-size:.67rem; color:rgba(255,255,255,.5); text-transform:uppercase; letter-spacing:.08em }

.ggn-auth-panel,.auth-panel { display:flex; align-items:center; justify-content:center; background:#fff; padding:3rem 2rem; overflow-y:auto }
.ggn-auth-form-wrap,.auth-form-wrap { width:100%; max-width:420px; animation:fadeUp .35s var(--ease) }
.ggn-auth-header,.auth-header { margin-bottom:2rem }
.ggn-auth-header h1,.auth-header h1 { font-size:1.75rem; margin-bottom:.4rem; color:var(--navy) }
.ggn-auth-header p,.auth-header p { color:var(--steel); font-size:.9rem }

.ggn-field { margin-bottom:1.1rem }
.ggn-field label { display:block; font-size:.79rem; font-weight:600; color:var(--ink); margin-bottom:.38rem }
.ggn-field-input-wrap { position:relative }
.ggn-field-icon { position:absolute; left:.875rem; top:50%; transform:translateY(-50%); color:var(--mist); pointer-events:none; display:flex; align-items:center }
.ggn-field input { width:100%; padding:.875rem 1rem .875rem 2.75rem; border:1.5px solid var(--border); border-radius:var(--r-lg); font-size:.9375rem; color:var(--navy); background:#fff; outline:none; transition:border-color var(--fast),box-shadow var(--fast) }
.ggn-field input:focus { border-color:var(--ocean); box-shadow:0 0 0 3px rgba(10,79,110,.1) }
.ggn-field input.error { border-color:#dc2626 }
.ggn-field input.has-pw-toggle { padding-right:3rem }
.ggn-pw-toggle { position:absolute; right:.875rem; top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; color:var(--mist); padding:0; display:flex; transition:color var(--fast) }
.ggn-pw-toggle:hover { color:var(--ocean) }
.ggn-pw-strength { margin-top:.4rem }
.ggn-pw-strength-bar { height:4px; border-radius:2px; background:var(--border); overflow:hidden; margin-bottom:.25rem }
.ggn-pw-strength-fill { height:100%; border-radius:2px; transition:width .3s,background .3s; width:0 }
.ggn-pw-strength-text { font-size:.73rem; color:var(--mist) }
.strength-weak   .ggn-pw-strength-fill { width:25%; background:#ef4444 }
.strength-fair   .ggn-pw-strength-fill { width:50%; background:#f59e0b }
.strength-good   .ggn-pw-strength-fill { width:75%; background:#3b82f6 }
.strength-strong .ggn-pw-strength-fill { width:100%; background:#10b981 }
.strength-weak   .ggn-pw-strength-text { color:#ef4444 }
.strength-fair   .ggn-pw-strength-text { color:#f59e0b }
.strength-good   .ggn-pw-strength-text { color:#3b82f6 }
.strength-strong .ggn-pw-strength-text { color:#10b981 }
.ggn-checkbox-field { display:flex; align-items:flex-start; gap:.6rem; margin-bottom:1.1rem }
.ggn-checkbox-field input[type="checkbox"] { width:1rem; height:1rem; margin-top:.2rem; accent-color:var(--ocean); flex-shrink:0; cursor:pointer }
.ggn-checkbox-field label { font-size:.875rem; color:var(--steel); cursor:pointer; line-height:1.5 }
.ggn-checkbox-field label a { color:var(--ocean); text-decoration:underline }
.ggn-name-row { display:grid; grid-template-columns:1fr 1fr; gap:.75rem }
.ggn-auth-links { display:flex; justify-content:space-between; align-items:center; font-size:.84rem; margin-bottom:1.25rem }
.ggn-auth-links a { color:var(--ocean) }
.ggn-auth-btn { width:100%; padding:.9375rem; background:var(--ocean); color:#fff; border:none; border-radius:var(--r-lg); font-size:.9375rem; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:.5rem; margin-bottom:1.1rem; transition:background var(--base); font-family:var(--sans) }
.ggn-auth-btn:hover { background:var(--ocean-d) }
.ggn-auth-btn:disabled { background:var(--mist); cursor:not-allowed }
.ggn-auth-btn .ggn-icon { display:none }
.ggn-auth-btn.loading .ggn-icon { display:inline-block; animation:spin 1s linear infinite }
.ggn-auth-btn.loading .btn-text { display:none }
.ggn-auth-notice { padding:.875rem 1rem; border-radius:var(--r-lg); font-size:.875rem; margin-bottom:1.1rem; display:flex; align-items:flex-start; gap:.5rem; line-height:1.5 }
.ggn-auth-notice.error   { background:#fef2f2; color:#dc2626; border:1px solid #fca5a5 }
.ggn-auth-notice.success { background:#f0fdf4; color:#16a34a; border:1px solid #86efac }
.ggn-auth-notice.info    { background:#eff6ff; color:#2563eb; border:1px solid #93c5fd }
.ggn-auth-footer { text-align:center; font-size:.875rem; color:var(--steel); margin-top:1.25rem }
.ggn-auth-footer a { color:var(--ocean); font-weight:600 }
.ggn-icon { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0 }

/* ════════════════════════════════════════════════════════════════
   26. UI COMPONENTS
════════════════════════════════════════════════════════════════ */
/* Reveal */
.reveal { transition:opacity .6s var(--ease), transform .6s var(--ease) }
body.ggn-js-ready .reveal:not(.visible) { opacity:0; transform:translateY(22px) }
.reveal.visible { opacity:1!important; transform:none!important }

/* Back to top */
.back-to-top { position:fixed; bottom:6rem; right:1.5rem; z-index:890; width:42px; height:42px; border-radius:50%; background:var(--ocean); color:#fff; border:none; cursor:pointer; display:none; align-items:center; justify-content:center; box-shadow:var(--shadow-md); transition:all var(--base) }
.back-to-top:hover { background:var(--ocean-d); transform:translateY(-2px) }
.back-to-top.visible { display:flex }

/* WhatsApp float */
.whatsapp-float { position:fixed; bottom:1.5rem; right:1.5rem; z-index:891; width:58px; height:58px; border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 24px rgba(37,211,102,.4); transition:transform var(--base),box-shadow var(--base) }
.whatsapp-float:hover { transform:scale(1.1); box-shadow:0 8px 32px rgba(37,211,102,.55) }

/* Toast */
.toast-container { position:fixed; bottom:1.5rem; right:1.5rem; z-index:9999; display:flex; flex-direction:column; gap:.5rem; pointer-events:none }
.toast { display:flex; align-items:center; gap:.75rem; padding:.9rem 1.1rem; border-radius:var(--r-xl); font-size:.875rem; font-weight:500; max-width:340px; box-shadow:var(--shadow-xl); pointer-events:auto; background:#fff; animation:fadeUp .3s var(--ease) }
.toast.hide { opacity:0; transform:translateX(20px); transition:opacity .3s,transform .3s }
.toast-success { border-left:4px solid #059669; color:#059669 }
.toast-error   { border-left:4px solid #dc2626; color:#dc2626 }
.toast-info    { border-left:4px solid var(--ocean); color:var(--ocean) }
.toast-close   { margin-left:auto; cursor:pointer; background:none; border:none; color:inherit; opacity:.5; padding:0; font-size:1rem }

/* Pagination */
.pagination { display:flex; gap:.4rem; justify-content:center; margin-top:3rem }
.pagination .page-number,.pagination a { display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:var(--r-md); font-size:.875rem; font-weight:600; border:1.5px solid var(--border); color:var(--steel); transition:all var(--fast) }
.pagination .current,.pagination a:hover { background:var(--ocean); border-color:var(--ocean); color:#fff }

/* ════════════════════════════════════════════════════════════════
   27. UTILITIES
════════════════════════════════════════════════════════════════ */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0 }
.text-center{text-align:center} .text-left{text-align:left} .text-right{text-align:right}
.text-ocean{color:var(--ocean)} .text-flame{color:var(--flame)} .text-white{color:#fff} .text-muted{color:var(--mist)}
.font-serif{font-family:var(--serif)} .font-bold{font-weight:700}
.mt-4{margin-top:1rem} .mt-6{margin-top:1.5rem} .mt-8{margin-top:2rem} .mt-12{margin-top:3rem}
.mb-4{margin-bottom:1rem} .mb-6{margin-bottom:1.5rem} .mb-8{margin-bottom:2rem}
.hidden{display:none!important} .block{display:block}
.sticky-top{position:sticky;top:calc(var(--header-h) + 1.5rem)}
.border-top{border-top:1px solid var(--border)} .border-bottom{border-bottom:1px solid var(--border)}
.rounded-xl{border-radius:var(--r-xl)} .rounded-full{border-radius:var(--r-pill)}
.shadow-md{box-shadow:var(--shadow-md)} .shadow-lg{box-shadow:var(--shadow-lg)}
.bg-white{background:#fff} .bg-surface{background:var(--surface)}
.overflow-hidden{overflow:hidden} .w-full{width:100%}

/* ════════════════════════════════════════════════════════════════
   28. RESPONSIVE — Tablet ≤ 1024px
════════════════════════════════════════════════════════════════ */
@media(max-width:1024px){
  .tours-grid          { grid-template-columns:repeat(2,1fr) }
  .destinations-grid   { grid-template-columns:repeat(3,1fr) }
  .testimonials-grid   { grid-template-columns:repeat(2,1fr) }
  .footer-grid         { grid-template-columns:1fr 1fr; gap:2.5rem }
  .tour-overview-stats { grid-template-columns:repeat(2,1fr) }
  .ggn-layout-sidebar  { grid-template-columns:1fr 300px; gap:2rem }
  .ggn-dashboard-layout{ grid-template-columns:220px 1fr }
  .mega-menu           { width:min(600px,92vw) }
}

/* ════════════════════════════════════════════════════════════════
   29. RESPONSIVE — Mobile ≤ 768px
════════════════════════════════════════════════════════════════ */
@media(max-width:768px){
  :root{ --topbar-h:0px; --nav-h:62px; --header-h:62px }

  .header-topbar { display:none }
  .menu-toggle   { display:flex }
  .nav-cta       { display:none }

  .nav-menu {
    display:none; position:fixed; inset:0; background:#fff;
    flex-direction:column; align-items:stretch;
    padding:4.5rem 1.25rem 2rem; gap:0; overflow-y:auto; z-index:799;
  }
  .nav-menu.open { display:flex }
  .nav-link {
    color:var(--ink)!important; font-size:.95rem; padding:.9rem .875rem;
    border-bottom:1px solid var(--border); border-radius:0; justify-content:space-between;
  }
  .nav-link:hover { background:var(--surface)!important; color:var(--ocean)!important }
  .nav-dropdown { position:static }
  .nav-dropdown>.dropdown-menu,.nav-dropdown>.mega-menu {
    position:static!important; opacity:1!important; visibility:visible!important;
    pointer-events:auto!important; transform:none!important; box-shadow:none!important;
    border-radius:var(--r-lg)!important; border:1px solid var(--border)!important;
    background:var(--surface)!important; padding:.5rem!important;
    margin:.3rem 0 .5rem!important; display:none; width:100%!important;
  }
  .nav-dropdown.open>.dropdown-menu,.nav-dropdown.open>.mega-menu { display:block!important }
  .mega-grid { grid-template-columns:1fr!important; gap:.25rem!important }
  .mega-col-header { display:none }

  /* Grids */
  .tours-grid          { grid-template-columns:1fr!important }
  .destinations-grid   { grid-template-columns:repeat(2,1fr)!important }
  .activities-grid     { grid-template-columns:repeat(2,1fr)!important }
  .testimonials-grid   { grid-template-columns:1fr!important }
  .gallery-grid        { grid-template-columns:repeat(2,1fr)!important }
  .gallery-item.wide,.gallery-item.tall { grid-column:span 1!important; grid-row:span 1!important; aspect-ratio:4/3!important }
  .ggn-cols-2,.ggn-cols-2-hero,.ggn-cols-2-asym { grid-template-columns:1fr!important; gap:2rem!important }
  .ggn-cols-3,.grid-2,.grid-3,.grid-4 { grid-template-columns:1fr!important; gap:1.25rem!important }
  .ggn-form-row,.form-row-2 { grid-template-columns:1fr!important }
  .ggn-layout-sidebar  { grid-template-columns:1fr!important }
  .ggn-dashboard-layout,.dashboard-layout { grid-template-columns:1fr!important }
  .footer-grid         { grid-template-columns:1fr!important; gap:2rem!important }
  .tour-overview-stats { grid-template-columns:repeat(2,1fr)!important }
  .ggn-auth-page,.auth-page { grid-template-columns:1fr!important }
  .ggn-auth-visual,.auth-visual { display:none!important }
  .ggn-auth-panel,.auth-panel { padding:5rem 1.25rem 2rem; align-items:flex-start }
  .ggn-name-row { grid-template-columns:1fr!important }

  /* Hero */
  .hero-body,.hero-content { padding-top:calc(var(--nav-h) + 3.5rem); padding-bottom:3.5rem }
  .hero-ctas { flex-direction:column; align-items:center }
  .hero-ctas .btn { width:100%; max-width:280px }
  .hero-section h1 { font-size:2.25rem }

  /* Search */
  .ggn-search-bar { flex-direction:column; border-radius:var(--r-xl)!important; overflow:visible }
  .ggn-search-field { border-right:none!important; border-bottom:1px solid var(--border); padding:.875rem 1.125rem }
  .ggn-search-field:last-of-type { border-bottom:none }
  .ggn-search-divider { display:none }
  input[type="date"].ggn-search-input { position:relative; opacity:1; height:auto }
  .ggn-search-date-hint { display:none }
  .ggn-search-btn { border-radius:0 0 var(--r-xl) var(--r-xl); flex-direction:row; padding:1rem 1.5rem; gap:.5rem; width:100%; min-width:auto }
  .ggn-search-btn-text { font-size:.875rem }
  .ggn-search-pills { justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; padding-bottom:.25rem }
  .ggn-search-pills::-webkit-scrollbar { display:none }
  .ggn-pill { flex-shrink:0 }

  /* Stats */
  .stats-bar { flex-wrap:wrap }
  .stat-item { flex:0 0 33.333%; max-width:33.333%; border-bottom:1px solid rgba(255,255,255,.1) }
  .stat-item:nth-child(3n) { border-right:none }
  .stat-value,.stat-val { font-size:1.35rem }

  /* Section */
  .section,.section-pad,.section-lg { padding:3.5rem 0 }
  .section-sm { padding:2.5rem 0 }
  .section-header { margin-bottom:2.25rem }

  /* Newsletter */
  .newsletter-inner { flex-direction:column; align-items:flex-start }
  .newsletter-form  { width:100% }
  .newsletter-form input { width:100% }

  /* Booking */
  .booking-sidebar-sticky { position:static!important }
  .booking-step { font-size:.6rem; padding:.65rem .3rem }

  /* Filter tabs */
  .tour-filter-tabs,.filter-tabs { flex-wrap:nowrap; overflow-x:auto; justify-content:flex-start; scrollbar-width:none; padding-bottom:.5rem }
  .tour-filter-tabs::-webkit-scrollbar,.filter-tabs::-webkit-scrollbar { display:none }

  /* Misc */
  .affiliation-full { display:none }
  body:not(.has-hero) main { padding-top:var(--nav-h) }
  .page-hero { padding:calc(var(--nav-h) + 2rem) 0 2rem }
  .whatsapp-float { width:52px; height:52px; bottom:1.25rem; right:1.25rem }
  .back-to-top { bottom:5rem; right:1.25rem }
}

/* ════════════════════════════════════════════════════════════════
   30. RESPONSIVE — Small ≤ 480px
════════════════════════════════════════════════════════════════ */
@media(max-width:480px){
  .container { padding:0 1rem }
  .destinations-grid { grid-template-columns:1fr 1fr!important }
  .activities-grid   { grid-template-columns:1fr!important }
  .stats-bar         { flex-wrap:wrap }
  .stat-item         { flex:0 0 50%; max-width:50% }
  .stat-item:nth-child(3n)  { border-right:1px solid rgba(255,255,255,.12) }
  .stat-item:nth-child(even){ border-right:none }
  .tour-card-footer,.tour-card-foot { flex-direction:column; align-items:flex-start }
  .tour-card-footer .btn,.tour-card-foot .btn { width:100% }
  .tour-overview-stats { grid-template-columns:1fr 1fr!important }
  h1 { font-size:2rem } h2 { font-size:1.65rem }
  .btn-xl { padding:.875rem 1.75rem; font-size:.925rem }
}

/* ════════════════════════════════════════════════════════════════
   31. PRINT
════════════════════════════════════════════════════════════════ */
@media print{
  .site-header,.whatsapp-float,.back-to-top,.newsletter { display:none!important }
  body { font-size:12pt; color:#000 }
  .container { max-width:100%!important }
}
