/*
Theme Name: Nepal Motobiking
Theme URI: https://www.nepalmotobiking.com
Author: Nepal Motobiking
Description: Custom theme for Nepal Motobiking: guided motorcycle and 4x4 expeditions across the Himalaya. Editable expeditions with day-by-day itineraries, fleet, gallery sets, leaders, blog and a built-in enquiry form.
Version: 1.1.0
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nepal-motobiking
Tags: one-column, custom-menu, featured-images, custom-logo, threaded-comments
*/

/* ================================================
   NEPAL MOTOBIKING - DESIGN SYSTEM
   Built from Brand Guidelines v1, 2026
   ================================================ */
:root{
  --ink:#14110F;        /* Near Black - primary background, ~60% */
  --ink-2:#1C1712;
  --ink-3:#221C16;
  --cream:#F5EFE6;      /* Off White - text on dark, light backgrounds, ~30% */
  --red:#B23A2E;        /* Signature Red - CTAs & key accents only, ~10% */
  --red-hover:#9c3226;

  --flag-blue:#3E6B9E;
  --flag-white:#F5EFE6;
  --flag-red:#B23A2E;
  --flag-green:#4F7A4A;
  --flag-yellow:#D9A62E;
  --flag-gradient: linear-gradient(to right,
    var(--flag-blue) 0 20%, var(--flag-white) 20% 40%, var(--flag-red) 40% 60%,
    var(--flag-green) 60% 80%, var(--flag-yellow) 80% 100%);

  --line:rgba(245,239,230,0.12);
  --line-strong:rgba(245,239,230,0.24);
  --muted:rgba(245,239,230,0.62);
  --muted-2:rgba(245,239,230,0.42);
  --shadow-lg: 0 30px 60px -20px rgba(0,0,0,0.6);
  --shadow-md: 0 16px 32px -12px rgba(0,0,0,0.5);
  --radius: 4px;
  --radius-lg: 8px;
  --ff-display:'Space Grotesk', 'Work Sans', sans-serif;
  --ff-body:'Work Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --container: 1240px;
  --header-h: 78px;
  --topbar-h: 4px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top: calc(var(--header-h) + var(--topbar-h) + 12px); }
body{
  margin:0;
  font-family: var(--ff-body);
  background: var(--ink);
  color: var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
input,select,textarea{ font-family:inherit; font-size:1rem; }
.container{ max-width:var(--container); margin:0 auto; padding:0 24px; }
.visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }

.skip-link{
  position:absolute; left:12px; top:-60px; background:var(--red); color:var(--cream);
  padding:10px 18px; border-radius:4px; z-index:1000; font-weight:700; transition:top .2s ease;
}
.skip-link:focus{ top:12px; }

/* ---------- Flag Stripe - signature accent device (rule/divider only, never a fill) ---------- */
.flag-rule{ height:4px; background:var(--flag-gradient); border:none; display:block; }
.flag-topbar{ position:fixed; top:0; left:0; right:0; z-index:601; height:var(--topbar-h); }

/* ---------- Typography ---------- */
h1,h2,h3,h4{ font-family:var(--ff-display); font-weight:700; line-height:1.12; margin:0; letter-spacing:-0.01em; }
.eyebrow{
  display:inline-flex; align-items:center; gap:12px;
  font-family:var(--ff-body); font-weight:600; font-size:.76rem; letter-spacing:2px;
  text-transform:uppercase; color:var(--red); margin-bottom:16px;
}
.eyebrow::before{ content:""; width:32px; height:3px; background:var(--flag-gradient); display:inline-block; flex-shrink:0; }
.section-head{ max-width:680px; margin-bottom:48px; }
.section-head h2{ font-size:clamp(1.9rem,4vw,2.9rem); color:var(--cream); }
.section-head p{ color:var(--muted); font-size:1.05rem; margin-top:16px; max-width:56ch; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
section{ position:relative; padding:100px 0; }
.section-alt{ background:var(--ink-2); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:16px 30px; border-radius:2px; font-weight:600; font-size:.86rem;
  letter-spacing:1.2px; text-transform:uppercase; border:1.5px solid transparent;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease, color .25s ease;
  white-space:nowrap;
}
.btn-primary{ background:var(--red); color:var(--cream); box-shadow:0 10px 24px -8px rgba(178,58,46,0.5); }
.btn-primary:hover{ background:var(--red-hover); transform:translateY(-2px); box-shadow:0 16px 30px -8px rgba(178,58,46,0.55); }
.btn-outline{ background:transparent; color:var(--cream); border-color:rgba(245,239,230,0.4); }
.btn-outline:hover{ border-color:var(--cream); background:rgba(245,239,230,0.08); transform:translateY(-2px); }
.btn-cream{ background:var(--cream); color:var(--ink); }
.btn-cream:hover{ background:#fff; transform:translateY(-2px); }
.btn-ghost{ background:rgba(245,239,230,0.06); color:var(--cream); border-color:var(--line); }
.btn-ghost:hover{ background:rgba(245,239,230,0.12); }
.btn-block{ width:100%; }
.btn-sm{ padding:11px 20px; font-size:.76rem; }
.btn[disabled]{ opacity:.6; cursor:not-allowed; transform:none !important; }

/* ---------- Logomark (stamp mark) ---------- */
.logomark{ color:var(--cream); flex-shrink:0; }
.logomark .wheel{ fill:var(--red); }

/* ---------- Header ---------- */
.site-header{
  position:fixed; top:var(--topbar-h); left:0; right:0; z-index:500;
  height:var(--header-h); display:flex; align-items:center;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background .35s ease, border-color .35s ease, height .35s ease;
}
.site-header.is-scrolled{
  background:rgba(20,17,15,0.94); backdrop-filter:blur(10px);
  border-bottom-color:var(--line); height:68px;
}
.site-header .container{ display:flex; align-items:center; justify-content:space-between; width:100%; }
.brand{ display:flex; align-items:center; gap:12px; font-family:var(--ff-display); font-size:1.2rem; font-weight:700; letter-spacing:.2px; }

.main-nav{ display:flex; align-items:center; gap:36px; }
.main-nav a{
  font-size:.85rem; font-weight:500; letter-spacing:.3px;
  color:var(--muted); position:relative; padding:6px 0;
}
.main-nav a::after{ content:""; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--red); transition:width .25s ease; }
.main-nav a:hover{ color:var(--cream); }
.main-nav a:hover::after{ width:100%; }
.header-actions{ display:flex; align-items:center; gap:14px; }

.nav-toggle{ display:none; flex-direction:column; gap:5px; width:44px; height:44px; align-items:center; justify-content:center; background:rgba(245,239,230,0.08); border:1px solid var(--line); border-radius:6px; }
.nav-toggle span{ width:20px; height:2px; background:var(--cream); transition:transform .25s ease, opacity .25s ease; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------- Hero ---------- */
.hero{
  position:relative; min-height:100vh; display:flex; flex-direction:column; justify-content:flex-end;
  padding-top: calc(var(--header-h) + var(--topbar-h));
  background: var(--ink);
  overflow:hidden;
}
.hero-media{ position:absolute; inset:0; z-index:0; background:var(--ink); }
.hero-media video, .hero-media .hero-fallback{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 40%; display:block; }
.hero-media video{ opacity:0; transition:opacity 1s ease; }
.hero-media.video-ready video{ opacity:1; }
.hero-media.video-ready .hero-fallback{ opacity:0; transition:opacity 1s ease; }
.hero-scrim{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(100deg, rgba(20,17,15,0.85) 0%, rgba(20,17,15,0.58) 36%, rgba(20,17,15,0.2) 64%, rgba(20,17,15,0.08) 100%),
    linear-gradient(0deg, rgba(20,17,15,0.55) 0%, rgba(20,17,15,0.05) 32%),
    radial-gradient(ellipse at 15% 100%, rgba(178,58,46,0.1), transparent 55%);
}
@media (max-width:700px){
  .hero-scrim{ background: linear-gradient(180deg, rgba(20,17,15,0.55) 0%, rgba(20,17,15,0.72) 35%, rgba(20,17,15,0.9) 100%); }
}
.hero-grain{ position:absolute; inset:0; z-index:2; opacity:.05; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero-content{ position:relative; z-index:3; padding:120px 24px 60px; }
@media (max-width:700px){ .hero-media video{ display:none; } }
.hero-badge{
  display:inline-flex; align-items:center; gap:8px; padding:8px 16px; border-radius:30px;
  background:rgba(178,58,46,0.12); border:1px solid rgba(178,58,46,0.4); color:var(--cream);
  font-size:.76rem; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; margin-bottom:26px;
}
.hero-badge svg{ width:14px; height:14px; color:var(--red); }
.hero h1{
  font-size:clamp(2.4rem, 6vw, 4.6rem); color:var(--cream); max-width:17ch;
  text-shadow:0 6px 40px rgba(0,0,0,0.4);
}
.hero-tagline{ font-family:var(--ff-display); font-weight:500; font-size:clamp(1rem,1.6vw,1.2rem); color:var(--red); margin-top:18px; letter-spacing:.3px; }
.hero-sub{ font-size:clamp(1rem,1.4vw,1.15rem); color:var(--muted); max-width:54ch; margin:20px 0 40px; font-weight:400; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:18px; margin-bottom:64px; }
.hero-tagline + .hero-cta{ margin-top:40px; }

.trust-strip{
  position:relative; z-index:3; border-top:1px solid var(--line);
  background:rgba(20,17,15,0.6); backdrop-filter:blur(6px);
}
.trust-strip .container{
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding:26px 24px;
}
.trust-item{ display:flex; align-items:center; gap:14px; }
.trust-item .ic{
  flex-shrink:0; width:44px; height:44px; border-radius:50%; background:rgba(245,239,230,0.06);
  border:1px solid var(--line-strong); display:flex; align-items:center; justify-content:center;
}
.trust-item .ic svg{ width:19px; height:19px; color:var(--cream); }
.trust-item strong{ display:block; font-size:.92rem; font-weight:600; color:var(--cream); }
.trust-item span{ font-size:.8rem; color:var(--muted-2); }

/* ---------- Expedition Cards ---------- */
.exped-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.exped-card{
  background:var(--ink-3); border:1px solid var(--line); border-radius:var(--radius-lg);
  overflow:hidden; display:flex; flex-direction:column; transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.exped-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--line-strong); }
.exped-media{ position:relative; height:220px; overflow:hidden; background:linear-gradient(150deg,#241f19,#14110F 75%); display:flex; align-items:center; justify-content:center; }
.exped-media .media-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.exped-media::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(20,17,15,0.1) 0%, rgba(20,17,15,0.15) 55%, rgba(20,17,15,0.75) 100%); pointer-events:none; }
.exped-media .difficulty-tag{
  position:absolute; top:16px; right:16px; z-index:2; padding:6px 14px; border-radius:20px;
  font-size:.68rem; font-weight:600; letter-spacing:1px; text-transform:uppercase;
  background:rgba(20,17,15,0.8); border:1px solid var(--line-strong); color:var(--cream);
}
.difficulty-tag.is-expert{ color:var(--red); border-color:rgba(178,58,46,0.5); }
.exped-media .tour-index{
  position:absolute; top:16px; left:18px; z-index:2; font-size:.68rem; letter-spacing:1.5px; color:var(--muted-2); text-transform:uppercase; font-weight:600;
}
.exped-media .photo-tag{ bottom:16px; left:16px; right:16px; justify-content:flex-start; z-index:2; }
.exped-media .photo-credit{ position:absolute; bottom:14px; left:16px; z-index:2; font-size:.72rem; color:var(--cream); font-weight:500; text-shadow:0 1px 6px rgba(0,0,0,0.6); }
.exped-body{ padding:26px 26px 28px; display:flex; flex-direction:column; gap:16px; flex:1; }
.exped-body h3{ font-size:1.4rem; color:var(--cream); font-weight:700; }
.exped-body .tour-tagline{ color:var(--muted); font-size:.92rem; margin-top:-8px; }
.spec-row{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; padding:16px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.spec-item{ display:flex; flex-direction:column; gap:2px; }
.spec-item .k{ font-size:.66rem; text-transform:uppercase; letter-spacing:1px; color:var(--muted-2); font-weight:600; }
.spec-item .v{ font-size:.95rem; font-weight:600; color:var(--cream); }
.exped-footer{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-top:auto; }
.price-block .from{ display:block; font-size:.66rem; text-transform:uppercase; letter-spacing:1px; color:var(--muted-2); }
.price-block .amount{ font-size:1.4rem; font-weight:700; color:var(--cream); font-family:var(--ff-display); }
.exped-links{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.exped-links .btn{ padding-left:14px; padding-right:14px; }

/* ---------- Itinerary tabs ---------- */
.tabs-bar{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:40px; }
.tab-btn{
  padding:14px 24px; border-radius:2px; border:1px solid var(--line-strong); background:transparent;
  color:var(--muted); font-weight:600; font-size:.82rem; letter-spacing:.6px; text-transform:uppercase;
  transition:all .25s ease;
}
.tab-btn:hover{ border-color:var(--red); color:var(--cream); }
.tab-btn.is-active{ background:var(--red); border-color:var(--red); color:var(--cream); }
.tab-panel{ display:none; }
.tab-panel.is-active{ display:block; animation:fadeUp .4s ease; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(14px);} to{ opacity:1; transform:translateY(0);} }

.itin-layout{ display:grid; grid-template-columns:1.15fr .85fr; gap:44px; align-items:start; }
.itin-meta{ background:var(--ink-3); border:1px solid var(--line); border-radius:var(--radius-lg); padding:28px; position:sticky; top:calc(var(--header-h) + var(--topbar-h) + 20px); }
.itin-meta h4{ font-size:1.15rem; font-weight:700; margin-bottom:6px; }
.itin-meta .tag-line{ color:var(--muted); font-size:.88rem; margin-bottom:22px; display:block; }
.itin-meta .meta-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:22px; }
.itin-meta .meta-grid .k{ font-size:.66rem; text-transform:uppercase; letter-spacing:1px; color:var(--muted-2); font-weight:600; display:block; margin-bottom:4px;}
.itin-meta .meta-grid .v{ font-weight:600; font-size:1rem; }
.elev-chart{ width:100%; height:90px; margin-bottom:18px; }
.itin-meta .btn{ width:100%; }

.accordion-item{ border-bottom:1px solid var(--line); }
.accordion-item:first-child{ border-top:1px solid var(--line); }
.accordion-trigger{
  width:100%; display:flex; align-items:center; gap:18px; justify-content:space-between;
  background:transparent; border:none; color:var(--cream); padding:20px 4px; text-align:left;
}
.accordion-trigger .day-num{
  flex-shrink:0; width:46px; height:46px; border-radius:50%; border:1.5px solid var(--line-strong);
  color:var(--cream); font-family:var(--ff-display); font-size:.9rem; font-weight:600; display:flex; align-items:center; justify-content:center;
}
.accordion-item.is-open .day-num{ border-color:var(--red); color:var(--red); }
.accordion-trigger .day-info{ flex:1; }
.accordion-trigger .day-info .day-title{ font-weight:600; font-size:1rem; display:block; }
.accordion-trigger .day-info .day-route{ font-size:.82rem; color:var(--muted-2); display:block; margin-top:3px; }
.accordion-trigger .chev{ flex-shrink:0; width:20px; height:20px; transition:transform .3s ease; color:var(--red); }
.accordion-item.is-open .chev{ transform:rotate(180deg); }
.accordion-panel{ max-height:0; overflow:hidden; transition:max-height .35s ease; }
.accordion-panel-inner{ padding:0 4px 26px 64px; color:var(--muted); font-size:.94rem; }
.day-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.day-tag{ display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:20px; background:rgba(245,239,230,0.05); border:1px solid var(--line); font-size:.74rem; color:var(--muted); font-weight:500; }

/* ---------- Fleet ---------- */
.fleet-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.fleet-card{ background:var(--ink-3); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
.fleet-media{ height:150px; position:relative; background:linear-gradient(150deg,#221c16,#14110F 80%); display:flex; align-items:center; justify-content:center; }
.fleet-media svg{ width:64px; height:64px; color:var(--muted-2); }
.fleet-body{ padding:24px; }
.fleet-body h4{ font-size:1.15rem; font-weight:700; margin-bottom:2px; }
.fleet-body .fleet-role{ color:var(--red); font-size:.74rem; text-transform:uppercase; letter-spacing:1px; font-weight:600; margin-bottom:16px; display:block; }
.spec-list{ display:flex; flex-direction:column; gap:10px; }
.spec-list li{ display:flex; justify-content:space-between; gap:12px; font-size:.86rem; padding-bottom:10px; border-bottom:1px dashed var(--line); color:var(--muted); }
.spec-list li:last-child{ border-bottom:none; padding-bottom:0; }
.spec-list li b{ color:var(--cream); font-weight:600; text-align:right; }

.fleet-support-banner{
  margin-top:44px; display:flex; flex-wrap:wrap; gap:28px; align-items:center; justify-content:space-between;
  background-color:var(--ink-3); background-image:linear-gradient(120deg, rgba(20,17,15,0.9), rgba(20,17,15,0.72));
  background-position:center 35%; background-size:cover; background-repeat:no-repeat;
  border:1px solid var(--line); border-top:3px solid transparent; border-image:var(--flag-gradient) 1;
  border-radius:var(--radius-lg); padding:30px 34px;
}
.support-feature-list{ display:grid; grid-template-columns:repeat(3,auto); gap:22px 40px; }
.support-feature{ display:flex; align-items:center; gap:12px; font-size:.88rem; font-weight:500; }
.support-feature .ic{ width:36px; height:36px; border-radius:50%; background:rgba(245,239,230,0.06); border:1px solid var(--line-strong); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.support-feature .ic svg{ width:17px; height:17px; color:var(--cream); }

/* ---------- Why Us Grid ---------- */
.why-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
.why-card{ background:var(--ink); padding:38px 32px; transition:background .3s ease; }
.why-card:hover{ background:var(--ink-3); }
.why-card .ic{ width:50px; height:50px; border-radius:12px; background:rgba(245,239,230,0.05); border:1px solid var(--line-strong); display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
.why-card .ic svg{ width:24px; height:24px; color:var(--red); }
.why-card h3{ font-size:1.1rem; font-weight:700; margin-bottom:10px; }
.why-card p{ font-size:.9rem; color:var(--muted); margin:0; }

/* ---------- Gallery ---------- */
.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.gallery-item{ position:relative; margin:0; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:4/5; background:var(--ink-3); }
.gallery-item img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.gallery-item:hover img{ transform:scale(1.06); }
.gallery-item figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:16px 16px 14px;
  font-size:.8rem; color:var(--cream); font-weight:500;
  background:linear-gradient(0deg, rgba(20,17,15,0.88), transparent);
}
@media (max-width:860px){ .gallery-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:700px){ .gallery-grid{ grid-template-columns:1fr; } .gallery-item{ aspect-ratio:16/10; } }

/* ---------- Blog / Field Notes ---------- */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.blog-card{
  background:var(--ink-3); border:1px solid var(--line); border-radius:var(--radius-lg);
  overflow:hidden; display:flex; flex-direction:column; transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.blog-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--line-strong); }
.blog-media{ position:relative; height:190px; overflow:hidden; }
.blog-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.blog-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,17,15,0.05) 0%, rgba(20,17,15,0.65) 100%); }
.blog-cat{
  position:absolute; top:16px; left:16px; z-index:1; padding:6px 14px; border-radius:20px;
  font-size:.68rem; font-weight:600; letter-spacing:1px; text-transform:uppercase;
  background:rgba(20,17,15,0.8); border:1px solid var(--line-strong); color:var(--red);
}
.blog-body{ padding:24px 26px 28px; display:flex; flex-direction:column; gap:12px; flex:1; }
.blog-body h3{ font-size:1.2rem; color:var(--cream); font-weight:700; line-height:1.3; }
.blog-body p{ color:var(--muted); font-size:.9rem; margin:0; flex:1; }
.blog-readmore{ display:inline-flex; align-items:center; gap:8px; color:var(--cream); font-weight:600; font-size:.86rem; margin-top:4px; }
.blog-readmore svg{ width:16px; height:16px; color:var(--red); transition:transform .25s ease; }
.blog-card:hover .blog-readmore svg{ transform:translateX(4px); }
@media (max-width:860px){ .blog-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:700px){ .blog-grid{ grid-template-columns:1fr; } }

/* ---------- Stats / Quote strip ---------- */
.stat-strip{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; text-align:center; padding:56px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.stat-strip .num{ font-family:var(--ff-display); font-weight:700; font-size:clamp(1.9rem,4vw,2.8rem); color:var(--cream); }
.stat-strip .lbl{ font-size:.78rem; text-transform:uppercase; letter-spacing:1px; color:var(--muted-2); margin-top:6px; }

.quote-strip{ text-align:center; max-width:820px; margin:0 auto; }
.quote-strip svg{ width:30px; height:30px; color:var(--red); margin-bottom:20px; }
.quote-strip p{ font-family:var(--ff-display); font-weight:500; font-size:clamp(1.2rem,2.4vw,1.7rem); color:var(--cream); line-height:1.4; }
.quote-strip .attrib{ margin-top:20px; color:var(--muted-2); font-size:.88rem; font-family:var(--ff-body); font-weight:500; }

/* ---------- Inquiry Form ---------- */
.inquiry-wrap{ display:grid; grid-template-columns:.85fr 1.15fr; gap:56px; align-items:flex-start; }
.inquiry-info h2{ font-size:clamp(1.8rem,3.4vw,2.5rem); }
.inquiry-info p{ color:var(--muted); margin-top:18px; max-width:44ch; }
.inquiry-contact{ margin-top:34px; display:flex; flex-direction:column; gap:18px; }
.inquiry-contact a{ display:flex; align-items:center; gap:14px; font-weight:600; }
.inquiry-contact .ic{ width:44px; height:44px; border-radius:50%; background:rgba(245,239,230,0.05); border:1px solid var(--line-strong); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.inquiry-contact .ic svg{ width:18px; height:18px; color:var(--red); }

.form-card{ background:var(--ink-3); border:1px solid var(--line); border-radius:var(--radius-lg); padding:36px; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-field{ display:flex; flex-direction:column; gap:8px; }
.form-field.full{ grid-column:1 / -1; }
.form-field label{ font-size:.76rem; font-weight:600; text-transform:uppercase; letter-spacing:.8px; color:var(--muted); }
.form-field input, .form-field select, .form-field textarea{
  background:var(--ink); border:1px solid var(--line-strong); border-radius:4px; padding:13px 14px;
  color:var(--cream); outline:none; transition:border-color .2s ease, background .2s ease;
}
.form-field input::placeholder, .form-field textarea::placeholder{ color:var(--muted-2); }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{ border-color:var(--red); background:#191510; }
.form-field select{ appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23F5EFE6'%3E%3Cpath d='M5.5 7.5l4.5 5 4.5-5z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:36px; }
.form-field textarea{ resize:vertical; min-height:100px; }
.form-note{ font-size:.78rem; color:var(--muted-2); margin-top:16px; }
.form-success{ display:none; align-items:center; gap:12px; background:rgba(79,122,74,0.14); border:1px solid rgba(79,122,74,0.4); color:#b7d1b3; padding:16px 18px; border-radius:6px; margin-bottom:20px; font-weight:500; font-size:.9rem; }
.form-success.show{ display:flex; }
.form-success svg{ width:20px; height:20px; flex-shrink:0; }

/* ---------- Footer ---------- */
.site-footer{ background:#0e0b09; padding:70px 0 0; border-top:1px solid var(--line); }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:50px; }
.footer-brand .brand{ font-size:1.15rem; }
.footer-brand .flag-rule{ width:110px; margin:18px 0; }
.footer-brand p{ color:var(--muted-2); font-size:.9rem; max-width:38ch; }
.footer-tagline{ font-family:var(--ff-display); font-weight:500; color:var(--muted); font-size:.92rem; margin-bottom:10px; }
.footer-social{ display:flex; gap:12px; margin-top:22px; }
.icon-btn{
  display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px;
  border-radius:50%; background:rgba(245,239,230,0.05); border:1px solid var(--line-strong);
}
.icon-btn:hover{ background:rgba(245,239,230,0.12); }
.icon-btn svg{ width:17px; height:17px; }
.footer-col h5{ font-size:.76rem; text-transform:uppercase; letter-spacing:1.5px; color:var(--red); font-weight:600; margin-bottom:18px; }
.footer-col ul{ display:flex; flex-direction:column; gap:12px; }
.footer-col a{ font-size:.9rem; color:var(--muted); }
.footer-col a:hover{ color:var(--cream); }
.footer-bottom{ border-top:1px solid var(--line); padding:22px 0; display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; font-size:.8rem; color:var(--muted-2); }

/* ---------- Sticky mobile action bar ---------- */
.quick-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:600; display:none;
  background:rgba(20,17,15,0.98); backdrop-filter:blur(10px); border-top:1px solid var(--line-strong);
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
}
.quick-bar-inner{ display:grid; grid-template-columns:1fr 1fr 1.3fr; gap:10px; }
.quick-bar a, .quick-bar button{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  padding:10px 4px; border-radius:8px; font-size:.66rem; font-weight:600; text-transform:uppercase; letter-spacing:.4px; border:none;
}
.quick-bar svg{ width:18px; height:18px; }
.qb-whatsapp{ background:#1c2b21; color:#7fcf87; }
.qb-guide{ background:rgba(245,239,230,0.07); color:var(--cream); }
.qb-book{ background:var(--red); color:var(--cream); }

.float-whatsapp{
  position:fixed; bottom:28px; right:28px; z-index:600; width:56px; height:56px; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:0 12px 26px -8px rgba(0,0,0,0.5);
  transition:transform .25s ease;
}
.float-whatsapp:hover{ transform:scale(1.08); }
.float-whatsapp svg{ width:27px; height:27px; color:#0c0d0f; }

/* ---------- Modal ---------- */
.modal-overlay{
  position:fixed; inset:0; background:rgba(8,6,5,0.8); backdrop-filter:blur(4px); z-index:900;
  display:none; align-items:center; justify-content:center; padding:24px;
}
.modal-overlay.is-open{ display:flex; }
.modal-box{ background:var(--ink-3); border:1px solid var(--line-strong); border-radius:var(--radius-lg); max-width:460px; width:100%; padding:36px; position:relative; box-shadow:var(--shadow-lg); animation:fadeUp .3s ease; }
.modal-close{ position:absolute; top:16px; right:16px; width:36px; height:36px; border-radius:50%; background:rgba(245,239,230,0.06); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; }
.modal-close svg{ width:16px; height:16px; }
.modal-box h3{ font-size:1.25rem; font-weight:700; margin-bottom:8px; }
.modal-box p{ color:var(--muted); font-size:.9rem; margin-bottom:22px; }
.modal-box .form-field{ margin-bottom:16px; }

/* ---------- Utility / reveal ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* ================================================
   RESPONSIVE
   ================================================ */
@media (max-width:1080px){
  .exped-grid, .fleet-grid{ grid-template-columns:repeat(2,1fr); }
  .itin-layout{ grid-template-columns:1fr; }
  .itin-meta{ position:static; }
  .inquiry-wrap{ grid-template-columns:1fr; }
  .why-grid{ grid-template-columns:repeat(2,1fr); }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .stat-strip{ grid-template-columns:repeat(2,1fr); row-gap:36px; }
}
@media (max-width:860px){
  .main-nav, .header-actions .btn-outline{ display:none; }
  .nav-toggle{ display:flex; }
  .trust-strip .container{ grid-template-columns:1fr; gap:16px; }
  .form-grid{ grid-template-columns:1fr; }
  .fleet-support-banner{ flex-direction:column; align-items:flex-start; }
  .support-feature-list{ grid-template-columns:1fr 1fr; }
}
@media (max-width:700px){
  section{ padding:70px 0; }
  .exped-grid, .fleet-grid, .why-grid{ grid-template-columns:1fr; }
  .quick-bar{ display:block; }
  .float-whatsapp{ display:none; }
  .footer-grid{ grid-template-columns:1fr; gap:32px; }
  .hero-cta{ flex-direction:column; }
  .hero-cta .btn{ width:100%; }
  .support-feature-list{ grid-template-columns:1fr; }
}

/* Mobile full-screen nav drawer */
.mobile-drawer{
  position:fixed; inset:0; z-index:450; background:var(--ink); transform:translateX(100%);
  transition:transform .35s ease; display:flex; flex-direction:column; padding:110px 32px 40px; gap:28px;
}
.mobile-drawer.is-open{ transform:translateX(0); }
.mobile-drawer a{ font-family:var(--ff-display); font-weight:600; font-size:1.7rem; }
.mobile-drawer .btn{ margin-top:20px; }

/* ================================================
   MULTI-PAGE ADDITIONS: page banners & graphics
   ================================================ */
.page-hero{
  position:relative; overflow:hidden; background:var(--ink-2);
  min-height:460px; display:flex; align-items:flex-end;
  padding: calc(var(--header-h) + var(--topbar-h) + 70px) 0 60px;
  border-bottom:1px solid var(--line);
}
.page-hero-art{ position:absolute; inset:0; z-index:0; }
.page-hero-art svg{ width:100%; height:100%; display:block; }
.page-hero-focal{ position:absolute; top:0; bottom:0; right:0; width:62%; z-index:0; }
.page-hero-focal svg{ width:100%; height:100%; display:block; }
.page-hero-scrim{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg, rgba(20,17,15,0.82) 0%, rgba(20,17,15,0.5) 42%, rgba(20,17,15,0.08) 100%);
}
.page-hero-content{ position:relative; z-index:2; width:100%; }
.page-hero-text{ max-width:620px; }
.page-hero h1{ font-size:clamp(2rem,4.6vw,3.3rem); color:var(--cream); margin:4px 0 16px; line-height:1.05; }
.page-hero p{ color:var(--muted); font-size:1.05rem; max-width:52ch; margin:0; }
.page-hero .flag-rule{ width:72px; height:4px; margin-bottom:18px; }
@media (max-width:700px){
  .page-hero{ min-height:540px; padding-top: calc(var(--header-h) + var(--topbar-h) + 236px); padding-bottom:36px; }
  .page-hero-scrim{ background:linear-gradient(180deg, rgba(20,17,15,0.1) 0%, rgba(20,17,15,0.2) 40%, rgba(20,17,15,0.92) 60%, rgba(20,17,15,0.96) 100%); }
  .page-hero-art{ top:calc(var(--header-h) + var(--topbar-h)); bottom:42%; }
  .page-hero-focal{ width:100%; top:calc(var(--header-h) + var(--topbar-h)); bottom:42%; }
  .page-hero h1{ font-size:1.9rem; }
  .page-hero--video{ min-height:440px; padding-top: calc(var(--header-h) + var(--topbar-h) + 48px); padding-bottom:44px; }
  .page-hero--video .page-hero-art{ top:0; bottom:0; }
  .page-hero--video .page-hero-scrim{ background:linear-gradient(180deg, rgba(20,17,15,0.55) 0%, rgba(20,17,15,0.68) 30%, rgba(20,17,15,0.92) 100%); }
}

/* Keep long <select> options from widening the inquiry layout on small screens */
.inquiry-wrap > *{ min-width:0; }
.form-grid{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.form-field{ min-width:0; }
.form-field select, .form-field input, .form-field textarea{ max-width:100%; min-width:0; }
@media (max-width:700px){ .form-grid{ grid-template-columns:minmax(0,1fr); } }
/* Quick bar: two actions now (WhatsApp + Book) */
.quick-bar-inner{ grid-template-columns:1fr 1.3fr; }

/* --- Gallery page: full grid, filters, lightbox --- */
.gallery-filters{ margin-bottom:32px; }
.gallery-filters .count{ display:inline-block; margin-left:8px; padding:2px 8px; border-radius:10px; background:rgba(245,239,230,0.08); font-size:.7rem; letter-spacing:0; }
.gallery-filters .tab-btn.is-active .count{ background:rgba(20,17,15,0.25); }
.gallery-grid--full{ grid-template-columns:repeat(4,1fr); gap:14px; }
.gallery-grid--full .gallery-item{ aspect-ratio:4/3; }
.gallery-grid--full .gallery-item[hidden]{ display:none; }
.gallery-open{ display:block; width:100%; height:100%; padding:0; border:0; background:none; cursor:zoom-in; }
.gallery-open img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.gallery-grid--full .gallery-item figcaption{ pointer-events:none; font-size:.74rem; padding:12px 14px 10px; }
.gallery-open:focus-visible{ outline:2px solid var(--red); outline-offset:-2px; }
@media (max-width:1000px){ .gallery-grid--full{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:700px){ .gallery-grid--full{ grid-template-columns:repeat(2,1fr); gap:10px; } .gallery-grid--full .gallery-item{ aspect-ratio:1/1; } .gallery-grid--full .gallery-item figcaption{ display:none; } }

.lightbox{ position:fixed; inset:0; z-index:900; display:none; align-items:center; justify-content:center; background:rgba(20,17,15,0.96); padding:64px 84px; }
.lightbox.is-open{ display:flex; }
.lb-figure{ margin:0; max-width:100%; max-height:100%; display:flex; flex-direction:column; align-items:center; gap:14px; }
.lb-figure img{ max-width:min(1400px, 100%); max-height:calc(100vh - 150px); width:auto; height:auto; object-fit:contain; border-radius:var(--radius); box-shadow:var(--shadow-lg); background:var(--ink-3); }
.lb-figure figcaption{ display:flex; gap:18px; align-items:center; font-size:.82rem; color:var(--muted); letter-spacing:.4px; }
.lb-count{ font-family:var(--ff-display); color:var(--cream); font-weight:600; }
.lb-btn{ position:absolute; width:52px; height:52px; border-radius:50%; background:rgba(245,239,230,0.08); border:1px solid var(--line-strong); color:var(--cream); display:flex; align-items:center; justify-content:center; transition:background .2s ease, border-color .2s ease, transform .2s ease; }
.lb-btn svg{ width:22px; height:22px; }
.lb-btn:hover{ background:var(--red); border-color:var(--red); }
.lb-prev{ left:22px; top:50%; transform:translateY(-50%); }
.lb-next{ right:22px; top:50%; transform:translateY(-50%); }
.lb-prev:hover{ transform:translateY(-50%) translateX(-2px); }
.lb-next:hover{ transform:translateY(-50%) translateX(2px); }
.lb-close{ top:18px; right:22px; }
body.lb-locked{ overflow:hidden; }
@media (max-width:700px){
  .lightbox{ padding:70px 12px 96px; }
  .lb-figure img{ max-height:calc(100vh - 190px); }
  .lb-btn{ width:46px; height:46px; }
  .lb-prev{ left:auto; right:calc(50% + 10px); top:auto; bottom:24px; transform:none; }
  .lb-next{ left:calc(50% + 10px); right:auto; top:auto; bottom:24px; transform:none; }
  .lb-prev:hover, .lb-next:hover{ transform:none; }
  .lb-close{ top:14px; right:14px; }
}

/* --- Fleet grids & expedition leaders --- */
.fleet-grid--4{ grid-template-columns:repeat(4,1fr); gap:20px; }
.fleet-grid--1{ grid-template-columns:minmax(0,560px); }
@media (max-width:1100px){ .fleet-grid--4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:700px){ .fleet-grid--4, .fleet-grid--1{ grid-template-columns:1fr; } }
.leader-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,480px)); gap:24px; }
.leader-card{ display:flex; gap:22px; align-items:center; background:var(--ink-3); border:1px solid var(--line); border-radius:var(--radius-lg); padding:26px; transition:transform .3s ease, border-color .3s ease; }
.leader-card:hover{ transform:translateY(-4px); border-color:var(--line-strong); }
.leader-avatar{ flex-shrink:0; width:76px; height:76px; border-radius:50%; border:2px solid var(--red); background:rgba(178,58,46,0.12); display:flex; align-items:center; justify-content:center; font-family:var(--ff-display); font-weight:700; font-size:1.3rem; color:var(--cream); letter-spacing:1px; }
.leader-body h3{ font-size:1.2rem; margin-bottom:4px; }
.leader-role{ display:block; color:var(--red); font-size:.74rem; text-transform:uppercase; letter-spacing:1px; font-weight:600; margin-bottom:12px; }
.leader-link{ display:inline-flex; align-items:center; gap:8px; color:var(--muted); font-size:.9rem; font-weight:500; }
.leader-link svg{ width:18px; height:18px; color:var(--cream); }
.leader-link:hover{ color:var(--cream); }
@media (max-width:700px){ .leader-grid{ grid-template-columns:1fr; } }

/* --- Mandala artwork: red in the footer, gold on the section breaks --- */
.site-footer{ position:relative; overflow:hidden; }
.site-footer > .container, .site-footer .footer-bottom{ position:relative; z-index:1; }
.footer-mandala-wrap{
  position:absolute; right:-250px; top:54%; transform:translateY(-50%);
  width:580px; height:580px; z-index:0; pointer-events:none;
}
.footer-mandala-wrap::before{
  content:""; position:absolute; inset:0; opacity:.38;
  background:url("assets/img/mandala-red.svg") center/contain no-repeat;
  animation:mandalaTurn 240s linear infinite;
}
@keyframes mandalaTurn{ to{ transform:rotate(360deg); } }
@media (max-width:1100px){ .footer-mandala-wrap{ width:520px; height:520px; right:-200px; } }
@media (max-width:700px){ .footer-mandala-wrap{ width:420px; height:420px; right:-170px; top:auto; bottom:-140px; transform:none; } }

.mandala-divider{
  display:flex; align-items:center; gap:26px;
  max-width:var(--container); margin:0 auto; padding:54px 24px;
}
.mandala-rule{ flex:1 1 auto; height:1px; background:linear-gradient(to right, transparent, var(--line-strong), transparent); }
.mandala-mark{
  flex:none; width:80px; height:80px; opacity:.92;
  background:url("assets/img/mandala-gold.svg") center/contain no-repeat;
}
@media (max-width:700px){
  .mandala-divider{ gap:16px; padding:38px 24px; }
  .mandala-mark{ width:56px; height:56px; }
}
@media (prefers-reduced-motion: reduce){ .footer-mandala-wrap::before{ animation:none; } }

/* --- Footer social links with labels --- */
.footer-social{ display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
.social-pill{ display:inline-flex; align-items:center; gap:12px; color:var(--cream); font-weight:600; font-size:.9rem; line-height:1.15; }
.social-pill small{ display:block; font-size:.66rem; text-transform:uppercase; letter-spacing:1px; color:var(--muted-2); font-weight:600; margin-bottom:2px; }
.social-pill .icon-btn{ flex-shrink:0; }
.social-pill:hover{ color:var(--cream); }
.social-pill:hover .icon-btn{ border-color:var(--red); color:var(--red); }

/* --- Page banner with video (Contact) --- */
.page-hero--video .page-hero-art{ inset:0; background:var(--ink); }
.page-hero--video .page-hero-art video,
.page-hero--video .page-hero-art img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 45%; display:block; }
.page-hero--video .page-hero-art video{ opacity:0; transition:opacity .9s ease; z-index:1; }
.page-hero--video .page-hero-art.video-ready video{ opacity:1; }
.page-hero--video .page-hero-scrim{
  background:
    linear-gradient(100deg, rgba(20,17,15,0.94) 0%, rgba(20,17,15,0.82) 30%, rgba(20,17,15,0.42) 62%, rgba(20,17,15,0.28) 100%),
    linear-gradient(0deg, rgba(20,17,15,0.72) 0%, rgba(20,17,15,0) 42%);
}

/* Sub-page sections sit tighter under their banner */
.page-hero + section{ padding-top:72px; }

/* --- Front page: topographic contour lines behind Featured Expeditions --- */
#expeditions{ overflow:hidden; }
#expeditions > .container{ position:relative; z-index:1; }
.contour-bg{ position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; }
.contour-drift{ animation:contourDrift 28s ease-in-out infinite; transform-box:fill-box; transform-origin:50% 50%; }
@keyframes contourDrift{
  0%{ transform:translate(0,0) scale(1); }
  50%{ transform:translate(-26px,16px) scale(1.03); }
  100%{ transform:translate(0,0) scale(1); }
}

/* --- Fleet: rotating wheels, moving road --- */
.page-hero--fleet .wheel, .page-hero--contact .wheel{ transform-box:fill-box; transform-origin:50% 50%; animation:spinWheel 1.3s linear infinite; }
.page-hero--fleet .wheel--jeep{ animation-duration:1.7s; }
@keyframes spinWheel{ to{ transform:rotate(360deg); } }
.road-dash{ animation:roadMove .9s linear infinite; }
.road-dash--slow{ animation-duration:2.2s; }
@keyframes roadMove{ to{ stroke-dashoffset:-80; } }
.vehicle{ transform-box:fill-box; transform-origin:50% 100%; animation:vehicleBob 1.1s ease-in-out infinite; }
.vehicle--jeep{ animation-duration:1.5s; animation-delay:-.4s; }
@keyframes vehicleBob{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-2px);} }
.headlight{ animation:headlightPulse 2.4s ease-in-out infinite; }
@keyframes headlightPulse{ 0%,100%{ opacity:.75;} 50%{ opacity:1;} }

/* --- Gallery: drifting clouds & mist --- */
.cloud{ animation:cloudDrift var(--dur,50s) linear infinite; animation-delay:var(--delay,0s); }
@keyframes cloudDrift{ from{ transform:translateX(-320px);} to{ transform:translateX(2300px);} }
.mist{ animation:mistDrift 14s ease-in-out infinite; }
.mist--2{ animation-duration:19s; animation-delay:-6s; }
@keyframes mistDrift{ 0%,100%{ transform:translateX(0);} 50%{ transform:translateX(40px);} }

/* --- Blog: sunrise --- */
.sun-rise{ animation:sunRise 4.5s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes sunRise{ from{ transform:translateY(130px);} to{ transform:translateY(0);} }
.sun-glow{ animation:glowPulse 6s ease-in-out infinite; }
@keyframes glowPulse{ 0%,100%{ opacity:.85;} 50%{ opacity:1;} }
.sun-rays{ transform-box:fill-box; transform-origin:50% 50%; animation:raysTurn 80s linear infinite; }
@keyframes raysTurn{ to{ transform:rotate(360deg);} }
.dawn-sky{ animation:dawnFade 5s ease-out forwards; opacity:0; }
@keyframes dawnFade{ to{ opacity:1; } }
.bird{ animation:birdFly var(--dur,40s) linear infinite; animation-delay:var(--delay,0s); }
@keyframes birdFly{ from{ transform:translateX(-60px);} to{ transform:translateX(1300px);} }

/* --- Contact: rider bob, headlight glow, dust, slow clouds --- */
.cloud--slow{ animation-name:cloudDriftSlow; }
@keyframes cloudDriftSlow{ from{ transform:translateX(-140px);} to{ transform:translateX(1400px);} }
.dust{ transform-box:fill-box; transform-origin:50% 50%; animation:dustPuff 1.4s ease-out infinite; }
@keyframes dustPuff{ 0%{ transform:scale(.4) translateX(0); opacity:.7;} 100%{ transform:scale(1.5) translateX(-30px); opacity:0;} }
.rider-bob{ transform-box:fill-box; transform-origin:50% 100%; animation:riderBob 1.6s ease-in-out infinite; }
@keyframes riderBob{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-3px);} }
.hl-glow{ animation:glowPulse 2.6s ease-in-out infinite; }
.trail-dash{ animation:trailMove 1.1s linear infinite; }
@keyframes trailMove{ to{ stroke-dashoffset:36; } }

/* Respect reduced-motion for every decorative animation */
@media (prefers-reduced-motion: reduce){
  .contour-drift, .page-hero--fleet .wheel, .page-hero--contact .wheel, .dust, .road-dash, .vehicle, .headlight, .cloud, .mist, .sun-glow, .sun-rays, .bird, .rider-bob, .hl-glow, .trail-dash{ animation:none !important; }
  .sun-rise{ animation:none; transform:translateY(0); }
  .dawn-sky{ animation:none; opacity:1; }
}

/* ================================================
   WORDPRESS ADDITIONS
   ================================================ */
.screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap; }
.admin-bar .flag-topbar{ top:32px; }
.admin-bar .site-header{ top:calc(var(--topbar-h) + 32px); }
.admin-bar .mobile-drawer{ top:calc(var(--header-h) + var(--topbar-h) + 32px); }
@media (max-width:782px){ .admin-bar .flag-topbar{ top:46px; } .admin-bar .site-header{ top:calc(var(--topbar-h) + 46px); } }
.logomark--img{ width:34px; height:34px; object-fit:contain; border-radius:50%; }
.main-nav a.is-current{ color:var(--cream); }
.nmb-hp{ position:absolute; left:-9999px; top:-9999px; height:0; overflow:hidden; }
.form-error{ background:rgba(178,58,46,0.15); border:1px solid rgba(178,58,46,0.5); color:var(--cream); padding:14px 16px; border-radius:var(--radius); margin-bottom:20px; font-size:.9rem; }
.form-success.show{ display:flex; }
.exped-body h3 a, .blog-body h3 a{ color:inherit; }
.exped-body h3 a:hover, .blog-body h3 a:hover{ color:var(--red); }
.exped-media .media-link{ position:absolute; inset:0; z-index:0; display:block; }
.blog-media{ display:block; }
.blog-media-empty{ position:absolute; inset:0; display:block; }
.blog-media-empty svg{ width:100%; height:100%; }
.section-more{ margin-top:36px; }
.fleet-media.has-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.fleet-media.has-photo{ height:190px; padding:0; }
.leader-avatar--photo{ overflow:hidden; background:var(--ink-2); }
.leader-avatar--photo img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Post / expedition pages */
.page-hero--post.has-photo .page-hero-art img{ width:100%; height:100%; object-fit:cover; display:block; opacity:.75; }
.page-hero--post.has-photo .page-hero-scrim{ background:linear-gradient(90deg, rgba(20,17,15,0.92) 0%, rgba(20,17,15,0.7) 45%, rgba(20,17,15,0.35) 100%); }
.page-hero-text--wide{ max-width:820px; }
.post-meta{ font-size:.88rem !important; color:var(--muted-2) !important; }
.post-body{ padding-top:64px; }
.post-content{ max-width:760px; font-size:1.05rem; line-height:1.75; color:rgba(245,239,230,0.85); }
.post-content > * + *{ margin-top:1.2em; }
.post-content h2, .post-content h3, .post-content h4{ color:var(--cream); margin-top:2em; }
.post-content h2{ font-size:1.7rem; } .post-content h3{ font-size:1.3rem; } .post-content h4{ font-size:1.1rem; }
.post-content p{ margin:0 0 1.2em; }
.post-content a{ color:var(--cream); text-decoration:underline; text-decoration-color:var(--red); text-underline-offset:3px; }
.post-content ul, .post-content ol{ padding-left:1.4em; margin:0 0 1.2em; }
.post-content li{ margin-bottom:.4em; list-style:disc; }
.post-content ol li{ list-style:decimal; }
.post-content img{ max-width:100%; height:auto; border-radius:var(--radius-lg); }
.post-content figure{ margin:1.6em 0; }
.post-content figcaption, .post-content .wp-caption-text{ font-size:.82rem; color:var(--muted-2); margin-top:8px; }
.post-content blockquote{ margin:1.6em 0; padding:8px 0 8px 24px; border-left:3px solid var(--red); font-family:var(--ff-display); font-size:1.2rem; color:var(--cream); }
.post-content blockquote p{ margin:0; }
.post-content hr{ border:0; border-top:1px solid var(--line); margin:2em 0; }
.post-content table{ width:100%; border-collapse:collapse; font-size:.92rem; }
.post-content th, .post-content td{ border-bottom:1px solid var(--line); padding:10px 8px; text-align:left; }
.post-content .alignwide{ max-width:none; width:100%; }
.post-content .wp-block-image.alignfull img, .post-content .wp-block-image.alignwide img{ width:100%; }
.post-content .wp-block-button__link{ display:inline-flex; align-items:center; padding:14px 26px; border-radius:2px; background:var(--red); color:var(--cream); font-weight:600; font-size:.86rem; letter-spacing:1.2px; text-transform:uppercase; text-decoration:none; }
.post-content .wp-block-quote{ border-left:3px solid var(--red); }
.post-content .wp-block-embed iframe{ max-width:100%; }
.post-cta{ margin:64px 0 0; max-width:760px; display:flex; flex-wrap:wrap; gap:24px; align-items:center; justify-content:space-between; background:var(--ink-3); border:1px solid var(--line); border-top:3px solid transparent; border-image:var(--flag-gradient) 1; border-radius:var(--radius-lg); padding:28px 30px; }
.post-cta h3{ font-size:1.15rem; margin-bottom:6px; }
.post-cta p{ margin:0; color:var(--muted); font-size:.92rem; max-width:44ch; }
.expedition-detail{ padding-top:72px; }
.expedition-layout{ display:grid; grid-template-columns:1.15fr .85fr; gap:44px; align-items:start; }
.expedition-aside .meta-grid{ margin-bottom:22px; }
.expedition-aside .btn{ width:100%; }
@media (max-width:900px){ .expedition-layout{ grid-template-columns:1fr; } }

/* Pagination & search */
.nmb-pagination{ margin-top:48px; }
.nmb-pagination .nav-links{ display:flex; flex-wrap:wrap; gap:8px; }
.nmb-pagination .page-numbers{ display:inline-flex; align-items:center; padding:10px 16px; border:1px solid var(--line-strong); border-radius:2px; color:var(--muted); font-size:.82rem; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.nmb-pagination .page-numbers.current, .nmb-pagination .page-numbers:hover{ background:var(--red); border-color:var(--red); color:var(--cream); }
.search-form{ display:flex; gap:10px; max-width:480px; }
.search-form input[type="search"]{ flex:1; background:var(--ink-3); border:1px solid var(--line-strong); color:var(--cream); padding:12px 14px; border-radius:var(--radius); font-family:var(--ff-body); }

/* Comments (if enabled on posts) */
.comments-area{ max-width:760px; margin-top:64px; }

/* ================================================
   BOOKING ENGINE
   ================================================ */
.booking-section{ padding:72px 0 96px; }
.booking-wrap{ display:grid; grid-template-columns:1.35fr .65fr; gap:40px; align-items:flex-start; }
.booking-form{ min-width:0; }
.form-field[hidden]{ display:none; }
.booking-alert{ margin-bottom:24px; }
.booking-step + .booking-step{ margin-top:36px; padding-top:32px; border-top:1px solid var(--line); }
.booking-step h3{ display:flex; align-items:center; gap:12px; font-size:1.05rem; letter-spacing:.4px; text-transform:uppercase; margin-bottom:20px; color:var(--cream); }
.booking-step .step-n{
  display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; flex:none;
  border-radius:50%; background:var(--red); color:var(--cream); font-size:.8rem; font-weight:700;
}
.pay-amount{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:18px; }
.pay-methods{ display:grid; gap:12px; }
.pay-option{
  display:flex; gap:12px; align-items:flex-start; padding:14px 16px; cursor:pointer;
  background:rgba(245,239,230,0.03); border:1px solid var(--line); border-radius:10px; transition:border-color .2s ease, background .2s ease;
}
.pay-option:hover{ border-color:var(--line-strong); }
.pay-option input{ margin-top:3px; accent-color:var(--red); flex:none; }
.pay-option span{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.pay-option strong{ font-size:.92rem; color:var(--cream); font-weight:600; }
.pay-option em{ font-style:normal; font-size:.78rem; color:var(--muted-2); line-height:1.5; }
.pay-option:has(input:checked){ border-color:var(--red); background:rgba(178,58,46,0.08); }
.terms-check{ display:flex; gap:12px; align-items:flex-start; margin:22px 0 20px; font-size:.82rem; color:var(--muted); line-height:1.6; }
.terms-check input{ margin-top:3px; accent-color:var(--red); flex:none; }
.terms-check a{ color:var(--red); text-decoration:underline; }

.booking-summary{ position:sticky; top:calc(var(--header-h) + var(--topbar-h) + 20px); }
.summary-card{ background:var(--ink-3); border:1px solid var(--line); border-radius:var(--radius-lg); padding:28px; }
.summary-card h3{ font-size:1.25rem; color:var(--cream); margin:4px 0 14px; line-height:1.25; }
.summary-card .flag-rule{ margin-bottom:18px; }
.summary-lines{ display:grid; gap:10px; margin:0 0 20px; }
.summary-lines > div{ display:flex; justify-content:space-between; gap:16px; font-size:.86rem; }
.summary-lines dt{ color:var(--muted-2); }
.summary-lines dd{ margin:0; color:var(--cream); text-align:right; font-weight:500; }
.summary-lines .is-total{ padding-top:10px; border-top:1px solid var(--line); font-size:.95rem; }
.summary-due{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  padding:16px 18px; border-radius:10px; background:rgba(178,58,46,0.12); border:1px solid rgba(178,58,46,0.35);
}
.summary-due span{ font-size:.74rem; letter-spacing:1px; text-transform:uppercase; color:var(--muted); }
.summary-due strong{ font-family:var(--ff-display); font-size:1.6rem; color:var(--cream); }
.summary-balance{ font-size:.8rem; color:var(--muted-2); margin:12px 0 18px; }
.summary-balance strong{ color:var(--cream); }
.summary-includes{ list-style:none; display:grid; gap:8px; margin:0 0 18px; padding:0; }
.summary-includes li{ position:relative; padding-left:20px; font-size:.8rem; color:var(--muted); line-height:1.5; }
.summary-includes li::before{ content:""; position:absolute; left:0; top:.5em; width:8px; height:8px; border-radius:50%; background:var(--red); }
.summary-help{ font-size:.8rem; color:var(--muted-2); margin:0; }
.summary-help a{ color:var(--red); text-decoration:underline; }

.booking-closed{ max-width:720px; margin:0 auto; text-align:center; }
.booking-closed h2{ font-size:1.8rem; margin:6px 0 14px; }
.booking-closed p{ color:var(--muted); margin-bottom:22px; }

.booking-result{ max-width:760px; margin:0 auto; }
.booking-result h2{ font-size:1.9rem; margin:6px 0 14px; }
.booking-result > p{ color:var(--muted); line-height:1.7; }
.booking-result .summary-lines{ margin:26px 0; }
.booking-result h3{ font-size:1rem; text-transform:uppercase; letter-spacing:.6px; margin-bottom:12px; }
.result-mark{ width:56px; height:56px; color:#5FA463; margin-bottom:14px; }
.result-mark svg{ width:100%; height:100%; }
.result-ref{ display:flex; align-items:center; gap:14px; margin-top:22px; padding:14px 18px; border:1px dashed var(--line-strong); border-radius:10px; }
.result-ref span{ font-size:.72rem; letter-spacing:1.2px; text-transform:uppercase; color:var(--muted-2); }
.result-ref strong{ font-family:var(--ff-display); font-size:1.15rem; letter-spacing:1px; color:var(--cream); }
.result-next{ margin:0 0 26px 18px; color:var(--muted); }
.result-next li{ margin-bottom:8px; line-height:1.6; }
.result-actions{ display:flex; flex-wrap:wrap; gap:12px; }

.dep-list{ list-style:none; margin:0 0 22px; padding:0; display:grid; gap:8px; }
.dep-list li{ display:flex; justify-content:space-between; gap:14px; font-size:.84rem; padding:9px 12px; border:1px solid var(--line); border-radius:8px; }
.dep-date{ color:var(--cream); }
.dep-left{ color:var(--muted-2); }
.dep-left.is-full{ color:var(--red); }
.aside-sub{ font-size:.78rem; letter-spacing:1px; text-transform:uppercase; color:var(--muted-2); margin:24px 0 10px; }
.aside-note{ font-size:.78rem; color:var(--muted-2); margin:10px 0 0; text-align:center; }
.header-book{ white-space:nowrap; }

@media (max-width:980px){
  .booking-wrap{ grid-template-columns:1fr; }
  .booking-summary{ position:static; order:-1; }
}
@media (max-width:700px){
  .booking-section{ padding:48px 0 64px; }
  .pay-amount{ grid-template-columns:1fr; }
  .booking-form.form-card, .summary-card{ padding:22px; }
  .header-book{ display:none; }
}

/* ================================================
   PAGE BANNER WITH A PHOTO (Why Ride With Us)
   ================================================ */
.page-hero p + p{ margin-top:14px; }
.page-hero--why-us .page-hero-text{ max-width:none; }
.page-hero--why-us p{ max-width:64ch; }
.page-hero-split{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:56px; align-items:center; }
.page-hero-split .page-hero-photo{ order:2; }
.page-hero-photo{
  margin:0; position:relative; aspect-ratio:3/4; max-height:640px; width:100%;
  border-radius:var(--radius-lg); overflow:hidden;
  border:1px solid var(--line); box-shadow:0 30px 60px rgba(0,0,0,0.45);
}
.page-hero-photo img{ width:100%; height:100%; object-fit:cover; object-position:center 60%; display:block; }
@media (max-width:960px){
  .page-hero-split{ grid-template-columns:1fr; gap:36px; }
  .page-hero-split .page-hero-photo{ order:0; aspect-ratio:1/1; max-height:none; max-width:560px; }
  .page-hero-split .page-hero-photo img{ object-position:center 40%; }
  .page-hero.page-hero--why-us{ padding-top:calc(var(--header-h) + var(--topbar-h) + 40px); }
}

/* ================================================
   EXPERIENCE-LED HOME SECTIONS
   ================================================ */

/* --- The riding (story) --- */
.story-section{ padding:96px 0; }
.story-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.story-media{ position:relative; border-radius:var(--radius-lg); overflow:hidden; }
.story-media img{ width:100%; height:auto; display:block; filter:saturate(.92) contrast(1.03); }
.story-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(20,17,15,.78), rgba(20,17,15,0) 55%); }
.story-badge{
  position:absolute; left:22px; right:22px; bottom:20px; z-index:2;
  font-size:.78rem; letter-spacing:.4px; color:var(--cream); line-height:1.5;
  padding-left:14px; border-left:2px solid var(--red);
}
.story-body h2{ font-size:clamp(1.8rem,3.4vw,2.6rem); line-height:1.15; color:var(--cream); margin:0 0 22px; }
.story-body p{ color:var(--muted); font-size:1.02rem; line-height:1.8; margin:0 0 18px; max-width:56ch; }
.story-close{ color:var(--cream) !important; font-weight:500; border-left:2px solid var(--red); padding-left:18px; }
.story-body .btn{ margin-top:10px; }

/* --- Private by design --- */
.private-section{ padding:88px 0; }
.private-head{ max-width:760px; margin-bottom:48px; }
.private-head h2{ font-size:clamp(1.9rem,4vw,2.9rem); color:var(--cream); margin:0 0 18px; }
.private-head p{ color:var(--muted); font-size:1.02rem; line-height:1.8; }
.private-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.private-card{ background:var(--ink-3); border:1px solid var(--line); border-radius:var(--radius-lg); padding:30px; }
.private-card .ic{ display:inline-flex; width:42px; height:42px; align-items:center; justify-content:center; border-radius:10px; background:rgba(178,58,46,.14); color:var(--red); margin-bottom:18px; }
.private-card .ic svg{ width:22px; height:22px; }
.private-card h3{ font-size:1.05rem; color:var(--cream); margin:0 0 10px; }
.private-card p{ color:var(--muted-2); font-size:.9rem; line-height:1.7; margin:0; }

/* --- Upcoming departures --- */
.upcoming-section{ padding:88px 0 96px; }
.upcoming-list{ display:grid; gap:14px; }
.upcoming-row{
  display:grid; grid-template-columns:1.05fr 1.5fr .8fr auto; gap:28px; align-items:center;
  background:var(--ink-3); border:1px solid var(--line); border-left:3px solid var(--red);
  border-radius:var(--radius-lg); padding:24px 28px; transition:border-color .25s ease, transform .25s ease;
}
.upcoming-row:hover{ border-color:var(--line-strong); border-left-color:var(--red); transform:translateX(3px); }
.u-when{ display:block; font-family:var(--ff-display); font-size:1.12rem; font-weight:600; color:var(--cream); }
.u-note{ display:block; font-size:.78rem; color:var(--muted-2); margin-top:5px; line-height:1.5; }
.upcoming-trip h3{ font-size:1.08rem; color:var(--cream); margin:0 0 6px; }
.u-meta{ font-size:.78rem; color:var(--muted-2); letter-spacing:.2px; }
.upcoming-status{ display:flex; flex-direction:column; gap:7px; align-items:flex-start; }
.u-tag{ font-size:.66rem; font-weight:700; letter-spacing:1px; text-transform:uppercase; padding:5px 11px; border-radius:999px; border:1px solid; }
.u-tag.is-open{ color:#7FB08A; border-color:rgba(127,176,138,.45); background:rgba(127,176,138,.1); }
.u-tag.is-filling{ color:var(--flag-yellow); border-color:rgba(217,166,46,.45); background:rgba(217,166,46,.1); }
.u-tag.is-closed{ color:var(--muted-2); border-color:var(--line); }
.u-places{ font-size:.78rem; color:var(--muted); }
.upcoming-cta{ display:flex; align-items:center; gap:18px; }
.u-price{ font-family:var(--ff-display); font-size:1.05rem; font-weight:600; color:var(--cream); white-space:nowrap; }
.u-price small{ display:block; font-family:var(--ff-body); font-size:.66rem; font-weight:400; letter-spacing:.8px; text-transform:uppercase; color:var(--muted-2); margin-top:3px; }
.upcoming-foot{ margin-top:28px; font-size:.9rem; color:var(--muted-2); }
.upcoming-foot a{ color:var(--red); text-decoration:underline; }

/* --- Quieter spec line on the cards --- */
.exped-meta{ font-size:.8rem; color:var(--muted-2); letter-spacing:.2px; line-height:1.7; margin:14px 0 20px; padding-top:14px; border-top:1px solid var(--line); }
.exped-meta i{ font-style:normal; color:var(--red); padding:0 4px; }

/* --- The team --- */
.team-section{ padding:88px 0; }
.team-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center; }
.team-body h2{ font-size:clamp(1.8rem,3.4vw,2.6rem); color:var(--cream); margin:0 0 20px; line-height:1.15; }
.team-body > p{ color:var(--muted); font-size:1.02rem; line-height:1.8; max-width:54ch; }
.team-facts{ list-style:none; margin:26px 0 28px; padding:0; display:grid; gap:11px; }
.team-facts li{ position:relative; padding-left:22px; font-size:.9rem; color:var(--muted); line-height:1.6; }
.team-facts li::before{ content:""; position:absolute; left:0; top:.55em; width:8px; height:8px; border-radius:50%; background:var(--red); }
.team-facts strong{ color:var(--cream); }
.team-leaders{ display:grid; gap:16px; }
.team-card{ display:flex; gap:20px; align-items:center; background:var(--ink-3); border:1px solid var(--line); border-radius:var(--radius-lg); padding:22px 24px; }
.team-card .leader-avatar{ width:66px; height:66px; flex:none; font-size:1.2rem; }
.team-card h3{ font-size:1.05rem; margin:0 0 2px; color:var(--cream); }

/* --- Ethos line (replaces the customer quote) --- */
.ethos-strip{ max-width:820px; margin:0 auto; text-align:center; }
.ethos-strip .flag-rule{ width:110px; margin:0 auto 26px; }
.ethos-strip p{ font-family:var(--ff-display); font-size:clamp(1.15rem,2.2vw,1.5rem); line-height:1.6; color:var(--cream); margin:0; }

@media (max-width:980px){
  .story-grid, .team-grid{ grid-template-columns:1fr; gap:36px; }
  /* Phones and tablets: let the story text sit over the bottom of the photo */
  .story-grid{ gap:0; }
  .story-media{ z-index:0; border-bottom-left-radius:0; border-bottom-right-radius:0; }
  .story-media::after{ background:linear-gradient(to top, rgba(20,17,15,1) 0%, rgba(20,17,15,.92) 22%, rgba(20,17,15,0) 62%); }
  .story-media::before{
    content:""; position:absolute; left:0; right:0; top:0; height:150px; z-index:1;
    background:linear-gradient(to bottom, rgba(20,17,15,.85), rgba(20,17,15,0));
  }
  .story-badge{ bottom:auto; top:18px; }
  .story-body{ position:relative; z-index:2; margin-top:-150px; }

  .private-grid{ grid-template-columns:1fr; }
  .upcoming-row{ grid-template-columns:1fr 1fr; gap:20px; }
  .upcoming-cta{ justify-content:space-between; grid-column:1 / -1; padding-top:16px; border-top:1px solid var(--line); }
}
@media (max-width:700px){
  .story-section, .private-section, .upcoming-section, .team-section{ padding:56px 0; }
  .upcoming-row{ grid-template-columns:1fr; gap:16px; padding:22px; }
  .upcoming-status{ flex-direction:row; align-items:center; gap:12px; }
  .team-card{ gap:16px; padding:18px; }
}

/* Departure that has sold out */
.u-tag.is-full{ color:var(--muted); border-color:var(--line-strong); }

/* ================================================
   EXPEDITION PAGE: what's included / excluded
   ================================================ */
.trip-details{ padding:84px 0; }
.trip-detail-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:26px; align-items:start; }
.trip-detail-card{
  background:var(--ink-3); border:1px solid var(--line); border-radius:var(--radius-lg); padding:30px;
}
.trip-detail-card h3{
  font-size:.82rem; letter-spacing:1.4px; text-transform:uppercase; color:var(--cream);
  margin:0 0 18px; padding-bottom:14px; border-bottom:1px solid var(--line);
}
.trip-list{ list-style:none; margin:0; padding:0; }
.trip-list li{
  position:relative; padding-left:28px; margin-bottom:12px;
  color:var(--muted); font-size:.95rem; line-height:1.65;
}
.trip-list li::before{
  position:absolute; left:0; top:0; font-weight:700; font-size:1rem; line-height:1.6;
}
.trip-list--yes li::before{ content:"✓"; color:var(--flag-green); }
.trip-list--no li::before{ content:"×"; color:var(--red); font-size:1.15rem; }
.trip-list--know li::before{ content:"·"; color:var(--flag-yellow); font-size:1.5rem; line-height:1.1; }
@media (max-width:700px){
  .trip-details{ padding:52px 0; }
  .trip-detail-card{ padding:22px; }
}

/* ================================================
   FAQ PAGE
   ================================================ */
.faq-section{ padding:84px 0; }
.faq-list{ max-width:820px; }
.faq-item .day-title{ font-size:1.02rem; }
.faq-item .accordion-panel-inner{ color:var(--muted); line-height:1.8; }
.faq-foot{
  max-width:820px; margin-top:48px; padding-top:32px; border-top:1px solid var(--line);
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
}
.faq-foot p{ color:var(--muted); margin:0; flex:1 1 260px; }
@media (max-width:700px){
  .faq-section{ padding:52px 0; }
  .faq-foot .btn{ width:100%; }
}

/* Legal links above the footer's bottom line */
.footer-legal{
  list-style:none; display:flex; flex-wrap:wrap; gap:8px 26px; margin:0; padding:26px 0 0;
  position:relative; z-index:1;
}
.footer-legal a{ color:var(--muted-2); font-size:.82rem; letter-spacing:.3px; }
.footer-legal a:hover{ color:var(--cream); }

/* ================================================
   SMALL-SCREEN FIXES
   Grid children may not be narrower than their content unless told so —
   that was pushing the expedition page sideways on 320-360px phones.
   ================================================ */
.expedition-layout > *,
.story-grid > *,
.team-grid > *,
.booking-wrap > *{ min-width:0; }
.post-content img, .post-content table{ max-width:100%; }
.post-content table{ display:block; overflow-x:auto; }

/* Buttons in the "booking is by enquiry" card wrap instead of overhanging */
.booking-closed p{ display:flex; flex-wrap:wrap; gap:12px; }
.booking-closed p .btn{ margin:0; }

@media (max-width:480px){
  .booking-closed p .btn{ width:100%; }
  .faq-foot .btn{ width:100%; }
}

@media (max-width:700px){
  /* Comfortable tap targets: footer and nav links were 17-22px tall */
  .footer-col li{ margin-bottom:2px; }
  .footer-col li a{ display:inline-block; padding:9px 0; }
  .footer-legal{ gap:2px 24px; }
  .footer-legal a{ display:inline-block; padding:8px 0; }
  .leader-link, .team-card .leader-link{ display:inline-flex; padding:8px 0; }

  /* Nothing below 12px on a phone: these micro-labels were 10.6-11.8px */
  .spec-item .k,
  .itin-meta .meta-grid .k,
  .price-block .from{ font-size:.78rem; letter-spacing:.8px; }
  .u-tag, .blog-cat{ font-size:.78rem; }
  .day-tag{ font-size:.78rem; }
  .exped-media .difficulty-tag{ font-size:.78rem; }
  .exped-media .photo-credit{ font-size:.75rem; }
  .leader-role, .fleet-body .fleet-role{ font-size:.76rem; }
  .footer-col a{ font-size:.95rem; }
}

/* ================================================
   ICON SIZING
   Inline SVGs carry no width/height, so anywhere without an explicit rule
   they fall back to the browser's 300x150 default. Buttons, links and
   the leader handles all needed one.
   ================================================ */
.btn svg{ width:18px; height:18px; flex:none; }
.btn-sm svg{ width:16px; height:16px; }
.leader-link svg{ width:15px; height:15px; flex:none; }
.footer-social .ic svg{ width:17px; height:17px; }
.spec-tag svg, .support-tag svg{ width:16px; height:16px; flex:none; }
.accordion-trigger svg.chev{ width:18px; height:18px; flex:none; }

/* ================================================
   STORY SECTION ON DESKTOP AND SMALL LAPTOPS
   Two columns from 860px up (was 980px, which pushed narrow laptop
   windows into the stacked phone layout), and a tall portrait photo
   is held to the height of the screen instead of running the section long.
   ================================================ */
@media (min-width:860px){
  .story-grid{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:56px; align-items:center; }
  .story-media{ width:fit-content; margin-inline:auto; border-radius:var(--radius-lg); }
  .story-media img{ max-height:74vh; width:auto; max-width:100%; }
  .story-media::before{ display:none; }
  .story-media::after{ background:linear-gradient(to top, rgba(20,17,15,.78), rgba(20,17,15,0) 55%); }
  .story-badge{ top:auto; bottom:20px; }
  .story-body{ margin-top:0; position:static; }
  .team-grid{ grid-template-columns:1.1fr .9fr; gap:56px; }
}
@media (min-width:860px) and (max-width:1100px){
  .story-grid{ gap:36px; }
  .story-media img{ max-height:62vh; }
}

/* ================================================
   PHONES: hero video plays, no bottom bar, floating WhatsApp
   ================================================ */
@media (max-width:700px){
  .hero-media video{ display:block; }
  .quick-bar{ display:none; }
  .float-whatsapp{
    display:flex; bottom:calc(18px + env(safe-area-inset-bottom)); right:18px;
    width:54px; height:54px;
  }
}
