/* ============================================
   ChoseFly Tourism — World-Class Design System
   Theme: Navy + Gold (from logo)
   ============================================ */

/* ---------- Tokens ---------- */
:root{
  --navy:#0E2A5C;
  --navy-2:#143A7A;
  --navy-3:#1E4FA3;
  --navy-dark:#061A3D;
  --navy-deep:#040F2A;
  --gold:#F2B826;
  --gold-2:#FFC93C;
  --gold-dark:#C99715;
  --gold-soft:#FFF1C6;
  --white:#ffffff;
  --off-white:#F7F4ED;
  --cream:#FFFAEB;
  --ink:#0B1B3D;
  --gray:#5B6477;
  --gray-2:#8892A6;
  --line:#E6E9F0;
  --line-2:#EFF1F6;
  --success:#16A34A;
  --danger:#DC2626;

  --shadow-sm:0 1px 2px rgba(14,42,92,.06), 0 1px 1px rgba(14,42,92,.04);
  --shadow:0 8px 24px -8px rgba(14,42,92,.18), 0 4px 8px -2px rgba(14,42,92,.06);
  --shadow-lg:0 30px 60px -20px rgba(14,42,92,.28), 0 12px 24px -8px rgba(14,42,92,.12);
  --shadow-gold:0 16px 40px -12px rgba(242,184,38,.45);

  --radius-sm:8px;
  --radius:14px;
  --radius-lg:22px;
  --radius-xl:32px;

  --ease:cubic-bezier(.2,.7,.2,1);
  --ease-out:cubic-bezier(.16,1,.3,1);

  --container:1240px;
  --font-sans:'Inter','SF Pro Display',-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;
  --font-serif:'Playfair Display','DM Serif Display',Georgia,serif;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.6;
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:color .2s var(--ease)}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}

h1,h2,h3,h4,h5{margin:0 0 .5em;font-weight:700;line-height:1.15;letter-spacing:-.02em}
p{margin:0 0 1em}
.serif{font-family:var(--font-serif);letter-spacing:-.01em;font-weight:600}

.container{max-width:var(--container);margin:0 auto;padding:0 1.25rem}
.text-center{text-align:center}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2.5rem}
.gold{color:var(--gold)}
.navy{color:var(--navy)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  padding:.85rem 1.5rem;font-size:.92rem;font-weight:600;letter-spacing:.01em;
  border-radius:50px;line-height:1;
  transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out),background .25s,color .25s;
  position:relative;cursor:pointer;white-space:nowrap;
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-sm{padding:.65rem 1.15rem;font-size:.84rem}
.btn-lg{padding:1.05rem 1.85rem;font-size:1rem}
.btn-gold{background:linear-gradient(135deg,var(--gold) 0%,var(--gold-2) 100%);color:var(--navy-dark);box-shadow:var(--shadow-gold)}
.btn-gold:hover{box-shadow:0 22px 50px -14px rgba(242,184,38,.65)}
.btn-navy{background:var(--navy);color:#fff;box-shadow:var(--shadow)}
.btn-navy:hover{background:var(--navy-2)}
.btn-white{background:#fff;color:var(--navy);box-shadow:var(--shadow)}
.btn-outline-white{border:1.5px solid rgba(255,255,255,.55);color:#fff;background:transparent}
.btn-outline-white:hover{background:#fff;color:var(--navy);border-color:#fff}
.btn-outline-navy{border:1.5px solid var(--navy);color:var(--navy);background:transparent}
.btn-outline-navy:hover{background:var(--navy);color:#fff}
.btn-ghost{color:var(--navy);background:rgba(14,42,92,.06)}
.btn-ghost:hover{background:rgba(14,42,92,.1)}
.btn-block{width:100%}

/* ---------- Site image placeholders ---------- */
/* [data-img] images start with src="" — show a neutral background until
   the admin image loads. No transition needed: src goes blank→final in one step. */
img[data-img]{background:var(--off-white);display:block}
img[data-img][src=""]{opacity:0}
img[data-img]:not([src=""]):not([src]){opacity:1}

/* ---------- Skeleton loading ---------- */
.skeleton{
  background:linear-gradient(90deg,#e8ecf0 25%,#f5f6f8 50%,#e8ecf0 75%);
  background-size:200% 100%;
  animation:skeleton-shine 1.4s infinite;
  border-radius:var(--radius);
}
@keyframes skeleton-shine{
  0%{background-position:200% 0}
  100%{background-position:-200% 0}
}
.skeleton-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;
}
.skeleton-card .sk-img{height:200px;width:100%}
.skeleton-card .sk-body{padding:1rem}
.skeleton-card .sk-line{height:12px;border-radius:6px;margin-bottom:.6rem}
.skeleton-card .sk-line.w80{width:80%}
.skeleton-card .sk-line.w60{width:60%}
.skeleton-card .sk-line.w40{width:40%}

/* ---------- Back to top ---------- */
.back-top{
  position:fixed;bottom:100px;right:24px;z-index:60;
  width:44px;height:44px;border-radius:50%;
  background:var(--navy);color:#fff;font-size:1.2rem;
  display:grid;place-items:center;
  box-shadow:var(--shadow);cursor:pointer;border:0;
  opacity:0;transform:translateY(12px);
  transition:opacity .3s,transform .3s;pointer-events:none;
}
.back-top.visible{opacity:1;transform:translateY(0);pointer-events:auto}
.back-top:hover{background:var(--gold);color:var(--navy-dark)}

/* ---------- Favourite button state ---------- */
.ac-fav{transition:color .2s,transform .2s}
.ac-fav.faved{color:var(--gold);transform:scale(1.2)}

/* ---------- Activity card child price ---------- */
.ac-child-price{font-size:.72rem;color:var(--gray);margin-top:.15rem}
.ac-child-price span{color:var(--gold-dark);font-weight:600}

/* ---------- Activity visibility badge in admin ---------- */
.vis-toggle{
  display:inline-flex;align-items:center;gap:.45rem;
  padding:.35rem .8rem;border-radius:50px;font-size:.76rem;font-weight:700;
  cursor:pointer;border:0;font-family:inherit;transition:.2s;
}
.vis-toggle.on{background:#DCFCE7;color:#166534}
.vis-toggle.off{background:#FEE2E2;color:#991B1B}
.vis-toggle:hover{filter:brightness(.95)}
.vis-toggle .vt-dot{width:7px;height:7px;border-radius:50%;background:currentColor}

/* ---------- Header / Nav ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:80;
  padding:.85rem 0;
  background:rgba(255,255,255,.72);
  backdrop-filter:saturate(180%) blur(18px);
  -webkit-backdrop-filter:saturate(180%) blur(18px);
  border-bottom:1px solid transparent;
  transition:background .3s,border-color .3s,box-shadow .3s;
}
.site-header.scrolled{background:rgba(255,255,255,.95);border-bottom-color:var(--line);box-shadow:0 4px 24px -8px rgba(14,42,92,.08)}
.site-header.on-dark:not(.scrolled){background:rgba(6,26,61,.35);border-bottom-color:rgba(255,255,255,.1)}
.site-header.on-dark:not(.scrolled) .nav-links a,
.site-header.on-dark:not(.scrolled) .logo-text{color:#fff}
.site-header.on-dark:not(.scrolled) .logo-text .logo-sub{color:rgba(255,255,255,.7)}

.nav-inner{max-width:var(--container);margin:0 auto;padding:0 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}
.nav-logo{display:flex;align-items:center;gap:.7rem}
.logo-img{width:44px;height:44px;border-radius:10px;object-fit:contain;display:block}
.site-header.on-dark:not(.scrolled) .logo-img{filter:drop-shadow(0 4px 12px rgba(0,0,0,.25))}
.logo-text{
  font-family:var(--font-serif);font-size:1.55rem;font-weight:700;
  color:var(--navy);line-height:1;letter-spacing:-.018em;
  display:inline-block;white-space:nowrap;
}
.logo-text span:first-of-type{color:var(--gold-dark);font-style:italic;margin-left:1px}
.logo-text .logo-sub{
  display:block;font-style:normal;font-family:var(--font-sans);
  font-size:.6rem;font-weight:600;color:var(--gray);
  letter-spacing:.24em;text-transform:uppercase;margin-top:6px;margin-left:1px;
}
.site-footer .logo-text{color:#fff}
.site-footer .logo-text .logo-sub{color:rgba(255,255,255,.55)}
@media(max-width:560px){
  .logo-text{font-size:1.3rem}
  .logo-text .logo-sub{font-size:.55rem;letter-spacing:.22em}
}

.nav-links{list-style:none;margin:0;padding:0;display:flex;gap:.25rem;align-items:center}
.nav-links a{
  padding:.55rem .95rem;border-radius:50px;font-size:.88rem;font-weight:500;
  color:var(--ink);transition:all .25s var(--ease);
}
.nav-links a:hover,.nav-links a.active{background:rgba(14,42,92,.08);color:var(--navy)}
.site-header.on-dark:not(.scrolled) .nav-links a:hover,
.site-header.on-dark:not(.scrolled) .nav-links a.active{background:rgba(255,255,255,.16);color:#fff}

.nav-dropdown{position:relative}
.dropdown-menu{
  position:absolute;top:calc(100% + .6rem);left:50%;transform:translateX(-50%) translateY(8px);
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-lg);padding:.6rem;min-width:260px;
  opacity:0;visibility:hidden;transition:.3s var(--ease);
}
.nav-dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.dropdown-menu a{display:flex;align-items:center;gap:.7rem;padding:.7rem .9rem;font-size:.86rem;color:var(--ink) !important;background:none !important}
.dropdown-menu a:hover{background:var(--off-white) !important;color:var(--navy) !important}
.dropdown-menu a .icon{width:32px;height:32px;display:grid;place-items:center;background:var(--gold-soft);border-radius:9px;color:var(--gold-dark);flex-shrink:0}

.nav-cta{display:flex;align-items:center;gap:.6rem}
.hamburger{display:none;width:42px;height:42px;border-radius:11px;background:rgba(14,42,92,.06);align-items:center;justify-content:center;flex-direction:column;gap:4px}
.hamburger span{width:18px;height:2px;background:var(--navy);border-radius:2px;transition:.3s}

/* mobile menu */
@media(max-width:980px){
  .nav-links{
    position:fixed;top:70px;left:0;right:0;
    background:#fff;flex-direction:column;align-items:stretch;
    padding:1rem;gap:.25rem;
    box-shadow:var(--shadow-lg);border-top:1px solid var(--line);
    transform:translateY(-120%);transition:.4s var(--ease);max-height:calc(100vh - 80px);overflow:auto;
  }
  .nav-links.open{transform:translateY(0)}
  .nav-links a{display:block;padding:.85rem 1rem;border-radius:10px}
  .nav-dropdown .dropdown-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0 0 0 1rem;background:transparent}
  .hamburger{display:flex}
  .site-header.on-dark:not(.scrolled) .hamburger{background:rgba(255,255,255,.18)}
  .site-header.on-dark:not(.scrolled) .hamburger span{background:#fff}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;min-height:100vh;
  background:radial-gradient(ellipse at top right,#143A7A 0%,#0E2A5C 45%,#040F2A 100%);
  color:#fff;overflow:hidden;
  padding:120px 0 80px;
  display:flex;align-items:center;
}
.hero-canvas{position:absolute;inset:0;z-index:1;opacity:.85}
.hero-grid{position:absolute;inset:0;z-index:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%)}
.hero-orb{position:absolute;border-radius:50%;filter:blur(80px);z-index:1;pointer-events:none}
.hero-orb.gold{width:480px;height:480px;background:radial-gradient(circle,rgba(242,184,38,.4),transparent 70%);top:-100px;right:-100px}
.hero-orb.blue{width:520px;height:520px;background:radial-gradient(circle,rgba(30,79,163,.6),transparent 70%);bottom:-120px;left:-150px}

.hero-content{position:relative;z-index:3;width:100%;max-width:var(--container);margin:0 auto;padding:0 1.25rem;display:grid;grid-template-columns:1.1fr .9fr;gap:3.5rem;align-items:center}
.hero-eyebrow{display:inline-flex;align-items:center;gap:.55rem;padding:.45rem .9rem;border-radius:50px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);font-size:.78rem;font-weight:500;letter-spacing:.05em;color:#fff;backdrop-filter:blur(10px);margin-bottom:1.5rem}
.hero-eyebrow .dot{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.9)}}

.hero-title{font-family:var(--font-serif);font-size:clamp(2.4rem,5.5vw,4.6rem);font-weight:600;line-height:1.05;letter-spacing:-.025em;margin-bottom:1.25rem}
.hero-title .accent{
  background:linear-gradient(135deg,var(--gold) 0%,var(--gold-2) 50%,#FFE08A 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  display:inline-block;
}
.hero-desc{font-size:1.075rem;line-height:1.65;color:rgba(255,255,255,.78);max-width:540px;margin-bottom:2rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-bottom:2.5rem}

.hero-stats{display:flex;gap:2.5rem;flex-wrap:wrap;padding-top:1.75rem;border-top:1px solid rgba(255,255,255,.12)}
.stat-item .stat-num{font-family:var(--font-serif);font-size:1.85rem;font-weight:600;color:var(--gold);line-height:1}
.stat-item .stat-label{font-size:.78rem;color:rgba(255,255,255,.6);letter-spacing:.06em;text-transform:uppercase;margin-top:.4rem}

/* hero visual: floating cards */
.hero-visual{position:relative;height:520px;perspective:1200px}
.float-card{
  position:absolute;background:rgba(255,255,255,.08);backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-lg);
  padding:1rem;color:#fff;box-shadow:var(--shadow-lg);
  transform-style:preserve-3d;
  transition:transform .6s var(--ease-out);
}
.float-card img{width:100%;height:130px;object-fit:cover;border-radius:14px;margin-bottom:.65rem}
.float-card h4{font-size:.92rem;margin:0 0 .2rem;font-weight:600}
.float-card .meta{font-size:.7rem;color:rgba(255,255,255,.65)}
.float-card .price{font-family:var(--font-serif);font-size:1.15rem;color:var(--gold);font-weight:600;margin-top:.4rem}
.float-card.c1{width:240px;top:5%;left:0;animation:float1 8s ease-in-out infinite}
.float-card.c2{width:220px;top:40%;right:5%;animation:float2 9s ease-in-out infinite}
.float-card.c3{width:260px;bottom:0;left:20%;animation:float3 10s ease-in-out infinite}
@keyframes float1{0%,100%{transform:translateY(0) rotateZ(-2deg)}50%{transform:translateY(-18px) rotateZ(-2deg)}}
@keyframes float2{0%,100%{transform:translateY(0) rotateZ(3deg)}50%{transform:translateY(-22px) rotateZ(3deg)}}
@keyframes float3{0%,100%{transform:translateY(0) rotateZ(-1deg)}50%{transform:translateY(-14px) rotateZ(-1deg)}}

.scroll-cue{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.5);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;z-index:3;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.scroll-cue .line{width:1px;height:30px;background:linear-gradient(to bottom,transparent,var(--gold));animation:scrollLine 2s ease-in-out infinite}
@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

@media(max-width:980px){
  .hero{padding:110px 0 60px;min-height:auto}
  .hero-content{grid-template-columns:1fr;gap:2rem}
  .hero-visual{height:380px;display:none}
  .hero-stats{gap:1.5rem}
  .stat-item .stat-num{font-size:1.5rem}
}

/* ---------- Search Widget (hero overlay) ---------- */
.search-widget{
  position:relative;z-index:5;
  max-width:1080px;margin:-50px auto 0;padding:0 1.25rem;
}
.search-card{
  background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
  padding:1rem;display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:.5rem;align-items:center;
}
.search-field{padding:.75rem 1rem;border-radius:12px;transition:background .2s;cursor:text}
.search-field:hover{background:var(--off-white)}
.search-field label{display:block;font-size:.7rem;font-weight:600;color:var(--gray);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.2rem}
.search-field input,.search-field select{width:100%;border:0;background:none;outline:none;font-size:.95rem;font-weight:600;color:var(--ink);padding:0}
.search-field+.search-field{border-left:1px solid var(--line)}
.search-card .btn{height:100%;min-height:60px;padding:0 1.5rem}
@media(max-width:780px){
  .search-card{grid-template-columns:1fr;gap:0}
  .search-field+.search-field{border-left:0;border-top:1px solid var(--line)}
  .search-card .btn{margin-top:.5rem;min-height:54px}
}

/* ---------- Quick Categories Bar ---------- */
.quick-bar{padding:3rem 0 1rem}
.quick-bar-inner{display:grid;grid-template-columns:repeat(6,1fr);gap:.75rem}
.quick-cat{
  display:flex;flex-direction:column;align-items:center;gap:.55rem;
  padding:1.25rem .8rem;border-radius:var(--radius);
  background:var(--white);border:1px solid var(--line-2);
  text-align:center;transition:.3s var(--ease);
  position:relative;overflow:hidden;
}
.quick-cat:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:var(--shadow)}
.quick-cat .qc-ico{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,var(--gold-soft),#FFE9A8);display:grid;place-items:center;font-size:1.5rem;color:var(--gold-dark);transition:.3s var(--ease)}
.quick-cat:hover .qc-ico{transform:scale(1.08) rotate(-4deg);background:linear-gradient(135deg,var(--gold),var(--gold-2));color:var(--navy)}
.quick-cat .qc-label{font-size:.82rem;font-weight:600;color:var(--ink)}
.quick-cat .qc-sub{font-size:.7rem;color:var(--gray)}
@media(max-width:780px){.quick-bar-inner{grid-template-columns:repeat(3,1fr)}}

/* ---------- Section ---------- */
.section{padding:5rem 0;position:relative}
.section-tight{padding:3.5rem 0}
.section-dark{background:linear-gradient(135deg,var(--navy-dark),var(--navy));color:#fff}
.section-alt{background:var(--off-white)}

.section-head{text-align:center;max-width:680px;margin:0 auto 3rem}
.section-head.left{text-align:left;margin-left:0}
.section-eyebrow{
  display:inline-flex;align-items:center;gap:.4rem;
  font-size:.78rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-dark);margin-bottom:.85rem;
}
.section-eyebrow::before{content:"";width:24px;height:2px;background:var(--gold);border-radius:2px}
.section-title{font-family:var(--font-serif);font-size:clamp(1.9rem,3.3vw,2.85rem);font-weight:600;color:var(--navy);letter-spacing:-.02em;margin-bottom:.65rem}
.section-dark .section-title{color:#fff}
.section-dark .section-eyebrow{color:var(--gold)}
.section-desc{font-size:1rem;line-height:1.65;color:var(--gray)}
.section-dark .section-desc{color:rgba(255,255,255,.7)}

.section-head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.5rem;flex-wrap:wrap}
.section-head-row .section-head{text-align:left;margin:0;max-width:560px}

/* ---------- Activity Card ---------- */
.activity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}
.activity-card{
  background:#fff;border-radius:var(--radius-lg);overflow:hidden;
  border:1px solid var(--line-2);
  transition:.4s var(--ease-out);
  display:flex;flex-direction:column;position:relative;
  transform-style:preserve-3d;
}
.activity-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:transparent}
.activity-card .ac-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--off-white)}
.activity-card .ac-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out)}
.activity-card:hover .ac-media img{transform:scale(1.08)}
.activity-card .ac-tag{
  position:absolute;top:.85rem;left:.85rem;
  background:rgba(255,255,255,.95);backdrop-filter:blur(10px);
  padding:.32rem .65rem;border-radius:50px;font-size:.68rem;font-weight:700;
  color:var(--navy);letter-spacing:.05em;text-transform:uppercase;
}
.activity-card .ac-fav{
  position:absolute;top:.85rem;right:.85rem;
  width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.95);
  display:grid;place-items:center;color:var(--navy);font-size:1rem;
  transition:.2s;cursor:pointer;
}
.activity-card .ac-fav:hover{background:var(--gold);color:var(--navy)}
.activity-card .ac-tag.bestseller{background:var(--gold);color:var(--navy-dark)}
.activity-card .ac-body{padding:1.15rem 1.25rem 1.35rem;display:flex;flex-direction:column;flex:1}
.activity-card .ac-meta{display:flex;align-items:center;gap:.6rem;font-size:.75rem;color:var(--gray);margin-bottom:.45rem}
.activity-card .ac-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--gray-2)}
.activity-card .ac-title{font-size:1.05rem;font-weight:700;color:var(--ink);margin-bottom:.45rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.activity-card .ac-rating{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--gray);margin-bottom:.85rem}
.activity-card .ac-rating .stars{color:var(--gold-dark);letter-spacing:1px;font-size:.8rem}
.activity-card .ac-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:.5rem;margin-top:auto;padding-top:.75rem;border-top:1px dashed var(--line)}
.activity-card .ac-price{display:flex;flex-direction:column}
.activity-card .ac-price .from{font-size:.7rem;color:var(--gray)}
.activity-card .ac-price .amount{font-family:var(--font-serif);font-size:1.45rem;color:var(--navy);font-weight:700;line-height:1}
.activity-card .ac-price .amount small{font-size:.65rem;color:var(--gray);font-weight:500;margin-left:.2rem}
.activity-card .ac-price .strike{font-size:.78rem;color:var(--gray-2);text-decoration:line-through;margin-top:2px}
.activity-card .ac-book{
  padding:.55rem 1rem;border-radius:50px;background:var(--navy);color:#fff;font-size:.8rem;font-weight:600;
  transition:.2s;display:inline-flex;align-items:center;gap:.3rem;
}
.activity-card .ac-book:hover{background:var(--gold);color:var(--navy)}

/* ---------- Category Pills (filters) ---------- */
.cat-pills{display:flex;gap:.5rem;overflow-x:auto;padding:.5rem 0 1rem;margin-bottom:1.5rem;scrollbar-width:none}
.cat-pills::-webkit-scrollbar{display:none}
.cat-pill{
  padding:.55rem 1.1rem;border-radius:50px;background:#fff;border:1.5px solid var(--line);
  font-size:.85rem;font-weight:600;color:var(--ink);cursor:pointer;white-space:nowrap;
  transition:.2s;display:inline-flex;align-items:center;gap:.4rem;
}
.cat-pill:hover{border-color:var(--gold)}
.cat-pill.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.cat-pill .count{font-size:.7rem;color:var(--gray);background:var(--off-white);padding:1px 8px;border-radius:50px;font-weight:700}
.cat-pill.active .count{background:rgba(255,255,255,.2);color:#fff}

/* ---------- Features grid ---------- */
.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem}
.feature-card{
  padding:2rem 1.5rem;background:#fff;border-radius:var(--radius-lg);
  border:1px solid var(--line-2);transition:.3s var(--ease);text-align:left;
  position:relative;overflow:hidden;
}
.feature-card::before{
  content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--gold-soft),transparent 60%);
  opacity:0;transition:.4s;
}
.feature-card:hover{transform:translateY(-4px);border-color:transparent;box-shadow:var(--shadow-lg)}
.feature-card:hover::before{opacity:1}
.feature-icon{
  width:56px;height:56px;border-radius:16px;
  background:linear-gradient(135deg,var(--navy),var(--navy-2));color:var(--gold);
  display:grid;place-items:center;font-size:1.5rem;margin-bottom:1.25rem;
  position:relative;z-index:1;box-shadow:var(--shadow);
}
.feature-title{font-size:1.05rem;font-weight:700;color:var(--ink);margin-bottom:.5rem;position:relative;z-index:1}
.feature-desc{font-size:.88rem;line-height:1.65;color:var(--gray);position:relative;z-index:1;margin:0}

/* ---------- Destination tile (large feature) ---------- */
.dest-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:1rem;height:560px}
.dest-tile{display:block;position:relative;border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;background:var(--navy);text-decoration:none;color:inherit}
.dest-tile img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease-out)}
.dest-tile:hover img{transform:scale(1.06)}
.dest-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(4,15,42,.85) 100%)}
.dest-tile .dt-content{position:absolute;left:1.25rem;right:1.25rem;bottom:1.25rem;color:#fff;z-index:2}
.dest-tile .dt-title{font-family:var(--font-serif);font-size:1.4rem;font-weight:600;margin-bottom:.15rem}
.dest-tile .dt-sub{font-size:.8rem;color:rgba(255,255,255,.7)}
.dest-tile.big{grid-row:span 2}
.dest-tile.big .dt-title{font-size:2rem}
@media(max-width:780px){.dest-grid{grid-template-columns:1fr;grid-template-rows:none;height:auto}.dest-tile{height:280px}.dest-tile.big{grid-row:auto}}

/* ---------- Testimonials ---------- */
.testi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:1.25rem}
.testi-card{
  background:rgba(255,255,255,.06);backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-lg);
  padding:1.75rem;color:#fff;position:relative;
  transition:.3s var(--ease);
}
.testi-card:hover{transform:translateY(-4px);border-color:rgba(242,184,38,.5);background:rgba(255,255,255,.08)}
.testi-stars{color:var(--gold);letter-spacing:2px;font-size:.95rem;margin-bottom:.85rem}
.testi-quote{font-size:.95rem;line-height:1.65;color:rgba(255,255,255,.88);margin-bottom:1.25rem;font-style:italic}
.testi-author{display:flex;align-items:center;gap:.75rem}
.testi-avatar{width:44px;height:44px;border-radius:50%;overflow:hidden;background:var(--gold);flex-shrink:0;border:2px solid var(--gold)}
.testi-avatar img{width:100%;height:100%;object-fit:cover}
.testi-name{font-size:.92rem;font-weight:700;color:#fff;margin-bottom:1px}
.testi-detail{font-size:.74rem;color:rgba(255,255,255,.6)}
.google-badge{
  position:absolute;top:1.25rem;right:1.25rem;
  display:flex;align-items:center;gap:.4rem;
  background:rgba(255,255,255,.08);padding:.3rem .65rem;border-radius:50px;font-size:.7rem;color:rgba(255,255,255,.85);
}
.google-badge svg{width:14px;height:14px}

/* ---------- Rating block ---------- */
.rating-block{display:flex;align-items:center;justify-content:center;gap:2rem;flex-wrap:wrap;margin-bottom:2.5rem}
.rating-big{text-align:center}
.rating-big-num{font-family:var(--font-serif);font-size:4rem;font-weight:600;color:var(--gold);line-height:1}
.rating-big-stars{color:var(--gold);font-size:1.2rem;letter-spacing:3px}
.rating-big-label{font-size:.78rem;color:rgba(255,255,255,.6);margin-top:.4rem;letter-spacing:.06em;text-transform:uppercase}
.rating-pill{display:flex;align-items:center;gap:.6rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:50px;padding:.7rem 1.4rem}
.rating-pill svg{width:20px;height:20px}
.rating-pill span{color:#fff;font-weight:600;font-size:.88rem}

/* ---------- About section ---------- */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
@media(max-width:880px){.about-grid{grid-template-columns:1fr;gap:2.5rem}}
.about-media{position:relative;height:520px}
.about-media .m1{position:absolute;top:0;left:0;width:65%;height:75%;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}
.about-media .m2{position:absolute;bottom:0;right:0;width:55%;height:55%;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);border:6px solid #fff}
.about-media img{width:100%;height:100%;object-fit:cover}
.about-media .m-badge{
  position:absolute;top:25px;right:25px;
  background:#fff;border-radius:14px;padding:.85rem 1.1rem;box-shadow:var(--shadow-lg);
  display:flex;align-items:center;gap:.75rem;z-index:3;
}
.about-media .m-badge-num{font-family:var(--font-serif);font-size:1.5rem;color:var(--gold-dark);font-weight:700;line-height:1}
.about-media .m-badge-label{font-size:.7rem;color:var(--gray);text-transform:uppercase;letter-spacing:.06em;margin-top:2px}

.check-list{list-style:none;padding:0;margin:1rem 0 1.75rem}
.check-list li{display:flex;align-items:center;gap:.7rem;padding:.45rem 0;color:var(--ink);font-size:.92rem}
.check-list li::before{content:"";width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-2));display:grid;place-items:center;flex-shrink:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230E2A5C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'></polyline></svg>");background-repeat:no-repeat;background-position:center}

.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.75rem}
.stat-box{background:var(--off-white);padding:1rem;border-radius:var(--radius);text-align:center}
.stat-box-num{font-family:var(--font-serif);font-size:1.4rem;color:var(--navy);font-weight:700;line-height:1}
.stat-box-label{font-size:.7rem;color:var(--gray);margin-top:.25rem;letter-spacing:.05em}

/* ---------- CTA Banner ---------- */
.cta-banner{
  position:relative;padding:5rem 0;background:linear-gradient(135deg,var(--navy-dark),var(--navy));color:#fff;overflow:hidden;
}
.cta-banner::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 50%,rgba(242,184,38,.18),transparent 50%),radial-gradient(circle at 80% 50%,rgba(30,79,163,.4),transparent 50%)}
.cta-banner .container{position:relative;z-index:1;text-align:center;max-width:760px}
.cta-banner h2{font-family:var(--font-serif);font-size:clamp(1.8rem,3.2vw,2.8rem);margin-bottom:.8rem;color:#fff}
.cta-banner p{font-size:1.05rem;color:rgba(255,255,255,.7);margin-bottom:2rem}
.cta-actions{display:flex;justify-content:center;gap:.85rem;flex-wrap:wrap}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy-deep);color:rgba(255,255,255,.7);padding:4rem 0 1.5rem;position:relative}
.site-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.08)}
@media(max-width:780px){.footer-grid{grid-template-columns:1fr 1fr;gap:2.5rem}}
.footer-brand-desc{margin:0 0 1.25rem;font-size:.88rem;line-height:1.7;color:rgba(255,255,255,.55);max-width:340px}
.footer-socials{display:flex;gap:.55rem}
.social-btn{
  width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);
  display:grid;place-items:center;color:#fff;font-size:.95rem;
  transition:.2s;border:1px solid rgba(255,255,255,.08);
}
.social-btn:hover{background:var(--gold);color:var(--navy);transform:translateY(-3px)}
.footer-col h4{color:#fff;font-size:.85rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1.1rem}
.footer-col ul{list-style:none;padding:0;margin:0}
.footer-col li{padding:.3rem 0}
.footer-col a,.footer-col span{font-size:.88rem;color:rgba(255,255,255,.6);transition:.2s;display:inline-flex;align-items:center;gap:.45rem}
.footer-col a:hover{color:var(--gold)}
.footer-bottom{padding-top:1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}
.footer-bottom p{margin:0;font-size:.8rem;color:rgba(255,255,255,.45)}
.footer-bottom-links{display:flex;gap:1.25rem}
.footer-bottom-links a{font-size:.8rem;color:rgba(255,255,255,.45)}
.footer-bottom-links a:hover{color:var(--gold)}

/* ---------- WhatsApp float ---------- */
.wa-float{position:fixed;bottom:25px;right:25px;z-index:60;display:flex;align-items:center;gap:.7rem}
.wa-label{
  background:#fff;color:var(--navy);padding:.55rem 1rem;border-radius:50px;font-size:.82rem;font-weight:600;
  box-shadow:var(--shadow);white-space:nowrap;animation:waLabel 4s ease-in-out infinite;
}
@keyframes waLabel{0%,80%,100%{transform:translateX(0);opacity:1}90%{transform:translateX(8px);opacity:0}}
.wa-btn{position:relative;width:60px;height:60px;border-radius:50%;background:#25D366;display:grid;place-items:center;color:#fff;box-shadow:0 12px 36px -8px rgba(37,211,102,.6);transition:transform .25s}
.wa-btn:hover{transform:scale(1.08)}
.wa-btn svg{width:30px;height:30px;fill:#fff}
.wa-btn::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;animation:waPulse 2s infinite}
@keyframes waPulse{0%{transform:scale(1);opacity:1}100%{transform:scale(1.6);opacity:0}}
@media(max-width:560px){.wa-label{display:none}}

/* ---------- Page header (sub-pages) ---------- */
.page-hero{
  background:linear-gradient(135deg,var(--navy-dark) 0%,var(--navy) 70%,var(--navy-2) 100%);
  color:#fff;padding:160px 0 80px;position:relative;overflow:hidden;
}
.page-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 30%,rgba(242,184,38,.15),transparent 50%)}
.page-hero-inner{position:relative;z-index:1;max-width:var(--container);margin:0 auto;padding:0 1.25rem;text-align:center}
.page-hero h1{font-family:var(--font-serif);font-size:clamp(2rem,4vw,3.5rem);font-weight:600;color:#fff;margin-bottom:.65rem}
.page-hero p{font-size:1.05rem;color:rgba(255,255,255,.72);max-width:560px;margin:0 auto}
.breadcrumb{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;color:rgba(255,255,255,.55);margin-bottom:1rem;letter-spacing:.05em}
.breadcrumb a{color:var(--gold)}
.breadcrumb .sep{opacity:.5}

/* ---------- Activity detail page ---------- */
.detail-wrap{padding:3rem 0;display:grid;grid-template-columns:1.55fr 1fr;gap:3rem;align-items:flex-start}
@media(max-width:980px){.detail-wrap{grid-template-columns:1fr;gap:2rem}}
/* Gallery — desktop: 3-photo grid */
/* Desktop gallery: track is the CSS grid so individual slides are grid items */
.gallery{height:480px;border-radius:var(--radius-lg);overflow:hidden;margin-bottom:2rem;position:relative}
.gallery-track{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:.5rem;height:100%}
.gallery-slide{overflow:hidden}
.gallery-slide:first-child{grid-row:span 2}
.gallery-slide img{width:100%;height:100%;object-fit:cover;cursor:pointer;transition:transform .5s var(--ease-out)}
.gallery-slide img:hover{transform:scale(1.04)}
/* Hide nav controls on desktop — all photos visible in grid simultaneously */
.gallery-arrow,.gallery-dots{display:none}
@media(max-width:780px){.gallery{height:360px}}

/* Gallery — mobile: full-width swipeable carousel */
@media(max-width:640px){
  .gallery{
    display:block;
    height:260px;
    border-radius:var(--radius);
    overflow:hidden;
    position:relative;
  }
  /* Carousel track */
  .gallery-track{
    display:flex;
    width:100%;
    height:100%;
    transition:transform .35s cubic-bezier(.25,.46,.45,.94);
    will-change:transform;
  }
  /* Each slide */
  .gallery-slide{
    flex:0 0 100%;
    width:100%;
    height:100%;
    position:relative;
    overflow:hidden;
  }
  .gallery-slide img,.gallery img{
    width:100%;height:100%;object-fit:cover;
    display:block;
    transition:none;
  }
  /* Dot indicators */
  .gallery-dots{
    position:absolute;
    bottom:.6rem;
    left:50%;
    transform:translateX(-50%);
    display:flex;
    gap:.4rem;
    z-index:3;
  }
  .gallery-dot{
    width:6px;height:6px;
    border-radius:50%;
    background:rgba(255,255,255,.5);
    border:none;
    padding:0;
    cursor:pointer;
    transition:background .2s, transform .2s;
  }
  .gallery-dot.active{
    background:#fff;
    transform:scale(1.3);
  }
  /* Arrow buttons */
  .gallery-arrow{
    position:absolute;
    top:50%;transform:translateY(-50%);
    background:rgba(0,0,0,.35);
    color:#fff;border:none;
    width:32px;height:32px;
    border-radius:50%;
    font-size:1rem;
    display:flex;align-items:center;justify-content:center;
    cursor:pointer;z-index:3;
    -webkit-tap-highlight-color:transparent;
  }
  .gallery-arrow.prev{left:.5rem}
  .gallery-arrow.next{right:.5rem}
}
.detail-title{font-family:var(--font-serif);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:600;color:var(--navy);margin-bottom:.5rem;line-height:1.15}
.detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;font-size:.88rem;color:var(--gray);margin-bottom:1.5rem}
.detail-meta .chip{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .75rem;background:var(--off-white);border-radius:50px;font-size:.78rem;font-weight:600;color:var(--ink)}
.detail-meta .chip.rating{background:var(--gold-soft);color:var(--gold-dark)}

.detail-block{margin-bottom:2.5rem}
.detail-block h2{font-family:var(--font-serif);font-size:1.4rem;color:var(--navy);margin-bottom:.85rem}
.detail-block p{font-size:.95rem;line-height:1.75;color:var(--gray)}
.hl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;margin-top:1rem}
.hl-item{background:#fff;border:1px solid var(--line-2);border-radius:var(--radius);padding:1rem;display:flex;align-items:flex-start;gap:.65rem}
.hl-item .ico{width:36px;height:36px;border-radius:9px;background:var(--gold-soft);color:var(--gold-dark);display:grid;place-items:center;flex-shrink:0;font-size:1rem}
.hl-item h4{font-size:.88rem;margin:0 0 .15rem;color:var(--ink)}
.hl-item p{font-size:.78rem;color:var(--gray);margin:0;line-height:1.5}

.incl-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-top:1rem}
@media(max-width:680px){.incl-grid{grid-template-columns:1fr}}
.incl-col h3{font-size:.95rem;color:var(--ink);margin-bottom:.55rem;display:flex;align-items:center;gap:.4rem}
.incl-col ul{list-style:none;padding:0;margin:0}
.incl-col li{font-size:.85rem;padding:.35rem 0;display:flex;align-items:flex-start;gap:.55rem;color:var(--gray)}
.incl-col li::before{content:"";width:18px;height:18px;border-radius:50%;flex-shrink:0;background-repeat:no-repeat;background-position:center;background-size:14px}
.incl-col.included li::before{background-color:#DCFCE7;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23166534' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'></polyline></svg>")}
.incl-col.excluded li::before{background-color:#FEE2E2;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23991B1B' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><line x1='18' y1='6' x2='6' y2='18'/><line x1='6' y1='6' x2='18' y2='18'/></svg>")}

.faq-item{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:.6rem;overflow:hidden;background:#fff}
.faq-q{padding:1rem 1.15rem;display:flex;justify-content:space-between;align-items:center;font-size:.95rem;font-weight:600;cursor:pointer;color:var(--ink)}
.faq-q .toggle{width:24px;height:24px;border-radius:50%;background:var(--off-white);display:grid;place-items:center;font-size:1rem;font-weight:700;color:var(--navy);transition:.3s}
.faq-item.open .faq-q .toggle{transform:rotate(45deg);background:var(--gold);color:var(--navy)}
.faq-a{padding:0 1.15rem;max-height:0;overflow:hidden;transition:.4s var(--ease);font-size:.88rem;color:var(--gray);line-height:1.65}
.faq-item.open .faq-a{padding:0 1.15rem 1.1rem;max-height:500px}

/* booking sidebar */
.booking-side{position:sticky;top:100px;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--line-2);overflow:hidden}
.bs-head{padding:1.5rem;background:linear-gradient(135deg,var(--navy-dark),var(--navy));color:#fff}
.bs-price{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.25rem}
.bs-price .amount{font-family:var(--font-serif);font-size:2.2rem;font-weight:700;color:var(--gold)}
.bs-price .currency{font-size:.85rem;color:rgba(255,255,255,.7)}
.bs-price .strike{font-size:.95rem;color:rgba(255,255,255,.5);text-decoration:line-through}
.bs-price .save{background:var(--gold);color:var(--navy-dark);padding:2px 8px;border-radius:50px;font-size:.7rem;font-weight:700;margin-left:.3rem}
.bs-sub{font-size:.78rem;color:rgba(255,255,255,.65)}
.bs-body{padding:1.25rem 1.5rem 1.5rem}
.bs-field{margin-bottom:.85rem}
.bs-field label{font-size:.75rem;font-weight:600;color:var(--gray);display:block;margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.05em}
.bs-field input,.bs-field select{
  width:100%;padding:.75rem .9rem;border:1.5px solid var(--line);border-radius:12px;
  font-size:.92rem;font-weight:600;color:var(--ink);background:#fff;
  transition:.2s;outline:none;
}
.bs-field input:focus,.bs-field select:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(242,184,38,.12)}
.bs-field-row{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.bs-trust{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line-2);display:grid;gap:.4rem}
.bs-trust .tr{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--gray)}
.bs-trust .tr svg{color:var(--success);flex-shrink:0}

/* ---------- Modal (booking flow) ---------- */
.modal-overlay{
  position:fixed;inset:0;background:rgba(6,26,61,.72);backdrop-filter:blur(8px);
  z-index:200;display:none;align-items:center;justify-content:center;padding:1rem;
  opacity:0;transition:opacity .3s;
}
.modal-overlay.open{display:flex;opacity:1}
.modal{
  background:#fff;border-radius:var(--radius-xl);max-width:760px;width:100%;
  max-height:92vh;overflow:hidden;display:flex;flex-direction:column;
  box-shadow:var(--shadow-lg);transform:scale(.95);transition:transform .3s var(--ease-out);
}
.modal-overlay.open .modal{transform:scale(1)}
.modal-head{padding:1.25rem 1.5rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line-2)}
.modal-title{font-family:var(--font-serif);font-size:1.25rem;font-weight:600;color:var(--navy);margin:0}
.modal-close{width:36px;height:36px;border-radius:50%;background:var(--off-white);display:grid;place-items:center;font-size:1.3rem;color:var(--gray);transition:.2s}
.modal-close:hover{background:var(--navy);color:#fff}
.modal-steps{display:flex;gap:.5rem;padding:1rem 1.5rem;background:var(--off-white)}
.step-dot{flex:1;height:5px;border-radius:50px;background:var(--line);transition:.4s}
.step-dot.active,.step-dot.done{background:var(--gold)}
.modal-body{padding:1.5rem;overflow-y:auto;flex:1}
.modal-foot{padding:1rem 1.5rem;display:flex;justify-content:space-between;gap:.75rem;border-top:1px solid var(--line-2);background:#fff}
.modal-step{display:none}
.modal-step.active{display:block;animation:fadeUp .35s var(--ease-out)}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.modal-step h3{font-family:var(--font-serif);font-size:1.35rem;color:var(--navy);margin-bottom:.25rem}
.modal-step .step-sub{font-size:.88rem;color:var(--gray);margin-bottom:1.25rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;margin-bottom:.85rem}
@media(max-width:560px){.form-row{grid-template-columns:1fr}}
.form-field label{display:block;font-size:.78rem;font-weight:600;color:var(--gray);margin-bottom:.35rem}
.form-field input,.form-field select,.form-field textarea{
  width:100%;padding:.8rem 1rem;border:1.5px solid var(--line);border-radius:12px;
  font-size:.92rem;color:var(--ink);background:#fff;transition:.2s;outline:none;
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(242,184,38,.12)}
.form-field textarea{min-height:90px;resize:vertical;font-family:inherit}
.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-bottom:.85rem}
@media(max-width:560px){.option-grid{grid-template-columns:1fr}}
.option-card{
  border:1.5px solid var(--line);border-radius:14px;padding:1rem;cursor:pointer;
  transition:.2s;display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;
}
.option-card:hover{border-color:var(--gold)}
.option-card.selected{border-color:var(--gold);background:var(--gold-soft);box-shadow:0 0 0 3px rgba(242,184,38,.14)}
.option-card .oc-title{font-size:.92rem;font-weight:700;color:var(--ink);margin-bottom:.15rem}
.option-card .oc-sub{font-size:.78rem;color:var(--gray)}
.option-card .oc-price{font-family:var(--font-serif);font-size:1rem;font-weight:700;color:var(--navy);white-space:nowrap}
.counter{display:flex;align-items:center;gap:.5rem;justify-content:flex-end}
.counter button{width:34px;height:34px;border-radius:50%;background:var(--off-white);font-size:1.2rem;font-weight:700;color:var(--navy);transition:.2s}
.counter button:hover{background:var(--gold);color:var(--navy)}
.counter button:disabled{opacity:.3;cursor:not-allowed}
.counter .val{min-width:30px;text-align:center;font-weight:700;color:var(--ink)}
.guest-row{display:flex;justify-content:space-between;align-items:center;padding:.85rem 0;border-bottom:1px dashed var(--line)}
.guest-row:last-child{border-bottom:0}
.guest-row .gr-label{font-size:.92rem;font-weight:600;color:var(--ink)}
.guest-row .gr-sub{font-size:.78rem;color:var(--gray)}

.summary-card{background:var(--off-white);border-radius:14px;padding:1.1rem;margin-bottom:1.25rem}
.summary-row{display:flex;justify-content:space-between;align-items:center;padding:.45rem 0;font-size:.88rem;color:var(--gray)}
.summary-row strong{color:var(--ink)}
.summary-total{display:flex;justify-content:space-between;align-items:center;padding-top:.75rem;margin-top:.5rem;border-top:1px solid var(--line);font-size:1.1rem;font-weight:700;color:var(--navy)}
.summary-total .amount{font-family:var(--font-serif);color:var(--gold-dark);font-size:1.5rem}

/* Toast */
.toast{
  position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--navy);color:#fff;padding:.85rem 1.4rem;border-radius:50px;
  font-size:.88rem;font-weight:600;box-shadow:var(--shadow-lg);z-index:300;
  opacity:0;visibility:hidden;transition:.3s var(--ease-out);
  display:flex;align-items:center;gap:.5rem;
}
.toast.show{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}

/* ---------- Transportation: homepage section ---------- */
.transport-home-section{background:linear-gradient(135deg,#F7F4ED 0%,#fff 100%);position:relative;overflow:hidden}
.transport-home-section::before{content:"";position:absolute;top:-100px;right:-100px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(242,184,38,.12),transparent 70%)}
.th-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:3rem;align-items:center;position:relative;z-index:1}
@media(max-width:980px){.th-grid{grid-template-columns:1fr;gap:2rem}}
.th-intro h2{text-align:left}
.th-features{list-style:none;padding:0;margin:0 0 1.5rem;display:flex;flex-wrap:wrap;gap:.5rem .85rem}
.th-features li{font-size:.85rem;color:var(--ink);font-weight:600;display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .85rem;background:#fff;border:1px solid var(--line-2);border-radius:50px}
.th-services{display:grid;grid-template-columns:repeat(3,1fr);gap:.85rem}
@media(max-width:560px){.th-services{grid-template-columns:repeat(2,1fr);gap:.65rem}}
.th-tile{
  background:#fff;border:1px solid var(--line-2);border-radius:18px;
  padding:1.5rem 1rem 1.25rem;text-align:center;
  transition:.3s var(--ease-out);text-decoration:none;color:inherit;
  display:flex;flex-direction:column;align-items:center;gap:.2rem;
  position:relative;overflow:hidden;
}
.th-tile:hover{transform:translateY(-5px);border-color:var(--gold);box-shadow:var(--shadow-lg)}
.th-tile .th-ico{
  width:56px;height:56px;border-radius:14px;
  background:linear-gradient(135deg,var(--navy),var(--navy-2));color:var(--gold);
  display:grid;place-items:center;font-size:1.65rem;margin-bottom:.55rem;
  transition:.3s var(--ease-out);box-shadow:0 8px 18px -8px rgba(14,42,92,.3);
}
.th-tile:hover .th-ico{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:var(--navy-dark);transform:scale(1.06) rotate(-3deg)}
.th-tile h3{font-size:1rem;color:var(--ink);margin:0;font-weight:700}
.th-tile p{font-size:.76rem;color:var(--gray);margin:0;line-height:1.4}
.th-tile-cta{background:linear-gradient(135deg,#25D366,#1bb157);color:#fff;border-color:transparent}
.th-tile-cta .th-ico{background:rgba(255,255,255,.2);color:#fff;box-shadow:none}
.th-tile-cta h3,.th-tile-cta p{color:#fff}
.th-tile-cta:hover{background:linear-gradient(135deg,#1bb157,#138a44);border-color:transparent}
.th-tile-cta:hover .th-ico{background:rgba(255,255,255,.25);color:#fff;transform:scale(1.06)}

/* ---------- Transportation page — premium redesign ---------- */
/* Hero */
.tx-hero{
  position:relative;
  background:radial-gradient(ellipse at top right,#143A7A 0%,#0E2A5C 50%,#040F2A 100%);
  color:#fff;
  padding:160px 0 100px;
  overflow:hidden;
  min-height:88vh;
  display:flex;align-items:center;
}
.tx-hero-bg{position:absolute;inset:0;background-image:url('https://images.unsplash.com/photo-1512453979798-5ea266f8880c?auto=format&fit=crop&w=1920&q=80');background-size:cover;background-position:center;opacity:.12;mix-blend-mode:overlay}
.tx-hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%)}
.tx-hero-orb{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none}
.tx-hero-orb-gold{width:480px;height:480px;background:radial-gradient(circle,rgba(242,184,38,.35),transparent 70%);top:-100px;right:-100px}
.tx-hero-orb-blue{width:520px;height:520px;background:radial-gradient(circle,rgba(30,79,163,.55),transparent 70%);bottom:-150px;left:-150px}
.tx-hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;width:100%}
@media(max-width:980px){.tx-hero{padding:120px 0 70px;min-height:auto}.tx-hero-inner{grid-template-columns:1fr;gap:2rem}}
.tx-eyebrow{display:inline-flex;align-items:center;gap:.55rem;padding:.45rem .95rem;border-radius:50px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);font-size:.78rem;font-weight:500;letter-spacing:.05em;color:#fff;backdrop-filter:blur(10px);margin-bottom:1.5rem}
.tx-eyebrow .dot{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold);animation:pulse 2s infinite}
.tx-title{font-family:var(--font-serif);font-size:clamp(2.4rem,5.5vw,4.4rem);font-weight:600;line-height:1.05;letter-spacing:-.025em;margin-bottom:1.25rem}
.tx-accent{background:linear-gradient(135deg,var(--gold) 0%,var(--gold-2) 50%,#FFE08A 100%);-webkit-background-clip:text;background-clip:text;color:transparent;font-style:italic}
.tx-desc{font-size:1.05rem;line-height:1.7;color:rgba(255,255,255,.78);max-width:540px;margin-bottom:2rem}
.tx-hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:1.25rem 0;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:1.75rem}
.tx-hero-stats div{display:flex;flex-direction:column;line-height:1}
.tx-hero-stats strong{font-family:var(--font-serif);font-size:1.5rem;font-weight:700;color:var(--gold)}
.tx-hero-stats span{font-size:.7rem;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.06em;margin-top:.35rem}
.tx-hero-actions{display:flex;flex-wrap:wrap;gap:.85rem}

/* Floating vehicle cards in hero */
.tx-hero-right{position:relative;height:500px}
@media(max-width:980px){.tx-hero-right{display:none}}
.tx-floating-card{
  position:absolute;background:rgba(255,255,255,.08);backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.18);border-radius:18px;
  padding:.85rem 1.15rem;color:#fff;
  display:flex;align-items:center;gap:.85rem;
  box-shadow:var(--shadow-lg);
  min-width:200px;
}
.tx-fc-icon{width:42px;height:42px;border-radius:11px;background:linear-gradient(135deg,var(--gold-soft),var(--gold));color:var(--navy);display:grid;place-items:center;font-size:1.3rem;flex-shrink:0}
.tx-fc-title{font-size:.92rem;font-weight:700;line-height:1.2}
.tx-fc-sub{font-size:.74rem;color:rgba(255,255,255,.7);margin-top:2px}
.tx-fc-1{top:5%;left:0;animation:txFloat1 8s ease-in-out infinite}
.tx-fc-2{top:22%;right:0;animation:txFloat2 9s ease-in-out infinite}
.tx-fc-3{top:42%;left:5%;animation:txFloat1 10s ease-in-out infinite reverse}
.tx-fc-4{top:60%;right:8%;animation:txFloat2 8.5s ease-in-out infinite reverse}
.tx-fc-5{bottom:0;left:15%;animation:txFloat1 9.5s ease-in-out infinite}
@keyframes txFloat1{0%,100%{transform:translateY(0) rotateZ(-2deg)}50%{transform:translateY(-14px) rotateZ(-2deg)}}
@keyframes txFloat2{0%,100%{transform:translateY(0) rotateZ(2deg)}50%{transform:translateY(-18px) rotateZ(2deg)}}

/* Quote wrap */
.tx-quote-wrap{
  padding:0 0 3rem;
  margin-top:-60px;
  position:relative;
  z-index:5;
}
.tx-quote-wrap .container{padding-left:1.25rem;padding-right:1.25rem}

/* Categories showcase */
.tx-categories-section{padding-top:3.5rem}
.tx-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}
.tx-cat-tile{
  background:#fff;border:1.5px solid var(--line-2);border-radius:18px;
  padding:1.5rem 1.4rem;text-decoration:none;color:inherit;
  display:flex;flex-direction:column;gap:.35rem;
  transition:.3s var(--ease-out);position:relative;overflow:hidden;
}
.tx-cat-tile::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--gold-soft),transparent 60%);opacity:0;transition:.4s}
.tx-cat-tile:hover{transform:translateY(-6px);border-color:var(--gold);box-shadow:var(--shadow-lg)}
.tx-cat-tile:hover::before{opacity:1}
.tx-cat-tile > *{position:relative;z-index:1}
.tx-cat-icon{
  width:54px;height:54px;border-radius:14px;
  background:linear-gradient(135deg,var(--navy),var(--navy-2));color:var(--gold);
  display:grid;place-items:center;font-size:1.6rem;margin-bottom:.4rem;
  box-shadow:0 12px 24px -10px rgba(14,42,92,.4);
  transition:.3s var(--ease-out);
}
.tx-cat-tile:hover .tx-cat-icon{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:var(--navy-dark);transform:scale(1.08) rotate(-3deg)}
.tx-cat-tile h3{font-size:1.1rem;color:var(--ink);margin:0;font-weight:700}
.tx-cat-tile p{font-size:.82rem;color:var(--gray);margin:0;line-height:1.4;flex:1}
.tx-cat-price{font-family:var(--font-serif);color:var(--gold-dark);font-weight:700;font-size:1rem;margin-top:.55rem}
.tx-cat-featured{background:linear-gradient(135deg,#0E2A5C 0%,#143A7A 100%);color:#fff;border-color:transparent;position:relative}
.tx-cat-featured::before{display:none}
.tx-cat-featured .tx-cat-icon{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:var(--navy-dark);box-shadow:var(--shadow-gold)}
.tx-cat-featured h3{color:#fff}
.tx-cat-featured p{color:rgba(255,255,255,.7)}
.tx-cat-featured .tx-cat-price{color:var(--gold)}
.tx-cat-featured:hover{transform:translateY(-6px);box-shadow:0 30px 60px -20px rgba(6,26,61,.6);border-color:transparent}

/* List head + search */
.tx-list-head{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.5rem}
.tx-search-input{
  width:100%;padding:.85rem 1rem .85rem 2.7rem;
  border:1.5px solid var(--line);border-radius:50px;
  font-size:.92rem;outline:none;background:#fff;transition:.2s;
}
.tx-search-input:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(242,184,38,.12)}
.tx-search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--gray);pointer-events:none}

/* How it works steps */
.tx-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem}
.tx-step{
  background:#fff;border:1px solid var(--line-2);border-radius:18px;
  padding:1.75rem 1.5rem;text-align:center;position:relative;
  transition:.3s var(--ease-out);
}
.tx-step:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent}
.tx-step-num{
  position:absolute;top:-14px;left:50%;transform:translateX(-50%);
  width:36px;height:36px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold),var(--gold-2));color:var(--navy-dark);
  display:grid;place-items:center;font-family:var(--font-serif);font-weight:700;font-size:1.1rem;
  box-shadow:var(--shadow-gold);
}
.tx-step-icon{font-size:2.2rem;margin:.5rem 0 1rem}
.tx-step h3{font-size:1.05rem;color:var(--ink);margin-bottom:.5rem;font-weight:700}
.tx-step p{font-size:.85rem;color:var(--gray);line-height:1.6;margin:0}

/* Trust grid (dark) */
.tx-trust-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem}
.tx-trust-card{
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  border-radius:18px;padding:1.5rem 1.4rem;backdrop-filter:blur(20px);
  transition:.3s var(--ease);
}
.tx-trust-card:hover{transform:translateY(-4px);border-color:rgba(242,184,38,.4);background:rgba(255,255,255,.08)}
.tx-trust-icon{
  width:48px;height:48px;border-radius:12px;
  background:linear-gradient(135deg,var(--gold),var(--gold-2));color:var(--navy-dark);
  display:grid;place-items:center;font-size:1.3rem;margin-bottom:1rem;
  box-shadow:var(--shadow-gold);
}
.tx-trust-card h3{font-size:1.05rem;color:#fff;margin-bottom:.5rem;font-weight:700}
.tx-trust-card p{font-size:.88rem;color:rgba(255,255,255,.7);line-height:1.6;margin:0}

/* Quote trust row inside card */
.quote-trust-row{display:flex;justify-content:center;gap:.65rem;flex-wrap:wrap;font-size:.78rem;color:var(--gray);margin-top:.85rem}
.quote-trust-row span{font-weight:600}

/* ---------- Transportation page v2 — simplified & clean ---------- */
.tx2-hero{
  background:linear-gradient(135deg,#0E2A5C 0%,#143A7A 100%);
  color:#fff;padding:140px 0 4rem;position:relative;overflow:hidden;
}
.tx2-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(242,184,38,.15),transparent 50%),radial-gradient(circle at 20% 80%,rgba(30,79,163,.4),transparent 50%);pointer-events:none}
.tx2-hero .container{position:relative;z-index:1}
.tx2-hero-head{text-align:center;max-width:680px;margin:0 auto 2.25rem}
.tx2-hero-head .breadcrumb{justify-content:center;display:inline-flex;margin-bottom:.85rem}
.tx2-title{font-family:var(--font-serif);font-size:clamp(2rem,4vw,3rem);font-weight:600;color:#fff;margin:0 0 .65rem;letter-spacing:-.02em;line-height:1.1}
.tx2-sub{font-size:1.05rem;color:rgba(255,255,255,.78);margin:0;line-height:1.65}

.tx2-quote{
  background:#fff;color:var(--ink);border-radius:24px;
  padding:1.5rem;max-width:1080px;margin:0 auto;
  box-shadow:0 50px 100px -20px rgba(0,0,0,.35);
}
@media(min-width:780px){.tx2-quote{padding:1.75rem 2rem}}

.tx2-list-head{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.5rem}

/* Trust strip */
.tx2-trust-strip{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;
  background:#fff;border-radius:18px;padding:1.5rem;
  border:1px solid var(--line-2);box-shadow:var(--shadow);
}
.tx2-trust-item{display:flex;align-items:center;gap:.85rem;padding:.5rem .25rem}
.tx2-tt-icon{
  width:46px;height:46px;border-radius:12px;flex-shrink:0;
  background:linear-gradient(135deg,var(--gold-soft),var(--gold));color:var(--navy);
  display:grid;place-items:center;font-size:1.3rem;
}
.tx2-trust-item strong{display:block;font-size:.92rem;color:var(--ink);font-weight:700;margin-bottom:2px}
.tx2-trust-item small{font-size:.78rem;color:var(--gray);line-height:1.4;display:block}

/* Quote trust row */
.quote-trust-row{display:flex;justify-content:center;gap:.65rem;flex-wrap:wrap;font-size:.78rem;color:var(--gray);margin-top:.85rem}
.quote-trust-row span{font-weight:600}

/* Vehicle filter pills - cleaner look */
#transport-pills .cat-pill{padding:.5rem 1rem;font-size:.82rem}

/* ---------- Transportation page: Quick Quote card ---------- */
.quote-section{
  background:linear-gradient(135deg,var(--navy-dark) 0%,var(--navy) 60%,var(--navy-2) 100%);
  padding:140px 0 4rem;color:#fff;position:relative;overflow:hidden;
}
.quote-section::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(242,184,38,.18),transparent 50%),radial-gradient(circle at 80% 60%,rgba(30,79,163,.4),transparent 50%);pointer-events:none}
.quote-section .container{position:relative;z-index:1}
.quote-header{text-align:center;max-width:680px;margin:0 auto 2rem}
.quote-header .breadcrumb{justify-content:center;display:inline-flex}
.quote-header h1{font-family:var(--font-serif);font-size:clamp(2rem,4vw,3rem);color:#fff;margin:.4rem 0 .65rem;font-weight:600}
.quote-header p{font-size:1.05rem;color:rgba(255,255,255,.78);margin:0}
.quote-card{
  background:#fff;color:var(--ink);border-radius:24px;
  padding:2rem;max-width:1080px;margin:0 auto;
  box-shadow:0 50px 100px -20px rgba(0,0,0,.35);
  position:relative;z-index:1;
}
.quote-card-head{text-align:center;margin-bottom:1.25rem}
.quote-card-head h2{font-family:var(--font-serif);color:var(--navy);font-size:1.6rem;margin:0 0 .25rem;font-weight:600}
.quote-card-head p{color:var(--gray);font-size:.92rem;margin:0}
.quote-service-pills{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.5rem;padding:.4rem;background:var(--off-white);border-radius:50px;width:fit-content;margin-left:auto;margin-right:auto;max-width:100%;overflow-x:auto;scrollbar-width:none}
.quote-service-pills::-webkit-scrollbar{display:none}
.qsp{
  padding:.6rem 1.1rem;border-radius:50px;background:transparent;border:0;
  font-size:.85rem;font-weight:600;color:var(--gray);cursor:pointer;transition:.2s;
  display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;font-family:inherit;
}
.qsp:hover{color:var(--ink)}
.qsp.active{background:var(--navy);color:#fff;box-shadow:0 6px 14px -4px rgba(14,42,92,.4)}
.quote-fields{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;margin-bottom:1.25rem}
@media(min-width:780px){.quote-fields{grid-template-columns:1.3fr 1.3fr 1fr 1fr 1fr}}
.qfield label{display:block;font-size:.68rem;font-weight:700;color:var(--gray);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.35rem}
.qfield input,.qfield select{
  width:100%;padding:.85rem 1rem;border:1.5px solid var(--line);border-radius:12px;
  font-size:.95rem;font-weight:600;color:var(--ink);background:#fff;outline:none;transition:.2s;font-family:inherit;
}
.qfield input:focus,.qfield select:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(242,184,38,.12)}
.quote-submit{width:100%;padding:1.1rem;font-size:1rem;justify-content:center}
.quote-trust{text-align:center;font-size:.78rem;color:var(--gray);margin:.85rem 0 0}

/* ---------- Vehicle cards (transport page, photo-ready) ---------- */
.vehicle-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem}
.vehicle-card{
  background:#fff;border:1px solid var(--line-2);border-radius:var(--radius-lg);
  overflow:hidden;display:flex;flex-direction:column;
  text-decoration:none;color:inherit;
  transition:.3s var(--ease-out);position:relative;
}
.vehicle-card:hover{transform:translateY(-6px);border-color:transparent;box-shadow:var(--shadow-lg)}
.vc-photo{
  position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--off-white);
}
.vc-photo.has-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out)}
.vehicle-card:hover .vc-photo.has-photo img{transform:scale(1.06)}
.vc-photo-placeholder{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;
  background:linear-gradient(135deg,var(--navy-dark),var(--navy));
}
.vc-photo-placeholder .vc-icon{
  font-size:3.4rem;line-height:1;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.3));
}
.vc-photo-placeholder .vc-hint{
  font-size:.72rem;font-weight:600;color:rgba(255,255,255,.55);
  text-transform:uppercase;letter-spacing:.12em;
}
.vc-cat-badge{
  position:absolute;top:.85rem;left:.85rem;
  background:rgba(255,255,255,.95);backdrop-filter:blur(8px);
  padding:.35rem .8rem;border-radius:50px;font-size:.72rem;font-weight:700;
  color:var(--navy);letter-spacing:.05em;text-transform:uppercase;
}
.vc-best{
  position:absolute;top:.85rem;right:.85rem;
  background:var(--gold);color:var(--navy-dark);
  padding:.32rem .7rem;border-radius:50px;font-size:.68rem;font-weight:800;letter-spacing:.05em;
}
.vc-info{padding:1.15rem 1.25rem .85rem;flex:1;display:flex;flex-direction:column;gap:.5rem}
.vc-title{font-family:var(--font-serif);font-size:1.2rem;font-weight:700;color:var(--ink);margin:0;line-height:1.25}
.vc-sub{font-size:.85rem;color:var(--gray);margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vc-pricing{margin-top:.4rem;display:flex;flex-direction:column;gap:.3rem;padding:.7rem .85rem;background:var(--off-white);border-radius:10px}
.vc-price-row{display:flex;justify-content:space-between;align-items:baseline;gap:.85rem;font-size:.78rem}
.vc-price-row .vc-price-label{color:var(--gray);line-height:1.3}
.vc-price-row .vc-price-val{color:var(--ink);font-weight:700;white-space:nowrap;font-family:var(--font-sans)}
.vc-price-row.vc-price-more{color:var(--gold-dark);justify-content:flex-end;font-weight:700;margin-top:.15rem;border-top:1px dashed var(--line);padding-top:.4rem}
.vc-footer{padding:.9rem 1.25rem;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line-2);background:#fff}
.vc-from{display:flex;flex-direction:column;line-height:1}
.vc-from-label{font-size:.7rem;color:var(--gray);text-transform:uppercase;letter-spacing:.06em}
.vc-from-amount{font-family:var(--font-serif);font-size:1.25rem;color:var(--navy);font-weight:700;margin-top:.15rem}
.vc-cta{
  padding:.6rem 1.1rem;border-radius:50px;background:var(--navy);color:#fff;
  font-size:.8rem;font-weight:600;transition:.2s;display:inline-flex;align-items:center;gap:.3rem;
}
.vehicle-card:hover .vc-cta{background:var(--gold);color:var(--navy-dark)}

/* ---------- Packages ---------- */
.pkg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:1.5rem}
.pkg-card{
  background:#fff;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line-2);
  display:flex;flex-direction:column;transition:.35s var(--ease-out);position:relative;
}
.pkg-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:transparent}
.pkg-media{aspect-ratio:16/10;position:relative;overflow:hidden}
.pkg-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out)}
.pkg-card:hover .pkg-media img{transform:scale(1.08)}
.pkg-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(4,15,42,.5))}
.pkg-overlay{position:absolute;left:1rem;right:1rem;bottom:1rem;color:#fff;z-index:1}
.pkg-overlay .nights{display:inline-block;background:var(--gold);color:var(--navy-dark);font-size:.72rem;font-weight:700;padding:.25rem .65rem;border-radius:50px;margin-bottom:.5rem;letter-spacing:.05em;text-transform:uppercase}
.pkg-overlay h3{font-family:var(--font-serif);font-size:1.3rem;font-weight:600;margin:0;color:#fff}
.pkg-body{padding:1.25rem;display:flex;flex-direction:column;flex:1}
.pkg-inc{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}
.pkg-inc span{font-size:.7rem;background:var(--off-white);color:var(--ink);padding:.25rem .6rem;border-radius:50px;font-weight:600;display:inline-flex;align-items:center;gap:.3rem}
.pkg-foot{display:flex;justify-content:space-between;align-items:flex-end;padding-top:.85rem;border-top:1px dashed var(--line);margin-top:auto}

/* ---------- About page ---------- */
.about-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
@media(max-width:880px){.about-hero-grid{grid-template-columns:1fr}}

.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem}
.team-card{background:#fff;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line-2);transition:.3s}
.team-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.team-card img{width:100%;aspect-ratio:1;object-fit:cover}
.team-card .tc-body{padding:1.1rem;text-align:center}
.team-card .tc-name{font-size:1rem;font-weight:700;color:var(--ink);margin-bottom:.15rem}
.team-card .tc-role{font-size:.8rem;color:var(--gold-dark);font-weight:600}

/* ---------- Contact page ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:2.5rem;align-items:start}
@media(max-width:880px){.contact-grid{grid-template-columns:1fr;gap:1.5rem}}
.contact-info{display:flex;flex-direction:column;gap:.85rem}
.ci-card{
  padding:1.15rem 1.35rem;background:#fff;border-radius:var(--radius-lg);
  border:1px solid var(--line-2);display:flex;gap:1rem;align-items:flex-start;
  transition:.25s var(--ease);text-decoration:none;color:inherit;
}
.ci-card:hover{border-color:var(--gold);transform:translateX(4px);box-shadow:var(--shadow-sm)}
.ci-ico{
  width:46px;height:46px;border-radius:12px;flex-shrink:0;
  background:linear-gradient(135deg,var(--gold-soft),var(--gold));color:var(--navy);
  display:grid;place-items:center;font-size:1.2rem;
}
.ci-body{flex:1;min-width:0}
.ci-card h4{font-size:1rem;color:var(--ink);margin:0 0 .25rem;font-weight:700;line-height:1.2}
.ci-card p{font-size:.85rem;color:var(--gray);margin:0 0 .15rem;line-height:1.5}
.ci-card .ci-value{color:var(--navy);font-weight:600;font-size:.92rem;margin-top:.25rem;display:block}
.ci-card .ci-value + .ci-value{margin-top:.1rem}

.contact-form{
  background:#fff;border-radius:var(--radius-lg);padding:2rem;
  border:1px solid var(--line-2);box-shadow:var(--shadow);
}
.contact-form h2{font-family:var(--font-serif);color:var(--navy);font-size:1.5rem;font-weight:600;margin:0 0 .35rem}
.contact-form .form-intro{color:var(--gray);font-size:.92rem;margin:0 0 1.25rem}
.contact-form .submit-note{font-size:.78rem;color:var(--gray);text-align:center;margin:.85rem 0 0}
@media(max-width:560px){.contact-form{padding:1.5rem}}

/* ---------- Blog page ---------- */
.blog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:1.5rem}
.blog-card{background:#fff;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line-2);transition:.3s;display:flex;flex-direction:column}
.blog-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent}
.blog-card img{aspect-ratio:16/10;object-fit:cover;width:100%;transition:transform .6s var(--ease-out)}
.blog-card:hover img{transform:scale(1.06)}
.blog-body{padding:1.35rem;display:flex;flex-direction:column;flex:1}
.blog-meta{font-size:.74rem;color:var(--gold-dark);font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}
.blog-title{font-family:var(--font-serif);font-size:1.15rem;color:var(--ink);margin-bottom:.5rem;line-height:1.3}
.blog-excerpt{font-size:.88rem;color:var(--gray);line-height:1.65;margin-bottom:1rem;flex:1}
.blog-foot{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;color:var(--gray)}

/* ---------- Admin (light, simple) ---------- */
.admin-wrap{padding:120px 0 60px;min-height:100vh;background:var(--off-white)}
.admin-card{background:#fff;border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow);max-width:900px;margin:0 auto}
.admin-table{width:100%;border-collapse:collapse;margin-top:1rem;font-size:.88rem}
.admin-table th,.admin-table td{padding:.85rem;text-align:left;border-bottom:1px solid var(--line)}
.admin-table th{font-size:.74rem;color:var(--gray);text-transform:uppercase;letter-spacing:.05em;background:var(--off-white)}
.admin-table td{color:var(--ink)}

/* ---------- Animations ---------- */
/* Additive reveal: content is visible by default. When JS adds .in,
   a one-time fade-in animation plays (starts hidden via animation-fill-mode: backwards
   so it begins at the keyframe 'from' state without ever leaving the element invisible
   in the absence of JS). */
@keyframes cfReveal{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
[data-reveal].in{animation:cfReveal .7s var(--ease-out) backwards}

/* Defense in depth: critical content cards are ALWAYS visible.
   This wins over any inherited opacity/transform/visibility from
   cached older CSS or stuck animations. */
.activity-card,
.pkg-card,
.blog-card,
.vehicle-card,
.th-tile,
.tx-cat-tile,
.feature-card,
.team-card,
.ci-card,
.testi-card,
.dest-tile{
  opacity:1 !important;
  visibility:visible !important;
}
/* Grids should never be hidden either */
.activity-grid,
.pkg-grid,
.blog-grid,
.vehicle-list,
.features-grid,
.team-grid,
.testi-grid,
.dest-grid,
.tx-cat-grid{
  opacity:1 !important;
  visibility:visible !important;
}
/* Page loader emergency auto-hide — if JS fails to remove it, fade out after 4s */
.page-loader{animation:cfLoaderHide .6s ease 4s forwards}
@keyframes cfLoaderHide{to{opacity:0;visibility:hidden;pointer-events:none}}
[data-reveal][data-delay="100"]{transition-delay:.1s}
[data-reveal][data-delay="200"]{transition-delay:.2s}
[data-reveal][data-delay="300"]{transition-delay:.3s}
[data-reveal][data-delay="400"]{transition-delay:.4s}

.tilt{transition:transform .4s var(--ease-out)}

/* loader */
.page-loader{position:fixed;inset:0;background:var(--navy-dark);z-index:999;display:flex;align-items:center;justify-content:center;transition:opacity .6s,visibility .6s}
.page-loader.hide{opacity:0;visibility:hidden}
.loader-ring{width:60px;height:60px;border-radius:50%;border:3px solid rgba(242,184,38,.2);border-top-color:var(--gold);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* utility */
.no-scroll{overflow:hidden}


/* ═══════════════════════════════════════════════════════
   AUTH NAV — Sign In / My Account buttons in header
═══════════════════════════════════════════════════════ */

/* Sign In button (outline, navy) */
.nav-auth-btn{
  font-size:.84rem;font-weight:600;
  padding:.55rem 1rem;border-radius:10px;
  white-space:nowrap;
}

/* My Account avatar button */
.nav-account-btn{
  display:flex;align-items:center;gap:.5rem;
  text-decoration:none;cursor:pointer;
  padding:.35rem .65rem .35rem .35rem;
  border-radius:12px;
  border:1.5px solid var(--line);
  background:#fff;
  transition:.2s;
}
.nav-account-btn:hover{border-color:var(--navy);box-shadow:var(--shadow-sm);}

.nav-avatar{
  width:30px;height:30px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold) 0%,var(--gold-2) 100%);
  display:flex;align-items:center;justify-content:center;
  font-size:.9rem;font-weight:800;color:var(--navy-dark);
  flex-shrink:0;
}

.nav-account-name{
  font-size:.83rem;font-weight:600;color:var(--navy);
  max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

/* On dark header (hero pages) — invert Sign In button */
.site-header.on-dark:not(.scrolled) .nav-auth-btn{
  border-color:rgba(255,255,255,.45);
  color:#fff;
}
.site-header.on-dark:not(.scrolled) .nav-auth-btn:hover{
  background:rgba(255,255,255,.15);
}
.site-header.on-dark:not(.scrolled) .nav-account-btn{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.25);
}
.site-header.on-dark:not(.scrolled) .nav-account-btn:hover{
  background:rgba(255,255,255,.22);
}
.site-header.on-dark:not(.scrolled) .nav-account-name{color:#fff;}

/* WhatsApp float button */
.wa-float{position:fixed;bottom:1.5rem;right:1.5rem;z-index:999;display:flex;align-items:center;gap:.5rem;flex-direction:row-reverse}
.wa-btn{width:56px;height:56px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px -6px rgba(37,211,102,.5);transition:.25s}
.wa-btn:hover{transform:scale(1.1)}
.wa-btn svg{width:28px;height:28px;fill:#fff}
.wa-label{background:var(--navy);color:#fff;font-size:.8rem;font-weight:600;padding:.4rem .8rem;border-radius:8px;white-space:nowrap;opacity:0;transform:translateX(6px);transition:.25s;pointer-events:none}
.wa-float:hover .wa-label{opacity:1;transform:translateX(0)}

/* ═══════════════════════════════════════════════════════
   BOOKING SIDEBAR — activity detail page pax/price widget
═══════════════════════════════════════════════════════ */

/* Field wrapper (label + input row) */
.bs-field{margin-bottom:1rem}
.bs-field label{display:block;font-size:.78rem;font-weight:600;color:var(--gray);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.35rem}
.bs-field select,
.bs-field input[type="date"]{
  width:100%;padding:.65rem .9rem;border:1.5px solid var(--line);
  border-radius:10px;font-family:inherit;font-size:.9rem;color:var(--ink);
  background:#fff;transition:border-color .2s;appearance:none;-webkit-appearance:none;
}
.bs-field select:focus,
.bs-field input[type="date"]:focus{outline:none;border-color:var(--navy)}

/* Pax row: label left + counter right */
.bs-pax-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}
.bs-pax-label{font-size:.88rem;color:var(--ink);font-weight:500}
.bs-pax-sub{font-size:.74rem;color:var(--gray);display:block}

/* +/- counter */
.pax-counter{display:flex;align-items:center;gap:.5rem}
.pax-btn{
  width:30px;height:30px;border-radius:8px;border:1.5px solid var(--line);
  background:#fff;color:var(--navy);font-size:1.1rem;font-weight:700;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .15s,border-color .15s;line-height:1;padding:0;
}
.pax-btn:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.pax-btn:active{transform:scale(.93)}
.pax-val{
  width:28px;text-align:center;font-size:.95rem;
  font-weight:700;color:var(--navy);
}

/* Availability message */
.bs-avail-msg{
  font-size:.82rem;border-radius:8px;padding:.45rem .75rem;
  margin-bottom:.75rem;display:none;
}
.bs-avail-loading{display:block;background:var(--off-white);color:var(--gray)}
.bs-avail-ok{display:block;background:#D1FAE5;color:#065F46}
.bs-avail-error{display:block;background:#FEE2E2;color:#991B1B}

/* Live total (legacy — kept for safety) */
.bs-total-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:.85rem 1rem;background:var(--off-white);
  border-radius:12px;margin-bottom:1rem;
  border:1.5px solid var(--line);
}
.bs-total-row span:first-child{font-size:.88rem;font-weight:600;color:var(--gray);text-transform:uppercase;letter-spacing:.04em}

/* ── Rate card — adult / child prices in sidebar header ── */
.bs-rates-row{display:flex;margin-top:.8rem;background:rgba(255,255,255,.09);border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.14)}
.bs-rates-item{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:.55rem .4rem;gap:.08rem}
.bs-rates-sep{width:1px;background:rgba(255,255,255,.12);margin:.4rem 0}
.bsr-ico{font-size:1.1rem}
.bsr-lbl{font-size:.75rem;font-weight:600;color:rgba(255,255,255,.9);display:flex;flex-direction:column;align-items:center}
.bsr-sub{font-size:.64rem;font-weight:400;color:rgba(255,255,255,.5)}
.bsr-price{font-family:var(--font-serif);font-size:.95rem;font-weight:700;color:var(--gold);margin-top:.1rem}

/* ── Child discount notice ── */
.bs-child-notice{display:flex;align-items:center;gap:.45rem;font-size:.79rem;font-weight:500;color:#065F46;background:#D1FAE5;border:1.5px solid #A7F3D0;border-radius:9px;padding:.45rem .75rem;margin-bottom:.85rem}
.bs-child-notice.bs-visa-notice{background:#EFF6FF;border-color:#BFDBFE;color:#1E40AF}

/* ── Pax counter rows (new vertical style) ── */
.bs-pax-section{margin-bottom:.85rem;border:1.5px solid var(--line);border-radius:12px;overflow:hidden}
.bs-pax-row{display:flex;align-items:center;justify-content:space-between;padding:.6rem .9rem;background:#fff}
.bs-pax-row+.bs-pax-row{border-top:1px solid var(--line-2)}
.bs-pax-meta{flex:1;min-width:0}
.bs-pax-name{font-size:.86rem;font-weight:600;color:var(--ink)}
.bs-pax-hint{font-size:.7rem;color:var(--gray);display:block;margin-top:.1rem}
.bs-pax-rate{font-size:.8rem;font-weight:700;color:var(--navy);white-space:nowrap;margin-right:.65rem;opacity:.8}

/* ── Breakdown total box (replaces bs-total-row) ── */
.bs-total-box{background:#F8FAFC;border-radius:12px;border:1.5px solid var(--line);margin-bottom:1rem;overflow:hidden}
.bs-breakdown-line{display:flex;align-items:center;justify-content:space-between;padding:.42rem .9rem;font-size:.79rem;color:var(--gray);border-bottom:1px solid var(--line-2)}
.bs-breakdown-line span:last-child{font-weight:600;color:var(--ink)}
.bs-breakdown-total{display:flex;align-items:center;justify-content:space-between;padding:.72rem .9rem}
.bs-breakdown-total .bdt-label{font-size:.82rem;font-weight:600;color:var(--gray);text-transform:uppercase;letter-spacing:.04em}
.bs-breakdown-total .bdt-amt{font-family:var(--font-serif);font-size:1.12rem;font-weight:800;color:var(--navy)}

/* ═══════════════════════════════════════════════════════
   STATUS BADGES — bookings in account + admin panel
═══════════════════════════════════════════════════════ */

.badge{
  display:inline-block;font-size:.72rem;font-weight:700;
  padding:.25rem .65rem;border-radius:99px;
  text-transform:capitalize;letter-spacing:.03em;white-space:nowrap;
}

/* Customer account page (status-*) */
.status-paid,.status-confirmed { background:#D1FAE5;color:#065F46; }
.status-pending                { background:#FEF3C7;color:#92400E; }
.status-cancelled,.status-refunded { background:#FEE2E2;color:#991B1B; }
.status-completed               { background:#E0E7FF;color:#3730A3; }

/* Admin panel (bk-*) */
.bk-paid,.bk-confirmed  { background:#D1FAE5;color:#065F46; }
.bk-pending             { background:#FEF3C7;color:#92400E; }
.bk-cancelled,.bk-refunded { background:#FEE2E2;color:#991B1B; }
.bk-completed           { background:#E0E7FF;color:#3730A3; }

/* ═══════════════════════════════════════════════════════
   ADMIN DASHBOARD stat cards (booking-admin panel)
═══════════════════════════════════════════════════════ */
.sc-label{font-size:.74rem;font-weight:600;color:var(--gray);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}
.sc-val{font-family:var(--font-serif);font-size:1.75rem;font-weight:700;color:var(--navy);line-height:1}

/* ═══════════════════════════════════════════════════════
   VISA PAGE — country destination cards (Atlys-style)
═══════════════════════════════════════════════════════ */

.visa-filter-bar{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:2rem}

.visa-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(245px,1fr));
  gap:1.25rem;
}

.visa-card{
  border-radius:var(--radius-lg);overflow:hidden;background:#fff;
  border:1px solid var(--line);box-shadow:var(--shadow-sm);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease);
  text-decoration:none;color:inherit;display:block;
}
.visa-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}

.visa-card-header{
  height:130px;display:flex;flex-direction:column;
  justify-content:flex-end;padding:1rem 1.1rem;position:relative;
}
.visa-flag{font-size:2.4rem;line-height:1;margin-bottom:.4rem}
.visa-country-name{color:#fff;font-size:1.05rem;font-weight:700;line-height:1.2}
.visa-type-label{color:rgba(255,255,255,.72);font-size:.77rem;margin-top:.1rem}

.visa-badge{
  position:absolute;top:.85rem;right:.85rem;
  font-size:.64rem;font-weight:700;padding:.2rem .55rem;
  border-radius:99px;letter-spacing:.04em;text-transform:uppercase;
}
.visa-badge.evisa  {background:rgba(34,197,94,.22);color:#86efac;border:1px solid rgba(34,197,94,.3)}
.visa-badge.free   {background:rgba(99,102,241,.22);color:#a5b4fc;border:1px solid rgba(99,102,241,.3)}
.visa-badge.sticker{background:rgba(242,184,38,.22);color:#fcd34d;border:1px solid rgba(242,184,38,.3)}
.visa-badge.voa    {background:rgba(251,146,60,.22);color:#fdba74;border:1px solid rgba(251,146,60,.3)}
.visa-badge.eta    {background:rgba(34,211,238,.22);color:#67e8f9;border:1px solid rgba(34,211,238,.3)}

.visa-card-body{padding:1rem 1.1rem 1.1rem}
.visa-meta{display:grid;grid-template-columns:1fr 1fr;gap:.4rem .5rem;margin-bottom:.875rem}
.visa-meta-item{font-size:.78rem;color:var(--gray)}
.visa-meta-item strong{display:block;font-size:.84rem;color:var(--ink);font-weight:600;margin-bottom:.1rem}

.visa-card-price{
  font-size:1.05rem;font-weight:700;color:var(--navy);
  border-top:1px solid var(--line);padding-top:.75rem;
  display:flex;align-items:center;justify-content:space-between;
}
.visa-card-price small{font-size:.74rem;font-weight:400;color:var(--gray)}
.visa-free-tag{font-size:.82rem;font-weight:700;color:var(--success)}

.visa-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;margin-top:2.5rem}
.visa-step{text-align:center}
.visa-step-icon{
  width:64px;height:64px;border-radius:50%;background:var(--gold-soft);
  display:flex;align-items:center;justify-content:center;
  font-size:1.75rem;margin:0 auto 1rem;
}
.visa-step h4{font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:.4rem}
.visa-step p{font-size:.875rem;color:var(--gray)}

/* ═══════════════════════════════════════════════════════
   HOTELS PAGE — hotel listing cards
═══════════════════════════════════════════════════════ */

.hotel-filter-bar{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:2rem}

.hotel-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:1.5rem;
}

.hotel-card{
  border-radius:var(--radius-lg);overflow:hidden;background:#fff;
  border:1px solid var(--line);box-shadow:var(--shadow-sm);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease);
}
.hotel-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}

.hotel-card-img-wrap{
  position:relative;height:200px;overflow:hidden;
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-3) 100%);
  display:flex;align-items:center;justify-content:center;
}
.hotel-card-img-wrap img{width:100%;height:100%;object-fit:cover;display:block}
.hotel-card-img-wrap .hotel-emoji{font-size:3.5rem;opacity:.55}
.hotel-stars-badge{
  position:absolute;top:.85rem;left:.85rem;
  background:rgba(0,0,0,.48);backdrop-filter:blur(6px);
  color:var(--gold);font-size:.78rem;font-weight:700;
  padding:.25rem .6rem;border-radius:99px;
  border:1px solid rgba(242,184,38,.3);
}
.hotel-area-badge{
  position:absolute;bottom:.85rem;left:.85rem;
  background:rgba(0,0,0,.5);backdrop-filter:blur(6px);
  color:rgba(255,255,255,.9);font-size:.72rem;
  padding:.2rem .55rem;border-radius:99px;
}
.hotel-ribbon{
  position:absolute;top:.85rem;right:.85rem;
  background:var(--gold);color:var(--navy);
  font-size:.65rem;font-weight:800;
  padding:.2rem .55rem;border-radius:99px;letter-spacing:.04em;text-transform:uppercase;
}

.hotel-card-body{padding:1.25rem}
.hotel-name{font-size:1.05rem;font-weight:700;color:var(--navy);margin-bottom:.2rem;line-height:1.3}
.hotel-tagline{font-size:.8rem;color:var(--gray);margin-bottom:.75rem}
.hotel-amenities{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.875rem}
.hotel-amenity{font-size:.7rem;background:var(--line-2);color:var(--gray);padding:.18rem .5rem;border-radius:99px}

.hotel-price-row{
  display:flex;align-items:flex-end;justify-content:space-between;
  border-top:1px solid var(--line);padding-top:.875rem;gap:.5rem;
}
.hotel-price{font-size:1.1rem;font-weight:700;color:var(--navy);line-height:1}
.hotel-price small{font-size:.72rem;color:var(--gray);font-weight:400;display:block;margin-top:.15rem}

@media(max-width:600px){
  .visa-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
  .hotel-grid{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════════════════
   INQUIRY MODAL — shared by Visa / Transport / Activities
═══════════════════════════════════════════════════════ */

.cf-modal-overlay{
  position:fixed;inset:0;
  background:rgba(10,20,50,.6);backdrop-filter:blur(6px);
  z-index:3000;display:flex;align-items:flex-start;justify-content:center;
  padding:1.5rem 1rem 1rem;
  opacity:0;pointer-events:none;transition:opacity .25s;overflow-y:auto;
}
.cf-modal-overlay.open{opacity:1;pointer-events:all}

.cf-modal{
  background:#fff;border-radius:var(--radius-xl);
  width:100%;max-width:660px;
  box-shadow:var(--shadow-lg);
  transform:translateY(32px) scale(.97);
  transition:transform .32s var(--ease-out);
  margin:auto;
}
.cf-modal-overlay.open .cf-modal{transform:none}

.cf-modal-head{
  padding:1.5rem;display:flex;align-items:flex-start;
  justify-content:space-between;gap:1rem;
  border-bottom:1px solid var(--line);
  position:sticky;top:0;background:#fff;
  border-radius:var(--radius-xl) var(--radius-xl) 0 0;z-index:1;
}
.cf-modal-head-info{display:flex;align-items:center;gap:1rem}
.cf-modal-flag{font-size:2.75rem;line-height:1;flex-shrink:0}
.cf-modal-title{font-size:1.15rem;font-weight:700;color:var(--navy);line-height:1.25;margin-bottom:.25rem}
.cf-modal-subtitle{font-size:.82rem;color:var(--gray)}
.cf-modal-close{
  width:34px;height:34px;border-radius:50%;border:none;
  background:var(--line-2);cursor:pointer;font-size:1.2rem;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:background .2s, transform .2s;color:var(--gray);
}
.cf-modal-close:hover{background:var(--line);transform:scale(1.08)}

.cf-modal-body{padding:1.5rem}

/* Visa overview strip */
.visa-overview-strip{
  display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;
  background:var(--off-white);border-radius:var(--radius);
  padding:1rem;margin-bottom:1.5rem;
}
.visa-ov-item{text-align:center}
.visa-ov-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--gray);font-weight:600;margin-bottom:.25rem}
.visa-ov-val{font-size:.95rem;font-weight:700;color:var(--navy)}

/* Requirements checklist */
.req-list{margin:0 0 1.5rem;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}
.req-list li{display:flex;align-items:flex-start;gap:.6rem;font-size:.85rem;color:var(--ink)}
.req-list li::before{content:'✅';flex-shrink:0;margin-top:.05rem}

/* Note box */
.visa-note-box{
  background:#FEF3C7;border:1.5px solid #FCD34D;border-radius:var(--radius);
  padding:.875rem 1rem;margin-bottom:1.5rem;font-size:.82rem;color:#92400E;
  display:flex;gap:.6rem;align-items:flex-start;
}

/* Inquiry form */
.inquiry-form{display:flex;flex-direction:column;gap:1rem}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.cf-label{font-size:.78rem;font-weight:600;color:var(--gray);text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:.35rem}
.cf-input{
  width:100%;padding:.75rem 1rem;border:1.5px solid var(--line);
  border-radius:var(--radius-sm);font-size:.9rem;outline:none;
  transition:border-color .2s, box-shadow .2s;background:#fff;
}
.cf-input:focus{border-color:var(--navy-3);box-shadow:0 0 0 3px rgba(30,79,163,.12)}
.cf-input.err{border-color:var(--danger)}
.cf-textarea{resize:vertical;min-height:80px;font-family:var(--font-sans)}

/* Modal action bar */
.cf-modal-actions{
  display:flex;gap:.75rem;flex-wrap:wrap;
  padding:1.25rem 1.5rem;border-top:1px solid var(--line);
  justify-content:flex-end;
  border-radius:0 0 var(--radius-xl) var(--radius-xl);
  background:#fff;
}

/* Success state */
.inquiry-success{
  text-align:center;padding:2rem 1rem;
}
.inquiry-success-icon{font-size:3.5rem;margin-bottom:1rem}
.inquiry-success h3{color:var(--navy);font-size:1.2rem;margin-bottom:.5rem}
.inquiry-success p{color:var(--gray);font-size:.88rem}

/* Section header inside modal */
.modal-section-head{
  font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;
  font-weight:700;color:var(--gray);margin:1.5rem 0 .75rem;
  padding-bottom:.5rem;border-bottom:1px solid var(--line);
}

/* ═══════════════════════════════════════════════════════
   ADMIN NAV TOGGLE SWITCHES
═══════════════════════════════════════════════════════ */
.nav-toggle-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:1rem 1.25rem;border-bottom:1px solid var(--line-2);
}
.nav-toggle-row:last-child{border-bottom:none}
.nav-toggle-info{display:flex;align-items:center;gap:.75rem}
.nav-toggle-icon{font-size:1.25rem;width:32px;text-align:center}
.nav-toggle-label{font-weight:600;font-size:.9rem;color:var(--ink)}
.nav-toggle-url{font-size:.75rem;color:var(--gray);margin-top:.15rem}

/* iOS-style toggle switch */
.cf-toggle{position:relative;width:44px;height:24px;cursor:pointer;flex-shrink:0}
.cf-toggle input{opacity:0;width:0;height:0;position:absolute}
.cf-toggle-slider{
  position:absolute;inset:0;background:#CBD5E1;border-radius:99px;
  transition:background .25s;
}
.cf-toggle-slider::before{
  content:'';position:absolute;width:18px;height:18px;
  left:3px;top:3px;background:#fff;border-radius:50%;
  box-shadow:0 1px 4px rgba(0,0,0,.25);transition:transform .25s;
}
.cf-toggle input:checked + .cf-toggle-slider{background:var(--navy)}
.cf-toggle input:checked + .cf-toggle-slider::before{transform:translateX(20px)}

/* ═══════════════════════════════════════════════════════
   CART SYSTEM
═══════════════════════════════════════════════════════ */
.cart-nav-btn{
  position:relative;background:none;border:none;cursor:pointer;
  color:var(--ink);padding:.4rem .5rem;border-radius:10px;
  display:flex;align-items:center;gap:.25rem;
  transition:background .15s,color .15s;flex-shrink:0;
}
.cart-nav-btn:hover{background:var(--line-2);color:var(--navy);}
.cart-badge{
  background:var(--gold);color:var(--navy-dark);
  font-size:.6rem;font-weight:800;
  min-width:16px;height:16px;border-radius:99px;
  display:flex;align-items:center;justify-content:center;padding:0 4px;
  position:absolute;top:-3px;right:-3px;
}
.cart-overlay{
  position:fixed;inset:0;background:rgba(6,26,61,.5);
  backdrop-filter:blur(4px);z-index:1100;
  opacity:0;pointer-events:none;transition:opacity .25s;
}
.cart-overlay.open{opacity:1;pointer-events:all;}
.cart-drawer{
  position:fixed;top:0;right:0;
  width:380px;max-width:100vw;height:100vh;
  background:#fff;z-index:1101;
  box-shadow:-8px 0 40px rgba(0,0,0,.2);
  transform:translateX(100%);
  transition:transform .3s cubic-bezier(.32,.72,0,1);
  display:flex;flex-direction:column;overflow:hidden;
}
.cart-drawer.open{transform:translateX(0);}
.cart-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:1rem 1.25rem;border-bottom:1px solid #E2E8F0;
  background:var(--navy);flex-shrink:0;
}
.cart-head-title{
  display:flex;align-items:center;gap:.55rem;
  font-size:.93rem;font-weight:700;color:#fff;
}
.cart-head-close{
  background:rgba(255,255,255,.15);border:none;color:#fff;
  width:28px;height:28px;border-radius:50%;cursor:pointer;
  font-size:.85rem;display:flex;align-items:center;justify-content:center;
  transition:background .15s;
}
.cart-head-close:hover{background:rgba(255,255,255,.3);}
.cart-empty{
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;height:100%;min-height:240px;
  text-align:center;padding:2rem;
}
.cart-item{
  display:grid;grid-template-columns:60px 1fr auto;
  gap:.65rem;padding:.7rem;border-radius:12px;
  margin-bottom:.5rem;background:var(--off-white);
  border:1px solid var(--line-2);
}
.cart-item-thumb{
  width:60px;height:60px;border-radius:8px;
  overflow:hidden;flex-shrink:0;background:var(--line-2);
}
.cart-item-body{overflow:hidden;}
.cart-item-name{
  font-size:.85rem;font-weight:700;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.cart-item-meta{font-size:.75rem;color:var(--gray);margin-top:.2rem;}
.cart-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;}
.cart-item-price{font-size:.85rem;font-weight:800;color:var(--navy);white-space:nowrap;}
.cart-rm-btn{
  background:none;border:1px solid var(--line);border-radius:50%;
  width:22px;height:22px;font-size:.68rem;cursor:pointer;color:var(--gray);
  display:flex;align-items:center;justify-content:center;transition:.15s;
}
.cart-rm-btn:hover{background:#FEE2E2;color:#991B1B;border-color:#FECACA;}
@keyframes cart-added-pulse{0%{transform:scale(1)}50%{transform:scale(1.3)}100%{transform:scale(1)}}
.cart-added-pulse{animation:cart-added-pulse .4s ease;}

/* Add-to-cart button in booking sidebar */
.btn-cart{
  background:var(--off-white);border:1.5px solid var(--line);
  color:var(--navy);font-weight:700;
  transition:background .2s,border-color .2s,color .2s;
}
.btn-cart:hover{background:var(--navy);color:#fff;border-color:var(--navy);}

/* ═══════════════════════════════════════════════════════
   BOOKING DETAIL MODAL (account.html)
═══════════════════════════════════════════════════════ */
.bk-modal-overlay{
  position:fixed;inset:0;background:rgba(6,26,61,.6);
  backdrop-filter:blur(6px);z-index:2000;
  display:flex;align-items:center;justify-content:center;
  padding:1rem;
}
.bk-modal{
  background:#fff;border-radius:20px;
  max-width:560px;width:100%;
  max-height:90vh;overflow-y:auto;
  box-shadow:0 30px 80px rgba(0,0,0,.3);
  animation:bkModalIn .25s cubic-bezier(.34,1.56,.64,1);
}
@keyframes bkModalIn{from{opacity:0;transform:scale(.93) translateY(14px)}to{opacity:1;transform:scale(1) translateY(0)}}
.bk-modal-top{
  background:linear-gradient(135deg,#0E2A5C 0%,#1a4a8a 100%);
  border-radius:20px 20px 0 0;padding:1.5rem;color:#fff;position:relative;
}
.bk-modal-close-btn{
  position:absolute;top:1rem;right:1rem;
  background:rgba(255,255,255,.15);border:none;color:#fff;
  width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:1rem;
  display:flex;align-items:center;justify-content:center;transition:.15s;
}
.bk-modal-close-btn:hover{background:rgba(255,255,255,.3);}
.bk-ref-chip{
  display:inline-block;background:rgba(255,255,255,.18);
  padding:.22rem .65rem;border-radius:99px;
  font-size:.72rem;font-weight:700;letter-spacing:.5px;margin-bottom:.55rem;
}
.bk-modal-title{font-size:1.1rem;font-weight:800;margin:0 2.5rem 0 0;}
.bk-modal-sub{font-size:.82rem;opacity:.75;margin-top:.35rem;}

/* Status timeline */
.bk-timeline{
  display:flex;align-items:flex-start;
  justify-content:space-between;
  margin-bottom:1.5rem;position:relative;
}
.bk-timeline::before{
  content:'';position:absolute;top:13px;left:14px;right:14px;
  height:2px;background:var(--line);z-index:0;
}
.bk-tl-step{
  display:flex;flex-direction:column;align-items:center;
  gap:.35rem;flex:1;z-index:1;text-align:center;
}
.bk-tl-dot{
  width:28px;height:28px;border-radius:50%;
  background:var(--line);border:2.5px solid #fff;
  display:flex;align-items:center;justify-content:center;
  font-size:.78rem;box-shadow:0 0 0 2px var(--line);
  transition:.25s;
}
.bk-tl-step.done .bk-tl-dot{background:#10B981;box-shadow:0 0 0 2px #10B981;color:#fff;}
.bk-tl-step.active .bk-tl-dot{background:var(--gold);box-shadow:0 0 0 2px var(--gold);color:var(--navy-dark);animation:bkPulse 1.8s ease infinite;}
.bk-tl-step.cancelled .bk-tl-dot{background:#EF4444;box-shadow:0 0 0 2px #EF4444;color:#fff;}
@keyframes bkPulse{0%,100%{box-shadow:0 0 0 2px var(--gold)}50%{box-shadow:0 0 0 5px rgba(242,184,38,.35)}}
.bk-tl-label{font-size:.68rem;font-weight:600;color:var(--gray-2);line-height:1.3;}
.bk-tl-step.done .bk-tl-label,.bk-tl-step.active .bk-tl-label{color:var(--ink);}

/* Booking detail grid */
.bk-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-bottom:1rem;}
.bk-detail-item{background:var(--off-white);border-radius:10px;padding:.65rem .85rem;}
.bk-detail-label{font-size:.68rem;color:var(--gray);font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:.2rem;}
.bk-detail-value{font-size:.9rem;font-weight:700;color:var(--ink);}

/* Booking card — make clickable */
.booking-card{cursor:pointer;transition:box-shadow .2s,transform .2s;}
.booking-card:hover{box-shadow:0 8px 32px rgba(14,42,92,.14);transform:translateY(-2px);}

/* Admin booking status badges */
.bk-pending{background:#FEF3C7;color:#92400E;padding:.2rem .5rem;border-radius:6px;font-size:.78rem;font-weight:700}
.bk-confirmed{background:#D1FAE5;color:#065F46;padding:.2rem .5rem;border-radius:6px;font-size:.78rem;font-weight:700}
.bk-paid{background:#D1FAE5;color:#065F46;padding:.2rem .5rem;border-radius:6px;font-size:.78rem;font-weight:700}
.bk-completed{background:#EDE9FE;color:#5B21B6;padding:.2rem .5rem;border-radius:6px;font-size:.78rem;font-weight:700}
.bk-cancelled{background:#FEE2E2;color:#991B1B;padding:.2rem .5rem;border-radius:6px;font-size:.78rem;font-weight:700}
.bk-refunded{background:#FEE2E2;color:#991B1B;padding:.2rem .5rem;border-radius:6px;font-size:.78rem;font-weight:700}

/* Admin booking detail drawer */
.bk-admin-modal{
  position:fixed;top:0;right:0;width:460px;max-width:100vw;height:100vh;
  background:#fff;z-index:1200;
  box-shadow:-8px 0 40px rgba(0,0,0,.2);
  transform:translateX(100%);
  transition:transform .3s cubic-bezier(.32,.72,0,1);
  display:flex;flex-direction:column;overflow:hidden;
}
.bk-admin-modal.open{transform:translateX(0);}
.bk-admin-modal-ov{
  position:fixed;inset:0;background:rgba(6,26,61,.4);
  z-index:1199;opacity:0;pointer-events:none;transition:.25s;
}
.bk-admin-modal-ov.open{opacity:1;pointer-events:all;}

@media(max-width:640px){
  .bk-detail-grid{grid-template-columns:1fr;}
  .cart-drawer{width:100vw;}
}

/* ═══════════════════════════════════════
   INQUIRY CARDS & BADGE (account page)
═══════════════════════════════════════ */
.inq-card{
  position:relative;
  cursor:pointer;
  transition:transform .15s, box-shadow .15s;
}
.inq-card:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(14,42,92,.13);}

/* notification badge pulse */
@keyframes inq-badge-pulse{
  0%,100%{transform:scale(1);}
  50%{transform:scale(1.25);}
}
#inqNotifBadge{
  animation:inq-badge-pulse 1.4s ease-in-out infinite;
  display:inline-block;
}

/* Inquiry status pill variants */
.inq-pill-new       {background:#DBEAFE;color:#1E40AF;}
.inq-pill-reviewing {background:#FEF3C7;color:#92400E;}
.inq-pill-confirmed {background:#D1FAE5;color:#065F46;}
.inq-pill-awaiting  {background:#FEE2E2;color:#991B1B;}
.inq-pill-paid      {background:#D1FAE5;color:#065F46;}
.inq-pill-voucher   {background:#EDE9FE;color:#5B21B6;}
.inq-pill-completed {background:#D1FAE5;color:#065F46;}
.inq-pill-cancelled {background:#F3F4F6;color:#6B7280;}

/* Admin inquiry modal overlay + drawer (reuse bk-admin styles) */
#inqAdminOv{
  position:fixed;inset:0;background:rgba(6,26,61,.4);
  z-index:1299;opacity:0;pointer-events:none;transition:.25s;
}
#inqAdminOv.open{opacity:1;pointer-events:all;}
#inqAdminModal{
  position:fixed;top:0;right:0;width:520px;max-width:100vw;height:100vh;
  background:#fff;z-index:1300;
  box-shadow:-8px 0 40px rgba(0,0,0,.2);
  transform:translateX(100%);
  transition:transform .3s cubic-bezier(.32,.72,0,1);
  display:flex;flex-direction:column;overflow-y:auto;
}
#inqAdminModal.open{transform:translateX(0);}
@media(max-width:540px){#inqAdminModal{width:100vw;}}


/* ═══════════════════════════════════════════════════════════
   MOBILE RESPONSIVENESS FIXES — ChoseFly v2
   Comprehensive mobile audit & fixes
═══════════════════════════════════════════════════════════ */

/* ── FIX 1: Mobile nav z-index (was missing — nav appeared behind content) ── */
@media(max-width:980px){
  .nav-links{z-index:79} /* below header (80) but above all page content */
}

/* ── FIX 2: Nav CTA bar — too crowded on small phones ── */
@media(max-width:640px){
  /* Hide "Book Now" text label in header — users have WA float button */
  .nav-cta .btn-gold.btn-sm{display:none !important}
  /* Keep only avatar, not the name label — saves space */
  .nav-account-name{display:none !important}
  /* Tighten gaps */
  .nav-inner{gap:.75rem}
  .nav-cta{gap:.4rem}
}
@media(max-width:400px){
  /* On very small phones, also hide Sign In text — just show hamburger + logo */
  .nav-auth-btn{font-size:.75rem;padding:.45rem .7rem}
}

/* ── FIX 3: stat-row 4-column → 2-column on mobile ── */
@media(max-width:640px){
  .stat-row{grid-template-columns:repeat(2,1fr)}
}

/* ── FIX 4: about-media — absolute positioning breaks on mobile ── */
@media(max-width:880px){
  .about-media{height:320px}
  .about-media .m1{width:60%;height:70%}
  .about-media .m2{width:50%;height:50%}
}
@media(max-width:560px){
  .about-media{height:260px}
  .about-media .m-badge{top:10px;right:10px;padding:.6rem .75rem}
  .about-media .m-badge-num{font-size:1.1rem}
}

/* ── FIX 5: Footer — 1 column on very small screens ── */
@media(max-width:480px){
  .footer-grid{grid-template-columns:1fr}
}

/* ── FIX 6: Quick bar — 2 columns on tiny screens ── */
@media(max-width:400px){
  .quick-bar-inner{grid-template-columns:repeat(2,1fr)}
}

/* ── FIX 7: Hero section mobile polish ── */
@media(max-width:640px){
  .hero{padding:100px 0 50px}
  .hero-title{margin-bottom:1rem}
  .hero-desc{font-size:.95rem;margin-bottom:1.5rem}
  .hero-actions{gap:.6rem}
  .hero-actions .btn{font-size:.85rem;padding:.75rem 1.15rem}
  .hero-stats{gap:1.25rem;padding-top:1.25rem}
  .stat-item .stat-num{font-size:1.3rem}
}

/* ── FIX 8: Search widget on mobile ── */
@media(max-width:640px){
  .search-widget{margin:-30px auto 0}
  .search-card{border-radius:var(--radius);padding:.75rem}
}

/* ── FIX 9: Section padding reduction on mobile ── */
@media(max-width:640px){
  .section{padding:3rem 0}
  .section-tight{padding:2rem 0}
  .cta-banner{padding:3rem 0}
  .section-head{margin-bottom:2rem}
}

/* ── FIX 10: Activity grid — single column on tiny screens ── */
@media(max-width:420px){
  .activity-grid{grid-template-columns:1fr}
}

/* ── FIX 11: Destination tiles on mobile ── */
@media(max-width:560px){
  .dest-tile{height:220px}
  .dest-tile .dt-title{font-size:1.1rem}
}

/* ── FIX 12: Features grid — single column on tiny screens ── */
@media(max-width:420px){
  .features-grid{grid-template-columns:1fr}
}

/* ── FIX 13: CTA actions stack properly on mobile ── */
@media(max-width:480px){
  .cta-actions{flex-direction:column;align-items:center}
  .cta-actions .btn{width:100%;max-width:320px;justify-content:center}
}

/* ── FIX 14: Float cards hidden on mobile (already done but reinforce) ── */
@media(max-width:980px){
  .hero-visual{display:none !important}
}

/* ── FIX 15: Page hero padding ── */
@media(max-width:640px){
  .page-hero{padding:100px 0 40px}
  .page-hero-title{font-size:clamp(1.6rem,7vw,2.4rem)}
}

/* ── FIX 16: Booking modal / overlays full-screen on mobile ── */
@media(max-width:640px){
  .modal-card{margin:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:90vh;overflow-y:auto}
}

/* ── FIX 17: Detail page (activity.html) ── */
@media(max-width:640px){
  .detail-wrap{gap:1.5rem}
  .gallery{height:280px}
}

/* ── FIX 18: Transportation/hotel pages ── */
@media(max-width:640px){
  .tx-hero{padding:100px 0 50px}
  .th-grid{gap:1.5rem}
}

/* ── FIX 19: Contact page ── */
@media(max-width:480px){
  .contact-form{padding:1.25rem}
}

/* ── FIX 20: WhatsApp float — better position on small screens ── */
@media(max-width:480px){
  .wa-float{bottom:1rem;right:1rem}
  .wa-btn{width:50px;height:50px}
  .wa-btn svg{width:24px;height:24px}
}

/* ── FIX 21: Visa page mobile ── */
@media(max-width:640px){
  .visa-control-inner{gap:.4rem;padding:.6rem 1rem}
  .visa-result-count{display:none} /* saves space */
}

/* ── FIX 22: Account page tabs on mobile ── */
@media(max-width:480px){
  .inq-card{padding:1rem}
}

/* ── FIX 23: Booking list on mobile ── */
@media(max-width:560px){
  .bk-list-item{flex-direction:column;gap:.75rem}
}

/* ── FIX 24: Hamburger — ensure it's always visible and tappable ── */
.hamburger{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  min-width:42px; /* ensure tap target */
}

/* ── FIX 25: All links/buttons — minimum touch target 44px ── */
@media(max-width:980px){
  .nav-links a{min-height:44px;display:flex;align-items:center}
}

/* ── FIX 26: Prevent horizontal scroll on all pages ── */
html,body{
  max-width:100vw;
  overflow-x:hidden;
}
.container{width:100%}

/* ── FIX 27: Images — ensure no overflow ── */
img{max-width:100%;height:auto}
.float-card img{height:130px} /* don't override this specific case */

/* ── FIX 28: Quick categories on mobile — tighter padding ── */
@media(max-width:640px){
  .quick-cat{padding:.9rem .6rem}
  .quick-cat .qc-ico{width:44px;height:44px;font-size:1.25rem}
  .quick-cat .qc-label{font-size:.75rem}
  .quick-cat .qc-sub{display:none}
}

/* ── FIX 29: Testimonials — single column on mobile ── */
@media(max-width:560px){
  .testi-grid{grid-template-columns:1fr}
}

/* ── FIX 30: Rating block — stack on mobile ── */
@media(max-width:480px){
  .rating-block{flex-direction:column;gap:1rem}
}

/* ── FIX 31: Scroll cue hidden on mobile (causes layout issues) ── */
@media(max-width:640px){
  .scroll-cue{display:none}
}

/* ── FIX 32: Dropdown menu in mobile nav — better spacing ── */
@media(max-width:980px){
  .nav-dropdown .dropdown-menu a{
    padding:.55rem .75rem;
    font-size:.84rem;
  }
  .nav-dropdown .dropdown-menu a .icon{
    width:26px;height:26px;font-size:.8rem;
  }
}

/* ── FIX 33: Footer bottom — stack on mobile ── */
@media(max-width:480px){
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:.75rem}
  .footer-bottom-links{gap:.75rem}
}

/* ── FIX 34: Visa page filter pills — horizontal scroll on mobile ── */
@media(max-width:640px){
  .visa-filter-pills{
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding-bottom:4px;
  }
  .visa-filter-pills::-webkit-scrollbar{display:none}
}

/* ── FIX 35: Activity cat pills — always scrollable ── */
.cat-pills{
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x mandatory;
}
.cat-pill{scroll-snap-align:start}

/* ─────────────────────────────────────────────
   END MOBILE FIXES
───────────────────────────────────────────── */
