﻿/* ═══════════════════════════════════════════════════════════
   ETERNALMILES  |  Design System v5.0
   Dark / Light Mode  ·  Premium Travel Brand
   India
═══════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500&family=Outfit:wght@300;400;500;600;700&display=swap');

/* ────────────────── TOKENS ────────────────── */
:root {
  --bg:           #060C1A;
  --surface:      #0C1528;
  --surface2:     #111E34;
  --card:         rgba(255,255,255,0.04);
  --gold:         #C4965A;
  --gold-lt:      #DEB478;
  --gold-dk:      #9B7140;
  --gold-interactive: #D4A86A;
  --gold-text:    #B8894E;
  --teal:         #2FA8B0;
  --white:        #EAE4D5;
  --gray:         rgba(234,228,213,0.58);
  --gray-lt:      rgba(234,228,213,0.25);
  --border:       rgba(255,255,255,0.08);
  --border-gold:  rgba(196,150,90,0.3);
  --shadow:       0 24px 80px rgba(0,0,0,0.6);
  --shadow-sm:    0 8px 32px rgba(0,0,0,0.3);
  --r:            12px;
  --r-md:         12px;
  --r-lg:         20px;
  --r-xl:         32px;
  --ease:         cubic-bezier(0.23,1,0.32,1);
  --trans:        all 0.32s var(--ease);
  --ff-d:         'Cormorant Garamond', Georgia, serif;
  --ff-b:         'Outfit', system-ui, sans-serif;
  --top-h:        40px;
  --nav-h:        72px;
  /* JS updates this: 112px when topbar visible, 72px when scrolled */
  --nav-offset:   112px;
  /* Theme-aware copy (fixes dark UI that mistakenly used "light-mode brown") */
  --text-primary:   #EAE4D5;
  --text-secondary: rgba(234,228,213,0.84);
  --text-muted:     rgba(234,228,213,0.62);
  --header-bg: rgba(6,12,26,0);
  --header-bg-scrolled: rgba(6,12,26,0.95);
  --header-border: rgba(255,255,255,0.12);
  --dropdown-bg: #0C1528;
  --hero-overlay-main: linear-gradient(135deg,rgba(6,12,26,0.92) 0%,rgba(6,12,26,0.60) 60%,rgba(6,12,26,0.82) 100%);
  --dp-hero-overlay-main: linear-gradient(to top, rgba(5,10,20,0.93) 0%, rgba(5,10,20,0.35) 55%, rgba(5,10,20,0.12) 100%);
  --hero-heading: var(--text-primary);
  --hero-sub: var(--text-secondary);
  --hero-breadcrumb: rgba(255,255,255,0.62);
  --hero-badge-bg: rgba(255,255,255,0.08);
  --hero-badge-border: rgba(255,255,255,0.15);
  --hero-badge-text: rgba(255,255,255,0.9);
  --footer-link: var(--gray);
  --logo-mark-a: #1B6878;
  --logo-mark-b: #52BAD4;
}

/* ── SAKURA (Light Mode) ── */
[data-theme="sakura"] {
  --bg:           #FDF6F8;
  --surface:      #FFFFFF;
  --surface2:     #F5ECF0;
  --card:         rgba(0,0,0,0.025);
  --gold:         #A0395A;
  --gold-lt:      #C0506E;
  --gold-dk:      #7D2A45;
  --gold-interactive: #C0506E;
  --gold-text:    #7D2A45;
  --teal:         #A0395A;
  --white:        #1A0A10;
  --gray:         rgba(26,10,16,0.55);
  --gray-lt:      rgba(26,10,16,0.3);
  --border:       rgba(160,57,90,0.14);
  --border-gold:  rgba(160,57,90,0.28);
  --shadow:       0 24px 80px rgba(160,57,90,0.1);
  --shadow-sm:    0 8px 32px rgba(0,0,0,0.07);
  --text-primary:   rgba(26,10,16,0.92);
  --text-secondary: rgba(26,10,16,0.74);
  --text-muted:     rgba(26,10,16,0.62);
  --header-bg: rgba(253,246,248,0);
  --header-bg-scrolled: rgba(253,246,248,0.97);
  --header-border: rgba(160,57,90,0.2);
  --dropdown-bg: #FFFFFF;
  --hero-overlay-main:
    linear-gradient(135deg, rgba(253,246,248,0.96) 0%, rgba(253,246,248,0.82) 42%, rgba(253,246,248,0.70) 100%),
    linear-gradient(180deg, rgba(26,10,16,0.22) 0%, transparent 55%);
  --dp-hero-overlay-main: linear-gradient(to top, rgba(253,246,248,0.92) 0%, rgba(253,246,248,0.56) 55%, rgba(253,246,248,0.25) 100%);
  --hero-heading: rgba(26,10,16,0.95);
  --hero-sub: rgba(26,10,16,0.78);
  --hero-breadcrumb: rgba(26,10,16,0.62);
  --hero-badge-bg: rgba(255,255,255,0.55);
  --hero-badge-border: rgba(160,57,90,0.22);
  --hero-badge-text: rgba(26,10,16,0.86);
  --footer-link: var(--text-muted);
  --logo-mark-a: #155870;
  --logo-mark-b: #2E9BB8;
}
/* ── Fix: footer & contact social icons in Sakura theme ── */
[data-theme="sakura"] .footer-social a,
[data-theme="sakura"] .social-row a {
  color: rgba(26, 10, 16, 0.70) !important;
  border-color: rgba(26, 10, 16, 0.15) !important;
  background: rgba(26, 10, 16, 0.05) !important;
}

[data-theme="sakura"] .footer-social a svg,
[data-theme="sakura"] .footer-social a i,
[data-theme="sakura"] .social-row a svg,
[data-theme="sakura"] .social-row a i {
  color: rgba(26, 10, 16, 0.70) !important;
  stroke: rgba(26, 10, 16, 0.70) !important;
}

[data-theme="sakura"] .footer-social a:hover,
[data-theme="sakura"] .social-row a:hover {
  background: var(--gold) !important;
  color: #fff !important;
  border-color: var(--gold) !important;
}

[data-theme="sakura"] .footer-social a:hover svg,
[data-theme="sakura"] .footer-social a:hover i,
[data-theme="sakura"] .social-row a:hover svg,
[data-theme="sakura"] .social-row a:hover i {
  color: #fff !important;
  stroke: #fff !important;
}
/* ────────────────── RESET ────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; overflow-x:clip; -webkit-text-size-adjust:100%; }
body { font-family:var(--ff-b); background:var(--bg); color:var(--text-secondary); line-height:1.6; overflow-x:hidden; transition:background 0.4s ease, color 0.4s ease; }
img { max-width:100%; display:block; }
a { color:inherit; }
button { font-family:var(--ff-b); }
textarea { resize:vertical; }

/* ────────────────── CURSOR ────────────────── */
.cursor,.cursor-f { position:fixed; border-radius:50%; pointer-events:none; z-index:9999; }
.cursor   { width:8px; height:8px; background:var(--gold); transform:translate(-50%,-50%); transition:width .15s,height .15s; }
.cursor-f { width:32px; height:32px; border:1px solid rgba(196,150,90,0.5); transform:translate(-50%,-50%); transition:transform .12s var(--ease); }
@media(hover:none){.cursor,.cursor-f{display:none}}

/* ────────────────── TOP BAR ────────────────── */
.top-bar {
  height:var(--top-h); background:var(--surface2); border-bottom:1px solid var(--border);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 60px; position:relative; z-index:1001;
  transition:transform 0.4s var(--ease), background 0.4s ease;
}
.top-bar.hide { transform:translateY(-100%); }
.tb-left { display:flex; align-items:center; gap:20px; }
.tb-item { display:flex; align-items:center; gap:7px; font-size:0.71rem; color:var(--gray); text-decoration:none; letter-spacing:0.3px; transition:var(--trans); white-space:nowrap; }
.tb-item svg { width:12px; height:12px; flex-shrink:0; }
.tb-item:hover { color:var(--gold); }
.tb-sep { width:1px; height:14px; background:var(--border); }
.hide-sm { display:flex; }
.tb-right { font-size:0.62rem; font-weight:600; letter-spacing:4px; text-transform:uppercase; color:var(--gray-lt); }
.tb-right em { color:var(--gold); font-style:normal; }
[data-theme="sakura"] .top-bar    { background:#F0E4E9; border-bottom-color:rgba(160,57,90,0.14); }
[data-theme="sakura"] .tb-item    { color:var(--text-muted); }
[data-theme="sakura"] .tb-item:hover { color:var(--gold); }
[data-theme="sakura"] .tb-right   { color:var(--text-muted); }
[data-theme="sakura"] .tb-right em{ color:var(--gold); }

/* ────────────────── NAV ────────────────── */
.nav {
  position:fixed; top:var(--top-h); left:0; right:0; z-index:1000;
  height:var(--nav-h); padding:0 60px;
  display:flex; align-items:center; justify-content:space-between; gap:40px;
  background:var(--header-bg); backdrop-filter:blur(0px);
  border-bottom:1px solid transparent;
  transition:all 0.4s var(--ease);
}
.nav.scrolled {
  background:var(--header-bg-scrolled);
  backdrop-filter:blur(24px);
  border-bottom-color:var(--header-border);
  top:0;
}
[data-theme="sakura"] .nav.scrolled{ background:var(--header-bg-scrolled); backdrop-filter:blur(20px); }

.nav-logo {
  display:flex; align-items:center; gap:10px; text-decoration:none; flex-shrink:0;
  transform:perspective(640px) rotateY(0) translateZ(0);
  transform-style:preserve-3d;
  transition:transform 0.35s var(--ease);
}
.nav-logo:hover { transform:perspective(640px) rotateY(-5deg) translateZ(0); }
.logo-svg { width:50px; height:30px; color:var(--gold); flex-shrink:0; }

/* PNG brand mark — light asset for data-theme="sakura", dark asset for all other themes */
.brand-mark {
  position: relative;
  display: flex;
  align-items: center;
  flex-shrink: 0;
  height: 34px;
}
.brand-mark--footer { height: 28px; }
.brand-mark--mm { height: 30px; margin-bottom: 0; }
.brand-mark__img {
  height: 100%;
  width: auto;
  max-width: 132px;
  object-fit: contain;
  display: none;
  vertical-align: middle;
}
html[data-theme="sakura"] .brand-mark__img--light { display: block; }
html[data-theme="sakura"] .brand-mark__img--dark { display: none !important; }
html:not([data-theme="sakura"]) .brand-mark__img--light { display: none !important; }
html:not([data-theme="sakura"]) .brand-mark__img--dark { display: block; }
.brand-mark--footer .brand-mark__img { max-width: 90px; }
.brand-mark--mm .brand-mark__img { max-width: 100px; }
.logo-text { font-family:var(--ff-d); font-size:1.4rem; font-weight:400; letter-spacing:0.5px; line-height:1; }
.logo-text em { font-style:italic; color:var(--gold); }

.nav-links { display:flex; align-items:center; gap:4px; list-style:none; flex:1; justify-content:center; }
.nav-links li { position:relative; }
.nav-links a {
  display:flex;
  align-items:center;
  gap:4px;
  padding:10px 16px;
  font-size:0.83rem;
  font-weight:500;
  letter-spacing:0.8px;
  text-decoration:none;
  color:var(--text-secondary);
  border-radius:8px;
  transition:var(--trans);
}

/* Hover & Active — night theme */
.nav-links a:hover,
.nav-links a.active {
  color:var(--white);
  background:rgba(255,255,255,0.08);
}

[data-theme="sakura"] .nav-links a {
  color:var(--text-primary);
}

[data-theme="sakura"] .nav-links a:hover,
[data-theme="sakura"] .nav-links a.active {
  color:var(--text-primary);
  background:rgba(0,0,0,0.05);
}

/* CTA Button */
.nav-cta {
  background:linear-gradient(135deg,var(--gold),var(--gold-lt)) !important;
  color:var(--bg) !important;
  border-radius:50px !important;
  padding:8px 20px !important;
  font-weight:600 !important;
}

.nav-cta:hover {
  opacity:0.88;
  transform:translateY(-1px);
  box-shadow:0 6px 20px rgba(196,150,90,0.35);
}

/* Sakura CTA */
[data-theme="sakura"] .nav-cta {
  background:linear-gradient(135deg,#A0395A,#C0506E) !important;
  color:#fff !important;
}

/* Chevron rotation animation */
.nav-links a i[data-lucide="chevron-down"] {
  width:11px;
  height:11px;
  display:inline-block !important;
  vertical-align:middle;
  transition:transform 0.25s ease;
}

/* Optional: rotate on hover (nice UX) */
.nav-links li:hover a i[data-lucide="chevron-down"] {
  transform:rotate(180deg);
}
.has-mega:hover > a i[data-lucide="chevron-down"],
.has-dest.menu-open > a i[data-lucide="chevron-down"] { transform:rotate(-180deg); }

/* ═══════════════════════════════════════════════════════
   SERVICES MEGA MENU
═══════════════════════════════════════════════════════ */
.has-mega { position:relative; }

.mega-menu {
  position:absolute;
  top:calc(100% + 8px);
  left:50%;
  transform:translateX(-50%) translateY(-8px);
  background:var(--dropdown-bg);
  border:1px solid var(--border);
  border-top:2px solid var(--gold);
  border-radius:var(--r-lg);
  padding:24px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 32px;
  min-width:580px;
  box-shadow:var(--shadow);
  z-index:9100;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
}
.has-mega:hover .mega-menu {
  opacity:1;
  visibility:visible;
  pointer-events:all;
  transform:translateX(-50%) translateY(0);
}

.mega-col { flex:1; }
.mega-heading { font-size:0.6rem; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:var(--gold); margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--border); }
.mega-item { display:flex; align-items:flex-start; gap:12px; padding:10px; border-radius:10px; text-decoration:none; color:inherit; transition:var(--trans); margin-bottom:2px; }
.mega-item:hover { background:rgba(196,150,90,0.07); }
.mega-icon { font-size:1.3rem; flex-shrink:0; margin-top:1px; }
.mega-label { font-size:0.83rem; font-weight:500; margin-bottom:2px; color:var(--text-secondary); }
.mega-sub { font-size:0.72rem; color:var(--gray); line-height:1.4; }
[data-theme="sakura"] .mega-menu    { background:#fff; border-color:rgba(160,57,90,0.15); }
[data-theme="sakura"] .mega-label   { color:var(--text-muted); }
[data-theme="sakura"] .mega-sub     { color:var(--text-muted); }
[data-theme="sakura"] .mega-heading { color:var(--gold); }

/* ═══════════════════════════════════════════════════════════════
   DESTINATIONS MEGA MENU — v5 FINAL FIX
   ────────────────────────────────────────────────────────────
   Root causes fixed:
   1. Old display:none/block removed → uses opacity/visibility + .open
   2. .dest-mega-inner is now display:flex flex-direction:column
      (was display:grid 7-col which broke footer placement)
   3. .dest-mega-cols is the named 4-col grid wrapper
   4. top: var(--nav-offset) — JS updates this on scroll
═══════════════════════════════════════════════════════════════ */

/* Trigger <li> must be static so fixed panel isn't clipped */
.has-dest { position:static !important; }

/* ── Full-width fixed panel ── */
.dest-mega {
  position:fixed;
  top:var(--nav-offset, 112px);
  left:0;
  right:0;
  width:100%;
  z-index:8999;
  /* Hidden state */
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-10px);
  transition:
    opacity    0.28s cubic-bezier(0.4,0,0.2,1),
    transform  0.28s cubic-bezier(0.4,0,0.2,1),
    visibility 0.28s;
}

/* Open — JS adds this class */
.dest-mega.open {
  opacity:1;
  visibility:visible;
  pointer-events:all;
  transform:translateY(0);
}

/* ── Inner card — centered, flex column ── */
.dest-mega-inner {
  background:var(--dropdown-bg);
  border:1px solid var(--border);
  border-top:2px solid var(--gold);
  border-radius:0 0 20px 20px;
  max-width:1380px;
  width:calc(100% - 120px);
  margin:0 auto;
  box-shadow:
    0 40px 100px rgba(0,0,0,0.6),
    0 12px 32px rgba(0,0,0,0.35),
    inset 0 1px 0 rgba(255,255,255,0.04);
  overflow:hidden;
  /* KEY FIX: flex-column so .dest-mega-cols + .dest-mega-footer stack correctly */
  display:flex;
  flex-direction:column;
}

/* ── 5-column grid (Asia · Europe · Eurasia · Middle East / Africa · Oceania / Americas) ── */
.dest-mega-cols {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:0;
}

/* ── Each region column ── */
.dest-mega-col {
  padding:22px 18px;
  border-right:1px solid var(--border);
  display:flex;
  flex-direction:column;
  gap:1px;
  max-height:66vh;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:var(--gold) transparent;
}
.dest-mega-col:last-child { border-right:none; }
.dest-mega-col::-webkit-scrollbar        { width:3px; }
.dest-mega-col::-webkit-scrollbar-track  { background:transparent; }
.dest-mega-col::-webkit-scrollbar-thumb  { background:var(--gold); border-radius:4px; }

/* ── Region headings ── */
.dest-mega-head {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:0.58rem;
  font-weight:700;
  letter-spacing:2.8px;
  text-transform:uppercase;
  color:var(--gold);
  padding:8px 4px 7px 4px;
  margin-bottom:2px;
  border-bottom:1px solid rgba(196,150,90,0.15);
  flex-shrink:0;
}
/* Spacer before secondary headings — use style="margin-top:14px" inline */

/* ── Destination links ── */
.dest-mega-col a {
  display:flex;
  align-items:center;
  gap:0;
  padding:6px 8px 6px 6px;
  border-radius:7px;
  font-size:0.81rem;
  color:var(--gray);
  text-decoration:none;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  transition:background 0.15s ease, color 0.15s ease, padding-left 0.18s ease;
}
.dest-mega-col a span {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:0.81rem;
  line-height:1.4;
}
/* Arrow icon */
.dest-mega-col a i[data-lucide="arrow-right"] {
  display:none !important;
}
.dest-mega-col a:hover {
  background:rgba(196,150,90,0.08);
  color:var(--text-muted);
  padding-left:6px;
}
.dest-mega-col a:hover i[data-lucide="arrow-right"] {
  display:none !important;
}

/* ── Entry stagger ── */
.dest-mega.open .dest-mega-col a { animation:dmLinkIn 0.3s ease both; }
@keyframes dmLinkIn {
  from { opacity:0; transform:translateX(-6px); }
  to   { opacity:1; transform:translateX(0); }
}
.dest-mega.open .dest-mega-col a:nth-child(2)  { animation-delay:.02s; }
.dest-mega.open .dest-mega-col a:nth-child(3)  { animation-delay:.04s; }
.dest-mega.open .dest-mega-col a:nth-child(4)  { animation-delay:.06s; }
.dest-mega.open .dest-mega-col a:nth-child(5)  { animation-delay:.08s; }
.dest-mega.open .dest-mega-col a:nth-child(6)  { animation-delay:.10s; }
.dest-mega.open .dest-mega-col a:nth-child(7)  { animation-delay:.12s; }
.dest-mega.open .dest-mega-col a:nth-child(8)  { animation-delay:.14s; }
.dest-mega.open .dest-mega-col a:nth-child(9)  { animation-delay:.16s; }
.dest-mega.open .dest-mega-col a:nth-child(10) { animation-delay:.18s; }
.dest-mega.open .dest-mega-col a:nth-child(11) { animation-delay:.20s; }
.dest-mega.open .dest-mega-col a:nth-child(12) { animation-delay:.22s; }
.dest-mega.open .dest-mega-col a:nth-child(13) { animation-delay:.24s; }

/* ── Footer bar ── */
.dest-mega-footer {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding:13px 24px;
  border-top:1px solid rgba(196,150,90,0.1);
  background:rgba(196,150,90,0.03);
  flex-shrink:0;
}
.dest-mega-footer-cta { display:flex; align-items:center; gap:10px; }
.dest-mega-footer-cta a {
  font-size:0.72rem; font-weight:600; letter-spacing:0.5px;
  color:var(--gold); padding:7px 16px;
  border:1px solid rgba(196,150,90,0.3);
  border-radius:20px; text-decoration:none;
  transition:all 0.2s ease; white-space:nowrap;
}
.dest-mega-footer-cta a:hover { background:var(--gold); color:#0a0600; border-color:var(--gold); }
.dest-mega-footer-cta a.primary {
  background:linear-gradient(135deg,var(--gold),var(--gold-lt));
  color:#0a0600; border-color:transparent;
}
.dest-mega-footer-cta a.primary:hover {
  background:linear-gradient(135deg,var(--gold-lt),var(--gold));
  transform:translateY(-1px);
  box-shadow:0 6px 20px rgba(196,150,90,0.3);
}

/* ── Sakura theme ── */
[data-theme="sakura"] .dest-mega-inner {
  background:#fff;
  border-color:rgba(160,57,90,0.14);
  box-shadow:0 40px 100px rgba(100,30,50,0.14), 0 12px 32px rgba(100,30,50,0.08);
}
[data-theme="sakura"] .dest-mega-col       { border-color:rgba(160,57,90,0.08); }
[data-theme="sakura"] .dest-mega-head      { color:var(--gold); border-color:rgba(160,57,90,0.18); }
[data-theme="sakura"] .dest-mega-col a     { color:var(--text-muted); }
[data-theme="sakura"] .dest-mega-col a:hover { color:var(--text-muted); background:rgba(160,57,90,0.06); }
[data-theme="sakura"] .dest-mega-footer    { border-color:rgba(160,57,90,0.1); background:rgba(160,57,90,0.03); }
/* ── Tablet: 2-col ── */
@media (max-width:1200px) {
  .dest-mega-inner    { width:calc(100% - 64px); }
  .dest-mega-cols     { grid-template-columns:repeat(2,1fr); }
  .dest-mega-col      { border-right:none; border-bottom:1px solid var(--border); max-height:none; }
  .dest-mega-col:nth-child(odd)  { border-right:1px solid var(--border); }
  .dest-mega-col:last-child,
  .dest-mega-col:nth-last-child(2) { border-bottom:none; }
}

/* ── Mobile: hide ── */
@media (max-width:900px) {
  .dest-mega { display:none !important; }
}

/* ────────────────── NAV RIGHT ────────────────── */
.nav-right { display:flex; align-items:center; gap:12px; }

.dn-toggle {
  display:flex; align-items:center; gap:7px;
  background:var(--surface2); border:1px solid var(--border);
  border-radius:40px; padding:6px 14px; cursor:pointer;
  transition:var(--trans); font-size:0.72rem; font-weight:600;
  letter-spacing:0.5px; color:var(--text-muted); font-family:var(--ff-b);
}
.dn-toggle:hover { border-color:var(--border-gold); }
.dn-icon-sun { display:none; }
[data-theme="sakura"] .dn-icon-moon { display:none; }
[data-theme="sakura"] .dn-icon-sun  { display:block; }
.dn-label-day { display:none; }
[data-theme="sakura"] .dn-label-day   { display:inline; }
[data-theme="sakura"] .dn-label-night { display:none; }

.theme-toggle {
  width:42px; height:42px; border:1px solid var(--border); border-radius:50%;
  background:var(--card); cursor:pointer; display:flex; align-items:center;
  justify-content:center; color:var(--text-muted); transition:var(--trans); flex-shrink:0;
}
.theme-toggle:hover { border-color:var(--gold); color:var(--gold); transform:rotate(12deg); }
.theme-toggle svg { width:17px; height:17px; }
.icon-sun { display:none; }
[data-theme="sakura"] .icon-moon { display:none; }
[data-theme="sakura"] .icon-sun  { display:block; }

/* HAMBURGER */
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; }
.hamburger span { display:block; width:24px; height:2px; background:var(--white); border-radius:2px; transition:var(--trans); }
.hamburger.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

/* ────────────────── MOBILE MENU ────────────────── */
.mobile-menu {
  position:fixed; inset:0; background:var(--bg); z-index:1100;
  display:flex; flex-direction:column; padding:28px 32px 40px;
  transform:translateX(100%); transition:transform 0.4s var(--ease);
  overflow-y:auto;
}
.mobile-menu.open { transform:translateX(0); }
.mm-close { align-self:flex-end; background:none; border:1px solid var(--border); color:var(--text-muted); min-width:44px; min-height:44px; border-radius:50%; cursor:pointer; font-size:1.1rem; display:flex; align-items:center; justify-content:center; margin-bottom:24px; }
.mm-logo {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--ff-d);
  font-size: 1.35rem;
  font-weight: 300;
  margin-bottom: 32px;
}
.mm-logo-text em,
.mm-logo em { font-style: italic; color: var(--gold); }
.mm-link { font-size:1.1rem; font-family:var(--ff-d); font-weight:300; padding:16px 0; border-bottom:1px solid var(--border); text-decoration:none; color:var(--text-muted); display:block; }
.mm-group { border-bottom:1px solid var(--border); }
.mm-group-head { display:flex; justify-content:space-between; align-items:center; font-size:1.1rem; font-family:var(--ff-d); font-weight:300; padding:16px 0; cursor:pointer; color:var(--text-muted); }
.mm-group-body { display:none; padding:0 0 12px 16px; }
.mm-group.open .mm-group-body { display:flex; flex-direction:column; gap:4px; }
.mm-group.open .mm-group-head span { transform:rotate(45deg); display:inline-block; }
.mm-group-body a { font-size:0.88rem; color:var(--gray); padding:8px 0; text-decoration:none; border-bottom:1px solid var(--border); display:block; }
.mm-cta { margin-top:24px; background:linear-gradient(135deg,var(--gold),var(--gold-lt)); color:var(--bg); padding:16px 32px; border-radius:50px; text-align:center; font-weight:600; font-size:0.9rem; text-decoration:none; letter-spacing:1px; display:block; }
.mm-bottom { margin-top:auto; padding-top:24px; display:flex; flex-direction:column; gap:12px; }
.mm-bottom a { font-size:0.85rem; color:var(--gray); text-decoration:none; display:flex; align-items:center; gap:8px; }
.mm-theme { background:var(--card); border:1px solid var(--border); color:var(--text-muted); padding:10px 20px; border-radius:50px; cursor:pointer; display:flex; align-items:center; gap:8px; font-size:0.78rem; width:fit-content; }
.mm-dest-body { padding-left:0 !important; }
.mm-sub-group { border-bottom:1px solid var(--border); }
.mm-sub-head { display:flex; justify-content:space-between; align-items:center; font-size:0.88rem; color:var(--gray); padding:10px 16px; cursor:pointer; }
.mm-sub-group.open .mm-sub-head span { transform:rotate(45deg); display:inline-block; }
.mm-sub-body { display:none; padding:4px 16px 10px 28px; }
.mm-sub-group.open .mm-sub-body { display:flex; flex-direction:column; gap:2px; }
.mm-sub-body a { font-size:0.87rem; color:var(--gray); padding:6px 0; text-decoration:none; display:block; }
.mm-sub-body a:hover { color:var(--gold); }
[data-theme="sakura"] .mobile-menu   { background:#FDF6F8; }
[data-theme="sakura"] .mm-link       { color:var(--text-muted); }
[data-theme="sakura"] .mm-group-head { color:var(--text-muted); }
[data-theme="sakura"] .mm-group-body a { color:var(--text-muted); }
[data-theme="sakura"] .mm-sub-head   { color:var(--text-muted); }

/* ────────────────── HERO ────────────────── */
.hero {
  position:relative; height:100vh; min-height:650px;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; padding-top:calc(var(--top-h) + var(--nav-h));
  perspective:1400px;
  perspective-origin:center top;
}
.hero::before,
.hero::after {
  content:'';
  position:absolute;
  border-radius:50%;
  pointer-events:none;
  filter:blur(70px);
  opacity:0.24;
  transform:translateZ(0);
}
.hero::before {
  width:220px; height:220px;
  top:10%; left:6%;
  background:rgba(196,150,90,0.18);
}
.hero::after {
  width:180px; height:180px;
  bottom:16%; right:10%;
  background:rgba(255,255,255,0.15);
}
.hero-bg {
  position:absolute; inset:0; background-size:cover; background-position:center;
  transform:scale(1.05);
  animation:heroZoom 10s var(--ease) forwards;
  transition:transform 0.25s ease-out;
}
@keyframes heroZoom { to{ transform:scale(1); } }
.hero .hero-overlay { position:absolute; inset:0; background:var(--hero-overlay-main); }
.hero-content {
  position:relative; z-index:2; text-align:center; max-width:880px; padding:0 24px;
  transform-style:preserve-3d;
  transition:transform 0.24s ease-out;
  will-change:transform;
}
.hero-btns .btn-primary,
.hero-btns .btn-outline {
  transform-style:preserve-3d;
}
.hero-btns .btn-primary:hover,
.hero-btns .btn-outline:hover {
  transform:translateY(-2px) translateZ(10px);
}
.hero-label { display:inline-flex; align-items:center; flex-wrap:wrap; justify-content:center; gap:6px; font-size:0.65rem; letter-spacing:5px; text-transform:uppercase; color:var(--gold); margin-bottom:20px; animation:fadeUp 0.8s var(--ease) 0.3s both; }
.hero-label .label-sparkle svg { width:10px; height:10px; }
.hero h1 { font-family:var(--ff-d); font-size:clamp(2.8rem,7vw,5.5rem); font-weight:300; line-height:1.05; margin-bottom:22px; color:var(--hero-heading); text-shadow:0 2px 14px rgba(0,0,0,0.18); animation:fadeUp 0.8s var(--ease) 0.5s both; }
.hero h1 em { font-style:italic; color:var(--gold); }
.hero-sub { font-size:clamp(1rem,2.2vw,1.25rem); color:var(--hero-sub); line-height:1.75; max-width:560px; margin:0 auto 40px; text-shadow:0 1px 10px rgba(0,0,0,0.16); animation:fadeUp 0.8s var(--ease) 0.7s both; }
.hero-btns { display:flex; gap:14px; justify-content:center; margin-bottom:50px; flex-wrap:wrap; animation:fadeUp 0.8s var(--ease) 0.9s both; }
.hero-scroll { position:absolute; bottom:36px; left:50%; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px; animation:fadeUp 0.8s var(--ease) 1.2s both; }
.hero-scroll span { font-size:0.58rem; letter-spacing:4px; text-transform:uppercase; color:var(--gray); }
.scroll-line { width:1px; height:40px; background:linear-gradient(to bottom, var(--gold), transparent); animation:scrollLine 2s ease-in-out infinite; }
@keyframes scrollLine { 0%,100%{opacity:0.3;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(0.6)} }
.hero-float { position:absolute; z-index:3; pointer-events:none; }
.hf-card { background:rgba(6,12,26,0.8); backdrop-filter:blur(20px); border:1px solid var(--border); border-radius:14px; padding:14px 18px; display:flex; align-items:center; gap:12px; animation:floatBob 6s ease-in-out infinite; }
.hf-card.lft { bottom:120px; left:60px; }
.hf-card.rgt { bottom:180px; right:60px; animation-duration:5s; animation-delay:-2s; }
.hf-icon { font-size:1.6rem; flex-shrink:0; }
.hf-lbl { font-size:0.6rem; letter-spacing:2px; text-transform:uppercase; color:var(--gray); margin-bottom:2px; }
.hf-val { font-family:var(--ff-d); font-size:1rem; color:var(--text-primary); }
@keyframes floatBob { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
[data-theme="sakura"] .hero h1 { color:var(--hero-heading); text-shadow:0 1px 3px rgba(255,255,255,0.85); }
[data-theme="sakura"] .hero-sub { color:var(--hero-sub); text-shadow:0 1px 3px rgba(255,255,255,0.8); }
[data-theme="sakura"] .hero-scroll span { color:var(--text-muted); }
[data-theme="sakura"] .hf-card { background:rgba(250,245,239,0.92); color:var(--text-muted); border-color:rgba(160,57,90,0.12); }

/* ────────────────── BUTTONS ────────────────── */
.btn-primary { display:inline-flex; align-items:center; gap:8px; background:linear-gradient(135deg,var(--gold-interactive),var(--gold-lt)); color:var(--bg); font-family:var(--ff-b); font-size:0.75rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; padding:14px 32px; border-radius:50px; border:none; cursor:pointer; text-decoration:none; transition:var(--trans); box-shadow:0 8px 28px rgba(196,150,90,0.35); }
.btn-primary:hover { transform:translateY(-3px); box-shadow:0 12px 36px rgba(196,150,90,0.4); }
.btn-outline { display:inline-flex; align-items:center; gap:8px; background:transparent; color:var(--text-muted); font-family:var(--ff-b); font-size:0.75rem; font-weight:600; letter-spacing:2px; text-transform:uppercase; padding:13px 30px; border-radius:50px; border:1px solid rgba(234,228,213,0.3); cursor:pointer; text-decoration:none; transition:var(--trans); }
.btn-outline:hover { border-color:var(--gold-interactive); color:var(--gold-interactive); transform:translateY(-3px); }
[data-theme="sakura"] .btn-primary { background:linear-gradient(135deg,#A0395A,#C0506E); }
[data-theme="sakura"] .btn-outline  { color:var(--gold); border-color:var(--border-gold); }
[data-theme="sakura"] .btn-outline:hover { background:var(--gold); color:#fff; }

/* ────────────────── SECTIONS ────────────────── */
.section { padding:96px 60px; }
.section-label { font-size:0.6rem; letter-spacing:5px; text-transform:uppercase; color:var(--gold-text); display:inline-flex; align-items:center; flex-wrap:wrap; gap:6px; margin-bottom:14px; }
.section-label .label-sparkle { margin-right:0; }
.section-title { font-family:var(--ff-d); font-size:clamp(2rem,4vw,3rem); font-weight:400; line-height:1.1; margin-bottom:18px; color:var(--text-primary); }
.section-title em { font-style:italic; color:var(--gold); }
.section-sub { font-size:0.9rem; color:var(--gray); line-height:1.75; max-width:580px; }
.section-centered { text-align:center; }
.section-centered .section-sub { margin:0 auto; }
[data-theme="sakura"] .section-sub   { color:var(--text-muted); }
[data-theme="sakura"] .section-label { color:var(--gold); }

/* ────────────────── MARQUEE ────────────────── */
.marquee-wrap { overflow:hidden; border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:18px 0; background:rgba(255,255,255,0.015); }
.marquee-track { display:flex; gap:48px; animation:marquee 28s linear infinite; white-space:nowrap; }
.marquee-track:hover { animation-play-state:paused; }
@keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.mq-item { font-family:var(--ff-d); font-size:1.05rem; font-style:italic; color:var(--gray); display:flex; align-items:center; gap:20px; }
.mq-dot { color:var(--gold); font-style:normal; }
[data-theme="sakura"] .mq-item { color:var(--text-muted); }

/* ────────────────── TRUST BAR ────────────────── */
.trust-bar { padding:28px 60px; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:40px; flex-wrap:wrap; background:rgba(255,255,255,0.01); }
.trust-lbl { font-size:0.6rem; letter-spacing:3px; text-transform:uppercase; color:var(--gray-lt); flex-shrink:0; white-space:nowrap; }
.trust-div { width:1px; height:22px; background:var(--border); flex-shrink:0; }
.trust-logos { display:flex; gap:32px; align-items:center; flex-wrap:wrap; flex:1; }
.trust-logo { font-family:var(--ff-d); font-size:0.88rem; font-weight:500; color:rgba(234,228,213,0.2); transition:var(--trans); white-space:nowrap; letter-spacing:0.5px; }
.trust-logo:hover { color:rgba(234,228,213,0.5); }

/* ────────────────── STATS ────────────────── */
.stats-band { background:linear-gradient(135deg, var(--surface), var(--surface2)); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); padding:56px 60px; gap:0; }
.stat-cell { text-align:center; padding:0 32px; border-right:1px solid var(--border); }
.stat-cell:last-child { border-right:none; }
.stat-num { font-family:var(--ff-d); font-size:clamp(2.5rem,5vw,4rem); font-weight:300; color:var(--gold); line-height:1; }
.stat-lbl { font-size:0.7rem; letter-spacing:2px; text-transform:uppercase; color:var(--gray); margin-top:8px; }
[data-theme="sakura"] .stats-band { background:linear-gradient(135deg,#F5ECF0,#EDE0E6); }

/* ────────────────── SERVICES INTERACTIVE ────────────────── */
.si-section { padding:96px 60px; }
.si-wrap { display:grid; grid-template-columns:320px 1fr; gap:1px; border:1px solid var(--border); border-radius:var(--r-xl); overflow:hidden; background:var(--border); }
.si-tabs { display:flex; flex-direction:column; background:var(--surface); border-right:none; }
.si-tab { display:flex; align-items:flex-start; gap:14px; padding:24px 28px; cursor:pointer; border:none; background:none; text-align:left; color:var(--text-muted); border-bottom:1px solid var(--border); position:relative; overflow:hidden; transition:var(--trans); }
.si-tab:last-child { border-bottom:none; }
.si-tab::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:linear-gradient(to bottom,var(--gold),var(--gold-lt)); transform:scaleY(0); transition:transform 0.4s var(--ease); transform-origin:bottom; }
.si-tab.active { background:rgba(196,150,90,0.06); }
.si-tab.active::before { transform:scaleY(1); }
.si-tab:hover:not(.active) { background:rgba(255,255,255,0.02); }
.si-t-icon { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:2px; width:26px; height:26px; color:var(--gold); }
.si-t-icon svg { width:20px; height:20px; }
.si-t-name { font-size:0.85rem; font-weight:600; margin-bottom:3px; }
.si-t-sub  { font-size:0.7rem; color:var(--gray); }
.si-progress { position:absolute; bottom:0; left:0; height:2px; background:linear-gradient(90deg,var(--gold),var(--gold-lt)); width:0; }
.si-tab.active .si-progress { width:100%; }
.si-panels { overflow:hidden; position:relative; background:var(--surface); }
.si-panel { position:absolute; inset:0; opacity:0; pointer-events:none; display:grid; grid-template-columns:1fr 1fr; transition:opacity 0.4s ease; }
.si-panel.active { opacity:1; pointer-events:all; position:relative; }
.si-panel-img { overflow:hidden; }
.si-panel-img img { width:100%; height:100%; object-fit:cover; transition:transform 0.6s; }
.si-panel:hover .si-panel-img img { transform:scale(1.04); }
.si-panel-body { padding:48px 40px; display:flex; flex-direction:column; justify-content:center; }
.si-p-tag   { display:flex; align-items:center; gap:6px; font-size:0.58rem; letter-spacing:4px; text-transform:uppercase; color:var(--gold); margin-bottom:14px; }
.si-p-tag .label-sparkle { margin-right:0; }
.si-p-tag .label-sparkle svg { width:10px; height:10px; }
.si-p-title { font-family:var(--ff-d); font-size:1.8rem; line-height:1.15; margin-bottom:14px; }
.si-p-text  { font-size:0.85rem; color:var(--gray); line-height:1.75; margin-bottom:22px; }
.si-bullets { display:flex; flex-direction:column; gap:8px; margin-bottom:28px; }
.si-bullet  { display:flex; align-items:flex-start; gap:10px; font-size:0.82rem; color:rgba(135, 132, 132, 0.85); }
.si-bullet::before { content:'✦'; color:var(--gold); font-size:0.55rem; flex-shrink:0; margin-top:5px; }
[data-theme="sakura"] .si-wrap { background:var(--border); }
[data-theme="sakura"] .si-tabs { background:var(--surface); }
[data-theme="sakura"] .si-panels { background:var(--surface); }
[data-theme="sakura"] .si-t-name { color:var(--text-muted); }
[data-theme="sakura"] .si-t-sub  { color:var(--text-muted); }
[data-theme="sakura"] .si-p-text { color:var(--text-muted); }
[data-theme="sakura"] .si-tab    { border-color:var(--border); }
[data-theme="sakura"] .si-tab.active { border-color:var(--gold); background:rgba(160,57,90,0.06); }

/* ────────────────── DESTINATIONS TABS ────────────────── */
.dest-section { padding:96px 60px; }
.cont-tabs { display:flex; gap:8px; flex-wrap:wrap; margin:40px 0 36px; }
.cont-tab { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:10px 22px; font-size:0.72rem; font-weight:600; letter-spacing:2px; text-transform:uppercase; background:var(--card); border:1px solid var(--border); border-radius:50px; color:var(--gray); cursor:pointer; transition:var(--trans); }
.cont-tab i[data-lucide]{ flex-shrink:0; color:var(--gold); }
.cont-tab i[data-lucide] svg{ width:14px; height:14px; }
.df-btn i[data-lucide]{ flex-shrink:0; color:var(--gold); }
.df-btn i[data-lucide] svg{ width:13px; height:13px; }
.df-btn.active i[data-lucide], .df-btn:hover i[data-lucide]{ color:inherit; }
.continent-emoji i[data-lucide]{ display:flex; }
.continent-emoji i[data-lucide] svg{ width:36px; height:36px; }
.cont-tab.active { background:linear-gradient(135deg,var(--gold),var(--gold-lt)); color:var(--bg); border-color:transparent; }
.cont-tab:hover:not(.active) { border-color:var(--border-gold); color:var(--text-muted); }
.cont-panel { display:none; }
.cont-panel.active { display:block; }
.dest-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:20px; perspective:1200px; perspective-origin:50% 50%; }
/* Home “Featured destinations” cards only — avoids clash with .dest-cards-grid hub cards */
.dest-grid > .dest-card {
  border-radius:var(--r-lg); overflow:hidden; position:relative; aspect-ratio:4/3; cursor:pointer; display:block; text-decoration:none; color:inherit;
  transform:perspective(900px) rotateX(0) rotateY(0) translateZ(0);
  transform-style:preserve-3d;
  transition:transform 0.5s var(--ease), box-shadow 0.5s var(--ease);
  box-shadow:0 8px 28px rgba(0,0,0,0.12);
}
.dest-grid > .dest-card:hover {
  transform:perspective(900px) rotateX(3deg) rotateY(-4.5deg) translateZ(0);
  box-shadow:0 22px 48px rgba(0,0,0,0.38);
  z-index:1;
}
.dest-grid > .dest-card > img { width:100%; height:100%; object-fit:cover; transition:transform 0.6s var(--ease); }
.dest-grid > .dest-card:hover > img { transform:scale(1.06); }
.dest-grid > .dest-card > .dest-card-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(6,12,26,0.92) 0%, transparent 55%); }
.dest-grid > .dest-card > .dest-card-body { position:absolute; bottom:0; left:0; right:0; padding:24px; }
.dest-grid > .dest-card > .dest-card-body h4 { font-family:var(--ff-d); font-size:1.4rem; margin-bottom:4px; }
.dest-grid > .dest-card > .dest-card-body p { font-size:0.75rem; color:rgba(234,228,213,0.65); margin-bottom:10px; }
.dest-tag { display:inline-block; background:linear-gradient(135deg,var(--gold),var(--gold-lt)); color:var(--bg); font-size:0.6rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; padding:4px 12px; border-radius:50px; }

/* ────────────────── PACKAGES ────────────────── */
.pkg-tabs { display:flex; gap:0; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.pkg-tab { padding:12px 26px; font-size:0.7rem; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--gray); cursor:pointer; background:none; border:none; border-bottom:2px solid transparent; margin-bottom:-1px; transition:var(--trans); }
.pkg-tab.active { color:var(--gold); border-bottom-color:var(--gold); }
.pkg-tab:hover:not(.active) { color:var(--text-muted); }
.cards-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px; perspective:1100px; perspective-origin:50% 40%; }
.card {
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); overflow:hidden;
  transform:perspective(880px) rotateX(0) rotateY(0) translateZ(0);
  transform-style:preserve-3d;
  transition:transform 0.45s var(--ease), border-color 0.32s var(--ease), box-shadow 0.45s var(--ease);
}
.card:hover {
  transform:perspective(880px) rotateX(2deg) rotateY(3deg) translateY(-5px);
  border-color:var(--border-gold);
  box-shadow:0 16px 44px rgba(0,0,0,0.38);
}
.card-img-wrap { height:210px; overflow:hidden; position:relative; }
.card-img { width:100%; height:100%; object-fit:cover; transition:transform 0.6s; }
.card:hover .card-img { transform:scale(1.05); }
.card-badge { position:absolute; top:14px; right:14px; background:linear-gradient(135deg,var(--gold),var(--gold-lt)); color:var(--bg); font-size:0.6rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; padding:5px 12px; border-radius:50px; }
.card-body { padding:24px; }
.card-tag { display:flex; align-items:center; gap:6px; font-size:0.6rem; letter-spacing:3px; text-transform:uppercase; color:var(--gold); margin-bottom:8px; }
.card-tag .label-sparkle svg { width:9px; height:9px; }
.card-title { font-family:var(--ff-d); font-size:1.3rem; margin-bottom:8px; color:var(--text-primary); }
.card-text { font-size:0.82rem; color:var(--gray); line-height:1.65; margin-bottom:18px; }
.card-footer { display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--border); padding-top:24px; }
.card-price { font-family:var(--ff-d); font-size:1.2rem; color:var(--gold); }
.card-price span { font-family:var(--ff-b); font-size:0.7rem; color:var(--gray); }
.card-link { font-size:0.7rem; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--gold); text-decoration:none; transition:var(--trans); }
.card-link:hover { letter-spacing:3px; }
[data-theme="sakura"] .card-text { color:var(--text-muted); }
[data-theme="sakura"] .card-price { color:var(--text-muted); }

/* ────────────────── OFFER BANNER ────────────────── */
.offer-banner { background:linear-gradient(135deg,rgba(196,150,90,0.1),rgba(196,150,90,0.02)); border:1px solid var(--border); border-radius:var(--r-xl); padding:64px; display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.offer-badge-pill { display:inline-block; background:linear-gradient(135deg,var(--gold),var(--gold-lt)); color:var(--bg); font-size:0.6rem; font-weight:700; letter-spacing:3px; text-transform:uppercase; padding:7px 16px; border-radius:50px; margin-bottom:20px; }
.offer-perks { display:flex; flex-direction:column; gap:9px; margin:22px 0 28px; }
.offer-perk { display:flex; align-items:flex-start; gap:10px; font-size:0.84rem; color:var(--gray); }
.offer-perk::before { content:'✦'; color:var(--gold); font-size:0.55rem; flex-shrink:0; margin-top:5px; }

/* ────────────────── WHY US ────────────────── */
.why-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.why-img-stack { position:relative; }
.why-img-main { width:100%; border-radius:var(--r-xl); display:block; aspect-ratio:4/5; object-fit:cover; }
.why-img-accent { position:absolute; bottom:-28px; right:-28px; width:54%; border-radius:var(--r-lg); border:4px solid var(--bg); box-shadow:var(--shadow-sm); aspect-ratio:4/3; object-fit:cover; }
.why-award { position:absolute; top:-18px; left:-18px; background:linear-gradient(135deg,var(--gold),var(--gold-lt)); border-radius:16px; padding:16px 20px; text-align:center; box-shadow:0 12px 36px rgba(196,150,90,0.3); }
.why-award-n { font-family:var(--ff-d); font-size:2.2rem; font-weight:500; color:var(--bg); line-height:1; }
.why-award-t { font-size:0.58rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--bg); opacity:0.8; }
.why-feats { display:flex; flex-direction:column; gap:22px; margin-top:32px; }
.why-feat { display:flex; gap:16px; align-items:flex-start; }
.why-feat-icon { width:46px; height:46px; flex-shrink:0; background:linear-gradient(135deg,rgba(196,150,90,0.12),rgba(196,150,90,0.04)); border:1px solid var(--border-gold); border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.2rem; }
.why-feat-text h4 { font-family:var(--ff-d); font-size:1.1rem; margin-bottom:4px; }
.why-feat-text p { font-size:0.82rem; color:var(--gray); line-height:1.65; }
[data-theme="sakura"] .why-feat p { color:var(--text-muted); }

/* ────────────────── TESTIMONIALS ────────────────── */
.testi-wrap { overflow:hidden; margin-top:56px; }
.testi-track { display:flex; gap:24px; transition:transform 0.55s var(--ease); }
.testi-card { min-width:calc(33.33% - 16px); background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); padding:36px; flex-shrink:0; transition:var(--trans); }
.testi-card:hover { border-color:var(--border-gold); }
.stars { color:var(--gold); font-size:0.9rem; letter-spacing:2px; margin-bottom:16px; }
.testi-text { font-family:var(--ff-d); font-size:1.05rem; font-style:italic; line-height:1.75; color:rgba(234,228,213,0.85); margin-bottom:24px; }
.testi-author { display:flex; align-items:center; gap:12px; }
.testi-avatar { width:44px; height:44px; border-radius:50%; object-fit:cover; border:2px solid var(--gold); flex-shrink:0; }
.testi-name { font-weight:600; font-size:0.86rem; margin-bottom:2px; }
.testi-loc  { font-size:0.7rem; color:var(--gray); }
.slider-ctrl { display:flex; align-items:center; justify-content:center; gap:16px; margin-top:28px; }
.s-arrow { width:42px; height:42px; border:1px solid var(--border); border-radius:50%; background:var(--card); color:var(--text-muted); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:var(--trans); font-size:0.9rem; }
.s-arrow:hover { border-color:var(--gold); color:var(--gold); }
.s-dots { display:flex; gap:8px; align-items:center; }
.s-dot { width:8px; height:8px; border-radius:50%; background:var(--border); cursor:pointer; border:none; transition:var(--trans); }
.s-dot.active { background:var(--gold); width:24px; border-radius:4px; }
[data-theme="sakura"] .testi-text { color:var(--text-muted); }
[data-theme="sakura"] .testi-loc  { color:var(--text-muted); }

/* ────────────────── BLOG ────────────────── */
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:52px; }
.blog-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); overflow:hidden; transition:var(--trans); text-decoration:none; color:inherit; display:block; }
.blog-card:hover { transform:translateY(-6px); border-color:var(--border-gold); box-shadow:var(--shadow-sm); }
.blog-img-wrap { height:190px; overflow:hidden; position:relative; }
.blog-img { width:100%; height:100%; object-fit:cover; transition:transform 0.6s; }
.blog-card:hover .blog-img { transform:scale(1.05); }
.blog-cat { position:absolute; bottom:12px; left:12px; background:var(--gold); color:var(--bg); font-size:0.58rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; padding:4px 12px; border-radius:50px; }
.blog-body { padding:24px; }
.blog-meta { font-size:0.68rem; color:var(--gray); margin-bottom:10px; display:flex; gap:14px; }
.blog-title { font-family:var(--ff-d); font-size:1.2rem; line-height:1.3; margin-bottom:8px; }
.blog-text { font-size:0.8rem; color:rgba(234,228,213,0.72); line-height:1.65; margin-bottom:14px; }
.blog-more { font-size:0.66rem; letter-spacing:2px; text-transform:uppercase; color:var(--gold); }
[data-theme="sakura"] .blog-meta { color:var(--text-muted); }
[data-theme="sakura"] .blog-text { color:rgba(26,10,16,0.72); }

/* ────────────────── NEWSLETTER ────────────────── */
.newsletter-band { background:linear-gradient(135deg,rgba(196,150,90,0.1),rgba(196,150,90,0.02)); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:80px 60px; text-align:center; }
.nl-form { display:flex; max-width:500px; margin:28px auto 0; }
.nl-form input { flex:1; background:rgba(255,255,255,0.06); border:1px solid var(--border); border-right:none; border-radius:50px 0 0 50px; padding:15px 22px; color:var(--text-muted); font-family:var(--ff-b); font-size:0.88rem; outline:none; transition:var(--trans); }
.nl-form input:focus { border-color:var(--gold); }
.nl-form input::placeholder { color:var(--gray-lt); }
.nl-form button { background:linear-gradient(135deg,var(--gold),var(--gold-lt)); color:var(--bg); border:none; border-radius:0 50px 50px 0; padding:15px 28px; font-family:var(--ff-b); font-size:0.73rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; cursor:pointer; transition:var(--trans); white-space:nowrap; }
.nl-perks { display:flex; gap:28px; justify-content:center; margin-top:18px; flex-wrap:wrap; }
.nl-perk { font-size:0.7rem; color:var(--gray); }
.nl-perk::before { content:'✓  '; color:var(--gold); }

/* ────────────────── AWARDS ────────────────── */
.awards-band { padding:72px 60px; border-bottom:1px solid var(--border); }
.awards-grid { display:flex; gap:20px; flex-wrap:wrap; margin-top:32px; }
.award-item { display:flex; align-items:center; gap:14px; padding:22px 28px; background:var(--card); border:1px solid var(--border); border-radius:var(--r); flex:1; min-width:180px; transition:var(--trans); }
.award-item:hover { border-color:var(--border-gold); transform:translateY(-3px); }
.award-icon { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:44px; height:44px; color:var(--gold); }
.award-icon svg { width:26px; height:26px; }
.award-name { font-size:0.76rem; font-weight:600; margin-bottom:2px; }
.award-org  { font-size:0.66rem; color:var(--gray); }
[data-theme="sakura"] .award-org { color:var(--text-muted); }

/* ────────────────── HOT OFFERS ────────────────── */
.offers-pre-footer { padding:80px 60px; background:var(--bg); }
.opf-head { text-align:center; margin-bottom:52px; }
.opf-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; grid-template-rows:auto auto; gap:20px; max-width:1320px; margin:0 auto; }
.opf-card { position:relative; border-radius:var(--r-xl); overflow:hidden; text-decoration:none; display:block; transition:transform .4s var(--ease); }
.opf-card:hover { transform:translateY(-6px); }
.opf-card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--ease); }
.opf-card:hover img { transform:scale(1.06); }
.opf-ov { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.82) 0%,rgba(0,0,0,.2) 55%,transparent 100%); }
.opf-body { position:absolute; bottom:0; left:0; right:0; padding:22px 20px; }
.opf-badge { display:inline-flex; align-items:center; background:var(--gold); color:#0a0600; font-size:.58rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; padding:4px 10px; border-radius:30px; margin-bottom:9px; }
.opf-badge-hot { gap:2px; }
.opf-title { font-family:var(--ff-d); font-size:1.45rem; font-weight:500; color:#fff; line-height:1.2; margin-bottom:6px; }
.opf-meta { font-size:.74rem; color:rgba(255,255,255,.72); display:flex; gap:8px; }
.opf-price { font-weight:700; color:#f0c070; }
.opf-feat { grid-row:1/3; min-height:460px; }
.opf-feat .opf-title { font-size:1.7rem; }
.opf-sm { min-height:195px; }
.opf-sm .opf-title { font-size:1.2rem; }
.opf-see-all { text-align:center; margin-top:44px; }

/* ────────────────── PRE-FOOTER TRUST ────────────────── */
.footer-pre-band { background:linear-gradient(135deg, var(--surface2), var(--surface)); border-top:1px solid var(--border); padding:56px 60px; }
.fpb-inner { display:grid; grid-template-columns:repeat(4,1fr); gap:32px; align-items:center; }
.fpb-card { background:var(--card); border:1px solid var(--border); border-radius:var(--r-lg); padding:24px 22px; text-align:center; transition:var(--trans); }
.fpb-card:hover { border-color:var(--border-gold); transform:translateY(-3px); }
.fpb-icon { margin-bottom:10px; }
.fpb-title { font-family:var(--ff-d); font-size:1.1rem; margin-bottom:6px; }
.fpb-desc { font-size:0.75rem; color:var(--gray); line-height:1.6; }
[data-theme="sakura"] .fpb-card { background:#fff; border-color:rgba(160,57,90,0.12); }
[data-theme="sakura"] .fpb-desc  { color:var(--text-muted); }

/* ────────────────── FOOTER ────────────────── */
.footer { background:var(--surface2); border-top:1px solid var(--border); }
.footer-brand-strip { background:linear-gradient(135deg,rgba(196,150,90,0.12),rgba(196,150,90,0.03)); border-bottom:1px solid var(--border); padding:60px; }
.fbs-inner { display:flex; align-items:center; justify-content:space-between; gap:48px; flex-wrap:wrap; }
.fbs-tagline { font-size:0.62rem; letter-spacing:4px; text-transform:uppercase; color:var(--gold); margin-bottom:12px; }
.fbs-headline { font-family:var(--ff-d); font-size:clamp(1.6rem,3.5vw,2.6rem); font-weight:300; line-height:1.15; margin-bottom:28px; }
.fbs-headline em { font-style:italic; color:var(--gold); }
.fbs-actions { display:flex; gap:12px; flex-wrap:wrap; }
.fbs-right { display:flex; gap:32px; flex-wrap:wrap; }
.fbs-stat { text-align:center; }
.fbs-num { font-family:var(--ff-d); font-size:2.2rem; font-weight:300; color:var(--gold); display:block; line-height:1; }
.fbs-lbl { font-size:0.62rem; letter-spacing:2px; text-transform:uppercase; color:var(--gray); margin-top:6px; display:block; }
[data-theme="sakura"] .footer-brand-strip { background:linear-gradient(135deg,#EEE4DC,#E8DDD4); }
.footer-main { display:grid; grid-template-columns:300px 1fr; gap:60px; padding:60px; border-bottom:1px solid var(--border); }
.footer-logo { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--text-muted); font-family:var(--ff-d); font-size:1.5rem; font-weight:400; margin-bottom:18px; }
.footer-logo .brand-mark__img { vertical-align: middle; }
.footer-logo em { font-style:italic; color:var(--gold); }
.footer-brand-col > p { font-size:0.82rem; color:var(--gray); line-height:1.75; margin-bottom:20px; }
.footer-accreditations { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:22px; }
.accr-badge { font-size:0.68rem; font-weight:600; letter-spacing:1.5px; background:var(--card); border:1px solid var(--border); border-radius:6px; padding:5px 12px; color:var(--gray); }
.footer-social { display:flex; gap:10px; }
.footer-social a { width:38px; height:38px; background:var(--card); border:1px solid var(--border); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gray); text-decoration:none; transition:var(--trans); }
.footer-social a:hover { border-color:var(--gold); color:var(--gold); background:rgba(196,150,90,0.08); }
.footer-nav-cols { display:grid; grid-template-columns:repeat(4,1fr); gap:32px; }
.footer-col h5 { font-size:0.75rem; font-weight:700; letter-spacing:4px; text-transform:uppercase; color:var(--gold); margin-bottom:18px; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
.footer-col li a { font-size:0.82rem; color:var(--gray); text-decoration:none; transition:var(--trans); display:block; }
.footer-col li a:hover { color:var(--gold); padding-left:8px; border-left:2px solid var(--gold); }
.footer-contact-col { display:flex; flex-direction:column; }
.fc-item { display:flex; align-items:flex-start; gap:12px; font-size:0.82rem; color:var(--gray); margin-bottom:14px; line-height:1.6; }
.fc-item a { color:var(--gray); text-decoration:none; transition:var(--trans); }
.fc-item a:hover { color:var(--gold); }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; padding:20px 60px; flex-wrap:wrap; gap:12px; }
.fb-left { display:flex; align-items:center; gap:12px; font-size:0.75rem; color:var(--gray-lt); flex-wrap:wrap; }
.fb-dot { opacity:0.4; }
.fb-right { display:flex; gap:20px; flex-wrap:wrap; }
.fb-right a { font-size:0.75rem; color:var(--gray-lt); text-decoration:none; transition:var(--trans); }
.fb-right a:hover { color:var(--gold); }
[data-theme="sakura"] .footer-bottom { background:#F0E4E9; }
[data-theme="sakura"] .fb-left,[data-theme="sakura"] .fb-right a { color:var(--text-muted); }
[data-theme="sakura"] .footer-col h5 { color:var(--gold); }
[data-theme="sakura"] .footer-col li a { color:var(--text-muted); }
[data-theme="sakura"] .footer-col li a:hover { color:var(--gold); }
[data-theme="sakura"] .fc-item,[data-theme="sakura"] .fc-item a { color:var(--text-muted); }
[data-theme="sakura"] .fc-item a:hover { color:var(--gold); }
[data-theme="sakura"] .fbs-tagline { color:rgba(26,10,16,0.78); }

/* ────────────────── FAB ────────────────── */
.fab-wrap { position:fixed; bottom:28px; right:28px; display:flex; flex-direction:column; gap:10px; z-index:500; }
.fab { width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:var(--trans); border:none; box-shadow:var(--shadow-sm); }
.fab-wa { background:#25D366; color:#fff; }
.fab-wa:hover { transform:scale(1.12); box-shadow:0 12px 36px rgba(37,211,102,0.4); }
.fab-top { background:linear-gradient(135deg,var(--gold),var(--gold-lt)); color:var(--bg); opacity:0; pointer-events:none; }
.fab-top.show { opacity:1; pointer-events:all; }
.fab-top:hover { transform:translateY(-4px); }

/* ────────────────── ANIMATIONS ────────────────── */
@keyframes fadeUp { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }
.reveal { opacity:0; transform:translateY(28px); transition:opacity 0.6s var(--ease), transform 0.6s var(--ease); }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ────────────────── ACCESSIBILITY ────────────────── */
a:focus-visible,
button:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

/* ════════════════════════════════════════════════════════
   THEME VARIANTS
════════════════════════════════════════════════════════ */
[data-theme="forest"] {
  --bg:#060F0A; --surface:#0C1F12; --surface2:#122918; --card:rgba(255,255,255,.04);
  --gold:#C4965A; --gold-lt:#DEB478; --gold-dk:#9B7140; --teal:#3DBF7A;
  --white:#E8F0E4; --gray:rgba(232,240,228,.52); --gray-lt:rgba(232,240,228,.25);
  --border:rgba(255,255,255,.09); --border-gold:rgba(196,150,90,.3);
  --shadow:0 24px 80px rgba(0,0,0,.65); --shadow-sm:0 8px 32px rgba(0,0,0,.4);
}
[data-theme="dusk"] {
  --bg:#130805; --surface:#1E100A; --surface2:#271508; --card:rgba(255,255,255,.04);
  --gold:#D4884A; --gold-lt:#E8A468; --gold-dk:#A86030; --teal:#C47840;
  --white:#F2E6D8; --gray:rgba(242,230,216,.52); --gray-lt:rgba(242,230,216,.25);
  --border:rgba(255,255,255,.09); --border-gold:rgba(212,136,74,.3);
  --shadow:0 24px 80px rgba(0,0,0,.65); --shadow-sm:0 8px 32px rgba(0,0,0,.4);
}
[data-theme="ocean"] {
  --bg:#030C14; --surface:#071A28; --surface2:#0C2538; --card:rgba(255,255,255,.04);
  --gold:#0EC6DC; --gold-lt:#3AD8EC; --gold-dk:#0890A0; --teal:#0EC6DC;
  --white:#D8F2F8; --gray:rgba(216,242,248,.5); --gray-lt:rgba(216,242,248,.25);
  --border:rgba(14,198,220,.12); --border-gold:rgba(14,198,220,.28);
  --shadow:0 24px 80px rgba(0,0,0,.72); --shadow-sm:0 8px 32px rgba(0,0,0,.42);
}
[data-theme="indigo"] {
  --bg:#0A0614; --surface:#120D22; --surface2:#1A1430; --card:rgba(255,255,255,.04);
  --gold:#A78BFA; --gold-lt:#C4B5FD; --gold-dk:#7C5FD0; --teal:#A78BFA;
  --white:#EDE8F8; --gray:rgba(237,232,248,.5); --gray-lt:rgba(237,232,248,.25);
  --border:rgba(167,139,250,.12); --border-gold:rgba(167,139,250,.28);
  --shadow:0 24px 80px rgba(0,0,0,.72); --shadow-sm:0 8px 32px rgba(0,0,0,.42);
}

/* ────────────────── RESPONSIVE ────────────────── */
@media(max-width:1200px) {
  .footer-nav-cols { grid-template-columns:repeat(2,1fr); }
  .cards-grid { grid-template-columns:repeat(2,1fr); }
  .opf-grid { grid-template-columns:1fr 1fr; }
  .opf-feat { grid-row:auto; min-height:280px; }
}

/* — Tablets & phones: home hero, floating search, header — */
@media (max-width: 900px) {
  .top-bar { padding-inline: 14px; }
  .nav {
    gap: 8px;
    padding-inline: 16px;
  }
  .nav-logo {
    min-width: 0;
    flex: 1 1 auto;
    gap: 6px;
  }
  .logo-text { font-size: 1.05rem; }
  .brand-mark { height: 28px; }
  .brand-mark__img { max-width: 92px; }
  .dn-toggle { padding: 6px 10px; }

  .hero {
    height: auto;
    min-height: 0;
    align-items: flex-start;
    padding-top: calc(var(--top-h) + var(--nav-h) + env(safe-area-inset-top, 0px) + 10px);
    padding-bottom: 20px;
  }
  .hero-content {
    max-width: 100%;
    width: 100%;
    padding-inline: 16px;
    box-sizing: border-box;
    overflow-wrap: break-word;
  }
  .hero-label {
    font-size: 0.58rem;
    letter-spacing: 3px;
    line-height: 1.35;
  }
  .hero h1 {
    font-size: clamp(2rem, 8.5vw, 3rem);
    margin-bottom: 16px;
  }
  .hero-sub {
    max-width: 100%;
    margin-bottom: 20px;
  }
  .hero-btns {
    margin-bottom: 16px;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding-inline: 8px;
    width: 100%;
    box-sizing: border-box;
  }
  .hero-btns .btn-primary,
  .hero-btns .btn-outline {
    width: 100%;
    max-width: 400px;
    margin-inline: auto;
    justify-content: center;
  }

  .search-float {
    transform: none;
    margin-top: -12px;
    padding-inline: 16px;
    padding-bottom: max(24px, env(safe-area-inset-bottom, 0px));
    width: 100%;
    box-sizing: border-box;
  }
  .search-float:hover .search-box {
    transform: none;
    box-shadow: var(--shadow);
  }
  .search-box {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 18px 16px;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .s-field {
    min-width: 0;
    width: 100%;
    flex: none;
  }
  .search-box > .btn-primary,
  .search-box #heroSearchBtn {
    width: 100%;
    justify-content: center;
    margin-top: 2px;
  }

  .dp-hero {
    height: auto;
    min-height: min(100dvh, 720px);
  }
}

@media(max-width:1024px) {
  .nav-links { display:none; }
  .hamburger { display:flex; }
  .si-wrap { grid-template-columns:1fr; }
  .si-tabs { flex-direction:row; overflow-x:auto; border-right:none; border-bottom:1px solid var(--border); }
  .si-tab { min-width:160px; border-bottom:none; border-right:1px solid var(--border); }
  .si-tab::before { width:100%; height:3px; top:auto; bottom:0; left:0; transform:scaleX(0); transform-origin:right; }
  .si-tab.active::before { transform:scaleX(1); }
  .si-panel { grid-template-columns:1fr; }
  .si-panel-img { height:280px; }
  .why-grid { grid-template-columns:1fr; }
  .why-img-accent { display:none; }
  .footer-main { grid-template-columns:1fr; }
  .hf-card { display:none; }
  .fpb-inner { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:768px) {
  .top-bar { padding:0 20px; }
  .hide-sm { display:none!important; }
  .nav { padding:0 20px; }
  .section { padding:52px 20px; }
  .si-section { padding:52px 20px; }
  .dest-section { padding:52px 20px; }
  .stats-grid { grid-template-columns:repeat(2,1fr); padding:40px 24px; }
  .stat-cell { border-right:none; border-bottom:1px solid var(--border); padding:16px; }
  .stat-cell:nth-child(odd) { border-right:1px solid var(--border); }
  .stat-cell:last-child,.stat-cell:nth-last-child(2) { border-bottom:none; }
  .offer-banner { grid-template-columns:1fr; padding:36px 24px; gap:32px; }
  .footer-brand-strip { padding:40px 24px; }
  .fbs-inner { flex-direction:column; align-items:flex-start; }
  .footer-main { padding:40px 24px; }
  .footer-nav-cols { grid-template-columns:1fr 1fr; }
  .footer-bottom { padding:16px 24px; flex-direction:column; align-items:flex-start; gap:8px; }
  .trust-bar { padding:20px 24px; }
  .trust-logos { gap:20px; }
  .awards-band { padding:40px 24px; }
  .newsletter-band { padding:56px 24px; }
  .nl-form { flex-direction:column; }
  .nl-form input { border-right:1px solid var(--border); border-radius:50px 50px 0 0; }
  .nl-form button { border-radius:0 0 50px 50px; margin-top:0; }
  .search-box {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .search-box > .btn-primary,
  .search-box #heroSearchBtn {
    width: 100%;
    justify-content: center;
  }
  .cont-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 8px;
    padding-bottom: 8px;
    margin-inline: -2px;
    scrollbar-width: thin;
  }
  .cont-tab { flex-shrink: 0; }
  .pkg-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }
  .pkg-tab { flex-shrink: 0; }
  .blog-grid { grid-template-columns:1fr; }
  .cards-grid { grid-template-columns:1fr; }
  .offers-pre-footer { padding:60px 20px; }
  .opf-grid { grid-template-columns:1fr; }
  .fpb-inner { grid-template-columns:1fr 1fr; }
  .footer-pre-band { padding:40px 24px; }
  .search-float { padding-inline: 16px; }
  .dest-grid { grid-template-columns:1fr 1fr; }
  .testi-card { min-width:100%; }
  .fbs-right { gap:20px; }
  .fab-wrap {
    bottom: max(16px, env(safe-area-inset-bottom, 0px));
    right: max(12px, env(safe-area-inset-right, 0px));
  }
}
@media(max-width:480px) {
  .hero h1 { font-size: clamp(1.85rem, 9vw, 2.4rem); }
  .dest-grid { grid-template-columns:1fr; }
  .footer-nav-cols { grid-template-columns:1fr; }
  .dn-toggle span { display:none; }
}
@media (max-width: 360px) {
  .logo-text { display: none; }
  .nav { padding-inline: 10px; }
}
/* about us  */
.pf-cta {
  position: relative;
  overflow: hidden;
  background: var(--bg);
}
.pf-cta-bg {
  position: absolute; inset: 0;
  background-image: url('https://images.unsplash.com/photo-1476514525535-07fb3b4ae5f1?w=1800&q=60');
  background-size: cover;
  background-position: center 40%;
  opacity: .12;
  pointer-events: none;
}
[data-theme="sakura"] .pf-cta-bg { opacity: .06; }
[data-theme="sakura"] .pf-cta-overlay {
  background: linear-gradient(105deg, var(--bg) 0%, rgba(253,246,248,0.94) 35%, rgba(253,246,248,0.94) 65%, var(--bg) 100%);
}
.pf-cta-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(105deg, var(--bg) 0%, transparent 55%, var(--bg) 100%);
  pointer-events: none;
}
.pf-cta-inner {
  position: relative; z-index: 1;
  display: grid;
  grid-template-columns: 1.15fr 1px 1fr;
  gap: 0;
  max-width: 1300px;
  margin: 0 auto;
  padding: 72px 60px;
  align-items: center;
}
.pf-divider {
  width: 1px;
  align-self: stretch;
  background: var(--border);
  margin: 0 48px;
}

/* — About column — */
.pf-about-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .6rem;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 18px;
}
.pf-about-tag::before {
  content: '';
  display: block;
  width: 28px; height: 1px;
  background: var(--gold);
  opacity: .6;
}
.pf-about h2 {
  font-family: var(--ff-d);
  font-size: clamp(1.7rem, 2.6vw, 2.4rem);
  font-weight: 300;
  line-height: 1.18;
  margin-bottom: 18px;
  color: var(--white);
}
.pf-about h2 em { font-style: italic; color: var(--gold); }
.pf-about p {
  font-size: .85rem;
  color: var(--gray);
  line-height: 1.8;
  margin-bottom: 22px;
  max-width: 380px;
}
.pf-trust-pills { display: flex; gap: 8px; flex-wrap: wrap; }
.pf-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 30px;
  padding: 5px 12px;
  font-size: .67rem;
  letter-spacing: .5px;
  color: var(--gray);
  font-family: var(--ff-b);
}

/* — Stats rising trend bars — */
.pf-trend-label {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: .6rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 24px;
  font-family: var(--ff-b);
}
.pf-trend-grid {
  display: flex;
  align-items: flex-end;
  gap: 18px;
  height: 200px;
  padding-bottom: 2px;
}
.pf-trend-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  justify-content: flex-end;
}
.pf-trend-bar-wrap {
  width: 100%;
  flex: 1;
  display: flex;
  align-items: flex-end;
  margin-bottom: 10px;
}
.pf-trend-bar {
  width: 100%;
  height: 0;
  border-radius: 6px 6px 0 0;
  background: linear-gradient(to top, var(--gold) 0%, rgba(196,150,90,.35) 100%);
  transition: height 1.4s cubic-bezier(.34,1.56,.64,1);
  position: relative;
}
.pf-trend-bar::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  border-radius: 6px 6px 0 0;
  background: var(--gold);
  box-shadow: 0 0 10px rgba(196,150,90,.6);
}
.pf-trend-item.pf-trend-peak .pf-trend-bar {
  background: linear-gradient(to top, var(--gold) 0%, rgba(196,150,90,.55) 100%);
  box-shadow: 0 -4px 24px rgba(196,150,90,.2);
}
.pf-trend-num {
  font-family: var(--ff-d);
  font-size: 1.55rem;
  font-weight: 300;
  color: var(--gold);
  line-height: 1;
  margin-bottom: 5px;
  white-space: nowrap;
}
.pf-trend-icon { display:flex; align-items:center; justify-content:center; margin-bottom: 5px; color: var(--gold); min-height: 22px; }
.pf-trend-icon svg { width: 18px; height: 18px; }
.pf-trend-lbl {
  font-size: .58rem;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--gray);
  text-align: center;
  line-height: 1.45;
}
.pf-trend-baseline {
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.pf-trend-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, var(--gold) 0%, rgba(196,150,90,.15) 100%);
}
.pf-trend-baseline span {
  font-size: .6rem;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gray);
  white-space: nowrap;
}

/* — Responsive — */
@media(max-width: 1100px) {
  .pf-cta-inner { grid-template-columns: 1fr; gap: 52px; padding: 60px 40px; }
  .pf-divider { display: none; }
  .pf-about p { max-width: 100%; }
  .pf-features { max-width: 520px; }
  .pf-trend-grid { height: 160px; }
}
@media(max-width: 700px) {
  .pf-cta-inner { padding: 48px 20px; }
  .pf-stats-card { padding: 18px 14px 14px; }
}

/* — Feature highlights — */
.pf-features {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 28px;
}
.pf-feature {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.pf-feature-icon {
  flex-shrink: 0;
  width: 36px; height: 36px;
  border-radius: 10px;
  background: rgba(196,150,90,0.12);
  border: 1px solid rgba(196,150,90,0.22);
  display: flex; align-items: center; justify-content: center;
  color: var(--gold);
}
.pf-feature-title {
  font-family: var(--ff-b);
  font-size: .82rem;
  font-weight: 600;
  color: var(--white);
  margin-bottom: 2px;
  letter-spacing: .3px;
}
.pf-feature-sub {
  font-size: .72rem;
  color: var(--gray);
  line-height: 1.5;
}
.pf-about-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gold);
  text-decoration: none;
  border-bottom: 1px solid rgba(196,150,90,.35);
  padding-bottom: 3px;
  transition: var(--trans);
}
.pf-about-cta:hover { color: var(--gold-lt); border-color: var(--gold); gap: 10px; }

/* — Stats glass card — */
.pf-stats-card {
  background: var(--card);
  border: 1px solid var(--border-gold);
  border-radius: 16px;
  padding: 24px 20px 18px;
  backdrop-filter: blur(8px);
}

/* — Sakura theme — */
[data-theme="sakura"] .pf-about h2 { color: var(--text-primary); }
[data-theme="sakura"] .pf-about p { color: var(--text-secondary); }
[data-theme="sakura"] .pf-trend-lbl { color: var(--text-muted); }
[data-theme="sakura"] .pf-trend-baseline span { color: var(--text-muted); }
[data-theme="sakura"] .pf-about-tag { color: var(--gold); }
[data-theme="sakura"] .pf-feature-title { color: var(--text-primary); }
[data-theme="sakura"] .pf-feature-sub { color: var(--text-secondary); }
[data-theme="sakura"] .pf-feature-icon { background: rgba(160,57,90,.08); border-color: rgba(160,57,90,.18); color: var(--gold); }
[data-theme="sakura"] .pf-about-cta { color: var(--gold); }
[data-theme="sakura"] .pf-stats-card { background: rgba(255,255,255,0.7); border-color: rgba(160,57,90,.18); }

/* Lucide wrappers (service + destination pages; emoji replaced) */
.vt-icon { display:flex; align-items:center; justify-content:center; margin-bottom:16px; color:var(--gold); min-height:40px; }
.vt-icon svg { width:32px; height:32px; }
.doc-card-icon { display:flex; align-items:center; justify-content:center; margin:0 auto 20px; color:var(--gold); }
.doc-card-icon svg { width:28px; height:28px; }
.dw-icon { display:flex; align-items:center; justify-content:center; margin-bottom:12px; color:var(--gold); min-height:36px; }
.dw-icon svg { width:28px; height:28px; }
.cfi-icon { display:flex; align-items:center; justify-content:center; flex-shrink:0; width:48px; height:48px; border-radius:14px; background:rgba(196,150,90,.1); color:var(--gold); }
.cfi-icon svg { width:22px; height:22px; }
.bt-tip-icon { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--gold); }
.bt-tip-icon svg { width:20px; height:20px; }
.continent-emoji { display:flex; align-items:center; justify-content:center; color:var(--gold); margin-bottom:12px; }
.continent-emoji svg { width:36px; height:36px; }
.dest-mega-head { display:flex; align-items:center; gap:8px; }
.dest-mega-head i[data-lucide]{ flex-shrink:0; color:var(--gold); }
.dest-mega-head i[data-lucide] svg{ width:14px; height:14px; }
.mm-sub-head { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.mm-sub-head i[data-lucide]{ flex-shrink:0; color:var(--gold); }
.mm-sub-head i[data-lucide] svg{ width:13px; height:13px; }

/* Section / CTA decorative sparkle (Lucide) */
.label-sparkle { display:inline-flex; vertical-align:middle; margin-right:7px; color:var(--gold); }
.label-sparkle svg { width:11px; height:11px; }
.btn-sparkle-inline { display:inline-flex; align-items:center; gap:6px; }
.btn-sparkle-inline i[data-lucide] svg { width:11px; height:11px; }


/* ═══════════════════════════════════════════════════════════
   SEARCH BAR (home hero overlap) — translateY only on wide screens
═══════════════════════════════════════════════════════════ */
.search-float {
  padding: 0 60px;
  position: relative;
  z-index: 10;
  perspective: 1000px;
  perspective-origin: 50% 0;
}
@media (min-width: 901px) {
  .search-float {
    transform: translateY(-50%);
  }
}
.search-box {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: 28px 32px;
  display: flex;
  gap: 16px;
  align-items: flex-end;
  flex-wrap: wrap;
  box-shadow: var(--shadow);
  transform: perspective(900px) rotateX(0) translateZ(0);
  transform-style: preserve-3d;
  transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease), border-color 0.3s var(--ease);
}
.search-float:hover .search-box {
  transform: perspective(900px) rotateX(2deg) translateY(-4px);
  box-shadow: 0 20px 56px rgba(0, 0, 0, 0.32);
}
.s-field { flex: 1; min-width: 155px; display: flex; flex-direction: column; gap: 6px; }
.s-label {
  font-size: 0.7rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gray);
  display: flex;
  align-items: center;
  gap: 5px;
}
.s-inp {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 11px 14px;
  min-height: 48px;
  color: var(--text-muted);
  font-family: var(--ff-b);
  font-size: 0.88rem;
  outline: none;
  transition: border-color 0.25s;
  cursor: pointer;
}
.s-inp:focus { border-color: var(--border-gold); }
.s-inp option { background: var(--surface); color: var(--text-muted); }
[data-theme="sakura"] .search-box { background: #fff; border-color: rgba(160, 57, 90, 0.15); }
[data-theme="sakura"] .s-inp { background: rgba(0, 0, 0, 0.04); color: #1a0a10; }
[data-theme="sakura"] .s-inp option { background: #fff; color: #1a0a10; }
[data-theme="sakura"] .s-label { color: var(--text-muted); }

/* Subtle 3D tilt — disable when user prefers reduced motion */
@media (prefers-reduced-motion: reduce) {
  .nav-logo,
  .nav-logo:hover,
  .dest-grid > .dest-card,
  .dest-grid > .dest-card:hover,
  .dest-cards-grid > .dest-card,
  .dest-cards-grid > .dest-card:hover,
  .card,
  .card:hover,
  .search-float:hover .search-box,
  .search-box {
    transform: none !important;
    transition-duration: 0.01ms !important;
  }
  .search-float:hover .search-box {
    box-shadow: var(--shadow);
  }
  .dest-cards-grid > .dest-card:hover {
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
  }
}

/* ═══════════════════════════════════════════════════════════
   PAGE HERO — inner pages (FAQ, About, hubs). Scoped overlay.
═══════════════════════════════════════════════════════════ */
.page-hero {
  position: relative;
  height: 480px;
  display: flex;
  align-items: flex-end;
  padding-bottom: 80px;
  overflow: hidden;
}
.page-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.05);
  transition: transform 8s ease;
}
.page-hero:hover .page-hero-bg { transform: scale(1); }
.page-hero .hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.4) 60%, rgba(0, 0, 0, 0.2) 100%);
}
.page-hero-content { position: relative; z-index: 2; padding: 0 60px; max-width: 900px; }
.breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 16px;
  letter-spacing: 0.5px;
}
.breadcrumb a { color: var(--gold); text-decoration: none; }
.breadcrumb a:hover { color: #fff; }
.breadcrumb span { color: rgba(255, 255, 255, 0.4); }
[data-theme="sakura"] .breadcrumb { color: rgba(26, 10, 16, 0.6); }
[data-theme="sakura"] .breadcrumb a { color: rgba(26, 10, 16, 0.6); }
[data-theme="sakura"] .breadcrumb span { color: rgba(26, 10, 16, 0.4); }
[data-theme="sakura"] .breadcrumb a:hover { color: rgba(26, 10, 16, 1); }
.page-hero h1 {
  font-family: var(--ff-d);
  font-size: clamp(2rem, 5vw, 3.8rem);
  font-weight: 400;
  color: #fff;
  line-height: 1.1;
  margin-bottom: 16px;
}
.page-hero h1 em { color: var(--gold); font-style: italic; }
.page-hero p {
  color: rgba(255, 255, 255, 0.8);
  font-size: 1rem;
  max-width: 560px;
  line-height: 1.7;
}
[data-theme="sakura"] .page-hero p { color: rgba(26, 10, 16, 0.8); }
[data-theme="sakura"] .page-hero h1 { color: rgba(26, 10, 16, 1); }
[data-theme="sakura"] .page-hero .hero-overlay {
  background: linear-gradient(to top, rgba(253,246,248,0.94) 0%, rgba(253,246,248,0.65) 55%, rgba(253,246,248,0.22) 100%);
}
@media (max-width: 700px) {
  .page-hero { height: 360px; padding-bottom: 48px; }
  .page-hero-content { padding: 0 20px; }
}

/* ═══════════════════════════════════════════════════════════
   DESTINATIONS INDEX — grid / filters / CTA band
═══════════════════════════════════════════════════════════ */
.dest-page { max-width: 1320px; margin: 0 auto; padding: 80px 60px; }
.continent-section { margin-bottom: 72px; }
.continent-header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 32px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border);
}
.continent-header .continent-emoji {
  color: var(--gold);
  min-height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0;
}
.continent-name {
  font-family: var(--ff-d);
  font-size: 1.8rem;
  color: var(--text-primary);
  line-height: 1.1;
}
.continent-name em { color: var(--gold); font-style: italic; }
.continent-count {
  font-size: 0.72rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gray);
  margin-top: 4px;
}
.dest-cards-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  perspective: 1200px;
  perspective-origin: 50% 40%;
}
.dest-cards-grid > .dest-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  transition: transform 0.45s var(--ease), border-color 0.3s var(--ease), box-shadow 0.45s var(--ease);
  cursor: pointer;
  text-decoration: none;
  display: block;
  position: relative;
  transform: perspective(900px) rotateX(0) rotateY(0) translateZ(0);
  transform-style: preserve-3d;
}
.dest-cards-grid > .dest-card:hover {
  transform: perspective(900px) rotateX(2.5deg) rotateY(4deg) translateY(-5px);
  border-color: var(--border-gold);
  box-shadow: 0 24px 52px rgba(0, 0, 0, 0.38);
  z-index: 1;
}
.dest-card-img { position: relative; overflow: hidden; aspect-ratio: 4/3; }
.dest-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
  display: block;
}
.dest-card:hover .dest-card-img img { transform: scale(1.07); }
.dest-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0.1) 55%, transparent 100%);
  transition: opacity 0.3s;
}
.dest-card:hover .dest-card-overlay { opacity: 0.9; }
.dest-card-flag {
  position: absolute;
  top: 12px;
  left: 12px;
  font-size: 1.4rem;
  line-height: 1;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.5));
}
.dest-card-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  background: var(--gold);
  color: #0a0600;
  font-size: 0.55rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: 20px;
}
.dest-card-body { padding: 16px 18px 18px; }
.dest-card-country {
  font-size: 0.62rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 5px;
}
.dest-card-name {
  font-family: var(--ff-d);
  font-size: 1rem;
  color: #fff;
  margin-bottom: 6px;
  line-height: 1.25;
}
.dest-card-desc {
  font-size: 0.73rem;
  color: var(--gray);
  line-height: 1.55;
  margin-bottom: 12px;
}
.dest-card-footer { display: flex; align-items: center; justify-content: space-between; }
.dest-card-from { font-size: 0.68rem; color: var(--gray); }
.dest-card-from strong { color: var(--gold); font-family: var(--ff-d); font-size: 0.9rem; }
.dest-card-from .excl {
  font-size: 0.58rem;
  color: var(--gray);
  opacity: 0.75;
  font-weight: 400;
}
.dest-card-link {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--gold);
  letter-spacing: 0.5px;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: gap 0.2s;
}
.dest-card:hover .dest-card-link { gap: 8px; }
.dest-card.lg { grid-column: span 2; }
.dest-card.lg .dest-card-img { aspect-ratio: 16/9; }
.dest-card.lg .dest-card-name { font-size: 1.2rem; }
.dest-filter-bar {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 48px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--border);
}
.dest-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 72px;
}
.dest-stat { background: var(--surface); padding: 28px 24px; text-align: center; }
.dest-stat-num {
  font-family: var(--ff-d);
  font-size: 2.2rem;
  color: var(--gold);
  display: block;
  line-height: 1;
}
.dest-stat-lbl {
  font-size: 0.65rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gray);
  margin-top: 6px;
  display: block;
}
.dest-cta-banner {
  background: linear-gradient(rgba(6,12,26,0.72), rgba(6,12,26,0.72)), url("../assets/img/destimg/ne5.jpg");
  border: 1px solid var(--border-gold);
  border-radius: 20px;
  padding: 56px 60px;
  text-align: center;
  margin-top: 40px;
}
[data-theme="sakura"] .dest-cta-banner {
  background: url("../assets/img/destimg/ne5.jpg");
}
.dest-cta-banner h2 {
  font-family: var(--ff-d);
  font-size: 2.2rem;
  color: var(--text-primary);
  margin-bottom: 12px;
}
.dest-cta-banner h2 em { color: var(--gold); font-style: italic; }
.dest-cta-banner p {
  color: var(--gray);
  font-size: 0.9rem;
  max-width: 500px;
  margin: 0 auto 28px;
  line-height: 1.7;
}
.dest-cta-banner-btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
@media (max-width: 1100px) {
  .dest-cards-grid { grid-template-columns: repeat(3, 1fr); }
  .dest-card.lg { grid-column: span 2; }
}
@media (max-width: 780px) {
  .dest-cards-grid { grid-template-columns: repeat(2, 1fr); }
  .dest-card.lg { grid-column: span 2; }
  .dest-stats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .dest-cards-grid { grid-template-columns: 1fr; }
  .dest-card.lg { grid-column: span 1; }
  .dest-page { padding: 48px 20px; }
  .dest-cta-banner { padding: 36px 24px; }
}

/* ═══════════════════════════════════════════════════════════
   DESTINATION DETAIL PAGES (.dp-*)
═══════════════════════════════════════════════════════════ */
.dp-hero {
  position: relative;
  height: 100vh;
  min-height: 620px;
  display: flex;
  align-items: flex-end;
  padding: 0 0 80px 60px;
  overflow: hidden;
}
.dp-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.04);
  animation: dpHeroZoom 12s ease forwards;
}
@keyframes dpHeroZoom { to { transform: scale(1); } }
.dp-hero-overlay {
  position: absolute;
  inset: 0;
  background: var(--dp-hero-overlay-main);
}
.dp-hero-content { position: relative; z-index: 2; max-width: 720px; }
.dp-hero-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.68rem;
  color: var(--hero-breadcrumb);
  margin-bottom: 16px;
  letter-spacing: 0.3px;
}
.dp-hero-breadcrumb a { color: var(--hero-breadcrumb); text-decoration: none; transition: color 0.2s; }
.dp-hero-breadcrumb a:hover { color: var(--gold); }
.dp-hero-breadcrumb span { opacity: 0.4; }
[data-theme="sakura"] .dp-hero-breadcrumb span { color: var(--hero-breadcrumb); }
.dp-hero-label {
  font-size: 0.6rem;
  letter-spacing: 5px;
  text-transform: uppercase;
  color: var(--gold);
  display: block;
  margin-bottom: 12px;
}
.dp-hero h1 {
  font-family: var(--ff-d);
  font-size: clamp(2.8rem, 6vw, 5.2rem);
  font-weight: 300;
  line-height: 1.05;
  color: var(--hero-heading);
  margin-bottom: 14px;
}
.dp-hero h1 em { font-style: italic; color: var(--gold); }
.dp-hero-sub {
  font-size: clamp(0.88rem, 1.8vw, 1.05rem);
  color: var(--hero-sub);
  line-height: 1.75;
  margin-bottom: 24px;
  max-width: 580px;
}
[data-theme="sakura"] .dp-hero-sub { color: var(--hero-sub); }
[data-theme="sakura"] .dp-hero h1 { color: var(--hero-heading); }
.dp-hero-meta { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 28px; }
.dp-hero-badge {
  display: flex;
  align-items: center;
  gap: 7px;
  background: var(--hero-badge-bg);
  backdrop-filter: blur(12px);
  border: 1px solid var(--hero-badge-border);
  border-radius: 50px;
  padding: 8px 16px;
  font-size: 0.7rem;
  color: var(--hero-badge-text);
  font-weight: 500;
}
.dp-hero-badge i { color: var(--gold); }
.dp-hero-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.dp-scroll-indicator {
  position: absolute;
  bottom: 32px;
  right: 60px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.dp-scroll-indicator span {
  font-size: 0.58rem;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  writing-mode: vertical-rl;
}
.dp-scroll-line {
  width: 1px;
  height: 44px;
  background: linear-gradient(to bottom, var(--gold), transparent);
}
.dp-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  padding: 0 60px;
  margin-top: -64px;
  position: relative;
  z-index: 10;
}
.dp-gal-item {
  border-radius: var(--r-lg);
  overflow: hidden;
  aspect-ratio: 4/3;
  cursor: zoom-in;
  position: relative;
  background: var(--card);
}
.dp-gal-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.55s var(--ease);
  display: block;
}
.dp-gal-item:hover img { transform: scale(1.06); }
.dp-gallery-img { cursor: zoom-in; }
.dp-gal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.25s;
}
.dp-gal-item:hover .dp-gal-overlay { opacity: 1; }
.dp-main {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 52px;
  padding: 68px 60px;
  max-width: 1400px;
  margin: 0 auto;
  align-items: start;
}
.dp-intro p {
  font-size: 0.92rem;
  color: var(--gray);
  line-height: 1.88;
  margin-bottom: 18px;
}
.dp-quick-facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 28px 0;
  padding: 24px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
}
.dp-fact { display: flex; flex-direction: column; gap: 5px; }
.dp-fact-label {
  font-size: 0.58rem;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 700;
}
.dp-fact-value {
  font-size: 0.84rem;
  color: var(--white);
  font-weight: 500;
  line-height: 1.5;
}
.dp-best-for { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 32px; }
.best-for-tag {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--gray);
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 50px;
  padding: 7px 16px;
  transition: var(--trans);
}
.best-for-tag:hover { border-color: var(--gold); color: var(--gold); }
.dp-tabs {
  display: flex;
  border-bottom: 1px solid var(--border);
  margin: 40px 0 0;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.dp-tabs::-webkit-scrollbar { display: none; }
.dp-tab {
  padding: 13px 24px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gray);
  cursor: pointer;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: var(--trans);
  font-family: var(--ff-b);
  white-space: nowrap;
  flex-shrink: 0;
}
.dp-tab.active { color: var(--gold); border-bottom-color: var(--gold); }
.dp-tab:hover:not(.active) { color: var(--white); }
.dp-panel { display: none; padding: 28px 0; }
.dp-panel.active { display: block; animation: dpFadeInUp 0.3s ease; }
@keyframes dpFadeInUp {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
.dp-list { list-style: none; display: flex; flex-direction: column; gap: 12px; }
.dp-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 0.87rem;
  color: var(--gray);
  line-height: 1.65;
}
.dp-list li span { flex: 1; }
.dp-itin-title {
  font-family: var(--ff-d);
  font-size: 1.55rem;
  font-weight: 300;
  margin: 44px 0 20px;
}
.dp-itin-title em { font-style: italic; color: var(--gold); }
.itin-day {
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  margin-bottom: 10px;
  overflow: hidden;
  transition: border-color 0.2s;
}
.itin-day.open { border-color: var(--border-gold); }
.itin-day-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px 20px;
  cursor: pointer;
  background: var(--card);
  transition: background 0.2s;
  user-select: none;
}
.itin-day.open .itin-day-head { background: rgba(196, 150, 90, 0.06); }
.itin-day-head:hover { background: rgba(196, 150, 90, 0.04); }
.itin-day-label { display: flex; align-items: center; gap: 14px; }
.itin-day-num {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gold);
  background: rgba(196, 150, 90, 0.1);
  border: 1px solid rgba(196, 150, 90, 0.2);
  padding: 4px 10px;
  border-radius: 20px;
  white-space: nowrap;
}
.itin-day-title { font-size: 0.88rem; font-weight: 600; color: var(--white); }
.itin-chevron { transition: transform 0.3s; flex-shrink: 0; color: var(--gold); }
.itin-day.open .itin-chevron { transform: rotate(-180deg); }
.itin-day-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease, padding 0.35s ease;
  padding: 0 20px;
  font-size: 0.85rem;
  color: var(--gray);
  line-height: 1.78;
}
.itin-day.open .itin-day-body { max-height: 300px; padding: 16px 20px 20px; }
.dp-sidebar { position: sticky; top: calc(var(--nav-h) + 20px); }
.dp-price-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-top: 3px solid var(--gold);
  border-radius: var(--r-xl);
  padding: 28px 24px;
  margin-bottom: 20px;
}
.dp-price-from {
  font-size: 0.58rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gray);
  margin-bottom: 4px;
}
.dp-price-num {
  font-family: var(--ff-d);
  font-size: 2.5rem;
  font-weight: 300;
  color: var(--gold);
  line-height: 1;
  margin-bottom: 4px;
}
.dp-price-sub { font-size: 0.74rem; color: var(--gray); margin-bottom: 22px; }
.dp-price-info {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  margin-bottom: 20px;
}
.dp-price-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.8rem;
}
.dp-price-row span:first-child { color: var(--gray); }
.dp-price-row span:last-child { color: var(--white); font-weight: 600; }
.dp-cta-group { display: flex; flex-direction: column; gap: 10px; }
.dp-cta-wa {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #25d366;
  color: #fff;
  border: none;
  border-radius: 50px;
  padding: 13px 24px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none;
  font-family: var(--ff-b);
  cursor: pointer;
  transition: var(--trans);
}
.dp-cta-wa:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(37, 211, 102, 0.35);
}
.dp-cta-call {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--white);
  border: 1px solid var(--border);
  border-radius: 50px;
  padding: 12px 24px;
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
  transition: var(--trans);
  text-align: center;
}
.dp-cta-call:hover { border-color: var(--gold); color: var(--gold); }
.dp-customize {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: 24px;
}
.dp-customize h3 { font-family: var(--ff-d); font-size: 1.15rem; margin-bottom: 6px; }
.dp-customize p { font-size: 0.76rem; color: var(--gray); margin-bottom: 18px; line-height: 1.5; }
.dp-fg { margin-bottom: 14px; }
.dp-fg label {
  display: block;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gray);
  margin-bottom: 6px;
}
.dp-fg input,
.dp-fg select,
.dp-fg textarea {
  width: 100%;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 11px 14px;
  color: var(--text-primary);
  font-family: var(--ff-b);
  font-size: 0.85rem;
  outline: none;
  transition: border-color 0.25s;
}
.dp-fg input:focus,
.dp-fg select:focus,
.dp-fg textarea:focus { border-color: var(--gold); }
.dp-fg select option { background: var(--surface); color: var(--text-primary); }
.dp-fg textarea { height: 80px; resize: vertical; }
[data-theme="sakura"] .dp-fg input,
[data-theme="sakura"] .dp-fg select,
[data-theme="sakura"] .dp-fg textarea { background: rgba(0, 0, 0, 0.04); color: var(--text-primary); }
.dp-best-time {
  padding: 72px 60px;
  background: var(--surface);
  border-top: 1px solid var(--border);
}
.dp-bt-inner {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 52px;
  max-width: 1400px;
  margin: 0 auto;
  align-items: start;
}
.bt-months { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 28px; }
.bt-month {
  padding: 8px 14px;
  border-radius: 50px;
  font-size: 0.72rem;
  font-weight: 600;
  background: var(--card);
  border: 1px solid var(--border);
  color: var(--gray);
  transition: var(--trans);
}
.bt-month.best {
  background: linear-gradient(135deg, var(--gold), var(--gold-lt));
  color: var(--bg);
  border-color: transparent;
  font-weight: 700;
}
.bt-tips { display: flex; flex-direction: column; gap: 14px; }
.bt-tip {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 16px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
}
.bt-tip h4 { font-family: var(--ff-d); font-size: 1rem; margin-bottom: 4px; color: var(--white); }
.bt-tip p { font-size: 0.8rem; color: var(--gray); line-height: 1.65; }
[data-theme="sakura"] .dp-quick-facts { background: rgba(0, 0, 0, 0.03); border-color: rgba(160, 57, 90, 0.1); }
[data-theme="sakura"] .dp-fact-value { color: rgba(26, 10, 16, 0.85); }
[data-theme="sakura"] .itin-day-head { background: rgba(0, 0, 0, 0.03); }
[data-theme="sakura"] .itin-day-title { color: rgba(26, 10, 16, 0.85); }
[data-theme="sakura"] .itin-day-body { color: rgba(26, 10, 16, 0.65); }
[data-theme="sakura"] .dp-best-time { background: #f5edf0; border-color: rgba(160, 57, 90, 0.1); }
[data-theme="sakura"] .bt-tip { background: #fff; border-color: rgba(160, 57, 90, 0.1); }
[data-theme="sakura"] .dp-list li { color: rgba(26, 10, 16, 0.65); }
[data-theme="sakura"] .dp-intro p { color: rgba(26, 10, 16, 0.65); }
@media (max-width: 1100px) {
  .dp-main { grid-template-columns: 1fr; gap: 32px; }
  .dp-sidebar { position: static; }
  .dp-bt-inner { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .dp-hero { padding: 0 0 56px 22px; min-height: 520px; }
  .dp-gallery { padding: 0 20px; margin-top: -40px; grid-template-columns: 1fr 1fr; }
  .dp-main { padding: 40px 22px; }
  .dp-best-time { padding: 52px 22px; }
  .dp-quick-facts { grid-template-columns: 1fr; }
  .dp-scroll-indicator { display: none; }
  .mega-menu { min-width: 300px; grid-template-columns: 1fr; }
  .dp-hero-meta { gap: 8px; }
  .dp-hero-badge { font-size: 0.65rem; padding: 7px 13px; }
}
@media (max-width: 480px) {
  .dp-gallery { grid-template-columns: 1fr; }
  .dp-hero h1 { font-size: 2.4rem; }
  .dp-hero { padding: 0 0 48px 18px; }
  .dp-tabs { gap: 0; }
  .dp-tab { padding: 11px 16px; font-size: 0.65rem; letter-spacing: 1.5px; }
  .dp-main { padding: 32px 18px; }
}

/* ═══════════════════════════════════════════════════════════
   FAQ — dynamic page (.dfaq-*, .faq-*)
═══════════════════════════════════════════════════════════ */
.faq-page { max-width: 900px; margin: 0 auto; padding: 80px 40px; }
@media (max-width: 700px) { .faq-page { padding: 48px 20px; } }
.dfaq-search-wrap { position: relative; margin-bottom: 32px; }
.dfaq-search-wrap svg,
.dfaq-search-wrap i[data-lucide] {
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--gold);
  opacity: 0.7;
}
.dfaq-search-wrap i[data-lucide] svg { width: 15px; height: 15px; }
.dfaq-search {
  width: 100%;
  padding: 12px 18px 12px 46px;
  border-radius: 40px;
  border: 1px solid var(--border);
  background: var(--surface, rgba(255, 255, 255, 0.04));
  font-family: var(--ff-b);
  font-size: 0.85rem;
  color: var(--white);
  outline: none;
  transition: border-color 0.25s, background 0.25s;
}
.dfaq-search:focus {
  border-color: var(--border-gold);
  background: var(--surface2, rgba(255, 255, 255, 0.07));
}
.dfaq-search::placeholder { color: var(--gray); }
[data-theme="sakura"] .dfaq-search { color: #1a0a10; background: rgba(255, 255, 255, 0.6); }
[data-theme="sakura"] .dfaq-search:focus { background: #fff; }
[data-theme="sakura"] .dfaq-search::placeholder { color: rgba(26, 10, 16, 0.4); }
.faq-cats {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 0;
  justify-content: center;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--border);
}
.faq-cat {
  padding: 8px 20px;
  border-radius: 30px;
  border: 1px solid var(--border);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  cursor: pointer;
  transition: all 0.25s;
  color: var(--gray);
  background: transparent;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.faq-cat:hover { border-color: var(--border-gold); color: var(--gold); }
.faq-cat.active { background: var(--gold); color: #0a0600; border-color: var(--gold); }
.faq-cat.active .dfaq-count { background: rgba(10, 6, 0, 0.2); color: #0a0600; }
.dfaq-count {
  font-size: 0.65rem;
  font-weight: 700;
  padding: 1px 7px;
  border-radius: 20px;
  background: var(--surface2, rgba(255, 255, 255, 0.08));
  color: var(--gray);
  transition: all 0.25s;
  letter-spacing: 0;
}
.faq-cat i[data-lucide] { display: inline-flex; vertical-align: middle; margin-right: 6px; }
.faq-cat i[data-lucide] svg { width: 14px; height: 14px; }
.faq-group-head i[data-lucide] { display: inline-flex; flex-shrink: 0; }
.faq-group-head i[data-lucide] svg { width: 15px; height: 15px; }
.dfaq-stage { position: relative; min-height: 280px; margin-top: 40px; }
.dfaq-panel {
  display: none;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.38s cubic-bezier(0.4, 0, 0.2, 1), transform 0.38s cubic-bezier(0.4, 0, 0.2, 1);
}
.dfaq-panel.dfaq-visible { display: block; opacity: 1; transform: translateY(0); }
.dfaq-panel.dfaq-exit { opacity: 0; transform: translateY(-8px); }
.faq-group { margin-bottom: 40px; }
.faq-group-head {
  font-size: 0.6rem;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.faq-group-head-line { flex: 1; height: 1px; background: rgba(196, 150, 90, 0.18); }
.faq-item {
  border: 1px solid var(--border);
  border-radius: 14px;
  margin-bottom: 10px;
  overflow: hidden;
  transition: border-color 0.25s, box-shadow 0.25s;
}
.faq-item.open,
.faq-item:hover { border-color: var(--border-gold); }
.faq-item.open { box-shadow: 0 4px 24px rgba(196, 150, 90, 0.07); }
.faq-q {
  padding: 20px 24px;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--white);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  user-select: none;
  line-height: 1.45;
}
.faq-q-text { flex: 1; }
.faq-icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1px solid var(--border-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--gold);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), background 0.25s;
}
.faq-icon svg { width: 13px; height: 13px; }
.faq-item.open .faq-icon { transform: rotate(45deg); background: rgba(196, 150, 90, 0.12); }
.faq-body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.38s cubic-bezier(0.4, 0, 0.2, 1);
}
.faq-item.open .faq-body { grid-template-rows: 1fr; }
.faq-body-inner { overflow: hidden; }
.faq-a {
  padding: 0 24px 20px;
  font-size: 0.87rem;
  color: var(--gray);
  line-height: 1.85;
  border-top: 1px solid var(--border);
}
.faq-a a { color: var(--gold); text-decoration: none; }
.faq-a a:hover { text-decoration: underline; }
[data-theme="sakura"] .faq-q { color: #1a0a10; }
[data-theme="sakura"] .faq-a-inner,
[data-theme="sakura"] .faq-a { color: rgba(26, 10, 16, 0.6); }
.dfaq-empty { text-align: center; padding: 4rem 1rem 2rem; color: var(--gray); }
.dfaq-empty-icon { display: flex; justify-content: center; margin-bottom: 12px; opacity: 0.45; color: var(--gold); }
.dfaq-empty-icon svg { width: 40px; height: 40px; }
.dfaq-cta-top-icon { display: flex; justify-content: center; margin-bottom: 12px; color: var(--gold); }
.dfaq-cta-top-icon svg { width: 36px; height: 36px; opacity: 0.9; }
.dfaq-empty-text { font-size: 0.88rem; line-height: 1.7; }
.dfaq-cta {
  background: var(--surface, rgba(255, 255, 255, 0.04));
  border: 1px solid var(--border-gold);
  border-radius: var(--r-xl, 18px);
  padding: 36px 40px;
  text-align: center;
  margin-top: 8px;
}
.dfaq-cta h3 { font-family: var(--ff-d); font-size: 1.4rem; color: var(--white); margin-bottom: 8px; }
.dfaq-cta p { color: var(--gray); font-size: 0.88rem; margin-bottom: 24px; }
.dfaq-cta-btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
[data-theme="sakura"] .dfaq-cta h3 { color: #1a0a10; }
[data-theme="sakura"] .dfaq-cta p { color: rgba(26, 10, 16, 0.55); }

/* ═══════════════════════════════════════════════════════════
   SERVICES + DESTINATIONS ALIGNMENT PATCH
═══════════════════════════════════════════════════════════ */
.svc-intro,
.visa-page,
.docs-page,
.events-page {
  max-width: 1200px;
  margin: 0 auto;
  padding: 64px 60px;
}
.svc-cards-grid,
.svc-feature-inner,
.svc-steps,
.svc-testi-grid,
.visa-stats,
.countries-grid,
.process-steps,
.vt-grid,
.docs-grid,
.docs-why-grid,
.wedding-styles,
.venue-grid,
.corp-features {
  display: grid;
  gap: 20px;
}

/* Services: landing */
.svc-intro { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 28px; align-items: start; }
.svc-cards-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.svc-feature-inner { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.svc-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.svc-testi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.svc-cta-actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }

/* Services: visa */
.visa-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.country-filter { display: flex; gap: 10px; flex-wrap: wrap; margin: 0 0 24px; }
.cf-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--gray);
  border-radius: 999px;
  padding: 8px 14px;
  font-size: 0.74rem;
  cursor: pointer;
  transition: var(--trans);
}
.cf-tag:hover,
.cf-tag.active {
  border-color: var(--border-gold);
  background: rgba(196, 150, 90, 0.12);
  color: var(--white);
}
.countries-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.country-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.process-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.vt-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Services: docs */
.docs-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.docs-why-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Services: events */
.wedding-hero,
.corp-grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 28px; align-items: center; }
.wedding-styles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.venue-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.events-process { max-width: 1200px; margin: 0 auto; }

/* Destinations: filter buttons */
.df-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--gray);
  border-radius: 999px;
  padding: 10px 14px;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--trans);
}
.df-btn:hover,
.df-btn.active {
  border-color: var(--border-gold);
  background: rgba(196, 150, 90, 0.12);
  color: var(--white);
}
[data-theme="sakura"] .df-btn {
  background: #fff;
  color: var(--text-muted);
  border-color: rgba(160, 57, 90, 0.14);
}
[data-theme="sakura"] .df-btn:hover,
[data-theme="sakura"] .df-btn.active {
  border-color: var(--border-gold);
  background: rgba(160, 57, 90, 0.08);
  color: var(--gold);
}

@media (max-width: 1100px) {
  .svc-cards-grid,
  .countries-grid,
  .vt-grid,
  .docs-grid,
  .venue-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .svc-feature-inner,
  .docs-why-grid,
  .wedding-styles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .svc-steps,
  .process-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .svc-testi-grid,
  .corp-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wedding-hero,
  .corp-grid,
  .svc-intro { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .svc-intro,
  .visa-page,
  .docs-page,
  .events-page { padding: 44px 20px; }
  .svc-cards-grid,
  .countries-grid,
  .vt-grid,
  .docs-grid,
  .docs-why-grid,
  .wedding-styles,
  .venue-grid,
  .svc-feature-inner,
  .svc-steps,
  .process-steps,
  .svc-testi-grid,
  .corp-features { grid-template-columns: 1fr; }
  .df-btn { width: 100%; justify-content: center; }
}

/* ────────────────── SERVICES DETAIL REFINEMENTS ────────────────── */
/* services/services.html - page section structure */
.svc-intro,
.svc-cards-section,
.svc-process,
.svc-testi {
  max-width: 1200px;
  margin: 0 auto;
  padding-left: 60px;
  padding-right: 60px;
}
.svc-intro { padding-top: 72px; padding-bottom: 24px; }
.svc-cards-section { padding-top: 16px; padding-bottom: 72px; }
.svc-process { padding-top: 80px; padding-bottom: 80px; }
.svc-testi { padding-top: 80px; padding-bottom: 80px; }
.svc-feature-strip {
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(255,255,255,0.015), rgba(255,255,255,0.005));
}
.svc-feature-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 56px 60px;
}
.svc-process-head,
.svc-testi-head { text-align: center; margin-bottom: 34px; }
.svc-intro-text h2 {
  font-family: var(--ff-d);
  font-size: clamp(2rem, 4.2vw, 3.2rem);
  line-height: 1.08;
  font-weight: 300;
  color: var(--text-primary);
  margin-bottom: 14px;
}
.svc-intro-text h2 em { color: var(--gold); font-style: italic; }
.svc-intro-text p {
  color: var(--gray);
  font-size: 0.92rem;
  line-height: 1.85;
}
.svc-cta-band {
  position: relative;
  overflow: hidden;
  margin: 0 60px 72px;
  border-radius: var(--r-xl);
  border: 1px solid var(--border);
}
.svc-cta-bg {
  position: absolute;
  inset: 0;
  background-image: url("../assets/img/services/w4.jpg");
  background-size: cover;
  background-position: center;
}
.svc-cta-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(6, 12, 26, 0.92) 0%, rgba(6, 12, 26, 0.7) 58%, rgba(6, 12, 26, 0.9) 100%);
}
.svc-cta-content {
  position: relative;
  z-index: 2;
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
  padding: 68px 40px;
}
.svc-cta-content h2 {
  font-family: var(--ff-d);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 300;
  line-height: 1.12;
  color: var(--text-primary);
  margin-bottom: 12px;
}
.svc-cta-content h2 em { color: var(--gold); font-style: italic; }
.svc-cta-content p {
  color: var(--gray);
  font-size: 0.9rem;
  line-height: 1.8;
  max-width: 660px;
  margin: 0 auto 24px;
}

/* services/services.html */
.svc-intro-stat { display: grid; gap: 14px; }
.svc-stat-item {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 18px;
  text-align: center;
}
.svc-stat-num { font-family: var(--ff-d); font-size: 1.6rem; color: var(--gold); line-height: 1; }
.svc-stat-lbl { font-size: 0.66rem; letter-spacing: 1.8px; text-transform: uppercase; color: var(--gray); margin-top: 6px; }
.svc-card {
  display: block;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  overflow: hidden;
  text-decoration: none;
  transition: var(--trans);
}
.svc-card:hover { border-color: var(--border-gold); transform: translateY(-4px); }
.svc-card-img { position: relative; aspect-ratio: 16/10; overflow: hidden; }
.svc-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.svc-card-img-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.55), transparent 60%); }
.svc-card-number { position: absolute; top: 12px; left: 12px; font-size: 0.62rem; letter-spacing: 2px; color: var(--gold); }
.svc-card-icon-wrap {
  position: absolute;
  right: 12px;
  bottom: 12px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--gold);
  display: flex;
  align-items: center;
  justify-content: center;
}
.svc-card-body { padding: 18px; }
.svc-card-label { font-size: 0.62rem; letter-spacing: 1.8px; text-transform: uppercase; color: var(--gray); margin-bottom: 8px; }
.svc-card-title { font-family: var(--ff-d); font-size: 1.15rem; color: var(--white); margin-bottom: 10px; }
.svc-card-desc { color: var(--gray); font-size: 0.84rem; line-height: 1.7; margin-bottom: 14px; }
.svc-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.svc-tag { border: 1px solid var(--border); border-radius: 999px; padding: 6px 10px; font-size: 0.62rem; color: var(--gray); }
.svc-card-cta { display: inline-flex; align-items: center; gap: 6px; font-size: 0.72rem; font-weight: 700; letter-spacing: 1px; color: var(--gold); text-transform: uppercase; }
.svc-feat-item { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 18px; }
.svc-feat-title { font-size: 0.82rem; color: var(--white); font-weight: 600; margin: 10px 0 6px; }
.svc-feat-desc { font-size: 0.74rem; color: var(--gray); line-height: 1.65; }
.svc-step { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 16px; text-align: center; }
.svc-step-circle {
  width: 36px; height: 36px; margin: 0 auto 10px; border-radius: 50%;
  border: 1px solid var(--border-gold); color: var(--gold);
  display: flex; align-items: center; justify-content: center;
  font-size: 0.68rem; font-weight: 700;
}
.svc-step-title { color: var(--white); font-size: 0.8rem; font-weight: 600; margin-bottom: 6px; }
.svc-step-desc { color: var(--gray); font-size: 0.72rem; line-height: 1.6; }
.svc-testi-inner { max-width: 1200px; margin: 0 auto; padding: 0 60px; }

/* services/visa.html */
.visa-page {
  max-width: 1200px;
  margin: 0 auto;
  padding: 72px 60px 24px;
}
.visa-page .countries-grid { margin-top: 8px; margin-bottom: 54px; }
.visa-page > div[style*="text-align:center"][style*="margin-bottom:64px"] {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}
.visa-process,
.visa-types {
  max-width: 1200px;
  margin: 0 auto;
  padding: 72px 60px;
}
.visa-process { padding-top: 64px; }
.process-steps { margin-top: 26px; }
.vt-grid { margin-top: 26px; }
.vs-card { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 22px; text-align: center; }
.vs-num { font-family: var(--ff-d); font-size: 1.75rem; color: var(--gold); line-height: 1; }
.vs-lbl { font-size: 0.66rem; letter-spacing: 1.8px; text-transform: uppercase; color: var(--gray); margin-top: 6px; }
.country-card { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; }
.cc-flag { font-size: 1.1rem; line-height: 1; }
.cc-name { color: var(--white); font-size: 0.82rem; font-weight: 600; }
.cc-type { color: var(--gray); font-size: 0.68rem; margin-top: 2px; }
.cc-arrow { color: var(--gold); }
.step { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 16px; text-align: center; }
.step-num { color: var(--gold); font-family: var(--ff-d); font-size: 1rem; margin-bottom: 8px; }
.step-title { color: var(--white); font-size: 0.82rem; font-weight: 600; margin-bottom: 6px; }
.step-desc { color: var(--gray); font-size: 0.72rem; line-height: 1.6; }
.vt-card { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 18px; }
.vt-title { color: var(--white); font-family: var(--ff-d); font-size: 1rem; margin-bottom: 8px; }
.vt-desc { color: var(--gray); font-size: 0.74rem; line-height: 1.65; margin-bottom: 10px; }
.vt-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.vt-tag { border: 1px solid var(--border); border-radius: 999px; padding: 5px 10px; font-size: 0.62rem; color: var(--gray); }
.visa-cta-band {
  background: var(--surface);
  border: 1px solid var(--border-gold);
  border-radius: var(--r-xl);
  padding: 28px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  align-items: center;
}

/* services/travel-docs.html */
.docs-page,
.docs-why,
.faq-s {
  max-width: 1200px;
  margin: 0 auto;
  padding-left: 60px;
  padding-right: 60px;
}
.docs-page { padding-top: 72px; padding-bottom: 30px; }
.docs-why { padding-top: 62px; padding-bottom: 62px; }
.faq-s { padding-top: 22px; padding-bottom: 80px; }
.docs-page > .reveal:first-child { margin-bottom: 26px !important; }
.docs-grid { margin-bottom: 40px; }
.docs-page > .reveal[style*="grid-template-columns:1fr auto"] {
  background: linear-gradient(135deg, rgba(196, 150, 90, 0.12), rgba(196, 150, 90, 0.04));
  border: 1px solid var(--border-gold);
  border-radius: var(--r-xl);
  padding: 36px 40px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
  margin-bottom: 64px;
}
.doc-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: 24px;
  display: flex;
  flex-direction: column;
}
.doc-card h3 { font-family: var(--ff-d); color: var(--white); font-size: 1.1rem; margin: 0 0 8px; text-align: center; }
.doc-card p { color: var(--gray); font-size: 0.8rem; line-height: 1.65; text-align: center; margin-bottom: 14px; }
.doc-feat { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 8px; }
.doc-feat li { color: var(--gray); font-size: 0.74rem; line-height: 1.5; padding-left: 14px; position: relative; }
.doc-feat li::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--gold);
  position: absolute;
  left: 0;
  top: 0.45rem;
}
.dw-item { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 18px; text-align: center; }
.dw-title { color: var(--white); font-size: 0.82rem; font-weight: 600; margin-bottom: 6px; }
.dw-desc { color: var(--gray); font-size: 0.74rem; line-height: 1.65; }
.faq-s .faq-q { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fi {
  width: 24px;
  height: 24px;
  border: 1px solid var(--border-gold);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--gold);
  flex-shrink: 0;
}

/* services/events.html */
.events-page,
.corp-section,
.events-process {
  max-width: 1200px;
  margin: 0 auto;
  padding-left: 60px;
  padding-right: 60px;
}
.events-page { padding-top: 72px; padding-bottom: 24px; }
.corp-section { padding-top: 24px; padding-bottom: 28px; }
.events-process { padding-top: 62px; padding-bottom: 80px; }
.events-page .wedding-hero { margin-bottom: 52px; }
.events-page .wedding-styles { margin-bottom: 44px; }
.events-page .venue-grid { margin-bottom: 22px; }
.corp-features {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.wh-img { position: relative; border-radius: var(--r-xl); overflow: hidden; border: 1px solid var(--border); }
.wh-img img { width: 100%; display: block; aspect-ratio: 16/11; object-fit: cover; }
.wh-badge {
  position: absolute;
  right: 16px;
  bottom: 16px;
  background: rgba(6, 12, 26, 0.9);
  border: 1px solid var(--border-gold);
  border-radius: 12px;
  padding: 10px 12px;
  text-align: center;
}
.wh-badge-num { font-family: var(--ff-d); font-size: 1.2rem; color: var(--gold); line-height: 1; }
.wh-badge-lbl { font-size: 0.62rem; color: var(--gray); letter-spacing: 1px; margin-top: 4px; }
.ws-pill { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 18px; text-align: center; }
.ws-pill-icon { color: var(--gold); margin-bottom: 10px; }
.ws-pill-icon svg { width: 24px; height: 24px; }
.ws-pill-name { color: var(--white); font-weight: 600; font-size: 0.82rem; margin-bottom: 6px; }
.ws-pill-desc { color: var(--gray); font-size: 0.72rem; line-height: 1.6; }
.venue-card {
  position: relative;
  display: block;
  border-radius: 16px;
  overflow: hidden;
  min-height: 260px;
  border: 1px solid var(--border);
  text-decoration: none;
}
.venue-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vc-ov { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.78), rgba(0,0,0,0.12)); }
.vc-body { position: absolute; left: 14px; right: 14px; bottom: 14px; }
.vc-flag { color: var(--gold); margin-bottom: 6px; }
.vc-state { font-size: 0.6rem; color: var(--gray); letter-spacing: 1.6px; text-transform: uppercase; }
.vc-name { font-family: var(--ff-d); font-size: 1rem; color: #fff; margin: 4px 0; }
.vc-desc { font-size: 0.7rem; color: rgba(255,255,255,0.82); line-height: 1.5; }
.cf-item {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 12px;
  align-items: start;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
}
.cfi-title { color: var(--white); font-size: 0.8rem; font-weight: 600; margin-bottom: 4px; }
.cfi-desc { color: var(--gray); font-size: 0.72rem; line-height: 1.6; }
.ep-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: 28px; }
.ep-step { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 18px; text-align: center; }
.ep-num { font-family: var(--ff-d); color: var(--gold); font-size: 1.1rem; margin-bottom: 8px; }
.ep-title { color: var(--white); font-weight: 600; font-size: 0.82rem; margin-bottom: 6px; }
.ep-desc { color: var(--gray); font-size: 0.72rem; line-height: 1.65; }

/* responsive fixes for inline-grid wrappers in service pages */
@media (max-width: 1100px) {
  .events-page,
  .corp-section,
  .events-process { padding-left: 28px; padding-right: 28px; }
  .docs-page,
  .docs-why,
  .faq-s { padding-left: 28px; padding-right: 28px; }
  .visa-page,
  .visa-process,
  .visa-types { padding-left: 28px; padding-right: 28px; }
  .svc-intro,
  .svc-cards-section,
  .svc-process,
  .svc-testi { padding-left: 28px; padding-right: 28px; }
  .svc-feature-inner { padding-left: 28px; padding-right: 28px; }
  .svc-cta-band { margin-left: 28px; margin-right: 28px; }
  .visa-cta-band { grid-template-columns: 1fr; }
  .ep-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .svc-testi-inner { padding: 0 24px; }
  .faq-s { padding: 0 24px 64px; }
  .events-page > div[style*="grid-template-columns:1.2fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 26px !important;
  }
  .docs-page > div[style*="grid-template-columns:1fr auto"] {
    grid-template-columns: 1fr !important;
    text-align: center;
  }
}
@media (max-width: 768px) {
  .events-page,
  .corp-section,
  .events-process { padding-left: 20px; padding-right: 20px; }
  .events-page { padding-top: 50px; padding-bottom: 8px; }
  .events-process { padding-top: 50px; padding-bottom: 56px; }
  .corp-features { grid-template-columns: 1fr; }
  .docs-page,
  .docs-why,
  .faq-s { padding-left: 20px; padding-right: 20px; }
  .docs-page { padding-top: 50px; }
  .docs-why { padding-top: 50px; padding-bottom: 50px; }
  .faq-s { padding-top: 8px; padding-bottom: 56px; }
  .visa-page,
  .visa-process,
  .visa-types { padding-left: 20px; padding-right: 20px; }
  .visa-page { padding-top: 50px; padding-bottom: 10px; }
  .visa-process,
  .visa-types { padding-top: 50px; padding-bottom: 50px; }
  .ws-pill,
  .vt-card,
  .doc-card,
  .vs-card { padding: 16px; }
  .country-card { padding: 10px 12px; }
  .ep-steps,
  .svc-intro-stat { grid-template-columns: 1fr; }
  .svc-intro,
  .svc-cards-section,
  .svc-process,
  .svc-testi { padding-left: 20px; padding-right: 20px; }
  .svc-feature-inner { padding: 42px 20px; }
  .svc-cta-band { margin: 0 20px 56px; }
  .svc-cta-content { padding: 46px 22px; }
  .events-page > div[style*="repeat(4,1fr)"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 560px) {
  .events-page > div[style*="repeat(4,1fr)"] {
    grid-template-columns: 1fr !important;
  }
}

/* ────────────────── CONTACT PAGE LAYOUT ────────────────── */
.contact-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 72px 60px 80px;
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 30px;
  align-items: start;
}
.contact-info-col .section-title { margin-bottom: 24px; }
.contact-cards {
  display: grid;
  gap: 12px;
  margin-bottom: 22px;
}
.ci-card {
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 12px;
  align-items: start;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px;
}
.ci-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(196, 150, 90, 0.08);
  border: 1px solid var(--border-gold);
}
.ci-label {
  font-size: 0.63rem;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--gray);
  margin-bottom: 4px;
}
.ci-val {
  color: var(--text-primary);
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 600;
}
.ci-sub {
  color: var(--gray);
  font-size: 0.76rem;
  margin-top: 3px;
}
.social-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.social-row a {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border);
  color: var(--gray);
  text-decoration: none;
  transition: var(--trans);
  background: var(--surface);
}
.social-row a:hover {
  border-color: var(--border-gold);
  color: var(--gold);
  transform: translateY(-2px);
}

.contact-form-col {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: 26px;
}
.cf-title {
  font-family: var(--ff-d);
  font-size: 1.55rem;
  color: var(--text-primary);
  margin-bottom: 8px;
}
.cf-sub {
  color: var(--gray);
  font-size: 0.85rem;
  line-height: 1.7;
  margin-bottom: 18px;
}
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.form-field.full { grid-column: 1 / -1; }
.form-label {
  display: block;
  font-size: 0.66rem;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--gray);
  margin-bottom: 6px;
}
.form-inp {
  width: 100%;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 11px 12px;
  color: var(--text-primary);
  font-family: var(--ff-b);
  font-size: 0.84rem;
  outline: none;
  transition: border-color 0.25s ease;
}
.form-inp:focus { border-color: var(--border-gold); }
textarea.form-inp { min-height: 110px; resize: vertical; }

.cf-submit {
  margin-top: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.cf-note { color: var(--gray); font-size: 0.72rem; }
.cf-success {
  margin-top: 14px;
  display: none;
  border: 1px solid var(--border-gold);
  background: rgba(196, 150, 90, 0.09);
  color: var(--text-primary);
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 0.8rem;
  line-height: 1.6;
}

[data-theme="sakura"] .contact-form-col,
[data-theme="sakura"] .ci-card,
[data-theme="sakura"] .social-row a {
  background: #fff;
  border-color: rgba(160, 57, 90, 0.12);
}
[data-theme="sakura"] .ci-sub,
[data-theme="sakura"] .cf-sub,
[data-theme="sakura"] .cf-note,
[data-theme="sakura"] .form-label { color: rgba(26, 10, 16, 0.62); }

@media (max-width: 1100px) {
  .contact-wrap {
    padding-left: 28px;
    padding-right: 28px;
    grid-template-columns: 1fr;
    gap: 22px;
  }
}
@media (max-width: 768px) {
  .contact-wrap {
    padding: 50px 20px 56px;
  }
  .contact-form-col { padding: 18px; }
  .form-grid { grid-template-columns: 1fr; }
  .cf-submit { flex-direction: column; align-items: stretch; }
  .cf-submit .btn-primary { width: 100%; justify-content: center; }
}

/* ═══════════════════════════════════════════════════════════
   ABOUT PAGE LAYOUT
═══════════════════════════════════════════════════════════ */
.about-story {
  max-width: 1320px;
  margin: 0 auto;
  padding: 84px 60px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}
.about-story-img {
  position: relative;
  border-radius: var(--r-xl);
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--surface);
}
.about-story-img img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
  display: block;
}
.about-story-badge {
  position: absolute;
  right: 20px;
  bottom: 20px;
  background: rgba(6, 12, 26, 0.9);
  border: 1px solid var(--border-gold);
  border-radius: 14px;
  padding: 14px 16px;
  text-align: center;
  backdrop-filter: blur(8px);
}
[data-theme="sakura"] .about-story-badge {
  background: rgba(255, 255, 255, 0.92);
}
.asb-num {
  font-family: var(--ff-d);
  font-size: 1.8rem;
  color: var(--gold);
  line-height: 1;
}
.asb-lbl {
  font-size: 0.68rem;
  color: var(--gray);
  letter-spacing: 1px;
  margin-top: 6px;
}
.about-story p {
  color: var(--gray);
  line-height: 1.85;
  font-size: 0.95rem;
}
.about-story .section-title { margin-bottom: 18px; }
.about-story > div:last-child > div[style*="grid-template-columns"] {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 16px !important;
  margin-bottom: 32px !important;
}
.about-story > div:last-child > div[style*="display:flex"] {
  display: flex !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
}

.values-section {
  padding: 84px 60px;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.01);
}
.values-grid {
  margin-top: 38px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.value-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 24px 20px;
  text-align: left;
}
.value-icon { font-size: 1.6rem; margin-bottom: 12px; }
.value-title {
  font-family: var(--ff-d);
  font-size: 1.2rem;
  color: var(--text-primary);
  margin-bottom: 8px;
}
.value-desc {
  color: var(--gray);
  font-size: 0.83rem;
  line-height: 1.75;
}
[data-theme="sakura"] .value-card {
  background: #fff;
  border-color: rgba(160, 57, 90, 0.1);
}
[data-theme="sakura"] .value-desc { color: rgba(26, 10, 16, 0.62); }

/* ═══════════════════════════════════════════════════════════
   BLOG PAGE LAYOUT
═══════════════════════════════════════════════════════════ */
.blog-page {
  max-width: 1320px;
  margin: 0 auto;
  padding: 80px 60px;
}
.blog-featured {
  display: grid;
  grid-template-columns: 1.45fr 1fr;
  gap: 18px;
  margin-bottom: 40px;
}
.bf-card,
.bs-card {
  position: relative;
  border-radius: var(--r-lg);
  overflow: hidden;
  border: 1px solid var(--border);
  display: block;
  min-height: 220px;
}
.bf-card { min-height: 420px; }
.bf-card img,
.bs-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.bf-ov,
.bs-ov {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(5, 10, 20, 0.92) 0%, rgba(5, 10, 20, 0.3) 55%, transparent 100%);
}
.bf-body,
.bs-body {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
}
.bf-body { padding: 28px; }
.bs-body { padding: 18px; }
.bf-cat,
.bs-cat,
.bm-cat {
  display: inline-block;
  background: var(--gold);
  color: #fff;
  border-radius: 20px;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  padding: 4px 10px;
  margin-bottom: 10px;
}
.bf-title {
  font-family: var(--ff-d);
  color: #fff;
  font-size: clamp(1.4rem, 2.6vw, 2rem);
  line-height: 1.16;
  margin-bottom: 10px;
}
.bf-meta,
.bs-meta {
  color: rgba(255, 255, 255, 0.75);
  font-size: 0.75rem;
}
.bs-title {
  color: #fff;
  font-family: var(--ff-d);
  font-size: 1.08rem;
  line-height: 1.2;
  margin-bottom: 8px;
}
.bf-side {
  display: grid;
  gap: 18px;
  grid-template-rows: 1fr 1fr;
}

.blog-filter {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 34px;
}
.bf-btn {
  padding: 8px 16px;
  border-radius: 30px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--gray);
  font-size: 0.74rem;
  font-family: var(--ff-b);
  cursor: pointer;
}
.bf-btn.active {
  background: var(--gold);
  color: #fff;
  border-color: var(--gold);
}

.blog-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 28px;
  align-items: start;
}
.blog-main-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.bm-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.bm-img-wrap {
  position: relative;
  height: 190px;
  overflow: hidden;
}
.bm-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bm-body { padding: 18px; }
.bm-meta {
  color: var(--gray);
  font-size: 0.7rem;
  margin-bottom: 8px;
  display: flex;
  gap: 8px;
}
.bm-title {
  font-family: var(--ff-d);
  color: var(--text-primary);
  font-size: 1.15rem;
  line-height: 1.25;
  margin-bottom: 10px;
}
.bm-excerpt {
  color: var(--gray);
  font-size: 0.8rem;
  line-height: 1.7;
  margin-bottom: 12px;
}
.bm-more {
  color: var(--gold);
  font-size: 0.7rem;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 600;
}

.blog-sidebar {
  position: sticky;
  top: calc(var(--nav-h) + 20px);
}
.bs-widget {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 20px;
  margin-bottom: 16px;
}
.bs-widget-title {
  font-family: var(--ff-d);
  color: var(--text-primary);
  font-size: 1.2rem;
  margin-bottom: 10px;
}
.category-list { list-style: none; }
.category-list li + li { margin-top: 8px; }
.category-list a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--gray);
  text-decoration: none;
  font-size: 0.82rem;
}

/* FAQ alignment polish */
.faq-page .section-label,
.faq-page .section-title { text-align: center; display: block; }

/* Shared responsive alignment fixes */
@media (max-width: 1100px) {
  .about-story { grid-template-columns: 1fr; gap: 30px; }
  .values-grid { grid-template-columns: repeat(2, 1fr); }
  .blog-featured { grid-template-columns: 1fr; }
  .bf-side { grid-template-columns: 1fr 1fr; grid-template-rows: none; }
  .blog-layout { grid-template-columns: 1fr; }
  .blog-sidebar { position: static; }
}
@media (max-width: 768px) {
  .about-story,
  .values-section,
  .blog-page { padding-left: 22px; padding-right: 22px; }
  .about-story > div:last-child > div[style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
  }
  .values-grid,
  .blog-main-grid,
  .bf-side { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════
   LEGAL / SIMPLE INNER PAGES
═══════════════════════════════════════════════════════════ */
.legal {
  max-width: 720px;
  margin: 0 auto;
  padding: 120px 24px 80px;
  font-size: 0.95rem;
  line-height: 1.8;
}
html[data-theme="sakura"] .legal { color: rgba(26, 10, 16, 0.78); }
html:not([data-theme="sakura"]) .legal { color: rgba(234, 228, 213, 0.82); }
.legal h1 { font-family: var(--ff-d); font-size: 2rem; margin-bottom: 8px; }
.legal h2 { font-size: 1.05rem; margin: 28px 0 10px; color: var(--gold); }
.legal a { color: var(--gold); }

/* ═══════════════════════════════════════════════════════════
   GALLERY LIGHTBOX (JS adds .img-lightbox-backdrop)
═══════════════════════════════════════════════════════════ */
.img-lightbox-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.92);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: zoom-out;
  animation: fadeIn 0.25s ease;
}
.img-lightbox-backdrop img {
  max-width: 92vw;
  max-height: 92vh;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
}
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* ═══════════════════════════════════════════════════════════
   CRUISE PAGE — unique sections only (nav/footer use global)
═══════════════════════════════════════════════════════════ */
.cruise-section { padding: 0 60px 80px; max-width: 1400px; margin: 0 auto; }
.cruise-section-head { text-align: center; margin-bottom: 48px; }
.cruise-section-head .section-sub { margin: 0 auto; }
.cruise-tabs { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-bottom: 44px; }
.cruise-tab {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 9px 22px;
  border-radius: 50px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--gray);
  font-family: var(--ff-b);
  font-size: 0.78rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}
[data-theme="sakura"] .cruise-tab { border-color: rgba(160, 57, 90, 0.15); color: rgba(26, 10, 16, 0.55); }
.cruise-tab:hover { border-color: var(--border-gold); color: var(--white); }
[data-theme="sakura"] .cruise-tab:hover { color: var(--gold); border-color: var(--border-gold); }
.cruise-tab.active { background: var(--gold); color: #fff; border-color: var(--gold); font-weight: 700; }
.cruise-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.cruise-card {
  position: relative;
  border-radius: var(--r-xl);
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--border);
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease);
}
[data-theme="sakura"] .cruise-card { border-color: rgba(160, 57, 90, 0.12); }
.cruise-card:hover { transform: translateY(-6px); box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2); }
[data-theme="sakura"] .cruise-card:hover { box-shadow: 0 20px 50px rgba(160, 57, 90, 0.15); }
.cruise-card.featured { grid-column: 1/2; grid-row: 1/3; }
.cruise-card-img { width: 100%; height: 280px; object-fit: cover; transition: transform 0.6s var(--ease); display: block; }
.cruise-card.featured .cruise-card-img { height: 100%; min-height: 520px; }
.cruise-card:hover .cruise-card-img { transform: scale(1.05); }
.cruise-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(5, 10, 20, 0.92) 0%, rgba(5, 10, 20, 0.25) 55%, transparent 100%);
}
.cruise-card-body { position: absolute; bottom: 0; left: 0; right: 0; padding: 28px; }
.cruise-card-badge {
  display: inline-block;
  background: var(--gold);
  color: #fff;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 30px;
  margin-bottom: 10px;
}
.cruise-card h3 {
  font-family: var(--ff-d);
  font-size: 1.7rem;
  font-weight: 400;
  color: #fff;
  line-height: 1.2;
  margin-bottom: 8px;
}
.cruise-card.featured h3 { font-size: 2.2rem; }
.cruise-card-route {
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.68);
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 14px;
}
.cruise-card-route i { color: #f5c89a; }
.cruise-card-meta { display: flex; gap: 10px; align-items: center; margin-bottom: 18px; flex-wrap: wrap; }
.cruise-meta-pill {
  display: flex;
  align-items: center;
  gap: 5px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 30px;
  padding: 5px 12px;
  font-size: 0.68rem;
  color: #fff;
}
.cruise-meta-pill i { color: #f5c89a; width: 11px; height: 11px; }
.cruise-price-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.cruise-price { font-size: 1.15rem; font-weight: 700; color: #f5c89a; }
.cruise-price span { font-size: 0.72rem; font-weight: 400; color: rgba(255, 255, 255, 0.55); }
.cruise-cta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--gold);
  color: #fff;
  padding: 9px 20px;
  border-radius: 50px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  font-family: var(--ff-b);
  transition: transform 0.2s, box-shadow 0.2s;
  white-space: nowrap;
}
.cruise-cta:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(160, 57, 90, 0.3); }
.cruise-cta-outline {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: rgba(255, 255, 255, 0.9);
  padding: 9px 20px;
  border-radius: 50px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  font-family: var(--ff-b);
  transition: all 0.2s;
  white-space: nowrap;
}
.cruise-cta-outline:hover { background: rgba(255, 255, 255, 0.15); }
.cruise-incl-band {
  background: var(--surface2);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 60px;
}
[data-theme="sakura"] .cruise-incl-band { background: #f8eff4; }
.cruise-incl-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 3fr;
  gap: 60px;
  align-items: center;
}
.cruise-incl-feats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.cruise-feat-item { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.cruise-feat-icon {
  width: 44px;
  height: 44px;
  background: rgba(196, 150, 90, 0.1);
  border: 1px solid var(--border-gold);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold);
}
[data-theme="sakura"] .cruise-feat-icon { background: rgba(160, 57, 90, 0.08); }
.cruise-feat-title { font-size: 0.85rem; font-weight: 600; color: var(--white); }
.cruise-feat-desc { font-size: 0.75rem; color: var(--gray); line-height: 1.6; }
.cruise-liners-section { padding: 80px 60px; max-width: 1400px; margin: 0 auto; }
.cruise-liners-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 40px; }
.liner-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 28px;
  transition: border-color 0.25s, transform 0.25s, box-shadow 0.25s;
}
[data-theme="sakura"] .liner-card { background: #fff; border-color: rgba(160, 57, 90, 0.1); }
.liner-card:hover {
  border-color: var(--border-gold);
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}
.liner-icon { font-size: 1.6rem; margin-bottom: 14px; }
.liner-name { font-family: var(--ff-d); font-size: 1.3rem; color: var(--white); margin-bottom: 6px; }
.liner-desc { font-size: 0.8rem; color: var(--gray); line-height: 1.65; margin-bottom: 14px; }
.liner-routes { display: flex; gap: 6px; flex-wrap: wrap; }
.liner-route-tag {
  font-size: 0.65rem;
  padding: 3px 10px;
  border-radius: 20px;
  background: rgba(196, 150, 90, 0.08);
  border: 1px solid rgba(196, 150, 90, 0.2);
  color: var(--gold);
  font-weight: 500;
}
[data-theme="sakura"] .liner-route-tag { background: rgba(160, 57, 90, 0.07); border-color: rgba(160, 57, 90, 0.2); }
.cruise-testi { padding: 0 60px 80px; max-width: 1400px; margin: 0 auto; }
.testi-mini-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 40px; }
.testi-mini-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 24px; }
[data-theme="sakura"] .testi-mini-card { background: #fff; border-color: rgba(160, 57, 90, 0.1); }
.testi-mini-card .stars { color: var(--gold); font-size: 0.85rem; margin-bottom: 10px; }
.testi-mini-text {
  font-size: 0.82rem;
  color: var(--gray);
  line-height: 1.75;
  margin-bottom: 16px;
  font-style: italic;
}
[data-theme="sakura"] .testi-mini-text { color: rgba(26, 10, 16, 0.7); }
.testi-mini-author { display: flex; align-items: center; gap: 10px; }
.testi-avatar { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
.testi-name { font-size: 0.82rem; font-weight: 600; color: var(--white); }
[data-theme="sakura"] .testi-name { color: #1a0a10; }
.testi-mini-author .testi-loc { font-size: 0.7rem; color: var(--gray); }
[data-theme="sakura"] .testi-mini-author .testi-loc { color: rgba(26, 10, 16, 0.48); }
.cruise-cta-band { position: relative; overflow: hidden; margin: 0 60px 80px; border-radius: var(--r-xl); }
.cruise-cta-band-bg {
  position: absolute;
  inset: 0;
  background-image: url("https://images.unsplash.com/photo-1548574505-5e239809ee19?w=1920&q=80");
  background-size: cover;
  background-position: center;
}
.cruise-cta-band-ov {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(5, 10, 20, 0.96) 45%, rgba(5, 10, 20, 0.5) 100%);
}
.cruise-cta-band-inner { position: relative; z-index: 2; padding: 72px 60px; max-width: 620px; }
.cruise-cta-band-inner p { color: rgba(255, 255, 255, 0.7); font-size: 0.9rem; line-height: 1.8; margin-bottom: 28px; }
.cruise-cta-btns { display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 1200px) {
  .cruise-incl-inner { grid-template-columns: 1fr; gap: 32px; }
  .cruise-incl-feats { grid-template-columns: repeat(2, 1fr); }
  .cruise-liners-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .cruise-grid { grid-template-columns: 1fr; }
  .cruise-card.featured { grid-column: auto; grid-row: auto; }
  .cruise-card.featured .cruise-card-img { height: 320px; min-height: unset; }
  .testi-mini-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .cruise-section,
  .cruise-testi { padding-left: 22px; padding-right: 22px; }
  .cruise-incl-band,
  .cruise-liners-section { padding-left: 22px; padding-right: 22px; }
  .cruise-cta-band { margin: 0 22px 60px; }
  .cruise-cta-band-inner { padding: 48px 28px; }
  .cruise-liners-grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════
   BLOG ARTICLE (standalone posts under /blog/)
═══════════════════════════════════════════════════════════ */
.article-wrap {
  max-width: 680px;
  margin: 0 auto;
  padding: 96px 24px 64px;
  font-size: 0.95rem;
  line-height: 1.85;
  color: var(--text-secondary);
}
.article-wrap h1 {
  font-family: var(--ff-d);
  font-size: clamp(1.65rem, 4vw, 2.15rem);
  font-weight: 400;
  color: var(--text-primary);
  line-height: 1.2;
  margin-bottom: 12px;
}
.article-wrap h2 {
  font-family: var(--ff-d);
  font-size: 1.35rem;
  margin: 28px 0 12px;
  color: var(--text-primary);
}
.article-meta { font-size: 0.8rem; color: var(--gray); margin-bottom: 20px; }
.article-wrap .back { margin-bottom: 8px; }
.article-wrap .back a { color: var(--gold); text-decoration: none; font-size: 0.78rem; letter-spacing: 0.02em; }
.article-wrap .lead {
  font-size: 1.02rem;
  color: var(--text-secondary);
  margin-bottom: 20px;
}
.article-wrap p { margin-bottom: 16px; }
.article-wrap a { color: var(--gold); }

/* ═══════════════════════════════════════════════════════════
   THEME COMPATIBILITY PATCH (SITEWIDE)
═══════════════════════════════════════════════════════════ */
[data-theme="forest"] {
  --header-bg-scrolled: rgba(12,34,24,0.94);
  --dropdown-bg: #12261f;
  --hero-overlay-main: linear-gradient(135deg,rgba(7,20,14,0.86) 0%,rgba(7,20,14,0.46) 58%,rgba(7,20,14,0.72) 100%);
  --dp-hero-overlay-main: linear-gradient(to top, rgba(7,20,14,0.92) 0%, rgba(7,20,14,0.45) 55%, rgba(7,20,14,0.18) 100%);
}
[data-theme="dusk"] {
  --header-bg-scrolled: rgba(27,20,39,0.95);
  --dropdown-bg: #1b1627;
  --hero-overlay-main: linear-gradient(135deg,rgba(24,17,36,0.86) 0%,rgba(24,17,36,0.48) 58%,rgba(24,17,36,0.74) 100%);
  --dp-hero-overlay-main: linear-gradient(to top, rgba(24,17,36,0.93) 0%, rgba(24,17,36,0.44) 55%, rgba(24,17,36,0.16) 100%);
}
[data-theme="ocean"] {
  --header-bg-scrolled: rgba(7,28,43,0.95);
  --dropdown-bg: #0d2a3e;
  --hero-overlay-main: linear-gradient(135deg,rgba(6,28,42,0.86) 0%,rgba(6,28,42,0.44) 58%,rgba(6,28,42,0.72) 100%);
  --dp-hero-overlay-main: linear-gradient(to top, rgba(6,28,42,0.93) 0%, rgba(6,28,42,0.45) 55%, rgba(6,28,42,0.16) 100%);
}
[data-theme="indigo"] {
  --header-bg-scrolled: rgba(18,25,55,0.95);
  --dropdown-bg: #141d3a;
  --hero-overlay-main: linear-gradient(135deg,rgba(15,22,48,0.86) 0%,rgba(15,22,48,0.46) 58%,rgba(15,22,48,0.74) 100%);
  --dp-hero-overlay-main: linear-gradient(to top, rgba(15,22,48,0.93) 0%, rgba(15,22,48,0.44) 55%, rgba(15,22,48,0.16) 100%);
}
.footer-col li a,
.fb-right a,
.fc-item,
.fc-item a { color: var(--footer-link); }
.footer-col li a:hover,
.fb-right a:hover,
.fc-item a:hover { color: var(--gold); }
.dp-gal-overlay i[data-lucide="zoom-in"] { color: var(--text-primary) !important; }

/* ═══════════════════════════════════════════════════════════
   PAGE LOADER (simple spinner — sakura vs dark themes)
═══════════════════════════════════════════════════════════ */

.em-page-loader {
  --em-loader-sky: #05080f;
  --em-loader-glow: #00e5ff;
  --em-loader-ring: rgba(255, 255, 255, 0.14);
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--em-loader-sky);
  font-family: var(--ff-b), system-ui, sans-serif;
  overflow: hidden;
  transition: opacity 0.45s var(--ease), visibility 0.45s var(--ease);
}
.em-page-loader.em-page-loader--done {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

html[data-theme="sakura"] .em-page-loader {
  --em-loader-sky: #fdf6f8;
  --em-loader-glow: #a0395a;
  --em-loader-ring: rgba(160, 57, 90, 0.22);
}

.em-page-loader__scene {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(18px, 3.5vw, 28px);
}

.em-page-loader__spinner {
  width: 44px;
  height: 44px;
  border: 3px solid var(--em-loader-ring);
  border-top-color: var(--em-loader-glow);
  border-radius: 50%;
  box-sizing: border-box;
  animation: em-loader-spin 0.72s linear infinite;
}

@keyframes em-loader-spin {
  to {
    transform: rotate(360deg);
  }
}

.em-page-loader__label {
  letter-spacing: 0.22em;
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--em-loader-glow);
  text-transform: uppercase;
  opacity: 0.88;
  animation: em-loader-pulse 1.2s ease-in-out infinite;
  margin: 0;
}
@keyframes em-loader-pulse {
  0%,
  100% {
    opacity: 0.52;
  }
  50% {
    opacity: 1;
  }
}

.em-page-loader__dots span {
  display: inline-block;
  animation: em-loader-dot 0.85s ease-in-out infinite;
}
.em-page-loader__dots span:nth-child(2) {
  animation-delay: 0.14s;
}
.em-page-loader__dots span:nth-child(3) {
  animation-delay: 0.28s;
}
@keyframes em-loader-dot {
  0%,
  80%,
  100% {
    opacity: 0;
    transform: translateY(0);
  }
  40% {
    opacity: 1;
    transform: translateY(-3px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .em-page-loader__spinner {
    animation: em-loader-spin-slow 1.4s linear infinite;
  }
  .em-page-loader__label {
    animation: none;
    opacity: 0.85;
  }
  .em-page-loader__dots span {
    animation: none;
    opacity: 0.7;
  }
}

@keyframes em-loader-spin-slow {
  to {
    transform: rotate(360deg);
  }
}

