:root{
  --stone:#EDE6D6;
  --stone-deep:#E1D7C0;
  --charcoal:#2B2520;
  --rust:#B1552F;
  --rust-deep:#8C3F22;
  --saffron:#D7993C;
  --maroon:#6B2A2A;
  --prayer-blue:#3A6B82;
  --line:rgba(43,37,32,0.16);
  --paper:#F6F1E6;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; scroll-padding-top:90px; overflow-x:hidden;}
/* overflow-x:hidden lives on <html> only, not <body> too — declaring it on
   both used to make the browser treat <body> as its own separate scroll
   container nested inside the viewport's, which silently breaks
   position:sticky for anything inside it (the trek page's sticky sub-nav
   and sticky sidebar included). One declaration is enough to stop
   horizontal overflow; it doesn't need to be on both. */
body{
  background:var(--stone);
  color:var(--charcoal);
  font-family:'Work Sans', sans-serif;
  font-weight:400;
  line-height:1.6;
}
h1,h2,h3,.display{
  font-family:'Fraunces', serif;
  font-weight:500;
  letter-spacing:-0.01em;
}
.mono{
  font-family:'JetBrains Mono', monospace;
  letter-spacing:0.04em;
  text-transform:uppercase;
  font-size:0.72rem;
}
/* Generic utility — the "rust-colored eyebrow label" pattern repeats across
   nearly every page template as an inline style; centralizing it here. */
.mono-rust{ color:var(--rust-deep); }
.text-rust{ color:var(--rust-deep); }
.text-muted{ color:#7a7166; }
.text-body{ color:#4a423a; }
.text-error{ color:#e07a5f; }
.is-hidden{ display:none; }
a{color:inherit; text-decoration:none;}
img,.ph{display:block; width:100%; height:100%; object-fit:cover;}
/* placeholder photo blocks */
.ph{
  position:relative;
  background:linear-gradient(160deg,var(--stone-deep),var(--rust) 130%);
  display:flex; align-items:flex-end; justify-content:flex-start;
  color:rgba(246,241,230,0.85);
  overflow:hidden;
}
.ph::before{
  content:'';
  position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,0.10), transparent 40%),
    repeating-linear-gradient(115deg, rgba(255,255,255,0.05) 0 2px, transparent 2px 14px);
}
.ph span{
  position:relative; z-index:1;
  font-family:'JetBrains Mono',monospace;
  font-size:0.66rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding:10px 14px;
  opacity:0.8;
}
.ph.blue{background:linear-gradient(160deg,#5C7E8C,var(--prayer-blue) 130%);}
.ph.maroon{background:linear-gradient(160deg,#9A5C50,var(--maroon) 130%);}
.ph.saffron{background:linear-gradient(160deg,#E3B563,var(--saffron) 130%);}
/* nav */
header.site-header{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:22px max(5vw, calc((100% - 1240px)/2));
  background:rgba(20,17,14,0.55);
  transition:background 0.3s, padding 0.3s, opacity 0.3s;
}
/* Hidden specifically while the About page's own hero photo is on screen —
   that hero has its own floating nav (including a Home link, since this
   is the only nav on the page while it's hidden) built directly into it,
   see .about-hero-nav in page-about.php. Toggled by IntersectionObserver
   in js/main.js watching .about-hero; reappears the moment the hero
   scrolls out of view, so navigation is never actually unavailable, just
   swapped for the hero's own nav while looking at it. */
header.site-header.is-hero-hidden{
  opacity:0; pointer-events:none;
}
header.site-header.scrolled{
  background:rgb(20,17,14);
  padding:14px max(5vw, calc((100% - 1240px)/2));
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.brand{font-family:'Sora',sans-serif; font-size:1.4rem; font-weight:700; color:#fff; letter-spacing:0.02em;}
.brand small{display:block; font-family:'JetBrains Mono',monospace; font-size:0.6rem; letter-spacing:0.12em; text-transform:uppercase; opacity:0.65; font-weight:400; color:#fff; margin-top:2px;}
.site-header-right{ display:flex; align-items:center; gap:34px; }
nav ul{display:flex; gap:34px; list-style:none;}
nav a{
  font-size:0.88rem; font-weight:500; position:relative;
  padding-bottom:4px; color:#fff;
}
nav a::after{
  content:''; position:absolute; left:0; bottom:0; height:1px; width:0;
  background:var(--saffron); transition:width 0.25s;
}
nav a:hover::after{width:100%;}
.nav-toggle{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none;}
.nav-toggle span{width:24px; height:2px; background:#fff;}
.site-search-toggle{
  background:none; border:none; cursor:pointer; color:#fff;
  padding:6px; display:flex; align-items:center;
}
.site-search-toggle svg{ width:20px; height:20px; }
.site-account-link{
  background:none; border:none; cursor:pointer; color:#fff;
  padding:6px; display:flex; align-items:center; text-decoration:none;
}
.site-account-link svg{ width:20px; height:20px; }
.site-search-panel{
  position:fixed; top:0; left:0; right:0; z-index:60;
  background:rgb(20,17,14);
  max-height:0; overflow:hidden;
  transition:max-height 0.3s ease;
}
.site-search-panel.is-open{ max-height:140px; overflow:visible; }
.site-search-panel-inner{
  max-width:1240px; margin:0 auto;
  padding:28px max(5vw, calc((100% - 1240px)/2));
  display:flex; align-items:center; gap:16px;
}
.site-search-form{ flex:1; display:flex; flex-direction:row; flex-wrap:nowrap; align-items:center; gap:10px; min-width:0; }
.site-search-input-wrap{ position:relative; flex:1 1 auto; min-width:0; }
.site-search-input{
  width:100%;
  background:none; border:none; border-bottom:1px solid rgba(255,255,255,0.3);
  color:#fff; font-family:'Fraunces',serif; font-size:1.4rem; padding:8px 0;
}
.site-search-input::placeholder{ color:rgba(255,255,255,0.4); }
.site-search-input:focus{ outline:none; border-bottom-color:var(--saffron); }
.site-search-submit{
  background:none; border:none; cursor:pointer; color:#fff; flex:none; flex-shrink:0;
  display:flex; align-items:center; padding:6px;
}
.site-search-submit svg{ width:22px; height:22px; }
.site-search-close{
  background:none; border:none; cursor:pointer; color:rgba(255,255,255,0.6);
  font-size:1.8rem; line-height:1; flex:none; flex-shrink:0; padding:0 6px;
}
.site-search-close:hover{ color:#fff; }
/* Live search suggestions dropdown — floats below the input, works
   whether the input sits on the dark header panel or the light results
   page, since it's a self-contained white card either way. */
.site-search-suggestions{
  position:absolute; top:100%; left:0; right:0; margin-top:10px;
  background:#fff; border-radius:6px;
  box-shadow:0 16px 40px rgba(0,0,0,0.25);
  overflow:hidden; z-index:70;
  max-height:70vh; overflow-y:auto;
}
.site-search-suggestion{
  display:flex; align-items:center; gap:12px;
  padding:12px 16px; border-bottom:1px solid var(--line);
  transition:background 0.15s;
}
.site-search-suggestion:last-of-type{ border-bottom:none; }
.site-search-suggestion:hover, .site-search-suggestion.is-active{ background:var(--stone); }
.site-search-suggestion-thumb{
  width:42px; height:42px; border-radius:4px; overflow:hidden; flex:none;
  background:var(--stone-deep);
}
.site-search-suggestion-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.site-search-suggestion-thumb-empty{ background:linear-gradient(160deg,var(--stone-deep),var(--rust) 130%); }
.site-search-suggestion-body{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.site-search-suggestion-type{
  font-family:'JetBrains Mono',monospace; font-size:0.62rem; text-transform:uppercase;
  letter-spacing:0.04em; color:var(--rust-deep);
}
.site-search-suggestion-title{
  font-size:0.9rem; color:var(--charcoal); font-weight:500;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.site-search-suggestion-title mark{ background:rgba(215,153,60,0.35); color:inherit; border-radius:2px; }
.site-search-suggestions-empty{
  padding:16px; font-size:0.85rem; color:#7a7166; margin:0;
}
.site-search-suggestions-dym{
  display:block; padding:0 16px 16px;
  font-size:0.85rem; color:var(--charcoal);
  transition:background 0.15s;
}
.site-search-suggestions-dym strong{ color:var(--rust-deep); }
.site-search-suggestions-dym:hover, .site-search-suggestions-dym.is-active{ background:var(--stone); }
.site-search-suggestions-more{
  display:block; text-align:center; padding:12px 16px;
  font-family:'JetBrains Mono',monospace; font-size:0.72rem; text-transform:uppercase;
  letter-spacing:0.04em; color:var(--rust-deep); border-top:1px solid var(--line);
  transition:background 0.15s;
}
.site-search-suggestions-more:hover, .site-search-suggestions-more.is-active{ background:var(--stone); }
.screen-reader-text{
  border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%);
  height:1px; width:1px; overflow:hidden; position:absolute !important;
  word-wrap:normal !important; margin:-1px; padding:0;
}
/* HERO */
.hero{
  min-height:100vh;
  display:flex; align-items:center;
  padding:0 max(5vw, calc((100% - 1240px)/2));
  position:relative;
  background:
    linear-gradient(100deg, rgba(15,13,11,0.78) 0%, rgba(15,13,11,0.45) 42%, rgba(15,13,11,0.15) 65%),
    linear-gradient(0deg, rgba(15,13,11,0.55) 0%, rgba(15,13,11,0) 45%),
    var(--hero-image, url('hero-mountains.jpg'));
  background-size:cover;
  background-position:center 55%;
  color:#fff;
}
@media (max-width:880px){
  .hero{
    background-position:60% 70%;
    background-size:cover;
    background-repeat:no-repeat;
  }
}
.hero-grid{ max-width:680px; }
.eyebrow{
  display:flex; align-items:center; gap:10px; margin-bottom:20px;
  color:var(--saffron);
}
.eyebrow .rule{width:34px; height:1px; background:var(--saffron);}
.hero h1{
  font-family:'Sora',sans-serif;
  font-size:clamp(2.4rem, 5.4vw, 4.2rem);
  line-height:1.08;
  font-weight:800;
  color:#fff;
  letter-spacing:-0.01em;
}
.hero h1 em{
  font-style:normal; font-weight:800; color:var(--saffron);
}
.hero p.lede{
  margin-top:22px; max-width:520px; font-size:1.05rem; color:rgba(255,255,255,0.85);
}
.hero-actions{margin-top:34px; display:flex; gap:18px; flex-wrap:wrap; align-items:center;}
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 30px; border-radius:999px;
  font-size:0.85rem; font-weight:600; letter-spacing:0.02em;
  border:1px solid transparent;
  transition:all 0.25s;
}
.btn.solid{background:var(--saffron); color:#241c10;}
.btn.solid:hover{background:#e8b25f;}
.btn.ghost{border:1px solid rgba(255,255,255,0.55); color:#fff;}
.btn.ghost:hover{background:rgba(255,255,255,0.12); border-color:#fff;}
.btn:disabled{ cursor:default; opacity:0.92; }
/* Submit-button loading spinner — three pulsing dots inserted by JS
   (inc/wp-captcha.php) in front of the button's label the instant a form
   is submitted, on every theme form (enquiry, review, feedback, contact,
   wedding contact, newsletter). Uses currentColor so it reads correctly
   against any button style, not just .btn.solid. */
.btn-spinner-dots{
  display:inline-flex; align-items:center; gap:4px;
  vertical-align:middle; margin-right:8px;
}
.btn-spinner-dots span{
  width:5px; height:5px; border-radius:50%; background:currentColor;
  opacity:0.35; animation:rujanBtnDotPulse 1s ease-in-out infinite;
}
.btn-spinner-dots span:nth-child(2){ animation-delay:0.15s; }
.btn-spinner-dots span:nth-child(3){ animation-delay:0.3s; }
@keyframes rujanBtnDotPulse{
  0%,80%,100%{ opacity:0.3; transform:scale(0.85); }
  40%{ opacity:1; transform:scale(1.05); }
}
/* Site-wide slow-page loader — full-page overlay, only shown by JS
   (js/main.js) once a navigation has been running past a short delay, so
   fast page loads never see it. Same mountain ridge-line motif used on the
   trek enquiry "thank you" screens. Markup lives in header.php, right
   after wp_body_open(), so it's present on every page. */
.rujan-page-loader{
  position:fixed; inset:0; z-index:10000;
  background:rgba(246,241,230,0.94);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity 0.25s ease;
}
.rujan-page-loader.is-visible{ opacity:1; visibility:visible; pointer-events:auto; }
.rujan-page-loader-inner{ display:flex; flex-direction:column; align-items:center; gap:14px; }
.rujan-page-loader-ridge{ width:200px; height:70px; }
.rujan-page-loader-ridge polyline{
  fill:none; stroke:var(--rust); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:420; stroke-dashoffset:420;
  animation:rujanPageLoaderDraw 1.8s ease-in-out infinite;
}
.rujan-page-loader-label{
  font-family:'JetBrains Mono',monospace; font-size:0.68rem; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--rust-deep); opacity:0.8;
}
@keyframes rujanPageLoaderDraw{
  0%{ stroke-dashoffset:420; }
  55%{ stroke-dashoffset:0; }
  100%{ stroke-dashoffset:-420; }
}
/* elevation divider — signature element */
.elevation{
  width:100%; height:70px; overflow:hidden; position:relative;
}
.elevation svg{width:100%; height:100%; display:block;}
.elevation .label{
  position:absolute; top:8px; left:5vw; font-family:'JetBrains Mono',monospace;
  font-size:0.62rem; letter-spacing:0.08em; text-transform:uppercase; opacity:0.5;
}
.elevation .label.right{left:auto; right:5vw;}
/* pencil-sketch mountain divider — used between Guide Fees and Photography */
.sketch-divider{
  width:100%; height:80px; overflow:hidden; position:relative;
  background:var(--stone);
}
.sketch-divider .label{
  position:absolute; top:8px; left:5vw; font-family:'JetBrains Mono',monospace;
  font-size:0.62rem; letter-spacing:0.08em; text-transform:uppercase; opacity:0.5;
  z-index:1;
}
.sketch-divider .label.right{left:auto; right:5vw;}
.sketch-divider svg{width:100%; height:100%; display:block;}
.sketch-line{
  stroke:var(--charcoal);
  stroke-width:1.4;
  stroke-linecap:round;
  stroke-linejoin:round;
  opacity:0.55;
}
.sketch-line-soft{
  stroke:var(--rust-deep);
  stroke-width:1;
  opacity:0.28;
}
section{padding:110px 5vw;}
.section-head, .about-grid, .gallery, .trek-list, .tour-list, .service-grid, .testimonials, .contact-grid, .guide-fees-grid{
  max-width:1240px; margin-left:auto; margin-right:auto;
}
.section-head{
  display:flex; justify-content:space-between; align-items:flex-end; gap:30px;
  margin-bottom:56px; flex-wrap:wrap;
}
.section-head h2{font-size:clamp(2rem,3.6vw,2.8rem);}
.section-head .mono{color:var(--rust-deep); margin-bottom:10px; display:block;}
.section-head p{max-width:380px; color:#4a423a; font-size:0.95rem;}
/* About */
.about{background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.about-grid{display:grid; grid-template-columns:0.8fr 1.2fr; gap:70px; align-items:stretch;}
.about-photo{ height:100%; background:var(--paper); }
.about-photo img{width:100%; height:100%; object-fit:cover; display:block;}
/* About page hero — full-bleed dark photo, floating nav row, big editorial
   headline. Only used on the standalone /about page (page-about.php), so
   this never appears on the homepage's own separate hero. */
.about-hero{
  position:relative; min-height:78vh; padding:150px 5vw 60px;
  display:flex; flex-direction:column; justify-content:space-between;
  background-image:linear-gradient(to bottom, rgba(13,19,24,0.35) 0%, rgba(13,19,24,0.35) 55%, rgba(13,19,24,0.92) 100%), var(--about-hero-image);
  background-size:cover; background-position:center;
  color:#fff;
}
.about-hero-nav{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
}
.about-hero-coords{ color:rgba(255,255,255,0.65); font-size:0.68rem; }
/* The clickable nav links only (not the coordinates beside them, which
   stay right where they've always been, in normal flow at the top of the
   hero) are pulled up to sit in the exact same row the real
   header.site-header's own <nav> occupies — same top offset (22px) as
   the header — so while the real header is hidden (see .is-hero-hidden
   above), these links read as if they're in the header's own nav slot,
   not a second nav floating lower on the photo. The right edge, though,
   matches .about-hero-subtext's right edge below (both sit flush against
   the hero's own 5vw padding) rather than the header's centered
   max-width:1240px formula, so the nav lines up with the "Kathmandu-based
   trekking guide + Himalayan photographer" subtext instead of the
   header's nav slot. No new background bar, no full-width banner — just
   these links, still transparent over the photo exactly as before.
   Starts visible with no JS needed (matches the real header's own
   server-rendered-hidden start on this page — see header.php); js/main.js's
   existing about-hero IntersectionObserver adds .is-hero-passed the
   instant the hero scrolls out of view, at the same moment it removes
   .is-hero-hidden from the real header, so the two swap in lockstep. Left
   in its original in-flow position below 781px (wraps onto its own row
   under the coordinates there — see the max-width:780px block below)
   since the real header itself already drops out of position:fixed on
   every non-home page at that width (a separate rule further down this
   file), so there's no fixed header row to match on mobile in the first
   place. */
@media (min-width:781px){
  .about-hero-nav-links{
    position:fixed; top:22px; right:5vw;
    z-index:51;
    transition:opacity 0.3s;
  }
  .about-hero-nav-links.is-hero-passed{ opacity:0; pointer-events:none; }
}
.about-hero-nav-links{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.about-hero-nav-links a{
  font-family:'JetBrains Mono', monospace; font-size:0.62rem; font-weight:600;
  letter-spacing:0.03em; text-transform:uppercase; text-decoration:none;
  color:rgba(255,255,255,0.85);
  border:1px solid rgba(255,255,255,0.3); border-radius:3px;
  padding:7px 13px;
  transition:border-color 0.2s, background 0.2s;
}
.about-hero-nav-links a:hover,
.about-hero-nav-links a.is-current{ border-color:rgba(255,255,255,0.7); background:rgba(255,255,255,0.08); }
.about-hero-nav-inquire{
  background:var(--saffron) !important; color:#241c10 !important;
  border-color:var(--saffron) !important; border-radius:999px !important;
  padding:9px 18px !important;
}
.about-hero-nav-inquire:hover{ background:#e8b25f !important; }
.about-hero-heading{
  font-family:'Fraunces', serif; font-weight:600;
  font-size:clamp(2.4rem, 6vw, 4.4rem); line-height:1.03;
  color:#fff; margin:0; max-width:900px;
  text-shadow:0 4px 18px rgba(0,0,0,0.35);
}
.about-hero-heading em{ font-style:italic; font-weight:500; }
.about-hero-subtext{
  align-self:flex-end; max-width:260px; text-align:right;
  font-size:0.82rem; color:rgba(255,255,255,0.75); line-height:1.5;
  margin:18px 0 0;
}
@media (max-width:780px){
  .about-hero{ min-height:70vh; padding:18px 6vw 40px; gap:40px 0; }
  .about-hero-nav{ flex-direction:column; align-items:flex-start; gap:14px; }
  .about-hero-nav-links{ gap:8px; }
  .about-hero-subtext{ align-self:flex-start; text-align:left; max-width:100%; }
}

/* About page bio split — portrait photo + dark panel (quote heading,
   short excerpt, Certifications/By Numbers columns). "By Numbers" reuses
   the same stat theme_mods as the rest of the site — see page-about.php —
   so it's never a second, separately-edited copy of the same numbers. */
.about-bio-split{
  display:grid; grid-template-columns:0.85fr 1.15fr;
  align-items:start;
  background:#1c1712;
}
.about-bio-split-photo{ aspect-ratio:1/1; background:var(--charcoal); }
.about-bio-split-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.about-bio-split-panel{ padding:60px 6vw; color:var(--paper); }
.about-bio-eyebrow{
  display:block; color:rgba(246,241,230,0.5); margin-bottom:14px;
}
.about-bio-quote{
  font-family:'Fraunces', serif; font-weight:600; font-size:clamp(1.6rem, 2.8vw, 2.2rem);
  color:#fff; margin:0 0 20px;
}
.about-bio-quote em{ font-style:italic; font-weight:500; }
.about-bio-excerpt{
  font-size:0.95rem; line-height:1.7; color:rgba(246,241,230,0.78);
  max-width:520px; margin:0 0 32px;
}
.about-bio-columns{
  display:grid; grid-template-columns:1fr 1fr; gap:32px;
  padding-top:24px; border-top:1px solid rgba(246,241,230,0.15);
  max-width:520px;
}
.about-bio-col-label{ display:block; color:var(--saffron); margin-bottom:12px; }
.about-bio-list{ list-style:none; margin:0; padding:0; }
.about-bio-list li{
  font-size:0.85rem; color:rgba(246,241,230,0.78); line-height:2;
  padding-left:16px; position:relative;
}
.about-bio-list li::before{
  content:'•'; position:absolute; left:0; top:0; color:var(--saffron);
}
@media (max-width:880px){
  .about-bio-split{ grid-template-columns:1fr; }
  .about-bio-split-panel{ padding:40px 6vw; }
  .about-bio-columns{ grid-template-columns:1fr; gap:20px; }
}
/* About read more — visible on desktop too now that the homepage About
   section no longer ends with the full timeline; links through to /about. */
.about-read-more{ display:inline-flex; align-items:center; gap:6px; margin-top:20px; font-family:'JetBrains Mono', monospace; font-size:0.74rem; font-weight:600; text-transform:uppercase; letter-spacing:0.04em; color:var(--rust-deep); text-decoration:none; }
.about-read-more:hover{ color:var(--rust); }
/* Desktop: photo-mobile hidden, about-grid keeps 2-col */
.about-photo-mobile{ display:none; }
.stat-row{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:40px; padding-top:30px; border-top:1px solid var(--line);}
.stat-row div b{display:block; font-family:'Fraunces',serif; font-size:2rem; color:var(--rust-deep);}
.stat-row div span{font-size:0.78rem; color:#4a423a;}
/* .stat-row-fluid: a flex-wrap variant of .stat-row (same value/label typography,
   inherited via the ".stat-row div b"/".stat-row div span" rules above) for lists
   whose item count isn't a clean multiple of 3 — a fixed 3-column grid leaves an
   empty, misleading-looking gap on a short trailing row (e.g. 5 facts: a full row
   of 3, then a lone row of 2 with a blank third cell). Flex-wrap just lets the
   trailing items sit flush left with no phantom cell, at any item count. */
.stat-row-fluid{ display:flex; flex-wrap:wrap; gap:28px 40px; }
.stat-row-fluid > div{ flex:1 1 200px; }
/* Gallery grids */
.gallery{display:grid; grid-template-columns:repeat(6,1fr); gap:16px;}
.gallery .ph{aspect-ratio:1/1;}
.gallery .g1{grid-column:span 4; aspect-ratio:16/10;}
.gallery .g2{grid-column:span 2; grid-row:span 2; aspect-ratio:3/5;}
.gallery .g3{grid-column:span 2; aspect-ratio:1/1;}
.gallery .g4{grid-column:span 2; aspect-ratio:1/1;}
.gallery .g5{grid-column:span 2; aspect-ratio:1/1;}
.gallery .g6{grid-column:span 4; aspect-ratio:16/9;}
.gallery .ph-wrap{overflow:hidden; border-radius:2px;}
.gallery .ph-wrap img{width:100%; height:100%; object-fit:cover; display:block;}
.gallery .ph-wrap.g1{grid-column:span 4; aspect-ratio:16/10;}
.gallery .ph-wrap.g2{grid-column:span 2; grid-row:span 2; aspect-ratio:3/5;}
.gallery .ph-wrap.g3{grid-column:span 2; aspect-ratio:1/1;}
.gallery .ph-wrap.g4{grid-column:span 2; aspect-ratio:1/1;}
.gallery .ph-wrap.g5{grid-column:span 2; aspect-ratio:1/1;}
.gallery .ph-wrap.g6{grid-column:span 4; aspect-ratio:16/9;}
/* Treks */
.treks{background:var(--stone);}
.trek-list{display:flex; flex-direction:column;}
.trek-list-empty{ padding:50px 0; text-align:center; color:#7a7166; }
.trek-row{
  display:grid; grid-template-columns:60px 1fr 140px 160px 40px;
  align-items:center; gap:20px;
  padding:26px 0; border-top:1px solid var(--line);
  transition:background 0.2s;
}
.trek-row:last-child{border-bottom:1px solid var(--line);}
.trek-row:hover{background:var(--paper);}
.trek-row .alt{font-family:'JetBrains Mono',monospace; font-size:0.75rem; color:var(--rust-deep);}
.trek-row h3{font-size:1.25rem; font-weight:500;}
.trek-row .meta{font-family:'JetBrains Mono',monospace; font-size:0.72rem; text-transform:uppercase; color:#4a423a;}
.trek-row .arrow{font-size:1.2rem; color:var(--rust-deep); transition:transform 0.25s;}
.trek-row:hover .arrow{transform:translateX(6px);}

/* ---- "Routes I lead" homepage row — bold editorial split (rujan_render_trek_row()
   in functions.php). The compound selector (.trek-row AND .trek-editorial-row)
   deliberately outranks the plain .trek-row rules just above: this markup still
   carries the base .trek-row class too (js/search-live.js looks for a.trek-row to
   detect a click on a result row), it just doesn't use that class's grid layout.
   Every trek's own Trip Grade color washes the right-hand stat panel, tints the
   grade pill, and colors the arrow, so Easy/Moderate/Challenging/Strenuous treks
   read differently at a glance instead of every row looking identical. ---- */
a.trek-row.trek-editorial-row{
  display:flex; align-items:stretch; gap:0;
  padding:0; border-top:1px solid var(--line);
  text-decoration:none; transition:background 0.2s;
}
a.trek-row.trek-editorial-row:last-child{ border-bottom:1px solid var(--line); }
a.trek-row.trek-editorial-row:hover{ background:var(--paper); }
.trek-editorial-left{ flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center; padding:28px 28px 28px 0; }
/* Featured image, shown before the pill/title when the trek has one set — no
   border or shadow ring around it, deliberately, per the request. */
/* justify-content:flex-start overrides the base rule's justify-content:center —
   that "center" centers the vertical stack in the no-thumb layout, but once
   flex-direction switches to row here it would instead center the image+text
   group horizontally within the row (by an amount that shifts with each
   title's text length), which is what was scattering the thumbnails out of
   a straight left-aligned column. */
.trek-editorial-left.with-thumb{ flex-direction:row; align-items:center; justify-content:flex-start; gap:20px; }
.trek-editorial-thumb{ width:68px; height:68px; border-radius:8px; object-fit:cover; flex:none; }
.trek-editorial-text{ display:flex; flex-direction:column; justify-content:center; min-width:0; }
.trek-editorial-pill{
  display:inline-flex; align-items:center; gap:6px; width:fit-content;
  padding:6px 13px; margin-bottom:12px; border-radius:999px;
  font-family:'JetBrains Mono', monospace; font-size:0.64rem; font-weight:700;
  letter-spacing:0.05em; text-transform:uppercase;
}
.trek-editorial-pill svg{ width:12px; height:12px; flex:none; }
.trek-editorial-title{ font-size:1.5rem; font-weight:500; color:var(--charcoal); margin:0; line-height:1.15; }
.trek-editorial-right{ flex:none; width:320px; display:flex; align-items:center; padding:0 26px; transition:background 0.2s; }
.trek-editorial-stat{ flex:none; }
.trek-editorial-stat .num{ display:block; font-family:'Fraunces', serif; font-weight:600; font-size:1.7rem; color:var(--charcoal); line-height:1; }
.trek-editorial-stat .unit{ display:block; font-family:'JetBrains Mono', monospace; font-size:0.6rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#7a7166; margin-top:5px; }
.trek-editorial-stub{ flex:none; width:0; height:40px; border-left:2px dashed rgba(43,37,32,0.2); margin:0 24px; }
.trek-editorial-arrow{ flex:none; margin-left:auto; font-size:1.3rem; transition:transform 0.25s; }
a.trek-row.trek-editorial-row:hover .trek-editorial-arrow{ transform:translateX(6px); }
@media (max-width:880px){
  /* Once the image/title block and the stats block stack into two rows on
     mobile, a hairline border-top between treks isn't enough to show which
     stacked block belongs to which trek — wrapping each trek in its own
     card (background + border + rounded corners, with spacing between
     cards) makes that grouping unmistakable. */
  a.trek-row.trek-editorial-row{
    flex-direction:column;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:12px;
    margin-bottom:14px;
    overflow:hidden;
  }
  a.trek-row.trek-editorial-row:last-child{ margin-bottom:0; }
  .trek-editorial-pill{ display:none; }
  .trek-editorial-left{ padding:22px 6vw 16px; }
  .trek-editorial-right{ width:auto; padding:16px 6vw 22px; }
  .trek-editorial-title{ font-size:1.2rem; }
  .trek-editorial-thumb{ width:52px; height:52px; }
  .trek-editorial-left.with-thumb{ gap:14px; }
  .trek-editorial-stat .num{ font-size:1.4rem; }
  .trek-editorial-stub{ margin:0 18px; height:32px; }
}
@media (max-width:480px){
  .trek-editorial-right{ gap:0; }
  .trek-editorial-stub{ margin:0 12px; }
}

.trek-list-more{ display:flex; justify-content:center; padding-top:32px; }

/* Tours (City Tour Guide) — same visual language as Treks (a separate,
   deliberately parallel post type), so the two service lines read as one
   consistent site. See rujan_render_tour_row() in functions.php and
   template-parts/section-tours.php. */
.tours{background:var(--stone);}
.tour-list{display:flex; flex-direction:column;}
.tour-list-empty{ padding:50px 0; text-align:center; color:#7a7166; }
.tour-row{
  display:grid; grid-template-columns:60px 1fr 140px 160px 40px;
  align-items:center; gap:20px;
  padding:26px 0; border-top:1px solid var(--line);
  transition:background 0.2s;
}
.tour-row:last-child{border-bottom:1px solid var(--line);}
.tour-row:hover{background:var(--paper);}
.tour-row .alt{font-family:'JetBrains Mono',monospace; font-size:0.75rem; color:var(--rust-deep);}
.tour-row h3{font-size:1.25rem; font-weight:500;}
.tour-row .meta{font-family:'JetBrains Mono',monospace; font-size:0.72rem; text-transform:uppercase; color:#4a423a;}
.tour-row .arrow{font-size:1.2rem; color:var(--rust-deep); transition:transform 0.25s;}
.tour-row:hover .arrow{transform:translateX(6px);}

a.tour-row.tour-editorial-row{
  display:flex; align-items:stretch; gap:0;
  padding:0; border-top:1px solid var(--line);
  text-decoration:none; transition:background 0.2s;
}
a.tour-row.tour-editorial-row:last-child{ border-bottom:1px solid var(--line); }
a.tour-row.tour-editorial-row:hover{ background:var(--paper); }
.tour-editorial-left{ flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center; padding:28px 28px 28px 0; }
.tour-editorial-left.with-thumb{ flex-direction:row; align-items:center; justify-content:flex-start; gap:20px; }
.tour-editorial-thumb{ width:68px; height:68px; border-radius:8px; object-fit:cover; flex:none; }
.tour-editorial-text{ display:flex; flex-direction:column; justify-content:center; min-width:0; }
.tour-editorial-pill{
  display:inline-flex; align-items:center; gap:6px; width:fit-content;
  padding:6px 13px; margin-bottom:12px; border-radius:999px;
  font-family:'JetBrains Mono', monospace; font-size:0.64rem; font-weight:700;
  letter-spacing:0.05em; text-transform:uppercase;
  background:rgba(43,37,32,0.06); color:var(--rust-deep);
}
.tour-editorial-title{ font-size:1.5rem; font-weight:500; color:var(--charcoal); margin:0; line-height:1.15; }
.tour-editorial-right{ flex:none; width:320px; display:flex; align-items:center; padding:0 26px; background:rgba(43,37,32,0.05); transition:background 0.2s; }
/* flex:0 1 auto (not 1 1 auto) — each stat sizes to its OWN content first
   and only shrinks (proportionally to its own size, via the browser's
   default flex-shrink math) if the two together don't fit, rather than
   always splitting the column 50/50 regardless of content length.
   .num/.unit wrap onto a second line instead of truncating with an
   ellipsis — a duration or price-unit value long enough to need it still
   reads in full, just taller, the same way the Quick Facts row on the
   tour's own page already wraps this exact value instead of cutting it. */
.tour-editorial-stat{ flex:0 1 auto; min-width:0; max-width:100%; }
.tour-editorial-stat .num{ display:block; font-family:'Fraunces', serif; font-weight:600; font-size:1.7rem; color:var(--charcoal); line-height:1.15; overflow-wrap:break-word; word-break:break-word; }
.tour-editorial-stat .unit{ display:block; font-family:'JetBrains Mono', monospace; font-size:0.6rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#7a7166; margin-top:5px; overflow-wrap:break-word; word-break:break-word; }
.tour-editorial-stub{ flex:none; width:0; height:40px; border-left:2px dashed rgba(43,37,32,0.2); margin:0 24px; }
.tour-editorial-arrow{ flex:none; margin-left:auto; font-size:1.3rem; color:var(--rust-deep); transition:transform 0.25s; }
a.tour-row.tour-editorial-row:hover .tour-editorial-arrow{ transform:translateX(6px); }
@media (max-width:880px){
  a.tour-row.tour-editorial-row{
    flex-direction:column;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:12px;
    margin-bottom:14px;
    overflow:hidden;
  }
  a.tour-row.tour-editorial-row:last-child{ margin-bottom:0; }
  .tour-editorial-left{ padding:22px 6vw 16px; }
  .tour-editorial-right{ width:auto; padding:16px 6vw 22px; }
  .tour-editorial-title{ font-size:1.2rem; }
  .tour-editorial-thumb{ width:52px; height:52px; }
  .tour-editorial-left.with-thumb{ gap:14px; }
  .tour-editorial-stat .num{ font-size:1.4rem; }
  .tour-editorial-stub{ margin:0 18px; height:32px; }
}
@media (max-width:480px){
  .tour-editorial-right{ gap:0; }
  .tour-editorial-stub{ margin:0 12px; }
}
.tour-list-more{ display:flex; justify-content:center; padding-top:32px; }

/* Search results page */
.search-results-section{ padding:160px 5vw 100px; max-width:1000px; margin:0 auto; }
.search-results-section .site-search-form{ margin:28px 0 40px; }
.search-results-section .site-search-input{
  color:var(--charcoal); border-bottom:1px solid var(--line);
}
.search-results-section .site-search-input::placeholder{ color:#9a8f80; }
.search-results-section .site-search-input:focus{ border-bottom-color:var(--rust-deep); }
.search-results-section .site-search-submit{ color:var(--rust-deep); }
.search-result-list{ display:flex; flex-direction:column; }
.search-result-row{
  display:grid; grid-template-columns:100px 1fr 40px;
  align-items:center; gap:20px;
  padding:24px 0; border-top:1px solid var(--line);
  transition:background 0.2s;
}
.search-result-row:last-child{ border-bottom:1px solid var(--line); }
.search-result-row:hover{ background:var(--paper); }
.search-result-type{
  font-family:'JetBrains Mono',monospace; font-size:0.7rem; text-transform:uppercase;
  color:var(--rust-deep); letter-spacing:0.04em;
}
.search-result-body h3{ font-size:1.15rem; font-weight:500; }
.search-result-body h3 mark, .search-result-body p mark{ background:rgba(215,153,60,0.35); color:inherit; border-radius:2px; }
.search-result-body p{ font-size:0.85rem; color:#4a423a; margin-top:4px; }
.search-result-row .arrow{ font-size:1.2rem; color:var(--rust-deep); transition:transform 0.25s; }
.search-result-row:hover .arrow{ transform:translateX(6px); }
.search-no-results{ padding:40px 0 8px; font-size:1rem; color:#4a423a; }
.search-no-results a{ color:var(--rust-deep); text-decoration:underline; }
.search-did-you-mean{ font-size:0.95rem; color:#4a423a; margin-bottom:8px; }
.search-did-you-mean a{ color:var(--rust-deep); font-weight:600; text-decoration:underline; }
.search-no-results-sub{ font-size:0.9rem; color:#7a7166; margin-bottom:20px; }
.search-suggestions-wrap{ margin-top:20px; }
.search-suggestions-label{ display:block; color:var(--rust-deep); margin-bottom:14px; }
.search-quick-links{ display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
.search-quick-link{
  font-family:'JetBrains Mono',monospace; font-size:0.78rem; text-transform:uppercase;
  letter-spacing:0.03em; color:var(--rust-deep); border:1px solid var(--line);
  padding:10px 16px; border-radius:999px; transition:border-color 0.2s, background 0.2s;
}
.search-quick-link:hover{ border-color:var(--rust-deep); background:var(--paper); }
/* 404 page */
.error-404-section{ padding:170px 6vw 120px; min-height:70vh; }
.error-404-inner{ max-width:560px; margin:0 auto; text-align:center; }
.error-404-hiker-svg{ margin:0 auto 28px; display:block; overflow:visible; }
.error-404-title{ font-size:clamp(1.8rem,4vw,2.6rem); margin:10px 0 16px; }
.error-404-lede{ font-size:1rem; color:#4a423a; line-height:1.6; margin-bottom:36px; }
.error-404-search{ max-width:420px; margin:0 auto 32px; }
.error-404-search .site-search-form{ border:1px solid var(--line); border-radius:6px; background:#fff; padding:2px 4px; }
.error-404-search .site-search-input{ color:var(--charcoal); padding:11px 14px; }
.error-404-search .site-search-input::placeholder{ color:#9a8f80; }
.error-404-search .site-search-submit{ color:var(--rust-deep); }
.error-404-search .site-search-input-wrap{ min-width:0; }
.error-404-links{ margin-top:0; padding-top:0; border-top:none; justify-content:center; }
@keyframes error-404-wander{ 0%{ transform:translateX(-18px); } 50%{ transform:translateX(18px); } 100%{ transform:translateX(-18px); } }
@keyframes error-404-bob{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-3px); } }
@keyframes error-404-swing-a{ 0%,100%{ transform:rotate(22deg); } 50%{ transform:rotate(-22deg); } }
@keyframes error-404-swing-b{ 0%,100%{ transform:rotate(-22deg); } 50%{ transform:rotate(22deg); } }
.error-404-hiker-walk{ animation:error-404-wander 4s ease-in-out infinite; }
.error-404-hiker-bob{ animation:error-404-bob 0.5s ease-in-out infinite; }
.error-404-leg-l{ transform-origin:150px 118px; animation:error-404-swing-a 0.5s ease-in-out infinite; }
.error-404-leg-r{ transform-origin:150px 118px; animation:error-404-swing-b 0.5s ease-in-out infinite; }
.error-404-arm-l{ transform-origin:150px 106px; animation:error-404-swing-b 0.5s ease-in-out infinite; }
.error-404-arm-r{ transform-origin:150px 106px; animation:error-404-swing-a 0.5s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce){
  .error-404-hiker-walk, .error-404-hiker-bob, .error-404-leg-l, .error-404-leg-r, .error-404-arm-l, .error-404-arm-r{
    animation:none;
  }
}
/* Pagination — shared by search results and the blog index */
.nav-links, .pagination{
  display:flex; gap:14px; align-items:center; margin-top:40px;
  font-family:'JetBrains Mono',monospace; font-size:0.8rem;
}
.nav-links a, .pagination a, .nav-links span.current, .pagination span.current{
  padding:8px 14px; border:1px solid var(--line); color:var(--charcoal); text-decoration:none;
}
.nav-links a:hover, .pagination a:hover{ border-color:var(--rust-deep); color:var(--rust-deep); }
.nav-links span.current, .pagination span.current{ background:var(--rust-deep); color:#fff; border-color:var(--rust-deep); }
@media (max-width:640px){
  .search-result-row{ grid-template-columns:1fr 24px; }
  .search-result-type{ grid-column:1 / -1; order:-1; }
}
.trek-list-more .btn.ghost{
  border-color:var(--rust-deep) !important;
  color:var(--rust-deep) !important;
}
.trek-list-more .btn.ghost:hover{
  background:rgba(140,63,34,0.08) !important;
  border-color:var(--rust-deep) !important;
}
.trek-list-more .btn.ghost:disabled{ opacity:0.6; cursor:default; }
.tour-list-more .btn.ghost{
  border-color:var(--rust-deep) !important;
  color:var(--rust-deep) !important;
}
.tour-list-more .btn.ghost:hover{
  background:rgba(140,63,34,0.08) !important;
  border-color:var(--rust-deep) !important;
}
.tour-list-more .btn.ghost:disabled{ opacity:0.6; cursor:default; }
/* Services */
.services{background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
/* Guide Fees (homepage) */
.guide-fees{background:var(--stone);}
.guide-fees-grid{
  display:grid; grid-template-columns:1.3fr 0.7fr; gap:60px; align-items:start;
}
.guide-fees-list{
  display:flex; flex-direction:column; gap:0;
  background:var(--paper); border:1px solid var(--line); border-radius:6px; overflow:hidden;
}
.guide-fee-row{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:22px 26px;
  border-bottom:1px solid var(--line);
}
.guide-fee-row:last-child{border-bottom:none;}
.guide-fee-name{display:block; font-weight:600; color:var(--charcoal); font-size:1rem;}
.guide-fee-desc{display:block; font-size:0.82rem; color:#7a7166; margin-top:4px;}
.guide-fee-price{
  font-family:'Fraunces', serif; font-weight:600; font-size:1.4rem;
  color:var(--rust-deep); white-space:nowrap; flex:none;
}
.guide-fee-price small{
  font-family:'JetBrains Mono', monospace; font-weight:400; font-size:0.6rem;
  text-transform:uppercase; letter-spacing:0.04em; color:#7a7166; margin-left:3px;
}
.guide-fee-book-form{
  display:flex; flex-direction:column; gap:14px;
  background:var(--charcoal); color:var(--paper);
  border-radius:6px; padding:30px;
}
.guide-fee-book-label{ color:var(--saffron); }
.guide-fee-select{
  width:100%; padding:13px 16px;
  border:1px solid rgba(246,241,230,0.2); border-radius:4px;
  background:rgba(246,241,230,0.06); color:var(--paper);
  font-family:inherit; font-size:0.9rem;
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f6f1e6' stroke-width='1.8'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:16px;
}
.guide-fee-select option{ color:#241c10; }
.guide-fee-book-btn{ width:100%; justify-content:center; color:#241c10; }
@media (max-width: 900px){
  .guide-fees-grid{ grid-template-columns:1fr; }
}
/* Services — homepage teaser (pillar cards only) */
.service-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
  gap:28px;
}
.service-grid--home{ grid-template-columns:repeat(2, 1fr); }
.service-card{
  display:block; background:var(--stone-deep); border:1px solid var(--line); border-radius:6px;
  padding:40px 36px; display:flex; flex-direction:column;
  transition:transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.service-card:hover{
  transform:translateY(-4px);
  border-color:var(--rust-deep);
  box-shadow:0 18px 36px -20px rgba(43,37,32,0.28);
}
.service-card-top{ display:flex; align-items:center; gap:18px; margin-bottom:20px; }
.service-icon{
  width:60px; height:60px; border-radius:50%; flex:none;
  background:#fff;
  display:flex; align-items:center; justify-content:center;
  transition:background 0.25s ease;
}
.service-card:hover .service-icon{ background:var(--saffron); }
.service-icon svg{
  width:28px; height:28px; stroke:var(--rust-deep); fill:none;
  transition:stroke 0.25s ease;
}
.service-card:hover .service-icon svg{ stroke:var(--charcoal); }
.service-card-top h3{ font-size:1.3rem; margin:0; }
.service-card .teaser{ font-size:0.92rem; color:#4a423a; flex:1; }
.service-more{
  display:inline-flex; align-items:center; gap:8px;
  margin-top:24px; padding-top:20px; border-top:1px solid var(--line);
  font-family:'JetBrains Mono',monospace; font-size:0.7rem;
  text-transform:uppercase; letter-spacing:0.05em; color:var(--rust-deep);
}
.service-more svg{ width:14px; height:14px; stroke:var(--rust-deep); transition:transform 0.25s ease; }
.service-card:hover .service-more svg{ transform:translateX(4px); }
.service-list-more{ display:flex; justify-content:center; padding-top:36px; }
.service-list-more .btn.ghost{
  border-color:var(--rust-deep) !important;
  color:var(--rust-deep) !important;
}
.service-list-more .btn.ghost:hover{
  background:rgba(140,63,34,0.08) !important;
  border-color:var(--rust-deep) !important;
}

/* Services — full catalog hub (grouped by pillar/cluster). Two pillar
   clusters per row on desktop (was one full-width column); each cluster's
   own subgrid of child services, if it has any, still sits stacked below
   its pillar card inside that same grid cell. */
.service-hub{
  max-width:1240px; margin:0 auto;
  display:grid; grid-template-columns:repeat(2, 1fr); gap:40px 32px;
  align-items:start;
}
.service-cluster-head{ max-width:none; }
.service-cluster-head .service-card{ padding:34px 32px; height:100%; }

/* Four soft, on-brand accent palettes cycling across the pillar cards, in
   place of one flat stone-beige tile repeated four times — reuses colors
   already in the site's own palette (rust/terracotta, prayer-blue,
   saffron/gold, maroon/plum) rather than introducing new ones. Each also
   recolors that card's icon circle on hover to match. */
.service-hub .service-cluster:nth-child(4n+1){ --accent-bg-a:#F4E3D7; --accent-bg-b:#EAD0BC; --accent-border:rgba(140,63,34,0.22); --accent:#8C3F22; --accent-text:#fff; }
.service-hub .service-cluster:nth-child(4n+2){ --accent-bg-a:#E3EDF1; --accent-bg-b:#CFE1E7; --accent-border:rgba(58,107,130,0.28); --accent:#3A6B82; --accent-text:#fff; }
.service-hub .service-cluster:nth-child(4n+3){ --accent-bg-a:#F7ECD6; --accent-bg-b:#EFDBAE; --accent-border:rgba(215,153,60,0.32); --accent:#D7993C; --accent-text:#2B2520; }
.service-hub .service-cluster:nth-child(4n+4){ --accent-bg-a:#EEDADA; --accent-bg-b:#E1C1C1; --accent-border:rgba(107,42,42,0.24); --accent:#6B2A2A; --accent-text:#fff; }
.service-hub .service-cluster-head .service-card{
  background:linear-gradient(160deg, var(--accent-bg-a, var(--stone-deep)) 0%, var(--accent-bg-b, var(--stone-deep)) 100%);
  border-color:var(--accent-border, var(--line));
}
.service-hub .service-cluster-head .service-card:hover{ border-color:var(--accent, var(--rust-deep)); }
.service-hub .service-cluster-head .service-card:hover .service-icon{ background:var(--accent, var(--saffron)); }
.service-hub .service-cluster-head .service-card:hover .service-icon svg{ stroke:var(--accent-text, var(--charcoal)); }

/* Homepage "Two crafts, one guide" teaser — same 4-color rotation as the
   Services page above, just applied straight to each card since this
   version has no .service-cluster wrapper around it. */
.service-grid--home .service-card--pillar:nth-child(4n+1){ --accent-bg-a:#F4E3D7; --accent-bg-b:#EAD0BC; --accent-border:rgba(140,63,34,0.22); --accent:#8C3F22; --accent-text:#fff; }
.service-grid--home .service-card--pillar:nth-child(4n+2){ --accent-bg-a:#E3EDF1; --accent-bg-b:#CFE1E7; --accent-border:rgba(58,107,130,0.28); --accent:#3A6B82; --accent-text:#fff; }
.service-grid--home .service-card--pillar:nth-child(4n+3){ --accent-bg-a:#F7ECD6; --accent-bg-b:#EFDBAE; --accent-border:rgba(215,153,60,0.32); --accent:#D7993C; --accent-text:#2B2520; }
.service-grid--home .service-card--pillar:nth-child(4n+4){ --accent-bg-a:#EEDADA; --accent-bg-b:#E1C1C1; --accent-border:rgba(107,42,42,0.24); --accent:#6B2A2A; --accent-text:#fff; }
.service-grid--home .service-card--pillar{
  background:linear-gradient(160deg, var(--accent-bg-a, var(--stone-deep)) 0%, var(--accent-bg-b, var(--stone-deep)) 100%);
  border-color:var(--accent-border, var(--line));
}
.service-grid--home .service-card--pillar:hover{ border-color:var(--accent, var(--rust-deep)); }
.service-grid--home .service-card--pillar:hover .service-icon{ background:var(--accent, var(--saffron)); }
.service-grid--home .service-card--pillar:hover .service-icon svg{ stroke:var(--accent-text, var(--charcoal)); }
.service-subgrid{
  margin-top:24px; margin-left:40px;
  /* Capped at 480px (not 1fr) so a cluster with only one child doesn't
     stretch that card to fill the full row width — it stayed visibly
     wider than the 640px-capped pillar card above it, which read as
     misaligned. Multiple children still wrap side by side normally. */
  display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 480px));
  gap:20px;
}
.service-subgrid .service-card{ padding:28px 26px; }
.service-subgrid .service-icon{ width:48px; height:48px; }
.service-subgrid .service-icon svg{ width:22px; height:22px; }
.service-subgrid .service-card h3{ font-size:1.1rem; }
.service-hub-empty{ color:#4a423a; }

/* Single Service page — FAQ + related-services (cluster) blocks */
.service-faq-block{ max-width:800px; margin:60px auto 0; }
.service-faq-heading{ font-size:1.6rem; margin-bottom:20px; }
.service-faq-item{
  border-bottom:1px solid var(--line); padding:16px 0;
}
.service-faq-item summary{
  cursor:pointer; font-weight:600; list-style:none;
}
.service-faq-item summary::-webkit-details-marker{ display:none; }
.service-faq-item summary::after{ content:'+'; float:right; color:var(--rust-deep); font-weight:400; }
.service-faq-item[open] summary::after{ content:'–'; }
.service-faq-item p{ margin-top:12px; color:#4a423a; }
.service-related-block{
  max-width:800px; margin:50px auto 0; padding:26px 30px;
  background:var(--paper); border:1px solid var(--line); border-radius:6px;
}
.service-related-block .mono{ color:var(--rust-deep); display:block; margin-bottom:8px; }
.service-related-block h2{ font-size:1.2rem; margin-bottom:14px; }
.service-related-block h2 a{ color:var(--charcoal); }
.service-related-list{ list-style:none; display:flex; flex-direction:column; gap:10px; }
.service-related-list a{ color:var(--rust-deep); font-weight:600; }
.service-related-list a:hover{ text-decoration:underline; }

@media (max-width:900px){
  .service-hub{ grid-template-columns:1fr; gap:40px; }
  .service-subgrid{ margin-left:0; }
}
@media (max-width:640px){
  .service-card{ padding:30px 24px; }
}
/* Testimonials */
.testimonials{display:grid; grid-template-columns:repeat(3,1fr); gap:30px;}
.testimonials-empty{ padding:50px 0; text-align:center; color:#7a7166; }
/* Card background, one of 3 colors — assigned per-review by section-testimonials.php
   (hashed from the post ID, so the order across cards is shuffled rather than a
   repeating 1-2-3 stripe) via the .testi-c1/.testi-c2/.testi-c3 classes below. */
.testimonial{
  border-top:none;
  padding:32px 28px 28px;
  border-radius:14px;
  border:1px solid var(--accent-border, var(--line));
  background:linear-gradient(160deg, var(--accent-bg-a, var(--stone-deep)) 0%, var(--accent-bg-b, var(--stone-deep)) 100%);
}
.testimonial.testi-c1{ --accent-bg-a:#DEE5D0; --accent-bg-b:#C9D6B2; --accent-border:rgba(74,92,53,0.28); --accent:#4A5C35; }
.testimonial.testi-c2{ --accent-bg-a:#F0DACB; --accent-bg-b:#E4BFA7; --accent-border:rgba(139,74,46,0.26); --accent:#8B4A2E; }
.testimonial.testi-c3{ --accent-bg-a:#E6D3DD; --accent-bg-b:#D2B0C1; --accent-border:rgba(107,42,74,0.26); --accent:#6B2A4A; }
.testimonial p{font-family:'Fraunces',serif; font-size:1.05rem; font-style:italic;}
.testimonial .who{margin-top:16px; font-size:0.8rem; color:#4a423a; display:flex; align-items:center; gap:10px;}
.testimonial .who b{color:var(--accent, var(--charcoal)); font-style:normal; font-family:'Work Sans',sans-serif;}
img.testimonial-photo,
.handwritten-card img.testimonial-photo{
  width:56px !important; height:56px !important;
  border-radius:50% !important;
  object-fit:cover !important;
  flex:none !important;
}
.testimonial .who .testimonial-photo{ box-shadow:0 0 0 3px var(--accent, transparent); }
.testimonial-stars{ color:var(--accent, var(--rust-deep)); font-size:0.95rem; letter-spacing:2px; margin-bottom:10px; }
.testimonial .who .testimonial-trek{
  font-size:0.72rem; text-transform:uppercase; font-family:'JetBrains Mono',monospace;
  color:var(--charcoal); opacity:0.55; letter-spacing:0.02em;
}
/* Contact */
.contact{background:var(--charcoal); color:var(--paper);}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center;}
.contact h2{font-size:clamp(2.2rem,4.5vw,3.4rem); color:var(--paper);}
.contact .lede{ color:rgba(246,241,230,0.7); max-width:420px; margin-top:18px; font-size:1.00rem; line-height:1.7; }
.contact-list{margin-top:40px; display:flex; flex-direction:column; gap:14px;}
.contact-list a{display:flex; justify-content:space-between; border-bottom:1px solid rgba(246,241,230,0.15); padding-bottom:12px; font-size:0.95rem;}
.contact-list a .mono{color:var(--saffron);}
form{display:flex; flex-direction:column; gap:16px;}
form input, form textarea, form select{
  background:transparent; border:none; border-bottom:1px solid rgba(246,241,230,0.3);
  padding:12px 2px; color:var(--paper); font-family:'Work Sans',sans-serif; font-size:0.95rem;
}
form input::placeholder, form textarea::placeholder{color:rgba(246,241,230,0.45);}
form input:focus, form textarea:focus, form select:focus{outline:none; border-color:var(--saffron);}
form select option{color:#000;}
form button{
  margin-top:10px; align-self:flex-start;
  background:var(--saffron); color:var(--charcoal); border:none;
  padding:14px 30px; font-weight:600; font-size:0.85rem; letter-spacing:0.02em;
  cursor:pointer; transition:background 0.25s;
}
form button:hover{background:var(--paper);}
.contact-guide-summary{
  background:rgba(246,241,230,0.06);
  border:1px solid rgba(215,153,60,0.4);
  border-radius:6px;
  padding:16px 18px;
}
.contact-guide-summary-label{ color:var(--saffron); display:block; margin-bottom:6px; }
.contact-guide-summary p{ margin:0; font-size:0.95rem; color:var(--paper); }
.contact-guide-summary strong{ color:var(--saffron); }
:focus-visible{outline:2px solid var(--rust-deep); outline-offset:2px;}
/* Trip builder wizard */
#trip-wizard{ max-width:1240px; margin:0 auto; }
.wizard-steps{ display:flex; align-items:center; gap:8px; margin-bottom:40px; }
.wizard-step-pill{
  font-family:'JetBrains Mono', monospace; font-size:0.72rem;
  text-transform:uppercase; letter-spacing:0.04em;
  padding:7px 16px; border-radius:999px;
  border:1px solid var(--line); color:#7a7166;
}
.wizard-step-pill.is-active{ background:var(--rust-deep); border-color:var(--rust-deep); color:#fff; }
.wizard-step-line{ flex:1; height:1px; background:var(--line); }
.wizard-panel{ background:var(--paper); border-radius:6px; padding:44px; }
.treks-wizard-top-pad{ padding-top:160px; }
.wizard-map-placeholder-default{ background:linear-gradient(160deg,#5C7E8C,var(--prayer-blue) 130%); }
.wizard-group-picker-secondary{ margin-top:24px; }
.wizard-region-intro{ color:#4a423a; font-size:0.92rem; margin-bottom:24px; }
.wizard-enquiry-error{ color:#e07a5f; font-weight:600; }
.wizard-enquiry-note{ text-align:center; font-size:0.8rem; color:#7a7166; margin-top:4px; }
.mono-block-label{ display:block; margin-bottom:14px; }
.mono-addons-label{ display:block; margin:24px 0 12px; }
.h2-spaced{ margin-bottom:34px; }
.mono-saffron{ color:var(--saffron); }
.mono-block-label-sm{ display:block; margin-bottom:10px; }
.stat-row-top{ margin-top:30px; border-top:none; padding-top:0; }
.btn-book-now-full{ width:100%; justify-content:center; margin-top:20px; color:#241c10; }
.contact-standalone{ padding-top:160px; min-height:100vh; }
.contact-enquiry-error{ color:#e07a5f; font-weight:600; }
/* ---- My Account (Login / Register / Forgot / Reset / Bookings) ----
   Light background by design: a warm stone page (--stone) behind white
   cards, charcoal text throughout, rust/saffron/maroon kept only as
   accents (labels, buttons, badges) rather than as the page's own
   dark/light contrast, which is how the earlier charcoal-background
   version worked. */
.account-section{ background:var(--stone); color:var(--charcoal); padding:160px 6vw 100px; min-height:100vh; }
.account-inner{ max-width:900px; margin:0 auto; }
.account-notice{ border-radius:8px; padding:14px 18px; margin-bottom:24px; font-weight:600; font-size:0.92rem; }
.account-notice-error{ background:rgba(107,42,42,0.08); border:1px solid rgba(107,42,42,0.3); color:var(--maroon); }
.account-notice-success{ background:rgba(58,107,130,0.08); border:1px solid rgba(58,107,130,0.3); color:var(--prayer-blue); }
/* Single switchable card (Log In / Create an Account / Forgot Password /
   Reset Password) — same one-screen-at-a-time pattern as the site's
   separate Chess & Family App login, in this site's own paper/rust/
   charcoal palette rather than that app's cream/green one. */
.account-card-wrap{ max-width:440px; margin:0 auto; }
.account-card{
  background:#fff; color:var(--charcoal);
  border:1px solid var(--line); border-radius:20px;
  padding:42px 36px 34px;
  box-shadow:0 1px 2px rgba(43,37,32,0.03), 0 10px 28px rgba(43,37,32,0.06);
}
.account-card h2{ font-family:'Fraunces', serif; font-weight:600; font-size:clamp(1.4rem,2.4vw,1.8rem); color:var(--charcoal); text-align:center; margin-bottom:8px; }
.account-card .account-auth-sub{ text-align:center; color:#6b6055; font-size:0.9rem; margin-bottom:26px; line-height:1.55; }
.account-card form{ display:flex; flex-direction:column; gap:16px; margin:0; }
.account-card label{ font-family:'Work Sans', sans-serif; font-size:0.8rem; font-weight:600; color:var(--charcoal); margin-bottom:6px; display:block; }
.account-card input[type="text"], .account-card input[type="email"], .account-card input[type="password"]{
  width:100%; background:var(--paper); border:1.5px solid var(--line); border-radius:10px;
  height:48px; padding:0 16px; font-family:'Work Sans', sans-serif; font-size:0.95rem; color:var(--charcoal);
}
.account-card input::placeholder{ color:#a89d8c; }
.account-card input:focus{ outline:none; border-color:var(--rust); box-shadow:0 0 0 3px rgba(177,85,47,0.14); }
.account-card button[type="submit"]{
  width:100%; height:50px; margin-top:4px; align-self:stretch;
  background:var(--rust); color:#fff; border:none; border-radius:999px;
  font-family:'Work Sans', sans-serif; font-weight:600; font-size:0.95rem; letter-spacing:0.01em;
  cursor:pointer; transition:background 0.25s;
}
.account-card button[type="submit"]:hover{ background:var(--rust-deep); }
.account-forgot-link{ display:block; text-align:center; margin-top:16px; font-size:0.85rem; color:#6b6055; text-decoration:underline; }
.account-forgot-link:hover{ color:var(--rust); }
.account-card-foot{ text-align:center; margin-top:24px; font-size:0.88rem; color:#6b6055; }
.account-card-foot a{ color:var(--rust); font-weight:600; text-decoration:underline; }
.account-card-foot a:hover{ color:var(--rust-deep); }
.account-dashboard-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:36px; }
.account-identity{ display:flex; align-items:center; gap:20px; }
.account-avatar{ position:relative; width:72px; height:72px; flex:none; }
.account-avatar-img, .account-avatar-fallback{ width:72px; height:72px; border-radius:50%; }
.account-avatar-img{ object-fit:cover; border:2px solid var(--rust-deep); display:block; }
.account-avatar-fallback{
  display:flex; align-items:center; justify-content:center;
  background:rgba(215,153,60,0.16); border:2px solid var(--rust-deep);
  color:var(--rust-deep); font-family:'Fraunces', serif; font-weight:600; font-size:1.6rem;
}
.account-avatar-form{ position:absolute; inset:0; margin:0; }
.account-avatar-input-hidden{ display:none; }
.account-avatar-edit{
  position:absolute; bottom:-4px; right:-4px; background:var(--saffron); color:var(--charcoal);
  font-family:'JetBrains Mono', monospace; font-size:0.6rem; text-transform:uppercase; letter-spacing:0.03em;
  padding:4px 7px; border-radius:999px; cursor:pointer;
}
.account-profile, .account-details, .account-password, .account-travel, .account-emergency, .account-notifications,
.account-profile-edit, .account-profile-view, .account-security{
  margin-bottom:28px; padding:26px 24px; background:#fff; border:1px solid var(--line); border-radius:10px;
  box-shadow:0 1px 2px rgba(43,37,32,0.03);
}
.account-profile-heading, .account-details-heading, .account-password-heading, .account-travel-heading, .account-emergency-heading, .account-notifications-heading{ font-size:1.1rem; color:var(--charcoal); margin-bottom:18px; }
.account-profile-form, .account-password-form, .account-travel-form, .account-emergency-form, .account-notifications-form{ max-width:420px; }
.account-profile-form label, .account-password-form label, .account-travel-form label, .account-emergency-form label{ font-family:'Work Sans', sans-serif; font-size:0.78rem; font-weight:600; text-transform:uppercase; letter-spacing:0.02em; color:var(--rust-deep); margin-bottom:4px; }
.account-profile-form input, .account-password-form input, .account-travel-form input, .account-emergency-form input{
  background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:11px 14px; color:var(--charcoal);
}
.account-profile-form input:focus, .account-password-form input:focus, .account-travel-form input:focus, .account-emergency-form input:focus{ outline:none; border-color:var(--rust); }
.account-profile-form button, .account-password-form button, .account-travel-form button, .account-emergency-form button, .account-notifications-form button{ align-self:flex-start; }
.account-box-note{ color:#6b6055; font-size:0.85rem; margin:-6px 0 18px; max-width:420px; line-height:1.5; }
.account-details-list{ display:flex; flex-direction:column; gap:12px; margin:0; }
.account-details-row{ display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:0.92rem; }
.account-details-row dt{ color:#6b6055; font-family:'Work Sans', sans-serif; margin:0; }
.account-details-row dd{ margin:0; color:var(--charcoal); font-weight:600; }
.account-tier-badge{
  font-family:'JetBrains Mono', monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.03em;
  color:#fff; background:var(--rust-deep); border-radius:999px; padding:4px 12px;
}
.account-checkbox-row{ display:flex; align-items:flex-start; gap:10px; margin-bottom:6px; }
.account-checkbox-row input[type="checkbox"]{ margin-top:3px; width:16px; height:16px; flex:none; accent-color:var(--rust); }
.account-checkbox-row label{ text-transform:none; font-weight:500; font-size:0.9rem; letter-spacing:normal; color:var(--charcoal); }
.account-checkbox-note{ font-size:0.82rem; color:#6b6055; margin:0 0 16px 26px; max-width:380px; line-height:1.5; }
.account-label{ color:var(--rust-deep); display:block; margin-bottom:8px; }
.account-heading{ font-size:clamp(1.9rem,3.2vw,2.5rem); color:var(--charcoal); }
.account-logout-btn{
  border:1px solid var(--line); color:var(--charcoal); background:#fff;
  padding:10px 22px; border-radius:6px; font-size:0.85rem; font-weight:600;
  text-decoration:none; transition:border-color 0.25s, color 0.25s;
}
.account-logout-btn:hover{ border-color:var(--rust); color:var(--rust); }
.account-bookings-heading{ font-size:1.1rem; color:var(--charcoal); margin-bottom:20px; }
.account-bookings-filter{
  display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; gap:12px;
  margin-bottom:24px; padding-bottom:20px; border-bottom:1px solid var(--line);
}
.account-bookings-filter input[type="text"]{
  flex:1; min-width:200px; background:var(--paper); border:1px solid var(--line); border-radius:8px;
  padding:10px 14px; color:var(--charcoal); font-family:'Work Sans', sans-serif; font-size:0.9rem;
}
.account-bookings-filter select{
  min-width:160px; background:var(--paper); border:1px solid var(--line); border-radius:8px;
  padding:10px 14px; color:var(--charcoal); font-family:'Work Sans', sans-serif; font-size:0.9rem;
}
.account-bookings-filter button{ margin-top:0; background:var(--rust); color:#fff; border-radius:6px; }
.account-bookings-filter button:hover{ background:var(--rust-deep); }
.account-bookings-filter-clear{ font-size:0.82rem; color:#6b6055; text-decoration:underline; }
.account-bookings-filter-clear:hover{ color:var(--rust); }
.account-bookings-filter-date-label{ font-size:0.8rem; color:#6b6055; }
.account-bookings-filter input[type="date"]{
  background:var(--paper); border:1px solid var(--line); border-radius:8px;
  padding:9px 12px; color:var(--charcoal); font-family:'Work Sans', sans-serif; font-size:0.85rem;
}
.account-booking-countdown{
  display:inline-block; font-family:'JetBrains Mono', monospace; font-size:0.66rem; text-transform:uppercase; letter-spacing:0.03em;
  color:var(--rust-deep); background:rgba(177,85,47,0.1); border-radius:999px; padding:3px 10px; margin-top:2px; width:fit-content;
}
.account-bookings-list{ display:flex; flex-direction:column; gap:12px; }
.account-booking-card{
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
  background:var(--paper); border:1px solid var(--line); border-radius:8px;
  padding:16px 18px;
}
.account-booking-main{ display:flex; flex-direction:column; gap:4px; }
.account-booking-subject{ font-family:'Fraunces', serif; font-weight:600; font-size:1.05rem; color:var(--charcoal); }
.account-booking-date{ font-family:'JetBrains Mono', monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.03em; color:#6b6055; }
.account-booking-actions{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; flex:none; }
.account-booking-status{
  font-family:'JetBrains Mono', monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.03em;
  color:#fff; background:var(--rust-deep); border-radius:999px; padding:5px 14px; flex:none;
}
.account-booking-download{ font-family:'JetBrains Mono', monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.03em; color:#6b6055; text-decoration:underline; }
.account-booking-download:hover{ color:var(--rust); }
.account-empty{ color:#6b6055; font-size:0.95rem; }
.account-saved-treks{ margin-bottom:28px; padding:26px 24px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:0 1px 2px rgba(43,37,32,0.03); }
.account-saved-treks-heading{ font-size:1.1rem; color:var(--charcoal); margin-bottom:18px; }
.account-saved-treks-list{ display:flex; flex-direction:column; gap:10px; }
.account-saved-trek-card{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  background:var(--paper); border:1px solid var(--line); border-radius:8px;
  padding:12px 16px;
}
.account-saved-trek-title{ color:var(--charcoal); font-family:'Fraunces', serif; font-weight:600; font-size:0.98rem; text-decoration:none; }
.account-saved-trek-title:hover{ color:var(--rust); }
.account-saved-trek-remove-form{ margin:0; }
.account-saved-trek-remove{
  background:transparent; border:1px solid var(--line); color:#6b6055;
  padding:6px 14px; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.03em; border-radius:999px; margin-top:0;
}
.account-saved-trek-remove:hover{ border-color:var(--maroon); color:var(--maroon); background:transparent; }
/* This button also carries .trek-toggle-btn (see js/saved-treks.js — the
   shared AJAX Save/Hiked toggle handler) so My Account's Remove buttons use
   the same mechanism as the trek page's own Save/Hiked buttons instead of a
   full-page-reload form post. But .trek-toggle-btn's own rule (further down
   this file) styles it as a small absolutely-positioned dark circular icon
   meant to sit on top of a trek photo — completely wrong for this plain
   list-card context. The combined-class selector here has higher
   specificity than either single-class rule on its own, so it wins
   regardless of source order and keeps this button looking like the plain
   pill above instead of the hero icon button. */
.account-saved-trek-remove.trek-toggle-btn{
  position:static; width:auto; height:auto; border-radius:999px; padding:6px 14px;
  background:transparent; border:1px solid var(--line); color:#6b6055;
}
.account-saved-trek-remove.trek-toggle-btn:hover{ background:transparent; border-color:var(--maroon); color:var(--maroon); }
.account-save-trek-form{ display:inline-flex; margin:0; }
.account-save-trek-btn{
  background:transparent; border:1.5px solid var(--rust); color:var(--rust);
  padding:10px 22px; border-radius:999px; font-family:'Work Sans', sans-serif; font-weight:600; font-size:0.85rem; margin-top:0;
  cursor:pointer;
}
.account-save-trek-btn.is-saved{ background:var(--rust); color:#fff; }
.account-save-trek-btn:hover{ background:var(--rust); color:#fff; }
.account-danger{ margin-top:20px; padding:26px 24px; border:1px solid rgba(107,42,42,0.3); border-radius:10px; background:rgba(107,42,42,0.04); }
.account-danger-heading{ font-size:1.1rem; color:var(--maroon); margin-bottom:10px; }
.account-danger-note{ color:#6b6055; font-size:0.88rem; margin-bottom:18px; line-height:1.6; max-width:480px; }
.account-danger-form{ max-width:420px; }
.account-danger-form label{ font-family:'Work Sans', sans-serif; font-size:0.78rem; font-weight:600; text-transform:uppercase; letter-spacing:0.02em; color:var(--maroon); margin-bottom:4px; }
.account-danger-form input{ background:#fff; border:1px solid rgba(107,42,42,0.3); border-radius:8px; padding:11px 14px; color:var(--charcoal); }
.account-danger-form button{ background:var(--maroon); color:#fff; align-self:flex-start; border-radius:6px; }
.account-danger-form button:hover{ background:#521f1f; }

/* ---- Email verification banner ---- */
.account-verify-banner{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  background:rgba(215,153,60,0.12); border:1px solid rgba(215,153,60,0.4); border-radius:10px;
  padding:14px 18px; margin-bottom:24px; font-size:0.9rem; color:var(--charcoal);
}
.account-verify-banner-form{ margin:0; }
.account-verify-banner-form button{
  background:var(--saffron); color:var(--charcoal); border:none; border-radius:6px;
  padding:8px 16px; font-family:'Work Sans', sans-serif; font-weight:600; font-size:0.82rem; margin-top:0; cursor:pointer;
}
.account-verify-banner-form button:hover{ background:#c6862d; }

/* ---- Profile completeness checklist ---- */
.account-completion{ margin-bottom:28px; padding:22px 24px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:0 1px 2px rgba(43,37,32,0.03); }
.account-completion-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:10px; }
.account-completion-title{ font-family:'Fraunces', serif; font-weight:600; font-size:1rem; color:var(--charcoal); }
.account-completion-count{ font-family:'JetBrains Mono', monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.03em; color:var(--rust-deep); }
.account-completion-bar{ height:6px; background:var(--paper); border-radius:999px; overflow:hidden; margin-bottom:16px; }
.account-completion-bar-fill{ height:100%; background:var(--rust); border-radius:999px; transition:width 0.3s; }
.account-completion-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.account-completion-list li{ font-size:0.88rem; color:#6b6055; }
.account-completion-list li a{ color:var(--rust); text-decoration:underline; }
.account-completion-list li a:hover{ color:var(--rust-deep); }
.account-completion-list li.is-done{ color:#6b6055; }
.account-completion-check{ color:var(--prayer-blue); font-weight:700; }

/* ---- Last seen / Sign Out Everywhere ---- */
.account-sign-out-everywhere-form{ margin:16px 0 0; }
.account-sign-out-everywhere-btn{
  background:transparent; border:1px solid var(--line); color:#6b6055;
  padding:9px 18px; border-radius:6px; font-size:0.82rem; font-weight:600; margin-top:0; cursor:pointer;
}
.account-sign-out-everywhere-btn:hover{ border-color:var(--maroon); color:var(--maroon); }

/* ---- Recommended treks ---- */
.account-recommended{ margin-bottom:28px; padding:26px 24px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:0 1px 2px rgba(43,37,32,0.03); }
.account-recommended-heading{ font-size:1.1rem; color:var(--charcoal); margin-bottom:4px; }
.account-recommended-list{ display:flex; gap:14px; flex-wrap:wrap; margin-top:16px; }
.account-recommended-card{
  display:flex; flex-direction:column; gap:10px; width:160px; text-decoration:none;
  background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:12px; flex:none;
}
.account-recommended-thumb{ display:block; border-radius:6px; overflow:hidden; }
.account-recommended-thumb img{ width:100%; height:90px; object-fit:cover; display:block; }
.account-recommended-title{ color:var(--charcoal); font-family:'Fraunces', serif; font-weight:600; font-size:0.9rem; line-height:1.3; }
.account-recommended-card:hover .account-recommended-title{ color:var(--rust); }

/* ---- Referral / Invite Friends ---- */
.account-referral{ margin-bottom:28px; padding:26px 24px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:0 1px 2px rgba(43,37,32,0.03); }
.account-referral-heading{ font-size:1.1rem; color:var(--charcoal); margin-bottom:4px; }
.account-referral-row{ display:flex; gap:10px; margin-top:16px; max-width:520px; flex-wrap:wrap; }
.account-referral-input{
  flex:1; min-width:220px; background:var(--paper); border:1px solid var(--line); border-radius:8px;
  padding:11px 14px; color:var(--charcoal); font-family:'JetBrains Mono', monospace; font-size:0.82rem;
}
.account-referral-copy{
  background:var(--rust); color:#fff; border:none; border-radius:8px; padding:0 20px;
  font-family:'Work Sans', sans-serif; font-weight:600; font-size:0.85rem; margin-top:0; cursor:pointer;
}
.account-referral-copy:hover{ background:var(--rust-deep); }
.account-referral-count{ color:#6b6055; font-size:0.85rem; margin-top:14px; }
.account-referral-reward{
  margin-top:16px; padding:16px 18px; background:rgba(58,107,130,0.06); border:1px solid rgba(58,107,130,0.25);
  border-radius:8px;
}
.account-referral-reward-label{ display:block; font-family:'Fraunces', serif; font-weight:600; font-size:0.95rem; color:var(--prayer-blue); margin-bottom:8px; }
.account-referral-reward-code{
  display:inline-block; font-family:'JetBrains Mono', monospace; font-size:0.82rem; letter-spacing:0.03em;
  background:#fff; border:1px dashed rgba(58,107,130,0.4); border-radius:6px; padding:5px 12px; color:var(--charcoal);
}
.account-referral-reward-note{ font-size:0.8rem; color:#6b6055; margin:8px 0 0; }
.account-referral-reward-next{ font-size:0.8rem; color:#6b6055; margin-top:10px; }

/* ---- Upcoming vs Past bookings, reviews, message thread ---- */
.account-bookings-subheading{
  font-family:'JetBrains Mono', monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.04em;
  color:var(--rust-deep); margin:24px 0 14px;
}
.account-bookings-subheading:first-of-type{ margin-top:0; }
.account-booking-card{ flex-direction:column; align-items:stretch; }
.account-booking-card > .account-booking-main, .account-booking-card > .account-booking-actions{ width:100%; }
.account-review-form{ display:flex; flex-direction:column; gap:8px; margin-top:14px; padding-top:14px; border-top:1px solid var(--line); max-width:420px; }
.account-review-form label{ font-family:'Work Sans', sans-serif; font-size:0.78rem; font-weight:600; text-transform:uppercase; letter-spacing:0.02em; color:var(--rust-deep); }
.account-review-form select, .account-review-form textarea{
  background:#fff; border:1px solid var(--line); border-radius:8px; padding:9px 12px;
  color:var(--charcoal); font-family:'Work Sans', sans-serif; font-size:0.88rem; resize:vertical;
}
.account-review-form button{ align-self:flex-start; background:var(--rust); color:#fff; border:none; border-radius:6px; padding:9px 18px; font-weight:600; font-size:0.85rem; margin-top:2px; cursor:pointer; }
.account-review-form button:hover{ background:var(--rust-deep); }
.account-review-done{ margin:14px 0 0; padding-top:14px; border-top:1px solid var(--line); color:var(--prayer-blue); font-size:0.85rem; font-weight:600; }
.account-booking-thread{ margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }
.account-booking-thread-list{ display:flex; flex-direction:column; gap:8px; margin-bottom:10px; }
.account-booking-thread-msg{ margin:0; font-size:0.85rem; color:var(--charcoal); background:#fff; border:1px solid var(--line); border-radius:8px; padding:8px 12px; }
.account-booking-thread-msg.is-admin{ background:rgba(58,107,130,0.06); border-color:rgba(58,107,130,0.25); }
.account-booking-message-form{ display:flex; gap:10px; flex-wrap:wrap; margin:0; }
.account-booking-message-form textarea{
  flex:1; min-width:200px; background:#fff; border:1px solid var(--line); border-radius:8px;
  padding:9px 12px; color:var(--charcoal); font-family:'Work Sans', sans-serif; font-size:0.85rem; resize:vertical;
}
.account-booking-message-form button{ align-self:flex-end; background:var(--rust-deep); color:#fff; border:none; border-radius:6px; padding:9px 18px; font-weight:600; font-size:0.85rem; margin-top:0; cursor:pointer; }
.account-booking-message-form button:hover{ background:var(--rust); }

/* ---- Profile / Settings / Activity / Bookings dashboard architecture ---- */
.account-nav{
  display:flex; gap:8px; flex-wrap:wrap; margin-bottom:32px; padding-bottom:20px; border-bottom:1px solid var(--line);
}
.account-nav a{
  font-family:'JetBrains Mono', monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.04em;
  color:#6b6055; text-decoration:none; background:#fff; border:1px solid var(--line); border-radius:999px;
  padding:8px 16px; transition:border-color 0.25s, color 0.25s;
}
.account-nav a:hover{ border-color:var(--rust); color:var(--rust); }
/* Cancels out the sitewide bare "section{padding:110px 5vw;}" rule
   (used for top-level page sections like the homepage's) — without this,
   every .account-group (Profile/Settings/Activity/Bookings) picks up an
   unwanted 110px of padding on top AND bottom just from being a <section>
   element, stacking with the 44px margin-bottom below into a ~264px gap
   at every boundary between dashboard groups. Every real box inside a
   group already carries its own padding, so the group itself never
   needed any. */
.account-group{ scroll-margin-top:110px; margin-bottom:44px; padding:0; }
.account-group:last-child{ margin-bottom:0; }
.account-group-heading{
  font-family:'Fraunces', serif; font-weight:600; font-size:clamp(1.25rem,2vw,1.5rem); color:var(--charcoal);
  margin-bottom:20px; padding-bottom:12px; border-bottom:1px solid var(--line);
}
.account-edit-subheading{ font-family:'Fraunces', serif; font-weight:600; font-size:1.02rem; color:var(--charcoal); margin:26px 0 16px; }
.account-edit-subheading:first-child{ margin-top:0; }

/* Profile: read-only view card */
.account-profile-view .account-identity{ margin-bottom:22px; }
.account-profile-view-name{ display:block; font-family:'Fraunces', serif; font-weight:600; font-size:1.15rem; color:var(--charcoal); margin-bottom:6px; }
.account-profile-view-list{ display:flex; flex-direction:column; gap:12px; margin:0 0 22px; }
.account-profile-view-row{ display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:0.92rem; }
.account-profile-view-row dt{ color:#6b6055; font-family:'Work Sans', sans-serif; margin:0; }
.account-profile-view-row dd{ margin:0; color:var(--charcoal); font-weight:600; text-align:right; }
.account-edit-profile-btn{
  display:inline-block; background:var(--rust); color:#fff; text-decoration:none;
  padding:10px 22px; border-radius:999px; font-family:'Work Sans', sans-serif; font-weight:600; font-size:0.85rem;
  transition:background 0.25s;
}
.account-edit-profile-btn:hover{ background:var(--rust-deep); color:#fff; }

/* Profile: merged edit form (name + travel + emergency contact, one Save) */
.account-edit-actions{ display:flex; align-items:center; gap:18px; margin-top:10px; }
.account-edit-actions button[type="submit"]{
  background:var(--rust); color:#fff; border:none; border-radius:6px; padding:11px 22px; align-self:auto;
  font-family:'Work Sans', sans-serif; font-weight:600; font-size:0.9rem; cursor:pointer; transition:background 0.25s;
}
.account-edit-actions button[type="submit"]:hover{ background:var(--rust-deep); }
.account-edit-cancel{ color:#6b6055; font-size:0.85rem; text-decoration:underline; }
.account-edit-cancel:hover{ color:var(--maroon); }

/* Settings: Security box (Last Seen + Sign Out Everywhere) */
.account-security-last-seen{ color:#6b6055; font-size:0.88rem; margin:0 0 4px; }

/* ---- Bookings pagination ---- */
.account-bookings-pager{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  margin:16px 0 28px; padding-top:14px; border-top:1px solid var(--line);
}
.account-bookings-pager a, .account-bookings-pager-disabled{
  font-family:'JetBrains Mono', monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.03em;
}
.account-bookings-pager a{ color:var(--rust); text-decoration:underline; }
.account-bookings-pager a:hover{ color:var(--rust-deep); }
.account-bookings-pager-disabled{ color:#c9beb0; }
.account-bookings-pager-count{ color:#6b6055; font-family:'Work Sans', sans-serif; font-size:0.82rem; }

/* ---- Mobile responsiveness pass (Track A) ---- */
@media (max-width:680px){
  .account-section{ padding:120px 5vw 70px; }
  .account-dashboard-head{ flex-direction:column; align-items:flex-start; gap:16px; }
  .account-logout-btn{ align-self:flex-start; }
  .account-details-row{ flex-direction:column; gap:2px; }
  .account-nav{ gap:6px; }
  .account-nav a{ padding:7px 13px; }
  .account-profile-view-row{ flex-direction:column; gap:2px; }
  .account-profile-view-row dd{ text-align:left; }
  .account-edit-profile-btn{ display:block; text-align:center; }
  .account-edit-actions{ flex-direction:column; align-items:stretch; gap:10px; }
  .account-edit-actions .account-edit-cancel{ text-align:center; }
  .account-bookings-filter{ flex-direction:column; align-items:stretch; }
  .account-bookings-filter input[type="text"], .account-bookings-filter select, .account-bookings-filter input[type="date"], .account-bookings-filter button{ width:100%; min-width:0; }
  .account-bookings-filter-date-label{ margin-top:-4px; }
  .account-booking-card{ padding:14px 16px; }
  .account-booking-actions{ justify-content:space-between; width:100%; }
  .account-saved-trek-card{ flex-direction:column; align-items:flex-start; gap:8px; }
  .account-recommended-card{ width:calc(50% - 7px); }
  .account-referral-row{ flex-direction:column; }
  .account-referral-copy{ padding:10px 20px; }
  .account-completion-head{ flex-direction:column; align-items:flex-start; gap:4px; }
  .account-verify-banner{ flex-direction:column; align-items:flex-start; }
}
@media (max-width:480px){
  .account-card{ padding:34px 24px 28px; border-radius:16px; }
  .account-avatar, .account-avatar-img, .account-avatar-fallback{ width:60px; height:60px; }
  /* Base .account-avatar-edit is a ~18-20px-tall corner badge — fine as a
     visual label on desktop, too small to reliably tap on a phone. */
  .account-avatar-edit{ padding:7px 10px; font-size:0.68rem; }
  .account-heading{ font-size:1.6rem; }
  .account-recommended-card{ width:100%; }
  .account-profile-form button, .account-password-form button, .account-travel-form button, .account-emergency-form button, .account-notifications-form button, .account-danger-form button{ width:100%; align-self:stretch; }
}
.blog-archive-section{ padding:160px max(5vw, calc((100% - 1240px)/2)) 100px; }
.section-head-mb48{ margin-bottom:48px; }
.blog-archive-note-wrap{ max-width:1240px; margin:50px auto 0; }
.blog-archive-empty{ max-width:1240px; margin:0 auto; }
/* =====================================================================
   Wedding & Events Photography — standalone pink-themed page family
   Pages: page-wedding-events.php, page-wedding-service.php,
          page-wedding-about.php, page-wedding-contact.php
   Rewritten from scratch to fix a recurring brand-alignment issue —
   the previous brand font (Rochester) had an unpredictable left-side
   glyph bearing that needed constant manual pixel-nudging. Replaced
   with Playfair Display, which has clean, predictable metrics and
   needs zero compensation hacks.
   ===================================================================== */
.we-page{
  background:#F6D8DD;
  min-height:100vh;
  font-family:'Work Sans', sans-serif;
  color:#241417;
  overflow-x:hidden;
}
.we-container{
  width:100%;
  padding:0 40px;
}
/* The actual "boxed" pink area — capped at 1240px, centered, with the
   page's neutral background showing on either side on wide screens.
   .we-container (padding only) nests inside this for inner spacing. */
.we-boxed{
  width:100%;
  max-width:1240px;
  margin:0 auto;
  background:#F6D8DD;
}
/* --- Header (shared across all four pages) --- */
.we-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:26px 0;
  position:relative;
}
.we-brand-wrap{ display:flex; flex-direction:column; }
.we-brand{
  font-family:'Rochester', cursive;
  font-weight:400;
  font-size:48px;
  letter-spacing:0.01em;
  color:#241417;
  text-decoration:none;
  line-height:1;
}
.we-tagline{
  font-family:'Work Sans', sans-serif;
  font-size:11px;
  font-weight:500;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:#8a5560;
  margin:6px 0 0;
}
.we-nav{ display:flex; gap:14px; align-items:baseline; }
.we-nav a{
  font-family:'Marck Script', cursive;
  font-weight:400;
  font-size:26px;
  color:#241417;
  text-decoration:none;
  transition:opacity 0.15s;
  line-height:1;
}
.we-nav a:hover{ opacity:0.6; }
.we-nav-sep{
  font-family:'Work Sans', sans-serif;
  font-size:14px;
  color:#c9a5ac;
  line-height:1;
}
/* --- Mobile hamburger toggle + slide-down nav panel --- */
.we-nav-toggle{
  display:none;
  background:none; border:none; cursor:pointer;
  padding:8px; flex-direction:column; align-items:flex-end; gap:6px;
  z-index:210; position:relative;
}
.we-nav-toggle span{
  display:block; height:2px; border-radius:2px;
  background:#241417;
  transition:transform 0.3s ease, opacity 0.25s ease, width 0.3s ease;
}
.we-nav-toggle span:nth-child(1){ width:30px; }
.we-nav-toggle span:nth-child(2){ width:22px; }
.we-nav-toggle span:nth-child(3){ width:30px; }
.we-nav-toggle.is-open span{ width:26px; }
.we-nav-toggle.is-open span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.we-nav-toggle.is-open span:nth-child(2){ opacity:0; }
.we-nav-toggle.is-open span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }
/* --- Top section wrapper (Weddings page only) — lets the marquee sit
   near the bottom of a near-full-viewport-height opening section --- */
.we-top{
  min-height:92vh;
  display:flex;
  flex-direction:column;
}
/* --- Hero (Weddings page) --- */
.we-hero{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:30px;
  flex-wrap:wrap;
  padding:70px 0 36px;
}
.we-hero-title{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:clamp(2rem, 4.2vw, 3rem);
  line-height:1.12;
  color:#241417;
  margin:0;
  max-width:600px;
}
.we-hero-sub{
  font-size:0.9rem;
  line-height:1.6;
  color:#5c2530;
  max-width:280px;
  margin:0 0 6px;
}
/* --- Auto-scrolling photo marquee (Weddings page) --- */
.we-marquee-wrap{ overflow:hidden; padding:4px 0 30px; margin-top:auto; background:#F6D8DD; }
.we-marquee{
  display:flex;
  gap:0;
  width:max-content;
  will-change:transform;
}
.we-slide{ flex:0 0 auto; width:calc(100vw / 6); }
.we-slide-photo{
  width:calc(100vw / 6);
  aspect-ratio:3/4;
  overflow:hidden;
  background:#e8c2c7;
}
.we-slide-photo img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 0.35s ease;
}
.we-slide-photo:hover img{ transform:scale(0.9); }
.we-slide-caption{ display:block; margin-top:8px; font-size:12px; font-weight:500; color:#241417; }
.we-empty-note{ padding:0 5vw 30px; color:#8a5560; font-size:0.9rem; }
@media (prefers-reduced-motion: reduce){
  .we-marquee{ transform:none !important; }
}
/* --- Service page --- */
.we-service-list{ padding-top:65px; padding-bottom:60px; }
.we-service-row{
  display:grid;
  grid-template-columns:1fr 1.3fr 1fr;
  gap:24px;
  align-items:center;
  padding:34px 0;
}
.we-service-title{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:clamp(1.6rem, 2.6vw, 2.1rem);
  line-height:1.15;
  color:#241417;
  margin:0;
}
.we-service-desc{ font-size:0.85rem; line-height:1.55; color:#4a2530; margin:0 0 14px; }
.we-service-price{ font-size:0.85rem; color:#4a2530; margin:0 0 14px; }
.we-service-book{
  display:inline-flex; align-items:center; gap:6px;
  font-size:0.85rem; font-weight:500; color:#241417; text-decoration:none;
  transition:opacity 0.15s;
}
.we-service-book:hover{ opacity:0.6; }
.we-service-photos{ width:100%; }
.we-service-photos.has-two{ display:flex; gap:8px; }
.we-service-photo{ width:100%; aspect-ratio:3/4; overflow:hidden; border-radius:2px; }
.we-service-photos.has-two .we-service-photo{ flex:1; }
.we-service-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.we-service-divider{ border-top:1px solid rgba(36,20,23,0.12); }
/* --- About page --- */
.we-about-body{ padding-top:50px; padding-bottom:70px; }
.we-about-eyebrow{
  font-size:10.5px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase;
  color:#8a5560; margin:0 0 10px;
}
.we-about-title{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:clamp(1.9rem, 3.6vw, 2.8rem);
  line-height:1.15;
  color:#241417;
  margin:0 0 28px;
  max-width:600px;
}
.we-about-row{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:40px;
  align-items:center;
  margin-bottom:28px;
}
.we-about-row.no-photo{ display:block; }
.we-about-photo{ width:100%; aspect-ratio:4/5; overflow:hidden; border-radius:4px; background:#e8c2c7; }
.we-about-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.we-about-content{ max-width:820px; font-size:0.98rem; line-height:1.75; color:#3d232b; }
.we-about-content p{ margin:0 0 20px; }
.we-about-content h2,
.we-about-content h3{ font-family:'Fraunces', serif; font-weight:500; color:#241417; margin:36px 0 14px; }
.we-about-content img{ max-width:100%; border-radius:4px; }
.we-about-content a{ color:#241417; text-decoration:underline; }
.we-stats-row{
  display:flex;
  border-top:1px solid rgba(36,20,23,0.15);
  border-bottom:1px solid rgba(36,20,23,0.15);
  margin:10px 0 50px;
  padding:22px 0;
}
.we-stat{ flex:1; text-align:center; border-left:1px solid rgba(36,20,23,0.15); }
.we-stat:first-child{ border-left:none; }
.we-stat-num{ font-family:'Fraunces', serif; font-weight:600; font-size:1.7rem; color:#241417; margin:0; }
.we-stat-label{ font-size:0.72rem; color:#8a5560; margin:4px 0 0; }
.we-team-eyebrow{
  font-size:10.5px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase;
  color:#8a5560; margin:0 0 8px;
}
.we-team-title{
  font-family:'Fraunces', serif; font-weight:500; font-size:1.5rem;
  color:#241417; margin:0 0 30px;
}
.we-team-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:36px;
  padding-bottom:70px;
}
.we-team-photo-wrap{ position:relative; margin-bottom:14px; }
.we-team-photo{ width:100%; aspect-ratio:3/4; overflow:hidden; border-radius:2px; background:#e8c2c7; }
.we-team-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.we-team-photo-placeholder{ background:#e8c2c7; }
.we-team-caption{ margin-top:10px; }
.we-team-name{ font-family:'Fraunces', serif; font-weight:600; font-size:0.95rem; color:#241417; margin:0; }
.we-team-role{ font-size:0.75rem; color:#8a5560; margin:2px 0 0; }
.we-team-bio{ font-size:0.8rem; line-height:1.55; color:#3d232b; margin:0; }
/* --- Contact page --- */
.we-anchor-spacer{ display:block; height:0; }
/* --- Package Wizard (Contact page) — Step 1 sits above the name field,
   inside the form column; Step 2 reveals directly beneath it in the same
   column, using a compact single-column stacked card layout. --- */
.we-contact-form-outer{ display:block; }
.we-pkg-wizard{ margin-bottom:30px; }
.we-pkg-eyebrow{
  font-size:10.5px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase;
  color:#8a5560; margin:0 0 8px;
}
.we-pkg-heading{
  font-family:'Fraunces', serif; font-weight:500; font-size:1.1rem;
  color:#241417; margin:0 0 14px;
}
.we-side-pills{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:6px; }
.we-side-pill{
  padding:9px 18px; border-radius:100px;
  background:#fff; color:#241417;
  border:1px solid rgba(36,20,23,0.15);
  font-family:'Work Sans', sans-serif; font-size:0.78rem; font-weight:500;
  cursor:pointer; transition:background 0.2s, color 0.2s, border-color 0.2s;
}
.we-side-pill:hover{ border-color:rgba(36,20,23,0.35); }
.we-side-pill.is-active{ background:#241417; color:#fff; border-color:#241417; }
.we-pkg-step2{
  max-height:0; overflow:hidden; opacity:0;
  transition:max-height 0.4s ease, opacity 0.3s ease;
}
.we-pkg-step2.is-visible{ max-height:1000px; opacity:1; padding-top:22px; }
.we-pkg-cards{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:16px;
  margin-bottom:8px;
}
.we-pkg-card{
  position:relative;
  background:#fff; border-radius:10px; padding:22px 18px;
  border:2px solid rgba(36,20,23,0.1);
  cursor:pointer;
  transition:border-color 0.2s, transform 0.2s;
}
.we-pkg-card:hover{ transform:translateY(-2px); }
.we-pkg-card.is-selected{ border-color:#241417; box-shadow:0 6px 18px rgba(36,20,23,0.10); }
.we-pkg-card.is-popular{ background:#241417; }
.we-pkg-card.is-popular .we-pkg-title{ color:#fff; }
.we-pkg-card.is-popular .we-pkg-price{ color:#e8b8bf; }
.we-pkg-card.is-popular .we-pkg-features li{ color:rgba(255,255,255,0.85); }
.we-pkg-card.is-popular.is-selected{ border-color:#8a5560; }
.we-pkg-badge{
  position:absolute; top:-10px; right:14px;
  background:#8a5560; color:#fff; font-size:9px; font-weight:600;
  padding:3px 10px; border-radius:100px; letter-spacing:0.05em; text-transform:uppercase;
}
.we-pkg-title{ font-family:'Fraunces', serif; font-weight:600; font-size:1rem; color:#241417; margin:0 0 4px; }
.we-pkg-price{ font-size:0.82rem; font-weight:600; color:#8a5560; margin:0 0 14px; min-height:1.2em; }
.we-pkg-features{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.we-pkg-features li{
  font-size:0.72rem; color:#4a2530; padding-left:16px; position:relative;
}
.we-pkg-features li::before{ content:"✓"; position:absolute; left:0; }
.we-contact-wrap{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:50px;
  padding-top:50px;
  padding-bottom:80px;
  align-items:start;
}
.we-contact-title{
  font-family:'Fraunces', serif; font-weight:500;
  font-size:clamp(1.8rem, 3.4vw, 2.6rem); line-height:1.15;
  color:#241417; margin:0 0 18px;
}
.we-contact-sub{ font-size:0.9rem; line-height:1.6; color:#4a2530; max-width:340px; margin:0 0 26px; }
.we-contact-details{ display:flex; flex-direction:column; gap:10px; }
.we-contact-details a{ font-size:0.9rem; color:#241417; text-decoration:none; }
.we-contact-details a:hover{ opacity:0.6; }
.we-contact-form{ display:flex; flex-direction:column; gap:16px; }
.we-contact-form label{
  display:flex; flex-direction:column; gap:6px;
  font-size:0.78rem; font-weight:500; color:#4a2530;
}
.we-contact-form input,
.we-contact-form select,
.we-contact-form textarea{
  font-family:'Work Sans', sans-serif; font-size:0.9rem; color:#241417;
  background:#fff; border:1px solid rgba(36,20,23,0.15); border-radius:4px;
  padding:11px 12px;
}
.we-contact-form textarea{ resize:vertical; }
.we-contact-submit{
  align-self:flex-start;
  margin-top:6px;
  padding:13px 28px;
  background:#241417; color:#fff;
  border:none; border-radius:4px;
  font-family:'Work Sans', sans-serif; font-size:0.85rem; font-weight:500;
  cursor:pointer; transition:background 0.2s;
}
.we-contact-submit:hover{ background:#8a3a3a; }
.we-form-error{ color:#c0392b; font-weight:600; margin-bottom:18px; }
/* --- Footer (shared across all four pages) --- */
.we-footer{ padding:34px 0 50px; }
.we-footer-inner{
  display:flex; align-items:flex-start; justify-content:space-between;
  flex-wrap:wrap; gap:30px;
}
.we-footer-links{ display:flex; gap:56px; flex-wrap:wrap; }
.we-footer-col{ display:flex; flex-direction:column; gap:10px; }
.we-footer-col a{
  font-family:'Work Sans', sans-serif; font-weight:500;
  font-size:12.5px; color:#241417; text-decoration:none;
  transition:opacity 0.15s;
}
.we-footer-col a:hover{ opacity:0.6; }
.we-footer-cta-row{
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; flex-wrap:wrap;
}
.we-footer-cta{ margin:0; text-align:left; }
.we-footer-cta a{
  font-family:'Fraunces', serif; font-weight:500; font-size:clamp(1.3rem, 2.6vw, 1.7rem);
  color:#241417; text-decoration:none; line-height:1.2;
}
.we-footer-cta a:hover{ opacity:0.75; }
.we-hire-card{
  display:flex; align-items:center; gap:14px;
  background:#fff; border-radius:14px; padding:14px 22px 14px 14px;
  box-shadow:0 4px 14px rgba(36,20,23,0.08);
  text-decoration:none;
  transition:transform 0.2s ease, box-shadow 0.2s ease;
}
.we-hire-card:hover{ transform:translateY(-2px); box-shadow:0 6px 18px rgba(36,20,23,0.12); }
.we-hire-photo{
  width:52px; height:52px; border-radius:50%; overflow:hidden; flex:none;
  background:#e8c2c7;
}
.we-hire-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.we-hire-greeting{ font-family:'Marck Script', cursive; font-size:22px; color:#241417; margin:0; line-height:1.2; }
.we-hire-sub{ font-size:11px; color:#8a5560; margin:2px 0 0; }
/* --- Thank You page (page-wedding-thank-you.php) --- */
.we-thanks-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:60vh;
  padding:60px 0 90px;
}
.we-thanks-inner{
  max-width:560px;
  margin:0 auto;
  text-align:center;
}
.we-thanks-mark{
  display:inline-block;
  font-size:1.8rem;
  color:#c9788a;
  margin-bottom:18px;
}
.we-thanks-eyebrow{
  font-size:10.5px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase;
  color:#8a5560; margin:0 0 14px;
}
.we-thanks-title{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:clamp(2.1rem, 4.4vw, 3.2rem);
  line-height:1.15;
  color:#241417;
  margin:0 0 22px;
}
.we-thanks-body{
  font-size:0.98rem;
  line-height:1.7;
  color:#4a2530;
  margin:0 0 36px;
}
.we-thanks-actions{
  display:flex;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:40px;
}
.we-thanks-btn{
  display:inline-block;
  padding:13px 26px;
  border-radius:4px;
  font-family:'Work Sans', sans-serif;
  font-size:0.85rem;
  font-weight:500;
  text-decoration:none;
  transition:opacity 0.15s;
}
.we-thanks-btn-primary{ background:#241417; color:#fff; }
.we-thanks-btn-ghost{ background:transparent; color:#241417; border:1px solid rgba(36,20,23,0.3); }
.we-thanks-btn:hover{ opacity:0.75; }
.we-thanks-social{
  display:flex;
  justify-content:center;
  gap:22px;
}
.we-thanks-social a{
  font-family:'Work Sans', sans-serif;
  font-size:0.8rem;
  font-weight:500;
  color:#8a5560;
  text-decoration:none;
  transition:opacity 0.15s;
}
.we-thanks-social a:hover{ opacity:0.6; }
@media (max-width:600px){
  .we-thanks-actions{ flex-direction:column; align-items:stretch; }
  .we-thanks-btn{ text-align:center; }
}
/* Wedding Thank You page — recolored to the "Blush Peach" theme used
   elsewhere on the site, scoped to this one page via its body class (not
   .we-page/.we-boxed directly, since those two backgrounds are shared by
   every Wedding & Events page and only this page's color was asked to
   change). A flat fill, not the gradient used for Blush Peach elsewhere —
   .we-page and .we-boxed are nested at different heights, and a repeated
   gradient across both would show a visible seam where they meet. */
.wedding-thank-you-page .we-page,
.wedding-thank-you-page .we-boxed{ background:#FBEDE6; }
.wedding-thank-you-page .we-thanks-mark{ color:#A85A45; }
.wedding-thank-you-page .we-thanks-eyebrow{ color:#B06A4F; }
.wedding-thank-you-page .we-thanks-social a{ color:#B06A4F; }
/* --- Mobile --- */
@media (max-width:768px){
  .we-header{ align-items:center; }
  .we-brand{ font-size:34px; }
  .we-tagline{ font-size:9.5px; }
  .we-nav-toggle{ display:flex; }
  .we-nav{
    display:none;
    position:absolute;
    top:calc(100% + 1px);
    left:-5vw; right:-5vw;
    flex-direction:column;
    align-items:center;
    gap:22px;
    background:#F6D8DD !important;
    padding:30px 0 36px;
    box-shadow:0 16px 30px rgba(36,20,23,0.10);
    z-index:200;
  }
  .we-nav.is-open{ display:flex; }
  .we-nav-sep{ display:none; }
  .we-nav a{ font-size:30px; }
  .we-hero{ flex-direction:column; align-items:flex-start; }
  .we-slide{ width:calc(100vw / 2.5); }
  .we-slide-photo{ width:calc(100vw / 2.5); aspect-ratio:3/4; }
  .we-service-row{ grid-template-columns:1fr; gap:16px; padding:26px 0; }
  .we-about-row{ grid-template-columns:1fr; gap:24px; }
  .we-footer{ flex-direction:column; }
  .we-footer-cta{ text-align:left; }
  .we-footer-cta-row{ flex-direction:column; align-items:flex-start; gap:18px; }
  .we-contact-wrap{ grid-template-columns:1fr; gap:34px; }
  .we-side-pills{ gap:8px; }
  .we-side-pill{ flex:1 1 auto; text-align:center; }
  .we-pkg-cards{ grid-template-columns:1fr; }
}
.about-heading{ font-size:clamp(1.8rem,3vw,2.4rem); max-width:620px; }
.about-text-wrap-styled{ margin-top:22px; max-width:560px; color:#4a423a; }
.single-post-article{ padding:160px 5vw 100px; }
.section-head-mb0{ margin-bottom:0; }
.single-post-title{ font-size:clamp(2.2rem,4.5vw,3.4rem); margin-top:10px; }
.landmark-elevation{ display:inline-block; margin-top:14px; padding:6px 14px; border-radius:20px; background:var(--stone); border:1px solid var(--line); font-family:'JetBrains Mono', monospace; font-size:0.8rem; font-weight:600; color:var(--rust-deep); }
.eyebrow-centered{ justify-content:center; }
.elevation-centered{ margin:40px auto; max-width:420px; }
.ip-empty-note{ color:rgba(255,255,255,0.5); }
.treks-no-top-pad{ padding-top:0; }
/* Classic HTML Sitemap page */
.sitemap-section{ padding:20px 6vw 100px; }
.sitemap-groups{
  display:grid; grid-template-columns:repeat(2,1fr); gap:48px;
  max-width:960px; margin-top:20px;
}
.sitemap-group-title{
  font-size:1.1rem; font-family:'JetBrains Mono',monospace; text-transform:uppercase;
  letter-spacing:0.04em; color:var(--rust-deep); margin-bottom:16px;
  border-bottom:1px solid var(--line); padding-bottom:10px;
}
.sitemap-list{ list-style:none; padding:0; margin:0; }
.sitemap-list li{ padding:7px 0; border-bottom:1px solid var(--line); }
.sitemap-list li:last-child{ border-bottom:none; }
.sitemap-list a{ color:var(--charcoal); text-decoration:none; }
.sitemap-list a:hover{ color:var(--rust-deep); text-decoration:underline; }
@media (max-width:720px){
  .sitemap-groups{ grid-template-columns:1fr; }
}
.sitemap-block + .sitemap-block{ margin-top:64px; padding-top:48px; border-top:2px solid var(--rust-deep); }
.sitemap-block-title{
  font-size:1.5rem; margin-bottom:24px;
}
/* Hierarchical tree view — indented nested lists, no lines/connectors, kept plain and readable */
.sitemap-tree ul{ list-style:none; margin:0; padding-left:22px; }
.sitemap-tree > ul{ padding-left:0; }
.sitemap-tree li{ margin:8px 0; }
.sitemap-tree > ul > li > a{
  font-family:'JetBrains Mono',monospace; font-size:0.78rem; text-transform:uppercase;
  letter-spacing:0.04em; color:var(--rust-deep);
}
.sitemap-tree li > ul > li{
  font-family:'JetBrains Mono',monospace; font-size:0.72rem; text-transform:uppercase;
  letter-spacing:0.03em; color:#7a7166;
}
.sitemap-tree a{ color:var(--charcoal); text-decoration:none; font-family:'Work Sans',sans-serif; text-transform:none; letter-spacing:0; font-size:0.92rem; }
.sitemap-tree a:hover{ color:var(--rust-deep); text-decoration:underline; }
.wizard-trek-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.wizard-trek-card{
  background:#fff; border:1px solid var(--line); border-radius:6px;
  padding:22px; cursor:pointer; transition:border-color 0.2s;
}
.wizard-trek-card.is-selected{ border:2px solid var(--rust-deep); }
.wizard-trek-card h3{ font-size:1.1rem; margin-bottom:8px; }
.wizard-trek-card .meta{
  display:block; font-family:'JetBrains Mono', monospace; font-size:0.72rem;
  text-transform:uppercase; color:#7a7166; margin-bottom:12px;
}
.wizard-trek-card .price{ display:block; font-weight:600; color:var(--rust-deep); font-size:0.92rem; }
/* "What kind of experience are you after?" cards — a muted color per card
   (cycling through 6 tones, repeating if a 7th is configured) instead of
   plain white tiles, with each card's own heading/meta text darkened to
   match its background rather than the site's usual charcoal/gray. */
.wizard-experience-card:nth-child(6n+1){ background:#B7C7D1; }
.wizard-experience-card:nth-child(6n+1) h3{ color:#33454F; }
.wizard-experience-card:nth-child(6n+1) .meta{ color:#5C707A; }
.wizard-experience-card:nth-child(6n+2){ background:#AAD9CB; }
.wizard-experience-card:nth-child(6n+2) h3{ color:#1F5A48; }
.wizard-experience-card:nth-child(6n+2) .meta{ color:#3F7A67; }
.wizard-experience-card:nth-child(6n+3){ background:#E2C583; }
.wizard-experience-card:nth-child(6n+3) h3{ color:#6B4C15; }
.wizard-experience-card:nth-child(6n+3) .meta{ color:#8C6A2E; }
.wizard-experience-card:nth-child(6n+4){ background:#F3D0AB; }
.wizard-experience-card:nth-child(6n+4) h3{ color:#8C4A22; }
.wizard-experience-card:nth-child(6n+4) .meta{ color:#A96A3E; }
.wizard-experience-card:nth-child(6n+5){ background:#E3BCC2; }
.wizard-experience-card:nth-child(6n+5) h3{ color:#6B2A38; }
.wizard-experience-card:nth-child(6n+5) .meta{ color:#8C4A56; }
.wizard-experience-card:nth-child(6n+6){ background:#C1C68C; }
.wizard-experience-card:nth-child(6n+6) h3{ color:#4A5222; }
.wizard-experience-card:nth-child(6n+6) .meta{ color:#68713A; }
.wizard-experience-card.is-selected{ border-color:var(--charcoal); }
.wizard-date-row{ margin-top:30px; display:flex; align-items:center; gap:14px; }
.wizard-date-row label{ font-size:0.88rem; color:#4a423a; }
.wizard-date-row input[type="date"]{
  padding:10px 14px; border:1px solid var(--line); border-radius:4px;
  font-family:'Work Sans', sans-serif; background:#fff;
}
.wizard-date-row input[type="date"].wizard-field-error{
  border-color:#c0392b;
  box-shadow:0 0 0 3px rgba(192,57,43,0.12);
}
.wizard-field-error-msg{
  color:#c0392b;
  font-size:0.82rem;
  margin:8px 0 0;
}
.wizard-group-row{ display:flex; align-items:center; gap:16px; }
.wizard-group-picker{ margin-bottom:8px; }
.wizard-group-picker-label{
  display:block; font-size:0.9rem; color:#4a423a; font-weight:600; margin-bottom:14px;
}
.wizard-group-boxes{
  display:flex; flex-wrap:wrap; gap:10px;
}
.wizard-group-box{
  width:52px; height:52px;
  border:1.5px solid var(--line);
  border-radius:6px;
  background:#fff;
  font-family:'Fraunces', serif;
  font-size:1.1rem; font-weight:600;
  color:var(--charcoal);
  cursor:pointer;
  transition:border-color 0.15s, background 0.15s, color 0.15s;
}
.wizard-group-box:hover{
  border-color:var(--rust-deep);
  color:var(--rust-deep);
}
.wizard-group-box.is-selected{
  background:var(--charcoal);
  border-color:var(--charcoal);
  color:var(--paper);
}
.wizard-group-picker-hint{
  font-size:0.78rem; color:#7a7166; margin-top:12px;
}
.wizard-rest-days-stepper{
  display:flex; align-items:center; gap:16px;
}
.wizard-rest-days-btn{
  width:44px; height:44px;
  border:1.5px solid var(--line);
  border-radius:6px;
  background:#fff;
  font-family:'Fraunces', serif;
  font-size:1.3rem; font-weight:600;
  color:var(--charcoal);
  cursor:pointer;
  transition:border-color 0.15s, background 0.15s, color 0.15s;
}
.wizard-rest-days-btn:hover{
  border-color:var(--rust-deep);
  color:var(--rust-deep);
}
.wizard-rest-days-value{
  min-width:36px; text-align:center;
  font-family:'Fraunces', serif; font-size:1.3rem; font-weight:600;
  color:var(--charcoal);
}
.wizard-extra-day-cost{
  font-size:0.82rem; color:var(--rust-deep); font-weight:600; margin-top:10px;
}
.wizard-extra-day-cost:empty{ display:none; }
.trek-extra-day-note{
  font-size:0.78rem;
  color:#7a7166;
  text-align:center;
  margin:10px 0 0;
  line-height:1.5;
}
@media (max-width:540px){
  .wizard-group-box{ width:44px; height:44px; font-size:1rem; }
  .wizard-rest-days-btn{ width:40px; height:40px; font-size:1.1rem; }
}
.wizard-group-row label{ font-size:0.88rem; color:#4a423a; min-width:90px; }
.wizard-group-row input[type="range"]{ flex:1; }
.wizard-group-out{ font-weight:600; color:var(--rust-deep); min-width:90px; font-size:0.92rem; }
.wizard-addons{ display:flex; flex-direction:column; gap:10px; }
.wizard-addon{
  display:flex; align-items:center; gap:12px;
  background:#fff; border:1px solid var(--line); border-radius:4px;
  padding:14px 16px; cursor:pointer; font-size:0.92rem;
}
.wizard-addon[hidden]{ display:none; }
.wizard-addon span{ flex:1; }
.wizard-addon b{ color:var(--rust-deep); }
.wizard-porter-hint{
  display:block;
  font-size:0.72rem;
  font-style:italic;
  color:#9a9186;
  margin-top:3px;
}
.wizard-porter-meta{
  display:block;
  font-size:0.76rem;
  color:#7a7166;
  margin-top:2px;
}
.wizard-addon-qty{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:6px;
}
.wizard-addon-qty-text{
  font-size:0.76rem;
  color:#7a7166;
}
.wizard-addon-qty-input{
  width:54px;
  padding:4px 6px;
  border:1px solid var(--line);
  border-radius:4px;
  font-family:'Work Sans', sans-serif;
  font-size:0.82rem;
  text-align:center;
}
.wizard-total-box{
  margin-top:30px; background:var(--charcoal); border-radius:6px;
  padding:20px 24px; display:flex; justify-content:space-between; align-items:baseline;
}
.wizard-total-box .mono{ color:var(--saffron); }
.wizard-total-amount{ font-family:'Fraunces', serif; font-size:1.8rem; color:#fff; }
.wizard-nav{ display:flex; justify-content:space-between; margin-top:34px; }
.wizard-nav .btn.ghost{
  border-color:var(--rust-deep) !important;
  color:var(--rust-deep) !important;
}
.wizard-nav .btn.ghost:hover{
  background:rgba(140,63,34,0.08) !important;
  border-color:var(--rust-deep) !important;
}
.wizard-summary-card{
  background:#fff; border:1px solid var(--line); border-radius:6px;
  padding:30px; margin-bottom:30px;
}
.wizard-summary-table{ width:100%; margin-top:16px; font-size:0.92rem; }
.wizard-summary-table td{ padding:8px 0; border-bottom:1px solid var(--line); }
.wizard-summary-table td:first-child{ color:#7a7166; }
.wizard-summary-table td:last-child{ text-align:right; font-weight:500; }
.wizard-summary-total{
  margin-top:16px; padding-top:16px; border-top:1px solid var(--line);
  display:flex; justify-content:space-between; align-items:baseline;
}
.wizard-summary-total span{ font-size:0.85rem; color:#7a7166; }
.wizard-summary-total b{ font-family:'Fraunces', serif; font-size:1.6rem; color:var(--rust-deep); }
.wizard-form{ display:flex; flex-direction:column; gap:16px; }
.wizard-form input[type="text"], .wizard-form input[type="email"], .wizard-form textarea, .wizard-form select{
  padding:13px 14px; border:1px solid var(--line); border-radius:4px;
  font-family:'Work Sans', sans-serif; font-size:0.95rem; background:#fff;
  color:var(--charcoal);
}
.wizard-form input::placeholder, .wizard-form textarea::placeholder{
  color:#a8a097;
}
.wizard-form select{
  appearance:auto;
  -webkit-appearance:menulist;
}
.wizard-form select option{
  color:#000;
}
/* Feedback / Suggestions / Complaints page */
.feedback-section{ max-width:720px; margin:0 auto; padding:20px 6vw 100px; }
.feedback-form{ margin-top:10px; }
.feedback-msg{ padding:16px 20px; border-radius:6px; font-size:0.92rem; margin-bottom:24px; }
.feedback-msg-error{ background:rgba(224,122,95,0.12); color:#c0392b; border:1px solid rgba(192,57,43,0.25); }
.feedback-type-row{ display:flex; gap:10px; flex-wrap:wrap; }
.feedback-type-pill{ flex:1; min-width:150px; position:relative; cursor:pointer; }
.feedback-type-pill input{ position:absolute; opacity:0; }
.feedback-type-pill span{
  display:block; text-align:center; padding:13px 12px;
  border:1.5px solid var(--line); border-radius:6px;
  font-size:0.88rem; font-weight:600; color:#7a7166;
  transition:border-color 0.15s, background 0.15s, color 0.15s;
}
.feedback-type-pill input:checked + span{
  border-color:var(--rust-deep); background:var(--rust-deep); color:#fff;
}
.feedback-form-row{ display:flex; gap:14px; flex-wrap:wrap; }
.feedback-form-row input{ flex:1; min-width:220px; }
.feedback-rating-label{ font-size:0.88rem; color:#4a423a; font-weight:500; margin-top:6px; }
.feedback-optional{ font-weight:400; color:#9a9186; }
.feedback-form button[type="submit"]{ align-self:flex-start; }
@media (max-width:640px){
  .feedback-type-row{ flex-direction:column; }
  .feedback-form-row{ flex-direction:column; }
}
/* Dynamic Portfolio — filters, masonry grid, lightbox */
.portfolio-contain{ max-width:1240px; margin:0 auto; }
.portfolio-filters{
  display:flex; gap:10px; flex-wrap:wrap;
  margin-bottom:36px;
}
.portfolio-filter-btn{
  background:transparent;
  border:1px solid var(--line);
  color:#4a423a;
  padding:9px 20px;
  border-radius:999px;
  font-size:0.82rem; font-weight:500;
  cursor:pointer;
  transition:all 0.2s;
}
.portfolio-filter-btn:hover{ border-color:var(--rust-deep); color:var(--rust-deep); }
.portfolio-filter-btn.is-active{
  background:var(--rust-deep);
  border-color:var(--rust-deep);
  color:#fff;
}
.portfolio-grid{
  column-count:3;
  column-gap:16px;
}
.portfolio-item{
  margin:0 0 16px;
  break-inside:avoid;
  position:relative;
  overflow:hidden;
  border-radius:3px;
}
.portfolio-link{ display:block; position:relative; }
.portfolio-link img{
  width:100%; height:auto; display:block;
  transition:transform 0.4s ease;
}
.portfolio-link:hover img{ transform:scale(1.04); }
.portfolio-item-tag{
  position:absolute; bottom:12px; left:12px;
  background:rgba(20,17,14,0.65);
  color:var(--saffron);
  font-family:'JetBrains Mono', monospace;
  font-size:0.62rem; text-transform:uppercase; letter-spacing:0.05em;
  padding:5px 11px; border-radius:999px;
}
/* Bottom banner showing photo/gallery name — revealed on hover */
.portfolio-item-banner{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:28px 14px 12px;
  background:linear-gradient(transparent, rgba(15,12,10,0.75));
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  opacity:0;
  transition:opacity 0.3s ease;
}
.portfolio-link:hover .portfolio-item-banner{ opacity:1; }
@media (max-width:880px){
  /* Hover has no equivalent on a touch screen, so this caption (photo/
     gallery title + type) was simply never visible on mobile — the exact
     same information the portfolio page's own grid (.ip-item-banner) and
     the galleries index (.gl-card-banner) already show unconditionally.
     Matching that here instead of leaving it hover-gated. */
  .portfolio-item-banner{ opacity:1; }
}
.portfolio-item-banner-title{
  font-family:'Fraunces', serif;
  font-size:0.88rem;
  font-weight:600;
  color:#fff;
  line-height:1.3;
  flex:1;
}
.portfolio-item-banner-type{
  font-family:'JetBrains Mono', monospace;
  font-size:0.62rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--saffron);
  background:rgba(0,0,0,0.4);
  padding:3px 8px;
  border-radius:999px;
  margin-left:8px;
  flex:none;
}
.portfolio-load-more-wrap{ text-align:center; margin-top:40px; }
/* Homepage "Selected work" — design-only: hide the category tag overlay
   (the Portfolio page keeps showing it; this only applies here). */
.photography-home .portfolio-item-tag{ display:none; }
.photography-see-more-wrap{ text-align:center; margin-top:40px; }
.portfolio-filter-more{
  border-style:dashed;
  color:#7a7166;
}
.portfolio-filter-more:hover{ border-color:var(--rust-deep); color:var(--rust-deep); }
.portfolio-lightbox{
  position:fixed; inset:0; z-index:200;
  background:rgba(15,13,11,0.95);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transition:opacity 0.25s;
}
.portfolio-lightbox.is-open{ opacity:1; visibility:visible; }
.portfolio-lightbox-img{
  max-width:min(88vw, 100%);
  max-height:82vh;
  width:auto;
  height:auto;
  object-fit:contain;
  box-shadow:0 30px 60px rgba(0,0,0,0.5);
  display:block;
  margin:0 auto;
}
.gallery-single-img{
  /* Frame ceiling (Option B) so every photo — landscape, portrait, or
     square, whatever its actual pixel size — scales down to fit the same
     bounds instead of rendering at an unconstrained, aspect-ratio-driven
     height. Matches the same idea already used by .portfolio-lightbox-img
     above, just sized for this in-page context rather than a fullscreen
     overlay. */
  max-width:min(760px, 90vw);
  max-height:60vh;
  width:auto;
  height:auto;
  object-fit:contain;
  display:block;
  margin:0 auto;
  border-radius:4px;
  box-shadow:0 8px 30px rgba(43,37,32,0.12);
}
.portfolio-lightbox-close{
  position:absolute; top:24px; right:30px;
  background:none; border:none; color:#fff;
  font-size:2.2rem; line-height:1; cursor:pointer;
}
.portfolio-lightbox-prev, .portfolio-lightbox-next{
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.25);
  color:#fff; width:48px; height:48px; border-radius:50%;
  font-size:1.2rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background 0.2s;
}
.portfolio-lightbox-prev:hover, .portfolio-lightbox-next:hover{ background:rgba(255,255,255,0.2); }
.portfolio-lightbox-prev{ left:24px; }
.portfolio-lightbox-next{ right:24px; }
.portfolio-lightbox-caption{
  position:absolute; bottom:26px; left:0; right:0;
  text-align:center;
  color:rgba(246,241,230,0.85);
  font-family:'JetBrains Mono', monospace;
  font-size:0.78rem; letter-spacing:0.04em;
}
/* Breadcrumb */
.trek-breadcrumb, .site-breadcrumb{
  background:var(--stone);
  padding:150px 6vw 0;
}
.site-breadcrumb{ padding-top:140px !important; }
.trek-breadcrumb-inner, .site-breadcrumb-inner{
  max-width:1240px; margin:0 auto;
  display:flex; align-items:center; gap:8px;
  font-family:'JetBrains Mono', monospace;
  font-size:0.72rem;
  text-transform:uppercase;
  letter-spacing:0.04em;
  color:#7a7166;
  padding-bottom:18px;
}
.trek-breadcrumb-inner a, .site-breadcrumb-inner a{ color:#7a7166; transition:color 0.2s; }
.trek-breadcrumb-inner a:hover, .site-breadcrumb-inner a:hover{ color:var(--rust-deep); }
.trek-breadcrumb-inner .is-current, .site-breadcrumb-inner .is-current{ color:var(--rust-deep); }
.site-breadcrumb + section{ padding-top:30px; }
/* Anchor offset for sections jumped to via nav links (#about, #services, etc.) */
.anchor-spacer{
  display:block;
  position:relative;
  top:-90px;
  visibility:hidden;
  pointer-events:none;
}
/* Location & Permit strip — Region/Zone/District plus a colored Restricted
   Area / Open Zone badge, shown just under the breadcrumb on single-trek.php.
   Colors match the Restricted/Open badges already used on the All
   Destinations table, so the two pages read as the same system. */
.trek-locpermit-section{ padding:22px 6vw; background:var(--stone); }
.trek-locpermit-inner{ max-width:1240px; margin:0 auto; }
.trek-locpermit{
  background:#fff; border:1px solid var(--line); border-radius:14px;
  padding:22px 26px; display:flex; align-items:center; justify-content:flex-start;
  gap:24px; flex-wrap:wrap;
}
.trek-locpermit-facts{ display:flex; gap:32px; flex-wrap:wrap; }
.trek-locpermit-fact{ display:flex; align-items:center; gap:10px; }
.trek-locpermit-fact-icon{
  flex:none; width:34px; height:34px; border-radius:50%; background:var(--stone);
  display:flex; align-items:center; justify-content:center; color:var(--rust-deep);
}
.trek-locpermit-fact-icon svg{ width:17px; height:17px; }
.trek-locpermit-fact-label{
  display:block; font-family:'JetBrains Mono', monospace; font-size:0.62rem;
  font-weight:700; text-transform:uppercase; letter-spacing:0.04em; color:#9a9186;
}
.trek-locpermit-fact-value{ display:block; font-weight:600; font-size:0.98rem; color:var(--charcoal); margin-top:2px; }
.trek-locpermit-fact-nickname{ font-weight:400; font-size:0.85rem; color:#7a7166; }
.trek-locpermit-badge{ display:flex; align-items:center; gap:12px; padding:10px 18px; border-radius:12px; flex:none; margin-left:auto; }
.trek-locpermit-badge.is-restricted{ background:#f3ded4; }
.trek-locpermit-badge.is-open{ background:#e4ece2; }
.trek-locpermit-badge-icon{ flex:none; width:22px; height:22px; }
.trek-locpermit-badge.is-restricted .trek-locpermit-badge-icon{ color:var(--rust-deep); }
.trek-locpermit-badge.is-open .trek-locpermit-badge-icon{ color:#3f6b4a; }
.trek-locpermit-badge-title{ font-weight:700; font-size:0.92rem; }
.trek-locpermit-badge.is-restricted .trek-locpermit-badge-title{ color:var(--rust-deep); }
.trek-locpermit-badge.is-open .trek-locpermit-badge-title{ color:#3f6b4a; }
.trek-locpermit-badge-sub{ font-size:0.72rem; color:#6b6154; margin-top:1px; }
/* "Permit details" button — added by a later session alongside #permitInfoModal
   below, styled here to match the strip's existing card language. Sits after
   the badge; margin-left:auto above (not justify-content:space-between, which
   would spread facts/badge/link apart at wide widths) keeps the badge and
   this button snug together at the row's right edge. */
.trek-locpermit-info-link{
  display:flex; align-items:center; gap:7px; flex:none;
  background:none; border:1px solid var(--line); border-radius:999px;
  padding:9px 16px; font-family:'Work Sans',sans-serif; font-size:0.82rem; font-weight:600;
  color:var(--rust-deep); cursor:pointer; transition:border-color 0.2s, background 0.2s;
}
.trek-locpermit-info-link svg{ width:16px; height:16px; flex:none; }
.trek-locpermit-info-link:hover{ border-color:var(--rust-deep); background:var(--stone); }
.permit-modal-actions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:6px; }
/* .btn.ghost (white border/white text) is built for the dark hero photo
   background — it was invisible on .trek-service-enquiry-card's light
   cream background (var(--paper)). Scoped override recolors it for a
   light card instead, wherever .btn.ghost shows up inside one of these
   popups (the "Learn More" permit link, and the pre-existing "See Other
   Treks" button in a different modal — same bug, same fix). */
.trek-service-enquiry-card .btn.ghost{
  border-color:rgba(43,37,32,0.35); color:var(--charcoal);
}
.trek-service-enquiry-card .btn.ghost:hover{
  background:rgba(43,37,32,0.06); border-color:var(--charcoal);
}
/* Status line inside the #permitInfoModal popup itself — same restricted/open
   color language as the badge above, adapted to a full-width row since the
   popup is a single narrow column rather than a wide strip. */
.permit-modal-status{
  display:flex; align-items:center; gap:10px;
  padding:12px 16px; border-radius:10px; margin-bottom:18px;
  font-weight:700; font-size:0.9rem;
}
.permit-modal-status svg{ width:20px; height:20px; flex:none; }
.permit-modal-status.is-restricted{ background:#f3ded4; color:var(--rust-deep); }
.permit-modal-status.is-open{ background:#e4ece2; color:#3f6b4a; }
@media (max-width:640px){
  .trek-locpermit{ flex-direction:column; align-items:stretch; }
  .trek-locpermit-facts{ gap:20px; }
  .trek-locpermit-badge{ margin-left:0; }
  .trek-locpermit-info-link{ justify-content:center; }
}
/* Single Trek — article with floated image, full-width CTA banner */
.trek-article-section{
  padding:34px 6vw 0;
  background:var(--stone);
}
.trek-article-wrap{ max-width:1240px; margin:0 auto; }
.trek-article-title{
  font-family:'Fraunces', serif; font-weight:600;
  font-size:clamp(2rem, 4vw, 2.8rem);
  text-transform:uppercase;
}
.trek-overlap-rule{ border:none; border-top:1px solid var(--line); margin-top:26px; }
/* Single Tour hero — a plain photo banner with NO dark overlay and no text
   on top of the photo. Title/badges/lede/Quick Facts all sit in
   .trek-article-section below the photo instead, using the same look
   whether or not a photo is present — see single-tour.php. Single Trek
   (single-trek.php) reuses this exact same base class for its own hero
   photo, then layers .trek-photo-banner-tall on top for extra height and
   the .trek-photo-overlay title/badge system (further down this file) on
   top of the photo itself — Single Tour keeps the plain, unadorned photo
   with no overlay. */
.tour-photo-banner{
  position:relative; width:100%;
  height:52vh; min-height:340px; max-height:560px;
  overflow:hidden; background:var(--charcoal);
}
.tour-photo-banner img{ width:100%; height:100%; object-fit:cover; display:block; }
/* Trek-only taller hero — nearly full viewport height, scoped to trek
   pages specifically (single-trek.php adds this alongside the shared
   .tour-photo-banner class) so single-tour.php's hero is unaffected. */
.trek-photo-banner-tall{
  height:92vh; min-height:520px; max-height:920px;
}
@media (max-width:780px){
  .tour-photo-banner{ height:38vh; min-height:220px; max-height:360px; }
  .trek-photo-banner-tall{ height:68vh; min-height:400px; max-height:640px; }
}
/* Service page hero — same full-width plain photo banner treatment as the
   Tour page's .tour-photo-banner, kept as its own class per this theme's
   convention of a parallel class per post type rather than sharing one. */
.service-photo-banner{
  position:relative; width:100%;
  height:52vh; min-height:340px; max-height:560px;
  overflow:hidden; background:var(--charcoal);
}
.service-photo-banner img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:780px){
  .service-photo-banner{ height:38vh; min-height:220px; max-height:360px; }
}
/* Same full-width plain photo banner treatment, applied to blog posts and
   Landmark pages — kept as their own class names per post type, combined
   here since the rules are identical. */
.post-photo-banner, .landmark-photo-banner{
  position:relative; width:100%;
  height:52vh; min-height:340px; max-height:560px;
  overflow:hidden; background:var(--charcoal);
}
.post-photo-banner img, .landmark-photo-banner img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:780px){
  .post-photo-banner, .landmark-photo-banner{ height:38vh; min-height:220px; max-height:360px; }
}
.tour-article-badges{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  margin-bottom:14px;
}
.tour-article-badge-item{ display:inline-flex; align-items:center; gap:7px; }
.tour-article-badge-divider{ color:#a89e90; font-size:0.7rem; }
.tour-article-badge-icon{
  display:inline-flex; flex:none; width:15px; height:15px; color:var(--rust-deep); opacity:0.9;
}
.tour-article-badge-icon svg{ width:100%; height:100%; }
.tour-article-badge-value{
  display:inline-flex; align-items:center; gap:4px;
  font-family:'JetBrains Mono', monospace; font-size:0.72rem; font-weight:700;
  letter-spacing:0.02em; text-transform:uppercase; color:#4a423a;
}
.tour-article-lede{ color:#4a423a; font-size:0.98rem; max-width:640px; margin-top:14px; }
/* About Heading — bold Sora heading + icon/label row, right below the
   breadcrumb. Deliberately NOT the site's usual Fraunces serif heading
   style — bold geometric sans instead, per the specific reference look
   this was built to match. Fully optional: only renders when the Heading
   admin field has a value (see single-trek.php / rujan_trek_about_heading
   _callback() in inc/functions-part-03.php), nothing auto-generated. */
.trek-about-heading{ margin-bottom:20px; }
.trek-about-heading-title{
  font-family:'Sora', sans-serif; font-weight:700;
  font-size:clamp(1.7rem, 3.4vw, 2.2rem); line-height:1.15;
  color:var(--charcoal); margin:0 0 10px;
}
.trek-about-heading-tag{ display:flex; align-items:center; gap:7px; }
.trek-about-heading-tag-icon{ flex:none; width:15px; height:15px; color:var(--rust-deep); }
.trek-about-heading-tag-icon svg{ width:100%; height:100%; }
.trek-about-heading-tag-label{
  font-family:'Sora', sans-serif; font-weight:700; font-size:0.78rem;
  letter-spacing:0.02em; text-transform:uppercase; color:var(--charcoal);
}
.trek-lede-band{
  text-align:center;
  max-width:640px;
  margin:8px auto 0;
  padding:6px 0 4px;
}
.trek-lede-band-under-hero{ margin-top:14px; }
.trek-lede-band-icon{
  display:block; width:20px; height:20px; margin:0 auto 8px;
  color:var(--rust-deep); opacity:0.85;
}
.trek-lede-band-icon svg{ width:100%; height:100%; }
.trek-lede-band-text{
  font-family:'Fraunces', serif; font-style:normal; font-weight:500;
  font-size:clamp(1.05rem, 1.8vw, 1.15rem); line-height:1.5; color:var(--charcoal);
  margin:0;
}
/* Trek hero photo overlay — Trek label / type-grade-region badges / title
   sit on the bottom of the photo itself, behind a bottom-up gradient so
   they stay readable over busy mountain photos. Gradient stops go fully
   transparent → ~90% dark rather than a single translucent panel, so it
   reads as a natural falloff instead of a flat bar, while still reaching
   near-solid darkness right behind the text itself (WCAG contrast for
   white text needs close to that by the title's baseline). The lede and
   Quick Facts stay off the photo, in .trek-article-section as before —
   see single-trek.php.
   NAMED .trek-photo-overlay, NOT .trek-hero-overlay — there is an older,
   unrelated, currently-unused .trek-hero-overlay rule block later in this
   file (part of a different, dead overlay system a previous session built
   and deliberately left in place). Reusing that exact class name here
   silently broke this whole block for a while: same specificity, later
   rule in the cascade wins, so the dead rule's position:relative and
   missing background were overriding these properties completely, with
   zero visible trace of why. Do not rename this back to .trek-hero-overlay
   without also resolving that collision. */
.trek-photo-overlay{
  position:absolute; left:0; right:0; bottom:0; top:32%;
  background:linear-gradient(to bottom,
    rgba(15,12,9,0) 0%,
    rgba(15,12,9,0.35) 35%,
    rgba(15,12,9,0.72) 68%,
    rgba(15,12,9,0.92) 100%);
  display:flex; align-items:flex-end;
  padding:0 6vw 34px;
  pointer-events:none;
}
.trek-photo-overlay-inner{
  width:100%; max-width:1240px; margin:0 auto;
  pointer-events:auto;
}
.trek-photo-overlay-row{
  display:flex; align-items:flex-end; justify-content:space-between; gap:24px;
}
.trek-photo-overlay-text{ min-width:0; }
/* Open Zone / Restricted Area chip — right-aligned on the hero photo,
   bottom-anchored with the title. Own translucent dark backing + thin
   border (not the solid green/coral fill the same badge uses in the Quick
   Facts card) so it stays legible over any photo regardless of how bright
   or dark that particular spot is, rather than relying on a status color
   that might wash out against a similarly-toned photo. */
.trek-photo-overlay-permit{
  flex:none; display:flex; align-items:center; gap:10px;
  background:rgba(20,16,12,0.55); border:1px solid rgba(237,230,214,0.25);
  border-radius:10px; padding:10px 14px;
  backdrop-filter:blur(2px);
}
.trek-photo-overlay-permit-icon{
  flex:none; width:20px; height:20px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.trek-photo-overlay-permit-icon svg{ width:13px; height:13px; }
.trek-photo-overlay-permit.is-open .trek-photo-overlay-permit-icon{ background:#639922; color:#173404; }
.trek-photo-overlay-permit.is-restricted .trek-photo-overlay-permit-icon{ background:#D85A30; color:#4A1B0C; }
.trek-photo-overlay-permit-text{ min-width:0; }
.trek-photo-overlay-permit-title{ font-size:0.78rem; font-weight:700; color:#EDE6D6; white-space:nowrap; }
.trek-photo-overlay-permit-sub{ font-size:0.66rem; color:rgba(237,230,214,0.7); white-space:nowrap; }
.trek-photo-overlay-permit-link{
  flex:none; background:none; border:none; padding:0; cursor:pointer;
  font-family:'Work Sans', sans-serif; font-size:0.72rem; font-weight:600;
  color:#F0997B; text-decoration:underline; white-space:nowrap;
}
.trek-photo-overlay-permit-link:hover{ color:#F5C4B3; }
@media (max-width:780px){
  /* Was max-width:640px, mismatched against .trek-photo-overlay's own
     top:18% breakpoint right above (also 780px) — between 641px and
     780px the hero box had already shrunk but this row was still trying
     to lay the title and permit chip out side-by-side in the now-tighter
     space. Widened to match so both change together. */
  .trek-photo-overlay-row{ flex-direction:column; align-items:flex-start; gap:14px; }
  .trek-photo-overlay-permit{ align-self:stretch; }
  .trek-photo-overlay-permit-sub{ white-space:normal; }
}
.trek-photo-overlay-label{ color:rgba(237,230,214,0.9); display:block; margin-bottom:10px; }
.trek-photo-overlay .tour-article-badge-icon{ color:#EDE6D6; opacity:0.95; }
.trek-photo-overlay .tour-article-badge-value{ color:#EDE6D6; }
.trek-photo-overlay .tour-article-badge-divider{ color:rgba(237,230,214,0.55); }
.trek-photo-overlay-title{ color:#fff; margin:0; text-shadow:0 2px 10px rgba(0,0,0,0.35); }
.tour-article-lede-under-hero{ margin-top:22px; }
@media (max-width:780px){
  .trek-photo-overlay{ top:18%; padding-bottom:22px; }
}
/* Quick Facts — icon-in-circle rows in a single bordered card, no white
   fill (border only, page's own stone tone shows through). Replaces the
   old plain .stat-row text list. Merged with what used to be a separate
   Location & Permit strip (Region/Development Region/Zone/District/
   restricted-area status) — one card instead of two, so Region/Dev Region/
   Zone/District rows below reuse this exact same item markup rather than
   the old .trek-locpermit-fact-* system (still present further down for
   the badge/info-link pieces only, which keep their own colored fill —
   that's status information, not the card background this was about). */
.trek-quickfacts-card{
  background:transparent; border:1px solid var(--line); border-radius:14px;
  padding:26px 28px; margin-top:26px;
  display:flex; flex-direction:column; gap:24px;
}
.trek-quickfacts-group{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px 24px; }
.trek-quickfacts-group-2col{ grid-template-columns:repeat(2,1fr); }
.trek-quickfacts-item{ display:flex; align-items:center; gap:12px; }
.trek-quickfacts-icon{
  flex:none; width:38px; height:38px; border-radius:50%; background:var(--stone-deep);
  display:flex; align-items:center; justify-content:center; color:var(--rust-deep);
}
.trek-quickfacts-icon svg{ width:18px; height:18px; }
.trek-quickfacts-label{
  display:block; font-family:'JetBrains Mono', monospace; font-size:0.66rem;
  font-weight:700; text-transform:uppercase; letter-spacing:0.04em; color:#9a9186;
}
.trek-quickfacts-value{
  display:inline-flex; align-items:center; gap:4px;
  font-weight:600; font-size:0.95rem; color:var(--charcoal); margin-top:2px;
}
.trek-quickfacts-nickname{ font-weight:400; font-size:0.85rem; color:#7a7166; }
/* Thin rule separating the core Quick Facts (Duration, Grade, etc. —
   unchanged, still the first thing in the card) from the Region/
   Development Region/Zone/District data below it, so the two kinds of
   information read as distinct groups instead of one long undifferentiated
   list. */
.trek-quickfacts-divider{ border:none; border-top:1px solid var(--line); margin:0; }
.trek-quickfacts-location-group{ display:flex; flex-direction:column; }
.trek-quickfacts-group-label{
  display:block; font-family:'JetBrains Mono', monospace; font-size:0.64rem;
  font-weight:700; text-transform:uppercase; letter-spacing:0.05em;
  color:var(--rust-deep); margin-bottom:16px;
}
/* Restricted/Open-zone status + "Permit details" button — the closing row
   in the card, with its own divider above it so it reads as a distinct
   final row rather than one more fact tile. No longer needs grid-column:
   1/-1 to span the full width now that .trek-quickfacts-card is a flex
   column rather than one flat grid — a plain flex child already spans
   full width by default. */
.trek-quickfacts-permit-row{
  padding-top:22px; margin-top:-2px;
  border-top:1px solid var(--line);
  display:flex;
}
.trek-quickfacts-permit-row .trek-locpermit-badge{ margin-left:0; }
@media (max-width:900px){
  .trek-quickfacts-group{ grid-template-columns:1fr 1fr; }
}
@media (max-width:540px){
  .trek-quickfacts-card{ padding:22px 20px; gap:20px; }
  .trek-quickfacts-group{ grid-template-columns:1fr; gap:18px; }
  .trek-quickfacts-group-2col{ grid-template-columns:1fr; }
  .trek-quickfacts-permit-row .trek-locpermit-badge{ flex-direction:column; align-items:stretch; }
}
.js-lightbox-trigger{ position:relative; }
.js-lightbox-trigger::after{
  content:"";
  position:absolute;
  bottom:12px; right:12px;
  width:30px; height:30px;
  background-color:rgba(20,16,12,0.35);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cline x1='15.5' y1='15.5' x2='21' y2='21'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  background-size:16px;
  border-radius:50%;
  opacity:0.55;
  transition:opacity 0.2s;
  pointer-events:none;
}
.js-lightbox-trigger:hover::after{ opacity:0.9; }
.trek-map-module-image a{ display:block; cursor:zoom-in; }
/* Lightbox */
.trek-lightbox{
  position:fixed; inset:0; z-index:9999;
  background:rgba(20,16,12,0.92);
  display:flex; align-items:center; justify-content:center;
  padding:5vw;
}
.trek-lightbox[hidden]{ display:none; }
.trek-lightbox figure{ margin:0; max-width:90vw; max-height:90vh; text-align:center; }
.trek-lightbox-img{ max-width:100%; max-height:75vh; border-radius:4px; display:block; margin:0 auto; }
.trek-lightbox-caption{
  color:rgba(246,241,230,0.85);
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:1rem;
  margin-top:16px;
}
.trek-lightbox-description{
  color:rgba(246,241,230,0.6);
  font-size:0.82rem;
  line-height:1.6;
  max-width:560px;
  margin:8px auto 0;
}
.trek-lightbox-credit{
  color:rgba(246,241,230,0.45);
  font-family:'JetBrains Mono', monospace;
  font-size:0.7rem;
  letter-spacing:0.03em;
  margin:10px auto 0;
}
.trek-lightbox-close{
  position:absolute; top:24px; right:24px;
  width:42px; height:42px;
  border:1px solid rgba(246,241,230,0.3);
  border-radius:50%;
  background:transparent;
  color:#f6f1e6;
  font-size:1.6rem;
  line-height:1;
  cursor:pointer;
}
.trek-lightbox-close:hover{ background:rgba(246,241,230,0.1); }
@media (max-width:880px){
  .trek-lightbox-close{ top:14px; right:14px; width:36px; height:36px; font-size:1.3rem; }
}
/* Single blog post (single.php) */
.single-post-thumb{
  max-width:760px; margin:34px auto 0;
  border-radius:6px; overflow:hidden;
  text-align:center;
}
.single-post-thumb img{ max-width:100%; width:auto; height:auto; display:block; margin:0 auto; border-radius:6px; }
.single-post-thumb-caption{
  font-size:0.85rem; font-style:italic; color:#6b6155;
  margin-top:10px;
}
.single-post-content{
  max-width:760px; margin:42px auto 0;
  color:#4a423a; line-height:1.8; font-size:1.02rem;
}
.single-post-content p{ margin:0 0 1.4em; }
.single-post-content h2{ font-size:1.6rem; margin:1.6em 0 0.6em; }
.single-post-content h3{ font-size:1.25rem; margin:1.4em 0 0.5em; }
.single-post-content img{ max-width:100%; width:auto; height:auto; border-radius:6px; margin:1.2em 0; display:block; }
.single-post-content blockquote{
  border-left:3px solid var(--saffron);
  margin:1.6em 0; padding:4px 0 4px 22px;
  font-style:italic; color:var(--charcoal);
}
.single-post-content a{ color:var(--rust-deep); text-decoration:underline; }
.single-post-footer{
  max-width:760px; margin:50px auto 0;
  padding-top:30px; border-top:1px solid var(--line);
}
.single-post-footer .btn.ghost{
  border:1px solid var(--line); color:var(--charcoal);
}
.single-post-footer .btn.ghost:hover{ background:var(--stone); border-color:var(--charcoal); }
.trek-map-module{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:6px;
  overflow:hidden;
}
.trek-map-module-label{
  display:block;
  color:var(--rust-deep);
  padding:16px 20px 0;
}
.trek-map-module-image{
  padding:16px 20px 20px;
}
.trek-map-module-image img{
  width:100%; min-width:0; display:block;
  border-radius:4px;
}
/* Price card — soft, faded, on-brand with the rest of the site */
.trek-price-card{
  background:linear-gradient(160deg, var(--paper) 0%, var(--stone) 100%);
  border:1px solid var(--line);
  border-radius:6px;
  padding:28px 26px;
  position:relative;
  overflow:hidden;
}
.trek-price-card::before{
  content:'';
  position:absolute; top:-40px; right:-40px;
  width:140px; height:140px;
  background:radial-gradient(circle, rgba(215,153,60,0.18), transparent 70%);
}
.trek-price-label{ color:var(--rust-deep); display:block; position:relative; z-index:1; }
.trek-price-row{
  display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 10px;
  margin-top:10px; position:relative; z-index:1;
}
.trek-price-old{
  font-family:'JetBrains Mono', monospace;
  font-size:1rem; color:#9a9186;
  text-decoration:line-through;
}
.trek-price-amount{
  font-family:'Fraunces', serif; font-weight:600;
  font-size:2.4rem; color:var(--charcoal);
}
.trek-price-unit{
  font-family:'JetBrains Mono', monospace; font-size:0.68rem;
  text-transform:uppercase; letter-spacing:0.05em;
  color:#7a7166;
  position:relative; z-index:1;
}
/* Essential Trip Information — styled like the article column (paper card) */
.trek-docs-module{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:4px;
  padding:26px;
}
.trek-docs-label{ display:block; color:var(--rust-deep); margin-bottom:16px; }
/* Elevation Breakdown — day-by-day list, same card language as
   .trek-docs-module just above it (same background/border/radius), sits
   directly below it in the Overview column. */
.trek-elevation-module{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:4px;
  padding:26px;
  margin-top:24px;
}
.trek-elevation-heading{
  font-family:'Fraunces', serif; font-weight:600; font-size:1.15rem;
  margin:0 0 16px;
}
.trek-elevation-list{ list-style:none; margin:0; padding:0; }
.trek-elevation-row{
  display:flex; align-items:center; gap:14px;
  padding:11px 0; border-bottom:1px solid var(--line);
}
.trek-elevation-row:last-child{ border-bottom:none; padding-bottom:0; }
.trek-elevation-icon{
  flex:none; width:32px; height:32px; border-radius:50%;
  background:var(--stone-deep); color:var(--rust-deep);
  display:flex; align-items:center; justify-content:center;
}
.trek-elevation-row.is-highpoint .trek-elevation-icon{ background:#F0997B; color:#4A1B0C; }
.trek-elevation-icon svg{ width:16px; height:16px; }
.trek-elevation-text{ flex:1; min-width:0; }
.trek-elevation-day{
  display:block; font-family:'JetBrains Mono', monospace; font-size:0.66rem;
  font-weight:700; text-transform:uppercase; letter-spacing:0.04em; color:#9a9186;
}
.trek-elevation-place{ font-size:0.92rem; font-weight:500; color:var(--charcoal); }
.trek-elevation-note{ font-style:italic; font-weight:400; color:#7a7166; }
.trek-elevation-value{
  flex:none; font-size:0.92rem; font-weight:600; color:var(--charcoal);
}
.trek-elevation-row.is-highpoint .trek-elevation-value{ color:var(--rust-deep); font-weight:700; }
@media (max-width:640px){
  .trek-elevation-row{ flex-wrap:wrap; }
  .trek-elevation-value{ margin-left:46px; }
}
/* Trek FAQ accordion — plain <details>/<summary>, no JS required */
.trek-faq-section{ padding:60px 6vw; background:var(--stone); }
.trek-faq-inner{ max-width:820px; margin:0 auto; }
.trek-faq-label{ display:block; color:var(--rust-deep); margin-bottom:10px; }
.trek-faq-title{ font-size:clamp(1.6rem,3vw,2.2rem); margin-bottom:28px; }
.trek-faq-list{ display:flex; flex-direction:column; gap:2px; }
.trek-faq-item{
  background:var(--paper); border:1px solid var(--line); border-radius:4px;
  padding:18px 22px;
}
.trek-faq-item + .trek-faq-item{ margin-top:10px; }
.trek-faq-item summary{
  cursor:pointer; font-family:'Work Sans',sans-serif; font-weight:500;
  font-size:1rem; color:var(--charcoal); list-style:none;
  display:flex; align-items:center; justify-content:space-between;
}
.trek-faq-item summary::-webkit-details-marker{ display:none; }
.trek-faq-item summary::after{
  content:'+'; font-size:1.3rem; color:var(--rust-deep); margin-left:16px; flex:none;
  transition:transform 0.2s;
}
.trek-faq-item[open] summary::after{ transform:rotate(45deg); }
.trek-faq-item p{ margin-top:14px; font-size:0.92rem; color:#4a423a; line-height:1.6; }
/* Sticky in-page section nav — jumps between whichever of Overview /
   Itinerary / Cost / Equipment / FAQ / Map a trek actually has content
   for (built in single-trek.php, only rendered when there's more than one
   section). Sits below the fixed site header once stuck; on mobile that
   header isn't fixed for non-home pages (see the 880px media query further
   down), so the nav only needs top:0 there. Active-section highlighting is
   handled by js/trek-section-nav.js (IntersectionObserver), which toggles
   .is-active on the matching link — no page reload, no anchor-jump flash. */
.trek-section-nav-sentinel{ height:1px; }
.trek-section-nav{
  position:sticky; top:74px; z-index:20;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  box-shadow:0 2px 10px rgba(43,37,32,0.05);
  transition:box-shadow 0.2s;
}
/* Toggled by js/trek-section-nav.js (via the sentinel above) once the nav has
   actually scrolled up under the site header and is stuck in place — a
   slightly stronger shadow so it visibly "docks" instead of just silently
   staying put. */
.trek-section-nav.is-stuck{ box-shadow:0 4px 16px rgba(43,37,32,0.1); }
.trek-section-nav-inner{
  max-width:1240px; margin:0 auto;
  display:flex; gap:4px; overflow-x:auto;
  padding:0 6vw;
  cursor:grab;
  scrollbar-width:none; -ms-overflow-style:none;
}
.trek-section-nav-inner::-webkit-scrollbar{ display:none; }
/* Click-and-drag horizontal scrolling (desktop mouse) — handy once there
   are more section tabs than fit the viewport width; touch already scrolls
   this natively. Toggled by js/trek-section-nav.js. */
.trek-section-nav-inner.is-dragging{ cursor:grabbing; scroll-behavior:auto; user-select:none; }
.trek-section-nav-inner.is-dragging .trek-section-nav-link{ pointer-events:none; }
.trek-section-nav-link{
  flex:none;
  padding:16px 14px 13px;
  font-family:'JetBrains Mono', monospace; font-size:0.72rem; font-weight:600;
  letter-spacing:0.03em; text-transform:uppercase;
  color:#7a7166;
  border-bottom:2px solid transparent;
  white-space:nowrap;
  transition:color 0.2s, border-color 0.2s;
}
.trek-section-nav-link:hover{ color:var(--rust-deep); }
.trek-section-nav-link.is-active{ color:var(--rust-deep); border-bottom-color:var(--rust-deep); }
@media (max-width:880px){
  .trek-section-nav{ top:0; }
  /* The 150px scroll-margin-top set on the section ids further down this
     file is sized for desktop: it clears both the fixed site header (also
     handled separately by html's own scroll-padding-top) and the sticky
     sub-nav docked below it. On mobile the site header isn't position:fixed
     on this page (see body:not(.home) above), so only the sub-nav itself
     (now docked at top:0, ~45px tall) needs clearing — the full desktop
     value left a large unexplained blank gap between the docked nav and
     whichever section a tab jumped to. */
  #overview, #itinerary, #cost, #equipment, #faq, #map,
  #food-accom, #difficulty, #safety, #gallery, #reviews{ scroll-margin-top:60px; }
}
/* Overview — the main post editor content, given a proper heading + anchor
   instead of just starting mid-page with no label. */
.trek-overview-label{ display:block; margin-bottom:10px; }
.trek-overview-heading{ font-size:clamp(1.5rem,2.6vw,1.9rem); margin-bottom:18px; }
/* Itinerary — a day-by-day accordion, same <details>/<summary> convention
   as the FAQ list (appropriate here too: some treks run 20-30 days, an
   accordion keeps the page scannable instead of dumping all of it at once). */
.trek-itinerary-section{ padding:60px 6vw; background:var(--stone); }
.trek-itinerary-inner{ max-width:820px; margin:0 auto; }
.trek-itinerary-label{ display:block; color:var(--rust-deep); margin-bottom:10px; }
.trek-itinerary-heading{ font-size:clamp(1.6rem,3vw,2.2rem); margin-bottom:28px; }
.trek-itinerary-list{ display:flex; flex-direction:column; gap:10px; }
.trek-itinerary-item{
  background:var(--paper); border:1px solid var(--line); border-radius:4px;
  padding:18px 22px;
}
.trek-itinerary-item summary{
  cursor:pointer; list-style:none;
  display:flex; align-items:baseline; gap:12px;
}
.trek-itinerary-item summary::-webkit-details-marker{ display:none; }
/* list-style:none above (like the FAQ accordion) removes the browser's own
   disclosure triangle in every browser, so without a replacement there was
   no visible sign these rows expand at all — same +/× icon the FAQ
   accordion already uses, for consistency. */
.trek-itinerary-item summary::after{
  content:'+'; font-size:1.3rem; color:var(--rust-deep); margin-left:auto; flex:none;
  transition:transform 0.2s;
}
.trek-itinerary-item[open] summary::after{ transform:rotate(45deg); }
.trek-itinerary-day{
  flex:none;
  font-family:'JetBrains Mono', monospace; font-size:0.7rem; font-weight:600;
  text-transform:uppercase; letter-spacing:0.03em; color:var(--rust-deep);
}
.trek-itinerary-item-title{
  font-family:'Work Sans',sans-serif; font-weight:500; font-size:1rem; color:var(--charcoal);
}
.trek-itinerary-item p{ margin-top:14px; font-size:0.92rem; color:#4a423a; line-height:1.6; }
/* Cost Includes / Excludes — two simple checklist cards side by side, same
   card-with-rows convention as .trek-docs-module. */
.trek-cost-section{ padding:60px 6vw; background:var(--stone); }
.trek-cost-inner{ max-width:1240px; margin:0 auto; }
.trek-cost-label{ display:block; color:var(--rust-deep); margin-bottom:10px; }
.trek-cost-heading{ font-size:clamp(1.6rem,3vw,2.2rem); margin-bottom:28px; }
.trek-cost-columns{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.trek-cost-column{
  background:var(--paper); border:1px solid var(--line); border-radius:6px;
  padding:24px 26px;
}
.trek-cost-column-title{ font-size:1.05rem; margin:0 0 14px; }
.trek-cost-list{ display:flex; flex-direction:column; }
.trek-cost-item{
  display:flex; align-items:flex-start; gap:12px;
  padding:10px 0; border-top:1px solid var(--line);
  font-size:0.92rem; color:var(--charcoal); line-height:1.5;
}
.trek-cost-item:first-child{ border-top:none; padding-top:0; }
.trek-cost-icon{
  flex:none; width:20px; height:20px; margin-top:1px;
  border-radius:50%; display:flex; align-items:center; justify-content:center;
}
.trek-cost-icon svg{ width:12px; height:12px; }
.trek-cost-item--include .trek-cost-icon{ background:var(--rust-deep); color:#fff; }
.trek-cost-item--exclude .trek-cost-icon{ background:var(--line); color:#7a7166; }
/* Equipment / Gear — reuses .trek-highlights-grid / .trek-highlight-item /
   .trek-highlight-check as-is (identical checklist look), just its own
   section wrapper for spacing and per-trip-type background theming. */
.trek-gear-section{ padding:60px 6vw; background:var(--stone); }
.trek-gear-inner{ max-width:1240px; margin:0 auto; }
.trek-gear-label{ display:block; color:var(--rust-deep); margin-bottom:12px; }
.trek-gear-heading{ font-size:clamp(1.9rem, 3.6vw, 2.7rem); margin-bottom:32px; }
/* One group per assigned Packing List. The group title/intro are only
   needed when a trek has more than one list checked (single-trek.php skips
   the title otherwise), but the spacing rules apply either way. */
.trek-gear-group{ margin-bottom:36px; }
.trek-gear-group:last-child{ margin-bottom:0; }
.trek-gear-group-title{ font-size:1.15rem; margin-bottom:6px; color:var(--charcoal); }
.trek-gear-group-intro{ font-size:0.9rem; color:#6b6154; margin-bottom:16px; max-width:640px; }

/* ---- Packing Checklist — categorized cards with live counters, search,
   reset, and a print-only "download". Interactivity lives in main.js
   (.js-packing-*); everything here is presentation plus the [hidden]
   overrides those toggles need (author display rules otherwise beat the
   browser's own [hidden]{display:none} — see the review-form fix earlier
   in this file for the same gotcha). ---- */
.trek-packing-toolbar{
  display:flex; align-items:flex-end; justify-content:space-between; gap:20px 30px;
  flex-wrap:wrap; margin-bottom:30px;
}
.trek-packing-toolbar .trek-gear-heading{ margin-bottom:0; }
.trek-packing-toolbar-controls{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.trek-packing-overall-count{
  font-family:'JetBrains Mono', monospace; font-size:0.72rem; font-weight:700;
  text-transform:uppercase; letter-spacing:0.04em; color:var(--rust-deep);
  background:#fff; border:1px solid var(--line); border-radius:999px; padding:9px 16px;
  white-space:nowrap;
}
.trek-packing-search{
  position:relative; display:flex; align-items:center;
}
.trek-packing-search svg{
  position:absolute; left:13px; width:15px; height:15px; color:#9a9186; pointer-events:none;
}
.trek-packing-search input{
  width:200px; background:#fff; border:1px solid var(--line); border-radius:999px;
  padding:10px 14px 10px 36px; font-size:0.82rem; color:var(--charcoal);
}
.trek-packing-search input::placeholder{ color:#9a9186; }
.trek-packing-reset-btn{
  background:transparent; border:1.5px solid var(--line); color:#6b6154;
  padding:10px 18px; font-size:0.8rem;
}
.trek-packing-reset-btn:hover{ border-color:var(--rust-deep); color:var(--rust-deep); }
.trek-packing-reset-btn svg, .trek-packing-download-btn svg{ width:15px; height:15px; }
.trek-packing-download-btn{ padding:10px 20px; font-size:0.8rem; }

.trek-packing-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:16px;
}
.trek-packing-card{
  background:#fff; border:1px solid var(--line); border-radius:10px;
  padding:18px 20px; box-shadow:0 2px 10px rgba(43,37,32,0.05);
}
.trek-packing-card[hidden]{ display:none !important; }
.trek-packing-card-head{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.trek-packing-card-icon{
  flex:none; width:30px; height:30px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.trek-packing-card-icon svg{ width:16px; height:16px; }
.trek-packing-card-title{ flex:1; font-weight:600; font-size:0.94rem; color:var(--charcoal); }
.trek-packing-card-count{
  font-family:'JetBrains Mono', monospace; font-size:0.66rem; font-weight:700;
  color:#9a9186; background:var(--stone); border-radius:999px; padding:3px 9px; white-space:nowrap;
}
.trek-packing-card-items{ display:flex; flex-direction:column; }
.trek-packing-item{
  display:flex; align-items:flex-start; gap:10px; cursor:pointer;
  padding:6px 0; font-size:0.86rem; color:var(--charcoal); line-height:1.4;
}
.trek-packing-item[hidden]{ display:none !important; }
.trek-packing-item input[type="checkbox"]{
  flex:none; width:17px; height:17px; margin-top:1px; accent-color:var(--rust-deep); cursor:pointer;
}
.trek-packing-item.is-packed{ color:#9a9186; text-decoration:line-through; }

@media (max-width:880px){
  .trek-itinerary-section, .trek-cost-section, .trek-gear-section{ padding:44px 6vw; }
  .trek-cost-columns{ grid-template-columns:1fr; }
  .trek-packing-toolbar{ flex-direction:column; align-items:stretch; }
  .trek-packing-toolbar-controls{ justify-content:space-between; }
  .trek-packing-search input{ width:100%; }
  .trek-packing-grid{ grid-template-columns:1fr; }
}

/* Download = print, styled to show only the checklist. */
@media print{
  body *{ visibility:hidden; }
  #equipment, #equipment *{ visibility:visible; }
  #equipment{ position:absolute; left:0; top:0; width:100%; }
  .trek-packing-search, .trek-packing-reset-btn, .trek-packing-download-btn{ display:none !important; }
  .trek-packing-grid{ grid-template-columns:1fr 1fr !important; }
  .trek-packing-card{ break-inside:avoid; box-shadow:none; }
}
/* Anchor-jump clearance for the section nav — these ids are the nav's
   scroll targets. scroll-margin-top (per-element) stacks with html's own
   scroll-padding-top (the fixed-header allowance, set once near the top of
   this file) rather than replacing it, so this only needs to cover the
   extra space the sticky sub-nav itself takes up, not the header too.
   #food-accom, #difficulty, #safety, #gallery and #reviews are also real
   .trek-section-nav-link targets on single-trek.php (see the section ids
   there) but were missing from this list — those five tabs got no extra
   clearance at all and could land partly under the sticky nav. */
#overview, #itinerary, #cost, #equipment, #faq, #map,
#food-accom, #difficulty, #safety, #gallery, #reviews{ scroll-margin-top:150px; }
/* Guide Fee Per Day — per-trek selector, shown right after the price card */
.trek-guide-fee-select-module{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:4px;
  padding:26px;
}
/* Softer, faded "feature" treatment — matching the site's stone/paper palette
   instead of the previous dark charcoal look */
.trek-guide-fee-feature{
  background:linear-gradient(160deg, var(--paper) 0%, var(--stone) 100%);
  border:1px solid var(--line);
  border-radius:8px;
  padding:32px 28px;
  color:var(--charcoal);
  position:relative;
  overflow:hidden;
}
.trek-guide-fee-feature::before{
  content:"";
  position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--saffron), var(--rust-deep));
}
.trek-guide-fee-eyebrow{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.trek-guide-fee-eyebrow .rule{ width:28px; height:1px; background:var(--rust-deep); }
.trek-guide-fee-eyebrow .mono{ color:var(--rust-deep); font-size:0.68rem; }
.trek-guide-fee-feature h3{
  font-family:'Fraunces', serif; font-weight:600;
  font-size:1.5rem; line-height:1.25;
  color:var(--charcoal);
  margin:0 0 10px;
}
.trek-guide-fee-feature-sub{
  font-size:0.86rem; line-height:1.5;
  color:#7a7166;
  margin:0 0 22px;
}
.trek-guide-fee-feature .trek-guide-fee-dropdown{
  border:1px solid var(--line);
  background-color:#fff;
  color:var(--charcoal);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B2520' stroke-width='1.8'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:16px;
}
.trek-guide-fee-feature .trek-guide-fee-dropdown option{ color:#241c10; }
.trek-guide-fee-feature .trek-guide-fee-result{ border-top:1px solid var(--line); }
.trek-guide-fee-feature .trek-guide-fee-result-name{ color:var(--charcoal); }
.trek-guide-fee-feature .trek-guide-fee-result-desc{ color:#7a7166; }
.trek-guide-fee-feature .trek-guide-fee-result-price{
  color:var(--rust-deep);
  font-size:1.55rem;
}
.trek-guide-fee-feature .trek-guide-fee-result-price small{ color:#9a9186; }
.trek-guide-fee-feature .trek-guide-fee-book-btn{
  background:var(--saffron);
  color:#241c10;
  border:none;
}
.trek-guide-fee-feature .trek-guide-fee-book-btn:hover{ background:#e9a83f; }
.trek-guide-fee-dropdown{
  width:100%;
  padding:13px 16px;
  border:1px solid var(--line);
  border-radius:4px;
  background:#fff;
  font-family:inherit; font-size:0.9rem; color:var(--charcoal);
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a7166' stroke-width='1.8'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:16px;
}
.trek-guide-fee-result{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid var(--line);
}
.trek-guide-fee-result-row{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  margin-bottom:16px;
}
.trek-guide-fee-result-name{ display:block; font-weight:600; color:var(--charcoal); font-size:0.96rem; }
.trek-guide-fee-result-desc{ display:block; font-size:0.82rem; color:#7a7166; margin-top:4px; }
.trek-guide-fee-result-price{
  font-family:'Fraunces', serif; font-weight:600; font-size:1.3rem;
  color:var(--rust-deep); white-space:nowrap; flex:none;
}
.trek-guide-fee-result-price small{
  font-family:'JetBrains Mono', monospace; font-weight:400; font-size:0.6rem;
  text-transform:uppercase; letter-spacing:0.04em; color:#7a7166; margin-left:3px;
}
.trek-guide-fee-book-btn{ width:100%; justify-content:center; color:#241c10; }
.trek-docs-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.trek-docs-list a{
  display:flex; align-items:center; gap:12px;
  padding:12px 14px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:4px;
  font-size:0.88rem; color:var(--charcoal); font-weight:500;
  transition:border-color 0.2s, background 0.2s;
}
.trek-docs-list a:hover{ border-color:var(--rust-deep); background:var(--stone); }
.trek-doc-icon{ flex:none; width:20px; height:20px; color:var(--rust-deep); }
.trek-doc-icon svg{ width:100%; height:100%; }
.trek-docs-list a span:nth-child(2){ flex:1; }
.trek-doc-arrow{ color:var(--rust-deep); font-size:0.9rem; }
/* Trip Highlights — its own full-width section directly under the hero
   (before the article/sidebar grid even starts), not a card buried inside
   the article body. Section sits on --stone like the FAQ section below it;
   each highlight is a --paper card so the checklist text has real
   contrast against the section behind it, matching the stone-section/
   paper-card pattern used everywhere else on this page (FAQ items, the
   Quick Facts box). Heading gets the same eyebrow + serif-heading
   treatment as the FAQ section so it reads as a real section, not a list. */
.trek-highlights-section{ padding:48px 6vw 60px; background:var(--stone); }
.trek-highlights-inner{ max-width:1240px; margin:0 auto; }
.trek-highlights-label{ display:block; color:var(--rust-deep); margin-bottom:12px; }
.trek-highlights-heading{ font-size:clamp(1.9rem, 3.6vw, 2.7rem); margin-bottom:32px; }
.trek-highlights-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:16px 20px;
}
.trek-highlight-item{
  display:flex; align-items:flex-start; gap:14px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:6px;
  padding:18px 20px;
  box-shadow:0 2px 10px rgba(43,37,32,0.05);
}
.trek-highlight-check{
  flex:none; width:24px; height:24px; margin-top:1px;
  border-radius:50%;
  background:var(--rust-deep);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
}
.trek-highlight-check svg{ width:14px; height:14px; }
.trek-highlight-item span:last-child{
  font-size:0.96rem; color:var(--charcoal); line-height:1.55;
}
/* Tour Highlights and Trek Trip Highlights only: a plain, un-badged icon
   slot (whatever single character/emoji is typed into the admin Icon
   field) instead of the fixed red checkmark circle above — used only
   when an icon was entered, see single-tour.php / single-trek.php.
   "What to Bring" keeps the checkmark as before; this class is never
   applied there. Two identical rules (one per post type) rather than one
   shared class, matching this theme's existing .tour-* / .trek-*
   parallel-naming convention. */
.tour-highlight-icon,
.trek-highlight-icon{
  flex:none; font-size:1.15rem; line-height:1.55; margin-top:1px;
}
@media (max-width:880px){
  .trek-highlights-section{ padding:48px 6vw 44px; }
  .trek-highlights-grid{ grid-template-columns:1fr; }
}
/* ============================================================
   Trek hero — full-bleed featured photo starting at the very top of
   the page (sits directly under the fixed, translucent site header —
   same trick the homepage .hero already uses), no gap above it.
   Badges, title, lede and Quick Facts sit overlaid on the photo itself
   (white text over a darkened photo, bottom-anchored), matching the
   site's original hero treatment. Only the breadcrumb lives off the
   photo, in a thin band directly underneath it — per direct request
   (2026-09-06), the breadcrumb needed to be below the image while
   everything else stayed on it. Horizontal position of the on-photo
   text matches the header's own content wrap (max(5vw, centered
   1240px)); because that text block has its own max-width cap, the
   alignment is done with MARGIN, not padding — see the box-sizing
   lesson further up this file (the v4→v5 bug). Only rendered when the
   trek has a featured image; treks without one keep the original
   title block + classic breadcrumb further down.
   ============================================================ */
.trek-hero{ position:relative; }
/* IMPORTANT: .trek-hero-photo has no fixed height. Its height is set by
   .trek-hero-overlay below, which is a normal in-flow element (not
   absolutely positioned) with a min-height — so the photo always grows to
   fit however much overlay content a given trek has (badges + title + lede
   + a Quick Facts grid that can run to 11 items). A FIXED height here was
   tried first and was a real bug: whenever the overlay content was taller
   than the fixed height, flex's bottom-anchoring pushed the excess content
   above the photo's top edge, where `overflow:hidden` silently clipped it —
   the badges and most of the title vanished, and the sliver that remained
   visible bled up into the fixed site header above it. Do not reintroduce
   a fixed height here without also capping how much content can render in
   the overlay. */
.trek-hero-photo{ position:relative; overflow:hidden; background:var(--charcoal); }
.trek-hero-photo > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; z-index:0; }
/* Darkening gradient so white text stays readable against any photo. The
   previous version (2026-09-06) actually got LIGHTER between 0% and 38%
   (0.4 down to 0.32) before ramping darker toward the bottom — exactly the
   opacity dip sitting behind the badges/title, which is why a bright
   white-snow photo (e.g. Everest peaks) still washed out that text: the
   "fix" was there in the CSS but the gradient itself briefly undid it right
   where it mattered most. Now the tint only ever gets darker moving down
   the photo, never lighter, with a stronger floor at the very top where the
   badges/title sit and the steepest ramp toward the bottom where the Quick
   Facts bar needs the most contrast. */
.trek-hero-photo::before{
  content:''; position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg, rgba(20,16,12,0.55) 0%, rgba(20,16,12,0.5) 40%, rgba(20,16,12,0.85) 100%);
  pointer-events:none;
}
/* padding-top guarantees clearance under the fixed site header (~90px tall)
   no matter how much overlay content a trek has. The earlier min-height-only
   version fixed the clipping bug but not this: on a trek with a long enough
   Quick Facts list, the content's own height already exceeds min-height, so
   justify-content:flex-end has no spare room left to push it down with —
   content just starts filling from the very top of the photo, straight
   under the header. padding-top removes that dependency entirely: it's a
   hard floor under the content regardless of how tall the content is. Safe
   to use as padding here specifically because .trek-hero-overlay spans the
   full photo width with no max-width cap of its own (see the box-sizing
   lesson above for why that distinction matters). */
.trek-hero-overlay{
  position:relative; z-index:1;
  min-height:640px;
  display:flex; flex-direction:column; justify-content:flex-end;
  gap:24px;
  padding-top:150px;
  padding-bottom:5px;
}
/* Width-capped text column, aligned to the header's content wrap with
   MARGIN (this box already has its own max-width, so padding here would
   be the exact v4/v5 bug all over again at wide viewports). */
.trek-hero-text{
  width:100%;
  max-width:680px;
  margin-left:max(5vw, calc((100% - 1240px)/2));
}
/* Icon-led meta row — replaces the earlier three differently-colored
   button-like badges (Trip Type / Trip Grade / Location each its own solid
   pill), which read as visual clutter, a row of buttons rather than one
   piece of trip metadata. Same visual language as the Quick Facts bar
   (small icon + text, same neutral color), just compact and inline instead
   of stacked, with a plain bullet divider between items. No backgrounds —
   this reads directly off the photo. Trip Grade is the one exception: its
   icon and text pick up the grade's own color (from Appearance → Customize
   → Trip Grades) so the color-coding that mattered before isn't lost, it's
   just a text/icon tint now instead of a solid block. */
.trek-hero-meta{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  margin-bottom:20px;
}
.trek-hero-meta-item{ display:inline-flex; align-items:center; gap:7px; }
.trek-hero-meta-divider{ color:rgba(255,255,255,0.4); font-size:0.7rem; }
.trek-hero-meta-icon{
  display:inline-flex; flex:none; width:16px; height:16px;
  color:var(--saffron); opacity:0.9;
}
.trek-hero-meta-icon svg{ width:100%; height:100%; }
.trek-hero-meta-value{
  display:inline-flex; align-items:center; gap:4px;
  font-family:'JetBrains Mono', monospace; font-size:0.74rem; font-weight:700;
  letter-spacing:0.02em; text-transform:uppercase; color:#fff;
}
/* Small info icon next to a Trip Grade badge/value — a real <button> (not
   a span) so it's natively keyboard-operable. Clicking it opens the full
   "Our Trip Grading System" popup (#gradeSystemModal, see single-trek.php
   and the .js-grade-system-open handler in main.js); the title attribute
   stays too, as a harmless hover-only bonus for desktop. */
.trek-grade-info{
  position:relative;
  display:inline-flex; align-items:center; justify-content:center;
  width:14px; height:14px; margin-left:4px; vertical-align:-2px;
  border:none; background:none; padding:0; color:inherit; font:inherit;
  cursor:pointer; opacity:0.75; transition:opacity 0.2s;
}
.trek-grade-info:hover, .trek-grade-info:focus{ opacity:1; outline:none; }
.trek-grade-info svg{ width:100%; height:100%; }
/* Selector is .trek-hero .trek-hero-title (not just .trek-hero-title) on
   purpose — this needed to out-specificity `body.trek-type-X h1` below,
   which also matches this element (it's an h1) and was silently winning
   over a bare single-class selector, leaving the hero title recolored to
   each trip type's dark text color instead of staying white on the photo. */
.trek-hero .trek-hero-title{
  font-family:'Fraunces', serif; font-weight:600;
  font-size:clamp(2.1rem, 4.2vw, 3.2rem); line-height:1.04; margin-bottom:16px;
  text-transform:uppercase;
  color:#fff;
  text-shadow:0 2px 18px rgba(0,0,0,0.35);
}
.trek-hero-lede{ color:rgba(255,255,255,0.85); font-size:0.98rem; max-width:640px; margin-bottom:8px; }
/* Quick Facts — a full-width bar at the very bottom of the hero photo,
   aligned to the same 1240px content wrap as the header/badges/title (via
   MARGIN, not padding, since this box already has its own max-width cap —
   see the box-sizing lesson above). It's the last child of
   .trek-hero-overlay, so the overlay's own bottom-anchoring is what pins it
   to the bottom edge of the photo.
   A fixed 4-column CSS grid, not flex + justify-content:space-between —
   the flex version (until 2026-09-07) stretched leftover space evenly
   across whichever row didn't divide evenly (a trek with 11 facts wraps to
   a 7-item row then a 4-item row), so the 4 short-row items ended up pushed
   far apart from each other while the 7-item row above sat much tighter —
   same content, wildly different spacing row to row, reading as "scattered"
   rather than a tidy grid. A fixed column count keeps every item's spacing
   identical regardless of how many rows the facts wrap into. */
.trek-hero-facts-bar{
  width:100%;
  max-width:1240px;
  margin-left:max(5vw, calc((100% - 1240px)/2));
}
.trek-hero-facts-title{ display:block; color:var(--saffron); margin-bottom:16px; }
.trek-hero-facts-row{ display:grid; grid-template-columns:repeat(4, 1fr); gap:24px 28px; }
.trek-hero-fact{ display:flex; align-items:flex-start; gap:12px; min-width:0; }
.trek-hero-fact-icon{ flex:none; width:26px; height:26px; color:var(--saffron); opacity:0.9; }
.trek-hero-fact-icon svg{ width:100%; height:100%; }
.trek-hero-fact-label{ display:block; font-size:0.72rem; color:rgba(255,255,255,0.65); margin-bottom:2px; }
.trek-hero-fact-value{ display:block; font-family:'Work Sans', sans-serif; font-weight:600; font-size:0.92rem; color:#fff; }
/* Breadcrumb band — sits directly below the photo, not on it. Plain and
   understated, same muted-text convention as the classic (no-hero)
   breadcrumb elsewhere on the site; also picked up by the per-trip-type
   background-swap below, same as that classic breadcrumb. */
/* border-bottom matters here: every per-trip-type color override further
   down this file paints .trek-hero-below and .trek-highlights-section (the
   "Trip Highlights" section right after it) the exact same background
   color, so without a seam between them the breadcrumb strip and the sizable
   64px top padding of the section below it visually merge into one big
   undifferentiated block — reading as a large empty gap even though it's
   just normal section padding. The border gives the eye a clear stopping
   point at the end of the breadcrumb strip instead. */
.trek-hero-below{ background:var(--stone); padding:16px 6vw; border-bottom:1px solid var(--line); }
.trek-hero-below-inner{ max-width:1240px; margin:0 auto; }
.trek-hero-breadcrumb{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  font-family:'JetBrains Mono', monospace; font-size:0.72rem;
  text-transform:uppercase; letter-spacing:0.04em;
  color:#7a7166;
}
.trek-hero-breadcrumb a{ color:#7a7166; transition:color 0.2s; }
.trek-hero-breadcrumb a:hover{ color:var(--rust-deep); }
.trek-hero-breadcrumb .is-current{ color:var(--rust-deep); font-weight:600; }
.trek-hero-breadcrumb > span{ color:#b8ac9c; }
@media (max-width:880px){
  .trek-hero-overlay{ min-height:480px; padding-top:110px; }
  .trek-hero-facts-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px 16px; }
  .trek-hero-fact{ min-width:0; }
}
/* Full-width CTA banner — replaces the old narrow sidebar card */
.trek-cta-banner-section{ padding:60px 6vw; background:var(--paper); }
.trek-cta-banner{
  max-width:1240px; margin:0 auto;
  background:var(--charcoal);
  border-radius:8px;
  padding:42px 50px;
  display:flex; align-items:center; gap:40px; flex-wrap:wrap;
  color:var(--paper);
}
.trek-cta-banner h3{
  font-family:'Fraunces', serif; font-weight:500; font-size:1.7rem; color:#fff; margin:8px 0 8px;
}
.trek-cta-banner p{ color:rgba(246,241,230,0.7); font-size:0.92rem; max-width:380px; }
.trek-cta-banner-stats{
  display:flex; gap:30px; margin-left:auto;
}
.trek-cta-banner-stats div{ text-align:center; }
.trek-cta-banner-stats b{
  display:block; font-family:'Fraunces', serif; font-size:1.3rem; color:var(--saffron);
}
.trek-cta-banner-stats span{
  font-family:'JetBrains Mono', monospace; font-size:0.62rem;
  text-transform:uppercase; letter-spacing:0.05em; color:rgba(246,241,230,0.6);
}
.trek-promo-section{ padding:0 6vw 110px; background:var(--paper); }
.trek-promo-section .trek-expert-card{ max-width:1240px; margin:0 auto; }
/* Trip-type themed page backgrounds — one cohesive sage-green family across
   the whole page, so content boxes feel like part of the page rather than
   separate cards. Subtle shadow for depth instead of a contrasting border. */
body.trek-type-jungle-safari .trek-article-section,
body.trek-type-jungle-safari .trek-highlights-section,
body.trek-type-jungle-safari .trek-itinerary-section,
body.trek-type-jungle-safari .trek-cost-section,
body.trek-type-jungle-safari .trek-gear-section,
body.trek-type-jungle-safari .trek-cta-banner-section,
body.trek-type-jungle-safari .trek-faq-section,
body.trek-type-jungle-safari .trek-promo-section,
body.trek-type-jungle-safari .trek-breadcrumb,
body.trek-type-jungle-safari .trek-hero-below,
body.trek-type-jungle-safari .trek-promo-band-section,
body.trek-type-jungle-safari .trek-split-section,
body.trek-type-jungle-safari .trek-season-section,
body.trek-type-jungle-safari .trek-altitude-section,
body.trek-type-jungle-safari .trek-full-desc-section,
body.trek-type-jungle-safari .trek-guide-hire-section,
body.trek-type-jungle-safari .trek-safety-section,
body.trek-type-jungle-safari .trek-gallery-section,
body.trek-type-jungle-safari .trek-reviews-section,
body.trek-type-jungle-safari .site-breadcrumb{
  background:#D6E2CE;
}
body.trek-type-jungle-safari .trek-highlight-item,
body.trek-type-jungle-safari .trek-packing-card,
body.trek-type-jungle-safari .trek-itinerary-item,
body.trek-type-jungle-safari .trek-cost-column,
body.trek-type-jungle-safari .trek-docs-module,
body.trek-type-jungle-safari .trek-faq-item,
body.trek-type-jungle-safari .trek-trip-info-table,
body.trek-type-jungle-safari .trek-full-desc-card,
body.trek-type-jungle-safari .trek-altitude-chart-card,
body.trek-type-jungle-safari .trek-guide-hire-card,
body.trek-type-jungle-safari .trek-safety-card,
body.trek-type-jungle-safari .trek-reviews-empty,
body.trek-type-jungle-safari .trek-review-card,
body.trek-type-jungle-safari .trek-review-form-card{
  background:#E3ECDB;
  border-color:transparent;
  box-shadow:0 2px 14px rgba(61,84,50,0.08);
  color:#3d4a34;
}
body.trek-type-jungle-safari .mono{ color:#4c6a3f; }
body.trek-type-jungle-safari h1,
body.trek-type-jungle-safari h2,
body.trek-type-jungle-safari h3{ color:#33472b; }
/* Adventure Trek — warm amber/gold, echoing the site's saffron accent but
   distinct enough to read as its own trip-type identity. */
body.trek-type-adventure .trek-article-section,
body.trek-type-adventure .trek-highlights-section,
body.trek-type-adventure .trek-itinerary-section,
body.trek-type-adventure .trek-cost-section,
body.trek-type-adventure .trek-gear-section,
body.trek-type-adventure .trek-cta-banner-section,
body.trek-type-adventure .trek-faq-section,
body.trek-type-adventure .trek-promo-section,
body.trek-type-adventure .trek-breadcrumb,
body.trek-type-adventure .trek-hero-below,
body.trek-type-adventure .trek-promo-band-section,
body.trek-type-adventure .trek-split-section,
body.trek-type-adventure .trek-season-section,
body.trek-type-adventure .trek-altitude-section,
body.trek-type-adventure .trek-full-desc-section,
body.trek-type-adventure .trek-guide-hire-section,
body.trek-type-adventure .trek-safety-section,
body.trek-type-adventure .trek-gallery-section,
body.trek-type-adventure .trek-reviews-section,
body.trek-type-adventure .site-breadcrumb{
  background:#FAF3E4;
}
body.trek-type-adventure .trek-highlight-item,
body.trek-type-adventure .trek-packing-card,
body.trek-type-adventure .trek-itinerary-item,
body.trek-type-adventure .trek-cost-column,
body.trek-type-adventure .trek-docs-module,
body.trek-type-adventure .trek-faq-item,
body.trek-type-adventure .trek-trip-info-table,
body.trek-type-adventure .trek-full-desc-card,
body.trek-type-adventure .trek-altitude-chart-card,
body.trek-type-adventure .trek-guide-hire-card,
body.trek-type-adventure .trek-safety-card,
body.trek-type-adventure .trek-reviews-empty,
body.trek-type-adventure .trek-review-card,
body.trek-type-adventure .trek-review-form-card{
  background:#FDFAF2;
  border-color:transparent;
  box-shadow:0 2px 14px rgba(122,90,31,0.1);
  color:#4a3d1f;
}
body.trek-type-adventure .mono{ color:#8a6a24; }
body.trek-type-adventure h1,
body.trek-type-adventure h2,
body.trek-type-adventure h3{ color:#5c4a1f; }
/* Soft Trek — soft dusty blue, calm and gentle to match the "beginner
   friendly, lower altitude" character of these treks. */
body.trek-type-soft .trek-article-section,
body.trek-type-soft .trek-highlights-section,
body.trek-type-soft .trek-itinerary-section,
body.trek-type-soft .trek-cost-section,
body.trek-type-soft .trek-gear-section,
body.trek-type-soft .trek-cta-banner-section,
body.trek-type-soft .trek-faq-section,
body.trek-type-soft .trek-promo-section,
body.trek-type-soft .trek-breadcrumb,
body.trek-type-soft .trek-hero-below,
body.trek-type-soft .trek-promo-band-section,
body.trek-type-soft .trek-split-section,
body.trek-type-soft .trek-season-section,
body.trek-type-soft .trek-altitude-section,
body.trek-type-soft .trek-full-desc-section,
body.trek-type-soft .trek-guide-hire-section,
body.trek-type-soft .trek-safety-section,
body.trek-type-soft .trek-gallery-section,
body.trek-type-soft .trek-reviews-section,
body.trek-type-soft .site-breadcrumb{
  background:#F0F5F8;
}
body.trek-type-soft .trek-highlight-item,
body.trek-type-soft .trek-packing-card,
body.trek-type-soft .trek-itinerary-item,
body.trek-type-soft .trek-cost-column,
body.trek-type-soft .trek-docs-module,
body.trek-type-soft .trek-faq-item,
body.trek-type-soft .trek-trip-info-table,
body.trek-type-soft .trek-full-desc-card,
body.trek-type-soft .trek-altitude-chart-card,
body.trek-type-soft .trek-guide-hire-card,
body.trek-type-soft .trek-safety-card,
body.trek-type-soft .trek-reviews-empty,
body.trek-type-soft .trek-review-card,
body.trek-type-soft .trek-review-form-card{
  background:#F9FBFC;
  border-color:transparent;
  box-shadow:0 2px 14px rgba(51,84,107,0.08);
  color:#2e4655;
}
body.trek-type-soft .mono{ color:#3d647d; }
body.trek-type-soft h1,
body.trek-type-soft h2,
body.trek-type-soft h3{ color:#233846; }
/* Day Hike — warm blush/rose, based on the requested #FBEEEE. */
body.trek-type-dayhike .trek-article-section,
body.trek-type-dayhike .trek-highlights-section,
body.trek-type-dayhike .trek-itinerary-section,
body.trek-type-dayhike .trek-cost-section,
body.trek-type-dayhike .trek-gear-section,
body.trek-type-dayhike .trek-cta-banner-section,
body.trek-type-dayhike .trek-faq-section,
body.trek-type-dayhike .trek-promo-section,
body.trek-type-dayhike .trek-breadcrumb,
body.trek-type-dayhike .trek-hero-below,
body.trek-type-dayhike .trek-promo-band-section,
body.trek-type-dayhike .trek-split-section,
body.trek-type-dayhike .trek-season-section,
body.trek-type-dayhike .trek-altitude-section,
body.trek-type-dayhike .trek-full-desc-section,
body.trek-type-dayhike .trek-guide-hire-section,
body.trek-type-dayhike .trek-safety-section,
body.trek-type-dayhike .trek-gallery-section,
body.trek-type-dayhike .trek-reviews-section,
body.trek-type-dayhike .site-breadcrumb{
  background:#FBEEEE;
}
body.trek-type-dayhike .trek-highlight-item,
body.trek-type-dayhike .trek-packing-card,
body.trek-type-dayhike .trek-itinerary-item,
body.trek-type-dayhike .trek-cost-column,
body.trek-type-dayhike .trek-docs-module,
body.trek-type-dayhike .trek-faq-item,
body.trek-type-dayhike .trek-trip-info-table,
body.trek-type-dayhike .trek-full-desc-card,
body.trek-type-dayhike .trek-altitude-chart-card,
body.trek-type-dayhike .trek-guide-hire-card,
body.trek-type-dayhike .trek-safety-card,
body.trek-type-dayhike .trek-reviews-empty,
body.trek-type-dayhike .trek-review-card,
body.trek-type-dayhike .trek-review-form-card{
  background:#FDF6F6;
  border-color:transparent;
  box-shadow:0 2px 14px rgba(122,58,58,0.08);
  color:#5c3838;
}
body.trek-type-dayhike .mono{ color:#a35a5a; }
body.trek-type-dayhike h1,
body.trek-type-dayhike h2,
body.trek-type-dayhike h3{ color:#4a2c2c; }
/* Expert card — calm, on-brand palette */
.trek-expert-card{
  background:var(--stone);
  border:1px solid var(--line);
  border-left:4px solid var(--rust-deep);
  border-radius:6px;
  padding:34px;
  position:relative;
}
.trek-expert-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.trek-expert-head h3{
  font-family:'Fraunces', serif; font-weight:500;
  font-size:1.25rem; color:var(--charcoal); max-width:340px; margin-top:6px;
}
.trek-expert-photo{
  width:60px; height:60px; border-radius:50%;
  object-fit:cover; flex:none;
  border:2px solid #fff;
  box-shadow:0 2px 8px rgba(43,37,32,0.15);
}
.trek-expert-name{
  display:block; margin-top:16px;
  font-weight:600; font-size:0.85rem; color:var(--charcoal);
}
.trek-expert-line{
  margin-top:8px; font-size:0.88rem; color:#4a423a;
}
.trek-expert-line a{ color:var(--rust-deep); text-decoration:underline; }
.trek-expert-buttons{
  display:flex; gap:12px; flex-wrap:wrap;
  margin-top:24px;
}
.trek-expert-btn{
  padding:11px 20px; border-radius:999px;
  font-size:0.78rem; font-weight:600;
  letter-spacing:0.02em;
  transition:opacity 0.2s, background 0.2s;
}
.trek-expert-btn-primary{ background:var(--rust); color:#fff; }
.trek-expert-btn-primary:hover{ background:var(--rust-deep); }
.trek-expert-btn-secondary{ background:var(--saffron); color:#241c10; }
.trek-expert-btn-secondary:hover{ background:#c98933; }
/* Generic page template (Contact, etc.) */
.page-hero{
  background:var(--charcoal);
  padding:170px 6vw 70px;
  color:#fff;
}
.page-hero-inner{max-width:1240px; margin:0 auto;}
.page-hero h1{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:clamp(2.4rem, 5vw, 3.6rem);
  color:#fff;
}
.page-content{padding:70px 6vw 110px; background:var(--paper);}
.page-content-inner{max-width:760px; margin:0 auto;}
.page-content-inner p{margin-bottom:18px; color:#4a423a; line-height:1.7;}
.page-content-inner:has(.rcf-wrap){max-width:1000px;}
.page-content-inner .rcf-wrap{max-width:100%; margin:20px auto 0;}
/* Thank-you page */
.thankyou-hero{
  min-height:100vh;
  display:flex; align-items:center; justify-content:center;
  padding:160px 6vw 100px;
  background:
    linear-gradient(160deg, rgba(15,13,11,0.92), rgba(43,37,32,0.96)),
    var(--charcoal);
  color:var(--paper);
  text-align:center;
}
.thankyou-card{max-width:640px;}
/* Light rotation (Ivory/Sage/Blush/Gold) for the dedicated Thank You page —
   the dark hero above stays as-is for the "classic" pick; this variant
   swaps the full-bleed dark background for the site's normal light page
   background, with .thankyou-card additionally carrying .rujan-success-
   card so it becomes one of the four themed cards instead of loose text. */
.thankyou-hero.thankyou-hero-light{
  background:var(--stone);
  color:var(--charcoal);
}
.thankyou-title{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:clamp(2.2rem, 5vw, 3.4rem);
  line-height:1.12;
  margin-top:26px;
  color:#fff;
}
.thankyou-title em{font-style:normal; color:var(--saffron);}
.thankyou-lede{
  margin-top:22px;
  font-size:1.05rem;
  color:rgba(246,241,230,0.78);
  max-width:480px;
  margin-left:auto; margin-right:auto;
}
.thankyou-actions{
  display:flex; gap:18px; justify-content:center; flex-wrap:wrap;
  margin-top:10px;
}
.thankyou-meta{
  margin-top:54px; padding-top:26px;
  border-top:1px solid rgba(246,241,230,0.15);
}
.thankyou-meta .mono{color:var(--saffron); display:block; margin-bottom:10px;}
.thankyou-meta p{font-size:0.95rem; color:rgba(246,241,230,0.85);}
.thankyou-meta a{border-bottom:1px solid rgba(246,241,230,0.3);}
.thankyou-meta a:hover{border-color:var(--saffron); color:var(--saffron);}
/* Testimonials page — handwritten reviews */
.testimonials-section{ padding:110px 5vw 140px; }
.testimonials-section .section-head, .testimonials-section .testimonials{ max-width:1240px; margin-left:auto; margin-right:auto; }
.handwritten-head{ max-width:1240px; margin:60px auto 30px; }
.handwritten-head .mono{ color:var(--rust-deep); display:block; margin-bottom:10px; }
.handwritten-head h3{ font-family:'Fraunces', serif; font-weight:500; font-size:1.6rem; }
.handwritten-grid{
  max-width:1240px; margin:0 auto;
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}
.handwritten-card{
  background:#fff; border:1px solid var(--line); border-radius:6px;
  padding:14px 14px 16px; box-shadow:0 10px 30px rgba(43,37,32,0.08);
}
.handwritten-card img{
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  object-fit:contain !important;
  display:block;
  border-radius:3px;
}
.handwritten-card figcaption{
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
  margin-top:28px;
  padding:0 4px 8px;
}
.handwritten-card figcaption span{
  flex:1;
  line-height:1.4;
}
/* How I Guide — principles grid */
.about-principles-grid{
  display:grid; grid-template-columns:repeat(2, 1fr); gap:32px 40px; margin-top:20px;
}
.about-principle h3{
  font-family:'Fraunces', serif; font-weight:600; font-size:1.1rem;
  color:var(--charcoal); margin:0 0 8px;
}
.about-principle p{ font-size:0.92rem; line-height:1.6; color:#4a423a; margin:0; }
@media (max-width:780px){
  .about-principles-grid{ grid-template-columns:1fr; gap:26px; }
}

/* Featured photo break — full-bleed, no side padding */
.about-feature-photo{ margin:0; }
.about-feature-photo img{ width:100%; max-height:640px; object-fit:cover; display:block; }
.about-feature-photo figcaption{
  padding:14px 6vw; font-family:'JetBrains Mono', monospace; font-size:0.7rem;
  color:#7a7166; background:var(--paper); text-align:center;
}

/* Where I've Guided — region tag grid */
.about-regions-grid{ display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.about-region-tag{
  display:inline-flex; align-items:center;
  padding:10px 20px; border-radius:999px; border:1px solid var(--line);
  font-family:'JetBrains Mono', monospace; font-size:0.76rem; font-weight:600;
  color:var(--charcoal); text-decoration:none; background:#fff;
  transition:border-color 0.2s, background 0.2s;
}
.about-region-tag:hover{ border-color:var(--rust-deep); background:var(--stone); }

/* Client pull-quote — plain, no card chrome, large serif */
.about-pullquote-section{ padding:100px 6vw; background:var(--charcoal); }
.about-pullquote-inner{ max-width:760px; margin:0 auto; text-align:center; }
.about-pullquote{
  font-family:'Fraunces', serif; font-weight:500; font-style:italic;
  font-size:clamp(1.4rem, 3vw, 2rem); line-height:1.45; color:#fff;
  margin:0 0 20px; quotes:none;
}
.about-pullquote-cite{
  display:block; font-style:normal; font-family:'JetBrains Mono', monospace;
  font-size:0.74rem; letter-spacing:0.02em; color:rgba(246,241,230,0.6);
}

/* Closing CTA band */
.about-cta-band{ padding:90px 6vw; background:var(--stone); text-align:center; }
.about-cta-inner{ max-width:600px; margin:0 auto; }
.about-cta-inner h2{
  font-family:'Fraunces', serif; font-weight:600;
  font-size:clamp(1.7rem, 3.4vw, 2.3rem); color:var(--charcoal); margin:0 0 26px;
}
/* About page extras — carousel + blog grid */
.about-extra{ padding:90px 6vw; background:var(--paper); }
.about-extra.about-blog{ background:var(--stone); }
.about-extra-inner{ max-width:1240px; margin:0 auto; }
.about-carousel{ position:relative; max-width:760px; margin:0 auto; }
.about-carousel-frame{
  position:relative;
  overflow:hidden;
  border-radius:6px;
  background:var(--stone);
}
.about-carousel-slide{
  display:none;
}
a.about-carousel-slide{
  text-decoration:none;
  color:inherit;
  cursor:pointer;
}
.about-carousel-slide.is-active{
  display:block;
  animation:carousel-fade 0.4s ease;
}
@keyframes carousel-fade{
  from{ opacity:0; }
  to{ opacity:1; }
}
.about-carousel-slide img{
  width:100%;
  height:auto;
  max-height:80vh;
  object-fit:contain;
  display:block;
  margin:0 auto;
}
.about-carousel-btn{
  position:absolute; top:50%; transform:translateY(-50%);
  width:46px; height:46px; border-radius:50%;
  background:rgba(20,17,14,0.55); color:#fff; border:none;
  font-size:1.1rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background 0.2s;
}
.about-carousel-btn:hover{ background:rgba(20,17,14,0.85); }
.about-carousel-prev{ left:16px; }
.about-carousel-next{ right:16px; }
.about-carousel-caption{
  position:absolute; left:0; right:0; bottom:0;
  padding:14px 18px;
  background:linear-gradient(180deg, transparent, rgba(20,17,14,0.75));
  color:#fff;
  font-size:0.82rem;
  font-family:'Work Sans', sans-serif;
}
.about-carousel-info{ margin-top:18px; min-height:50px; }
.about-carousel-category{
  display:inline-block;
  font-family:'JetBrains Mono', monospace;
  font-size:0.68rem; text-transform:uppercase; letter-spacing:0.05em;
  color:var(--rust-deep);
  border:1px solid var(--rust-deep);
  border-radius:999px;
  padding:4px 12px;
  margin-bottom:8px;
}
.about-carousel-category:empty{ display:none; }
.about-carousel-description{
  font-size:0.92rem; color:#4a423a; line-height:1.6; margin:0;
}
.about-blog-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
}
.about-blog-card{
  display:block; background:#fff; border:1px solid var(--line); border-radius:6px; overflow:hidden;
  transition:box-shadow 0.2s;
}
.about-blog-card:hover{ box-shadow:0 14px 34px rgba(43,37,32,0.10); }
.about-blog-thumb{ aspect-ratio:16/10; overflow:hidden; }
.about-blog-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.about-blog-body{ padding:22px; }
.about-blog-body .mono{ color:var(--rust-deep); display:block; margin-bottom:8px; }
.about-blog-body h3{ font-size:1.1rem; margin-bottom:8px; }
.about-blog-body p{ font-size:0.88rem; color:#4a423a; line-height:1.6; }
.journal-read-more{
  display:inline-block;
  margin-top:10px;
  font-family:'JetBrains Mono', monospace;
  font-size:0.72rem;
  text-transform:uppercase;
  letter-spacing:0.04em;
  color:var(--rust-deep);
}
.about-blog-card:hover .journal-read-more{ color:var(--saffron); }
/* New footer — CTA banner, sitemap columns, contact info, subscribe form */
.site-footer-new{ background:#1c1712; }
.footer-cta{
  padding:2rem 5vw;
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap;
}
.footer-cta-title{ font-family:'Fraunces', serif; font-size:1.25rem; color:#F6F1E6; margin:0 0 4px; }
.footer-cta-sub{ font-size:0.82rem; color:rgba(246,241,230,0.6); margin:0; }
.footer-cta-btn{
  background:var(--saffron); color:#241c10; border-radius:999px;
  padding:11px 22px; font-size:0.85rem; font-weight:600; white-space:nowrap;
}
/* Outer layer: full-width background + padding (matches global "section" pattern) */
.footer-grid-outer{ padding:2.5rem 5vw 2rem; }
/* Inner layer: centered content box, NO padding of its own — exactly like .contact-grid */
.footer-grid{
  max-width:1240px; margin:0 auto;
  display:flex; flex-wrap:wrap; gap:2rem;
}
.footer-brand{ flex:1.6 1 220px; }
.footer-col{ flex:1 1 150px; }
.footer-col + .footer-col{
  padding-left:2rem;
}
.footer-col a, .footer-col span{
  display:block; font-size:0.82rem; color:rgba(246,241,230,0.75);
  text-decoration:none; margin-bottom:10px;
}
.footer-col-label{
  font-family:'JetBrains Mono', monospace; font-size:0.68rem; text-transform:uppercase;
  letter-spacing:0.06em; color:rgba(246,241,230,0.4); margin-bottom:14px;
}
.footer-social-links{ margin-top:10px; padding-top:10px; border-top:1px solid rgba(246,241,230,0.12); }
.footer-menu{ list-style:none; margin:0; padding:0; }
.footer-menu li{ margin:0; }
.footer-address{
  font-size:0.82rem; color:rgba(246,241,230,0.6);
  margin:14px 0 0;
}
.footer-social-icons{
  display:flex; align-items:center; gap:10px;
  margin-top:14px;
}
.footer-social-icons a{
  display:flex; align-items:center; justify-content:center;
  width:34px; height:34px;
  border:1px solid rgba(246,241,230,0.25);
  border-radius:50%;
  color:rgba(246,241,230,0.75);
  margin-bottom:0;
  transition:background 0.2s, color 0.2s, border-color 0.2s;
}
.footer-social-icons a svg{ width:16px; height:16px; }
.footer-social-icons a:hover{
  background:var(--saffron);
  border-color:var(--saffron);
  color:#241c10;
}
.footer-credential-link{
  display:flex !important; align-items:center; gap:8px;
  margin-bottom:10px;
}
.footer-credential-link svg{ width:15px; height:15px; flex-shrink:0; color:var(--saffron); }
.footer-credential-link span{ margin-bottom:0; }
.footer-credential-link:hover span{ color:#F6F1E6; }
.footer-brand-name{ font-family:'Fraunces', serif; font-size:1.15rem; color:#F6F1E6; margin:0 0 6px; }
.footer-brand-tagline{ font-family:'JetBrains Mono', monospace; font-size:0.68rem; text-transform:uppercase; color:var(--saffron); margin:0 0 14px; }
.footer-brand-desc{ font-size:0.82rem; color:rgba(246,241,230,0.55); line-height:1.6; margin:0; }
.footer-subscribe-title{ font-family:'Fraunces', serif; font-size:1rem; color:#F6F1E6; margin:0 0 4px; }
.footer-subscribe-desc{ font-size:0.78rem; color:rgba(246,241,230,0.5); margin:0 0 14px; line-height:1.5; }
.footer-subscribe-form{
  display:flex !important;
  flex-direction:column !important;
  gap:10px;
}
.footer-subscribe-form input{
  flex:1 1 auto !important;
  width:auto !important;
  background:rgba(246,241,230,0.08); border:1px solid rgba(246,241,230,0.2);
  border-radius:6px; padding:10px 12px; color:#F6F1E6; font-size:0.82rem;
}
.footer-subscribe-form input::placeholder{ color:rgba(246,241,230,0.4); }
.footer-subscribe-form button{
  background:var(--saffron); border:none; border-radius:6px;
  width:100% !important;
  padding:11px 16px !important;
  color:#241c10; cursor:pointer;
  font-size:0.78rem; font-weight:600;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
}
.footer-subscribe-msg{ font-size:0.78rem; margin-bottom:10px; }
.footer-subscribe-success{ color:var(--saffron); }
.footer-subscribe-error{ color:#e07a5f; }
.footer-bottom{ padding:1.1rem 5vw; border-top:1px solid rgba(246,241,230,0.12); }
/* Positioning context for .footer-bottom-center below — scoped to just this
   row (copyright/credit line) rather than the whole .footer-bottom box, so
   the reCAPTCHA branding paragraph that also lives in .footer-bottom (as a
   sibling of this row) never factors into where the centered links land.
   See footer.php for the matching markup change. */
.footer-bottom-row{ position:relative; }
.footer-bottom-inner{
  max-width:1240px; margin:0 auto;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;
  font-family:'JetBrains Mono', monospace; font-size:0.7rem; color:rgba(246,241,230,0.4);
}
.footer-bottom-center{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  display:flex; align-items:center; gap:16px;
  white-space:nowrap;
}
.footer-bottom-credit{
  color:rgba(246,241,230,0.4);
  text-decoration:none;
}
.footer-bottom-credit:hover{ color:var(--saffron); }
/* ===== Mobile ===== */
@media (max-width:880px){
  nav{display:none;}
  /* padding:13px 10px brings the hamburger's real tap target up from a bare
     24x16px (just the three bars, no hit area of its own) to ~44x42px,
     matching the "bigger touch targets (44px minimum)" treatment already
     given to the search/account icons right below — this one was missed. */
  .nav-toggle{display:flex; padding:13px 10px; margin:-13px -10px;}
  /* Search — bigger touch targets (44px minimum), a panel that isn't
     cramped on a small screen, and a suggestions dropdown sized to fit
     comfortably above the mobile keyboard. */
  .site-search-toggle{ padding:11px; }
  .site-search-toggle svg{ width:18px; height:18px; }
  .site-account-link{ padding:11px; }
  .site-account-link svg{ width:18px; height:18px; }
  .site-search-submit{ padding:11px; }
  .site-search-close{ padding:11px 10px; font-size:1.6rem; }
  .site-search-panel.is-open{ max-height:120px; }
  .site-search-panel-inner{ padding:20px 5vw; gap:10px; }
  .site-search-input{ font-size:1.15rem; }
  .site-search-suggestions{ max-height:50vh; }
  .site-search-suggestion{ padding:11px 14px; gap:10px; }
  .site-search-suggestion-thumb{ width:36px; height:36px; }
  .site-search-suggestion-title{ font-size:0.85rem; }
  nav.is-open{
    display:block;
    position:fixed;
    top:64px;
    left:0; right:0;
    max-height:calc(100vh - 64px);
    overflow-y:auto;
    background:rgb(20,17,14);
    padding:18px 6vw 28px;
    border-bottom:1px solid rgba(255,255,255,0.1);
    z-index:49;
  }
  nav.is-open ul{
    flex-direction:column;
    gap:0;
  }
  nav.is-open ul li{
    border-bottom:1px solid rgba(255,255,255,0.08);
  }
  nav.is-open ul li a{
    display:block;
    padding:16px 2px;
    font-size:1rem;
  }
  .hero-grid, .contact-grid{grid-template-columns:1fr;}
  /* Force section headings left-aligned on mobile regardless of hero alignment edits */
  .section-head, .section-head h2, .section-head p, .section-head .mono{ text-align:left !important; }
  .about-grid{ display:block; }
  .about-content{ display:flex; flex-direction:column; }
  /* Mobile order: eyebrow → heading → stats → photo → text → readmore */
  .about-eyebrow{ order:1; font-family:'Fraunces', serif !important; font-size:1rem !important; text-transform:none !important; letter-spacing:0 !important; font-weight:500 !important; margin-bottom:10px !important; }
  .about-content > h2{ order:2; font-size:clamp(1.5rem,5vw,2rem) !important; }
  .about-stats{ order:3; margin-top:20px !important; padding-top:20px; border-top:1px solid var(--line); }
  .about-photo-mobile{ order:4; display:block; height:280px; overflow:hidden; margin-top:20px; border-radius:4px; }
  .about-photo-mobile img{ width:100%; height:100%; object-fit:cover; display:block; }
  .about-text-wrap{ order:5; max-width:100% !important; margin-top:20px !important; }
  /* Show only first paragraph on mobile */
  .about-text-wrap p ~ p{ display:none; }
  /* But show all text when on the actual About page */
  .about-text-wrap.about-text-full p ~ p{ display:block; }
  .about-read-more{ order:6; display:inline-flex; align-items:center; gap:6px; margin-top:12px; font-family:'JetBrains Mono', monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--rust-deep); }
  /* Hide desktop photo on mobile */
  .about-photo{ display:none; }
  .stat-row{grid-template-columns:1fr 1fr 1fr;}
  .gallery{grid-template-columns:repeat(2,1fr);}
  .gallery .g1,.gallery .g2,.gallery .g3,.gallery .g4,.gallery .g5,.gallery .g6{grid-column:span 2; grid-row:auto; aspect-ratio:1/1;}
  .service-grid{grid-template-columns:1fr 1fr;}
  .testimonials{grid-template-columns:1fr; gap:30px;}
  .trek-row{grid-template-columns:40px 1fr; row-gap:6px;}
  .trek-row .meta:nth-of-type(1){grid-column:2;}
  .trek-row .arrow{display:none;}
  section{padding:80px 6vw;}
  .portfolio-grid{ column-count:2; }
  .portfolio-lightbox-prev, .portfolio-lightbox-next{ width:40px; height:40px; }
  .trek-breadcrumb{ padding-top:130px; }
  .trek-breadcrumb-inner{ flex-wrap:wrap; }
  /* Was 400px — a stray digit next to .trek-breadcrumb's correct 130px
     value just above, on the exact same page's-worth-of-header-clearance
     job. Left ~260px of unexplained blank space above the breadcrumb/
     heading on every page that uses template-parts/breadcrumb.php
     (Trekking, Tours, Feedback, Sitemap, Testimonials, Services) on every
     phone ≤880px wide. */
  .site-breadcrumb{ padding-top:130px !important; }
  .trek-cta-banner{ padding:30px 26px; }
  .trek-cta-banner-stats{ margin-left:0; width:100%; justify-content:space-between; }
  .trek-cta-banner .btn{ width:100%; justify-content:center; }
  .handwritten-grid{ grid-template-columns:1fr; }
  .about-blog-grid{ grid-template-columns:1fr; }
  .wizard-panel{ padding:28px; }
  .wizard-trek-grid{ grid-template-columns:1fr; }
  .wizard-nav{ flex-wrap:wrap; gap:12px; }
  .wizard-date-row{ flex-direction:column; align-items:flex-start; gap:8px; }
  .wizard-date-row input[type="date"]{ width:100%; }
  .wizard-group-row{ flex-wrap:wrap; }
  .wizard-group-row label{ min-width:auto; }
  .wizard-group-row input[type="range"]{ flex:1 1 100%; order:3; }
  .wizard-group-out{ min-width:auto; }
  .trek-expert-head{ flex-direction:column; }
  .trek-expert-head h3{ max-width:100%; }
  .trek-expert-card{ padding:26px; }
  .trek-expert-buttons{ flex-direction:column; }
  .trek-expert-btn{ text-align:center; }
  .trek-price-card{ padding:24px 22px; }
  .trek-food-accom-module{ padding:22px 20px; }
  .trek-difficulty-module{ padding:22px 20px; }
  .trek-split-overview-col{ padding:26px 24px; }
  .trek-docs-module{ padding:22px; }
  .footer-brand{ flex-basis:100%; }
  .footer-col{ flex:1 1 45%; }
  .footer-grid{ gap:1.75rem; }
  .footer-col + .footer-col{ border-left:none; padding-left:0; }
  .footer-social-icons a{ width:40px; height:40px; }
  .footer-social-icons a svg{ width:18px; height:18px; }
  /* These two were previously only overridden inside the max-width:320px
     block further down — far narrower than this theme's actual mobile
     breakpoint (880px, matching the rest of the footer/header/nav mobile
     rules right here). That left .footer-bottom-center absolutely centered
     on top of .footer-bottom-inner's copyright/credit line for the entire
     321-880px range — i.e. on virtually every real phone — reproducing the
     exact "Feedback & Suggestions"/"Sitemap" text-overlap bug this class
     was renamed and restructured to fix in the first place. Moved here so
     the fix actually covers the phones it was meant for. */
  .footer-bottom-inner{ flex-direction:column; gap:5px; font-size:0.68rem; text-align:center; }
  .footer-bottom-center{
    position:static; transform:none;
    display:flex; flex-direction:column; align-items:center; gap:4px;
    margin-top:8px; font-size:0.68rem;
  }
  body:not(.home) header.site-header{
    position:static !important;
    background:var(--charcoal) !important;
  }
  body:not(.home) header.site-header.scrolled{
    background:var(--charcoal) !important;
  }
  body:not(.home) .anchor-spacer{
    display:none !important;
  }
  /* .is-hero-hidden (see line ~91) only sets opacity:0 — enough on desktop,
     where the header is always position:fixed and so never occupies
     document flow either way. On mobile the rule right above this one puts
     the header into position:static instead (every non-home page relies on
     that — trek/tour pages' sticky sub-nav is tuned around it), so while
     the About page's hero has the header invisible-but-static, it was
     still reserving its own ~85px box at the top of the page: a blank gap
     above the hero photo for as long as the hero is in view. Collapsing
     just this state to zero height closes the gap without touching the
     position rule other pages depend on. */
  body.page-template-page-about-php header.site-header.is-hero-hidden{
    padding:0; max-height:0; overflow:hidden;
  }
}
@media (max-width:540px){
  .service-grid{ grid-template-columns:1fr; }
  .stat-row{ grid-template-columns:1fr 1fr; row-gap:18px; }
  .hero-actions{ flex-wrap:nowrap; }
  .hero-actions .btn{ flex:1; padding:11px 16px; font-size:0.78rem; justify-content:center; white-space:nowrap; }
  .wizard-trek-card .price{ font-size:0.85rem; }
  .testimonials-section, section{ padding:60px 6vw; }
  .footer-col, .footer-brand{ flex-basis:100%; }
}
@media (max-width:400px){
  .brand{ font-size:1.05rem; }
  .brand small{ font-size:0.55rem; }
  header.site-header{ padding:16px 5vw; }
}
@media (prefers-reduced-motion: reduce){
  *{transition:none !important; scroll-behavior:auto !important;}
}
/* Welcome page (newsletter subscribe confirmation) teaser grid */
.welcome-teaser{ margin:10px 0 40px; }
.welcome-teaser-label{ color:rgba(246,241,230,0.5); display:block; margin-bottom:18px; }
.welcome-teaser-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:16px;
}
.welcome-teaser-card{
  display:block; background:rgba(246,241,230,0.06); border:1px solid rgba(246,241,230,0.15);
  border-radius:6px; overflow:hidden; text-align:left; transition:border-color 0.2s;
}
.welcome-teaser-card:hover{ border-color:var(--saffron); }
.welcome-teaser-thumb{ aspect-ratio:16/10; overflow:hidden; }
.welcome-teaser-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.welcome-teaser-title{
  display:block; padding:12px 14px; font-size:0.82rem; color:rgba(246,241,230,0.85); line-height:1.4;
}
@media (max-width:700px){
  .welcome-teaser-grid{ grid-template-columns:1fr; }
}
.hero-credit{
  position:absolute !important;
  right:24px !important;
  bottom:24px !important;
  font-family:'JetBrains Mono', monospace;
  font-size:0.68rem;
  letter-spacing:0.04em;
  color:rgba(255,255,255,0.55);
  z-index:2;
}
.hero-credit a{
  color:rgba(255,255,255,0.85);
  text-decoration:underline;
}
.hero-credit a:hover{ color:var(--saffron); }
@media (max-width:880px){
  .hero-credit{ right:12px !important; bottom:10px !important; font-size:0.5rem !important; opacity:0.7; }
}
.wizard-region-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
}
.wizard-region-card{
  position:relative;
  aspect-ratio:4/3;
  border-radius:6px;
  overflow:hidden;
  cursor:pointer;
  border:3px solid transparent;
}
.wizard-region-card.is-selected{ border-color:var(--rust-deep); }
.wizard-region-card img{ width:100%; height:100%; object-fit:cover; display:block; }
.wizard-region-card .wizard-map-placeholder{ width:100%; height:100%; }
.wizard-region-label{
  position:absolute; left:0; right:0; bottom:0;
  display:flex; align-items:center; gap:10px;
  padding:12px 14px;
  background:rgba(140,63,34,0.85);
  color:#fff;
  font-size:0.85rem; font-weight:600;
}
.wizard-region-card:nth-child(even) .wizard-region-label{ background:rgba(43,37,32,0.85); }
.wizard-region-checkbox{
  width:18px; height:18px; flex:none;
  border:2px solid rgba(255,255,255,0.8);
  border-radius:3px;
  background:rgba(255,255,255,0.15);
  display:flex; align-items:center; justify-content:center;
}
.wizard-region-card.is-selected .wizard-region-checkbox{
  background:var(--saffron); border-color:var(--saffron);
}
.wizard-region-checkbox svg{ width:12px; height:12px; opacity:0; }
.wizard-region-card.is-selected .wizard-region-checkbox svg{ opacity:1; }
@media (max-width:880px){
  .wizard-region-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:540px){
  .wizard-region-grid{ grid-template-columns:1fr; }
}

/* Arriving pre-selected (the trek page's "Customize This Plan" popup, or
   any "Book This Trip" link) hides every card but one — trip-wizard.js
   marks #trip-wizard.is-preselected for that case. Left in the normal 1/3-
   grid-width photo tile, that one remaining card has no room to show a
   photo or the trek name without both cramming together (worst inside the
   popup's narrower width). Swap to a roomy, photo-free confirmation card
   with a clearly visible checkmark instead. */
#trip-wizard.is-preselected .wizard-region-grid{
  grid-template-columns:1fr;
  max-width:480px;
}
#trip-wizard.is-preselected .wizard-region-card{
  aspect-ratio:auto;
  display:flex; align-items:center; gap:16px;
  padding:20px 22px;
  border-radius:10px;
  background:linear-gradient(160deg, var(--stone-deep), var(--stone));
  cursor:default;
}
#trip-wizard.is-preselected .wizard-region-card img,
#trip-wizard.is-preselected .wizard-map-placeholder{
  display:none;
}
#trip-wizard.is-preselected .wizard-region-label,
#trip-wizard.is-preselected .wizard-region-card:nth-child(even) .wizard-region-label{
  position:static;
  background:transparent;
  color:var(--charcoal);
  padding:0;
  flex:1;
  font-family:'Fraunces', serif; font-weight:500; font-size:1.2rem;
}
#trip-wizard.is-preselected .wizard-region-checkbox{
  width:30px; height:30px; flex:none;
}
#trip-wizard.is-preselected .wizard-region-checkbox svg{
  width:16px; height:16px;
}
.trek-guide-fees-module{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:4px;
  padding:22px;
}
.trek-guide-fee-row{
  display:flex; justify-content:space-between; align-items:baseline;
  padding:12px 0; border-top:1px solid var(--line);
}
.trek-guide-fee-row:first-of-type{ border-top:none; padding-top:4px; }
.trek-guide-fee-name{ display:block; font-weight:600; font-size:0.92rem; color:var(--charcoal); }
.trek-guide-fee-desc{ display:block; font-size:0.78rem; color:#7a7166; margin-top:2px; }
.trek-guide-fee-price{ font-family:'Fraunces', serif; font-weight:600; font-size:1.1rem; color:var(--rust-deep); white-space:nowrap; margin-left:16px; }
.trek-guide-book-form{
  display:flex; flex-direction:column; gap:10px;
  margin-top:18px; padding-top:18px;
  border-top:1px solid var(--line);
}
.trek-guide-select{
  width:100%;
  padding:11px 14px;
  border:1px solid var(--line);
  border-radius:4px;
  background:#fff;
  font-family:inherit; font-size:0.88rem; color:var(--charcoal);
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a7166' stroke-width='1.8'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 12px center;
  background-size:16px;
}
.trek-guide-book-btn{
  width:100%; justify-content:center;
  color:#241c10;
}
/* Hide Jetpack related posts */
#jp-relatedposts{ display:none !important; }
/* Related Treks section */
.trek-related-section{
  padding:60px max(5vw, calc((100% - 1240px)/2));
  background:var(--paper);
  border-top:1px solid var(--line);
}
.trek-related-inner{ max-width:1240px; margin:0 auto; }
.trek-related-label{
  display:block; color:var(--rust-deep); font-size:0.72rem;
  letter-spacing:0.08em; margin-bottom:28px;
}
.trek-related-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;
}
.trek-related-card{
  text-decoration:none; display:block;
}
.trek-related-card-wrap{ position:relative; }
.trek-related-thumb{
  position:relative; aspect-ratio:4/3; border-radius:14px; overflow:hidden;
  background:var(--line);
}
.trek-related-thumb img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s; }
.trek-related-card:hover .trek-related-thumb img{ transform:scale(1.04); }
/* Trek toggle buttons (Save / Mark as hiked) — shared base style used on
   the related-trek cards, the trek page's own hero photo, and the My
   Account lists, for BOTH the Saved Treks and Hiked Treks features (same
   mechanism, see js/saved-treks.js). Outline by default; .is-active fills
   the icon solid and tints it saffron, toggled instantly without a page
   reload. Always a real <button>, never nested inside an <a> — sits as a
   sibling, absolutely positioned to visually overlap the photo corner
   instead, since a button inside a link is invalid HTML and causes
   unpredictable click behavior. */
.trek-toggle-btn{
  position:absolute; top:12px; right:12px; z-index:2;
  width:30px; height:30px; border-radius:50%; border:none; padding:0;
  background:rgba(20,16,12,0.45); color:#fff; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background 0.2s, transform 0.15s;
}
.trek-toggle-btn:hover{ background:rgba(20,16,12,0.65); }
.trek-toggle-btn:active{ transform:scale(0.92); }
.trek-toggle-btn svg{ width:15px; height:15px; fill:none; transition:fill 0.15s, color 0.15s; }
.trek-toggle-btn.is-active{ color:var(--saffron); }
.trek-toggle-btn.is-active svg{ fill:currentColor; }
.trek-toggle-btn:disabled{ opacity:0.6; cursor:default; }
/* Quick confirmation toast — one shared element, reused and repositioned
   by JS above whichever button triggered it. */
.trek-save-toast{
  position:fixed; left:0; top:0; z-index:9999;
  transform:translate(-50%, 8px);
  background:var(--charcoal); color:var(--paper);
  font-family:'Work Sans', sans-serif; font-size:0.85rem; font-weight:600;
  padding:11px 20px; border-radius:999px;
  box-shadow:0 8px 24px rgba(0,0,0,0.25);
  opacity:0; pointer-events:none;
  white-space:nowrap;
  transition:opacity 0.25s, transform 0.25s;
}
.trek-save-toast.is-visible{ opacity:1; transform:translate(-50%, 0); }
/* Hero action row — Mark as hiked + Save trek sit directly beside the
   trek title (inside .trek-photo-overlay-title-row below) rather than
   pinned near the top of the photo — the title area is already anchored
   to the BOTTOM of the photo by the existing gradient overlay, so putting
   the buttons here means they're never anywhere near the fixed site
   header, which sits at the very top of the page. */
.trek-photo-overlay-title-row{
  display:flex; align-items:center; flex-wrap:wrap; gap:16px 20px;
}
.trek-photo-overlay-title-row .trek-photo-overlay-title{ margin:0; flex:1 1 auto; min-width:0; }
.trek-hero-actions{
  display:flex; align-items:center; gap:10px; flex:none;
}
.trek-hero-actions .trek-toggle-btn{
  position:static;
  width:auto; height:auto; border-radius:999px;
  padding:11px 18px 11px 14px;
  background:rgba(20,16,12,0.45); border:1px solid rgba(237,230,214,0.35);
  gap:8px;
}
.trek-hero-actions .trek-toggle-btn svg{ width:16px; height:16px; flex:none; }
.trek-toggle-btn-label{
  font-family:'Work Sans', sans-serif; font-size:0.82rem; font-weight:600;
  color:#fff; white-space:nowrap;
}
.trek-hero-actions .trek-toggle-btn.is-active{ border-color:rgba(215,153,60,0.6); }
.trek-hero-actions .trek-toggle-btn.is-active .trek-toggle-btn-label{ color:var(--saffron); }
@media (max-width:640px){
  .trek-photo-overlay-title-row{ flex-direction:column; align-items:flex-start; gap:14px; }
  .trek-hero-actions{ gap:8px; }
  .trek-hero-actions .trek-toggle-btn{ padding:9px 14px 9px 12px; }
  .trek-toggle-btn-label{ font-size:0.76rem; }
}
.trek-related-thumb-gradient{
  position:absolute; left:0; right:0; bottom:0; height:58%;
  background:linear-gradient(to bottom, rgba(15,12,9,0) 0%, rgba(15,12,9,0.78) 100%);
  pointer-events:none;
}
.trek-related-thumb h3.trek-related-thumb-title{
  position:absolute; left:14px; right:14px; bottom:12px; z-index:1;
  font-family:'Sora', sans-serif; font-weight:700; font-size:1rem;
  color:#fff; line-height:1.25; margin:0;
}
.trek-related-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.trek-related-tag{
  display:inline-flex; align-items:center; gap:5px;
  background:#fff; border:1px solid var(--line); border-radius:999px;
  padding:6px 12px; font-size:0.72rem; font-weight:600; color:var(--charcoal);
}
.trek-related-tag svg{ width:13px; height:13px; flex:none; color:var(--rust-deep); }
@media(max-width:880px){ .trek-related-grid{ grid-template-columns:1fr; gap:20px; } }
/* Journal square grid */
.journal-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:20px;
  max-width:1240px; margin:0 auto;
}
.journal-card{
  display:block; background:#fff; border:1px solid var(--line); border-radius:6px;
  overflow:hidden; text-decoration:none;
  transition:box-shadow 0.2s, border-color 0.2s, transform 0.2s;
}
.journal-card:hover{
  box-shadow:0 8px 24px rgba(43,37,32,0.10); border-color:rgba(43,37,32,0.18); transform:translateY(-2px);
}
.journal-card-thumb{ aspect-ratio:1/1; overflow:hidden; background:var(--stone); }
.journal-card-thumb img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s; }
.journal-card:hover .journal-card-thumb img{ transform:scale(1.05); }
.journal-card-body{ padding:14px 16px 18px; }
.journal-card-date{
  display:block; font-family:'JetBrains Mono', monospace; font-size:0.68rem;
  color:var(--rust-deep); letter-spacing:0.04em; margin-bottom:6px;
}
.journal-card-body h3{
  font-family:'Fraunces', serif; font-size:0.95rem; font-weight:600;
  color:var(--charcoal); line-height:1.35; margin:0 0 8px;
}
.journal-card-body p{ font-size:0.78rem; color:#7a7166; line-height:1.55; margin:0; }
/* Comprehensive small screen breakpoints */
@media (max-width:768px){
  .hero h1{ font-size:clamp(2rem, 6vw, 2.8rem); }
  /* .trek-related-grid is deliberately NOT touched here — it's already
     correctly set to a single column at max-width:880px above. A
     `grid-template-columns:1fr 1fr` rule used to sit on this line too;
     since this block's own max-width:768px still matches everywhere the
     880px block does, it silently won the cascade (later in source, equal
     specificity) and put "Trails you might like" back into a cramped
     2-column grid for the entire 361-768px range — nearly every phone. */
  .trek-cta-banner{ flex-direction:column; gap:24px; }
  .trek-cta-banner-stats{ margin-left:0; width:100%; }
  .about-grid{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  .section-head{ flex-direction:column; align-items:flex-start; gap:14px; }
  .journal-grid{ grid-template-columns:1fr 1fr; gap:16px; }
}
@media (max-width:600px){
  .journal-grid{ grid-template-columns:1fr; gap:20px; max-width:420px; margin-left:auto; margin-right:auto; }
}
@media (max-width:360px){
  h1, .hero h1{ font-size:1.65rem !important; }
  h2{ font-size:1.3rem; }
  .brand{ font-size:0.9rem; }
  .brand small{ font-size:0.48rem; }
  section{ padding:50px 4vw !important; }
  .hero-actions .btn{ font-size:0.76rem; padding:10px 14px; }
  .wizard-group-box{ width:40px; height:40px; font-size:0.9rem; }
  .wizard-panel{ padding:16px; }
  .trek-expert-buttons{ gap:8px; }
  .trek-expert-btn{ font-size:0.8rem; padding:11px 14px; }
  .footer-cta-title{ font-size:1.2rem; }
  .wizard-addon{ padding:8px 10px; font-size:0.8rem; }
  .trek-related-grid{ grid-template-columns:1fr; }
  .btn{ padding:10px 16px; font-size:0.8rem; }
}
@media (max-width:320px){
  h1, .hero h1{ font-size:1.55rem !important; line-height:1.2; }
  h2{ font-size:1.25rem; }
  h3{ font-size:1rem; }
  .brand{ font-size:0.85rem; }
  .brand small{ font-size:0.45rem; }
  header.site-header{ padding:12px 4vw; }
  section{ padding:44px 4vw !important; }
  .hero-actions{ flex-direction:column; gap:8px; }
  .hero-actions .btn{ width:100%; text-align:center; justify-content:center; font-size:0.76rem; padding:10px 12px; }
  .stat-row{ grid-template-columns:1fr !important; row-gap:14px; }
  .portfolio-grid{ column-count:1 !important; }
  .portfolio-filter-btn,.ip-filters button{ font-size:0.68rem; padding:4px 8px; }
  .trek-price-card{ padding:18px 16px; }
  .trek-food-accom-module{ padding:18px 16px; }
  .trek-difficulty-module{ padding:18px 16px; }
  .trek-split-overview-col{ padding:18px 16px; }
  .trek-cta-banner{ padding:18px 14px; }
  .trek-cta-banner-stats{ flex-direction:column; gap:10px; align-items:flex-start; }
  .trek-expert-card{ padding:18px 16px; }
  .trek-expert-btn{ font-size:0.78rem; padding:10px 12px; }
  .trek-docs-module{ padding:16px; }
  .wizard-panel{ padding:14px; }
  .wizard-step-pill{ font-size:0.58rem; padding:5px 6px; }
  .wizard-group-boxes{ gap:5px; }
  .wizard-group-box{ width:38px; height:38px; font-size:0.85rem; border-radius:4px; }
  .wizard-addon{ padding:8px 10px; font-size:0.78rem; }
  .wizard-total-box{ padding:16px 14px; }
  .wizard-summary-card{ padding:18px 14px; }
  .wizard-nav{ gap:8px; }
  .footer-col, .footer-brand{ flex-basis:100%; }
  .footer-grid{ gap:1.2rem; }
  .footer-cta{ padding:24px 14px; }
  .footer-cta-title{ font-size:1.1rem; }
  .footer-cta-btn{ font-size:0.8rem; padding:10px 18px; }
  .trek-lightbox-close{ top:10px; right:10px; width:30px; height:30px; font-size:1.1rem; }
  .trek-related-section{ padding:40px 4vw; }
  .trek-related-grid{ grid-template-columns:1fr; gap:12px; }
  .btn{ padding:9px 14px; font-size:0.78rem; }
}
@media (max-height:568px) and (max-width:400px){
  .hero{ min-height:100svh; padding-top:100px; padding-bottom:40px; align-items:flex-start; }
  .hero h1{ font-size:1.5rem !important; margin-bottom:12px; }
  .hero .lede{ font-size:0.82rem; }
  .hero-actions{ margin-top:16px; }
}
/* --- Single Gallery Item page: content layout (converted from inline styles) --- */
.page-content-inner.is-wide{ max-width:900px; }
.gallery-slideshow{ margin-bottom:34px; }
.gallery-slideshow-main{ position:relative; background:var(--stone); border-radius:6px; overflow:hidden; text-align:center; }
.gallery-slide{ display:none; }
.gallery-slide.is-active{ display:block; }
.gallery-header-block{ margin-bottom:34px; text-align:center; }
.gallery-copyright-line{ font-family:'JetBrains Mono', monospace; font-size:0.72rem; letter-spacing:0.02em; color:#8a8074; margin:-18px 0 16px; }
.gallery-title{ margin-bottom:10px; }
.gallery-meta-row{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:24px; }
.gallery-district-label{ font-size:0.78rem; color:#7a7166; }
.gallery-caption{ font-style:italic; color:#4a423a; margin-bottom:18px; }
.gallery-description{ color:#4a423a; line-height:1.7; margin-bottom:34px; }
.gallery-info-box{ background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:26px 30px; margin-bottom:20px; }
.gallery-info-box.is-stone{ background:var(--stone); margin-bottom:0; }
.gallery-info-label{ display:block; margin-bottom:16px; }
.gallery-info-table{ width:100%; font-size:0.9rem; }
.gallery-info-row{ border-bottom:1px solid var(--line); }
.gallery-info-key{ padding:10px 20px 10px 0; color:#7a7166; width:40%; font-size:0.82rem; text-transform:uppercase; letter-spacing:0.03em; }
.gallery-info-value{ padding:10px 0; font-weight:500; color:var(--charcoal); }
/* --- All Destinations page (page-all-destinations.php) --- */
.ad-wrap{
  max-width:1400px;
  margin:0 auto;
  padding:150px 5vw 100px;
}
.ad-header{ margin-bottom:40px; }
.ad-eyebrow{ font-size:11px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--rust-deep); margin:0 0 10px; }
.ad-title{ font-size:2.1rem; font-weight:700; margin:0; letter-spacing:-0.01em; color:var(--charcoal); }
.ad-table-wrap{
  overflow-x:auto;
  border:1px solid var(--line);
  border-radius:8px;
}
.ad-table{
  width:100%;
  border-collapse:collapse;
  font-size:0.88rem;
  white-space:nowrap;
}
.ad-table thead th{
  text-align:left;
  padding:14px 18px;
  background:var(--stone-deep);
  color:var(--charcoal);
  font-weight:700;
  font-size:0.72rem;
  text-transform:uppercase;
  letter-spacing:0.05em;
  border-bottom:1px solid var(--line);
}
.ad-table tbody tr{
  border-bottom:1px solid var(--line);
  cursor:pointer;
  transition:background 0.15s;
}
.ad-table tbody tr:last-child{ border-bottom:none; }
.ad-table tbody tr:hover{ background:var(--stone); }
.ad-table td{
  padding:12px 18px;
  vertical-align:middle;
  color:var(--charcoal);
}
.ad-thumb{
  width:64px; height:48px;
  border-radius:5px;
  object-fit:cover;
  display:block;
  background:var(--stone-deep);
}
.ad-title-cell{ font-weight:600; white-space:normal; min-width:180px; }
.ad-empty-cell{ color:#a89e90; }
.ad-empty{ padding:60px 0; text-align:center; color:#7a7166; }
.ad-badge{
  display:inline-block;
  padding:3px 10px;
  border-radius:20px;
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.02em;
}
.ad-badge-restricted{ background:#f3ded4; color:var(--rust-deep); }
.ad-badge-open{ background:#e4ece2; color:#3f6b4a; }
/* Row color-coding by trek type — soft tint + left accent stripe, kept subtle
   so the table stays legible rather than looking like a rainbow. */
.ad-table tbody tr.ad-row-jungle{ background:#eaf3e6; border-left:4px solid #5c8a52; }
.ad-table tbody tr.ad-row-jungle:hover{ background:#dfeed9; }
.ad-table tbody tr.ad-row-adventure{ background:#fbf1d9; border-left:4px solid #c99a2e; }
.ad-table tbody tr.ad-row-adventure:hover{ background:#f7e8bf; }
.ad-table tbody tr.ad-row-soft{ background:#e6eef5; border-left:4px solid #5f83a8; }
.ad-table tbody tr.ad-row-soft:hover{ background:#d9e6f0; }
.ad-table tbody tr.ad-row-dayhike{ background:#FBEEEE; border-left:4px solid #a35a5a; }
.ad-table tbody tr.ad-row-dayhike:hover{ background:#f5dede; }
@media (max-width:768px){
  .ad-wrap{ padding:120px 5vw 60px; }
  .ad-table{ font-size:0.8rem; }
  .ad-table thead th, .ad-table td{ padding:10px 12px; }
}
/* --- Categories & Galleries index pages (page-categories.php + page-galleries.php)
   share identical class names by design — same card-grid layout for both. --- */
.gl-wrap{
  background:#000;
  color:#fff;
  font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif;
  min-height:100vh;
  padding:150px 36px 100px;
}
.gl-header{ max-width:1400px; margin:0 auto 48px; }
.gl-eyebrow{ font-size:11px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:rgba(255,255,255,0.4); margin:0 0 10px; }
.gl-title{ font-size:2.1rem; font-weight:700; margin:0; letter-spacing:-0.01em; }
.gl-grid{
  max-width:1400px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
}
.gl-card{
  position:relative;
  display:block;
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:8px;
  background:#111;
}
.gl-card img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.35s ease; }
.gl-card:hover img{ transform:scale(1.04); }
.gl-card-banner{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:34px 20px 16px;
  background:linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.45) 55%, rgba(0,0,0,0) 100%);
  pointer-events:none;
}
.gl-card-name{ font-size:15px; font-weight:700; letter-spacing:0.01em; color:#fff; margin:0 0 3px; }
.gl-card-count{ font-size:11.5px; color:rgba(255,255,255,0.6); margin:0; }
.gl-empty{ color:rgba(255,255,255,0.5); max-width:1400px; margin:0 auto; }
@media (max-width:900px){
  .gl-wrap{ padding:120px 20px 60px; }
  .gl-grid{ grid-template-columns:repeat(2, 1fr); gap:16px; }
}
@media (max-width:560px){
  .gl-grid{ grid-template-columns:1fr; }
}
/* --- Portfolio page (page-portfolio.php) --- */
.ip-wrap{
  background:#000;
  color:#fff;
  font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif;
  display:flex;
  min-height:100vh;
  padding-top:90px; /* clears the theme's fixed header */
}
.ip-sidebar{
  width:260px;
  flex:none;
  position:sticky;
  top:90px;
  left:auto;
  bottom:auto;
  height:fit-content;
  padding:36px 32px;
  display:flex;
  flex-direction:column;
  overflow-y:auto;
}
.ip-filters{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
.ip-filters li.ip-filter-extra{ display:none; }
.ip-filters button{
  background:none; border:none; color:rgba(255,255,255,0.6);
  font-size:13px; text-align:left; padding:7px 0; cursor:pointer;
  transition:color 0.15s;
}
.ip-filters button:hover{ color:#fff; }
.ip-filters button.is-active{ color:#fff; font-weight:600; }
.ip-cat-viewall{ display:block; font-size:11.5px; font-weight:600; color:rgba(255,255,255,0.4); text-decoration:none; margin:6px 0 20px; transition:color 0.15s; }
.ip-cat-viewall:hover{ color:#fff; }
.ip-sidebar-footer{ margin-top:auto; padding-top:30px; }
.ip-gallery-list-label{ font-size:10.5px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:rgba(255,255,255,0.35); margin:0 0 10px; }
.ip-gallery-list{ list-style:none; margin:0 0 8px; padding:0; display:flex; flex-direction:column; gap:6px; }
.ip-gallery-list a{ font-size:12.5px; color:rgba(255,255,255,0.6); text-decoration:none; line-height:1.4; transition:color 0.15s; }
.ip-gallery-list a:hover{ color:#fff; }
.ip-gallery-viewall{ display:block; font-size:11.5px; font-weight:600; color:rgba(255,255,255,0.45); text-decoration:none; margin-bottom:18px; transition:color 0.15s; }
.ip-gallery-viewall:hover{ color:#fff; }
.ip-social{ display:inline-block; margin-bottom:14px; color:rgba(255,255,255,0.6); }
.ip-social:hover{ color:#fff; }
.ip-social svg{ width:18px; height:18px; }
.ip-copyright{ font-size:10px; color:rgba(255,255,255,0.35); line-height:1.5; }
.ip-content{
  margin-left:0;
  flex:1;
  padding:36px 36px 80px;
}
.ip-grid{
  max-width:1400px;
  margin:0;
  column-count:3;
  column-gap:20px;
}
.ip-item{ display:block; position:relative; overflow:hidden; margin-bottom:24px; break-inside:avoid; }
/* --- Wedding & Events Works page: same layout/behavior as the main dark
   Portfolio page, but recolored to the pink Wedding & Events theme. --- */
.wedding-works-page .ip-wrap{
  background:#F6D8DD;
  color:#241417;
  padding-top:0;
}
.wedding-works-page .ip-sidebar{ position:sticky; top:30px; left:auto; bottom:auto; height:fit-content; }
.wedding-works-page .ip-content{ margin-left:0; }
.wedding-works-page .ip-wrap{ padding-left:36px; }
.wedding-works-page .ip-filters button{ color:rgba(36,20,23,0.6); }
.wedding-works-page .ip-filters button:hover{ color:#241417; }
.wedding-works-page .ip-filters button.is-active{ color:#241417; }
.wedding-works-page .ip-cat-viewall{ color:rgba(36,20,23,0.4); }
.wedding-works-page .ip-cat-viewall:hover{ color:#241417; }
.wedding-works-page .ip-gallery-list-label{ color:rgba(36,20,23,0.4); }
.wedding-works-page .ip-gallery-list a{ color:rgba(36,20,23,0.6); }
.wedding-works-page .ip-gallery-list a:hover{ color:#241417; }
.wedding-works-page .ip-gallery-viewall{ color:rgba(36,20,23,0.45); }
.wedding-works-page .ip-gallery-viewall:hover{ color:#241417; }
.wedding-works-page .ip-social{ color:rgba(36,20,23,0.6); }
.wedding-works-page .ip-social:hover{ color:#241417; }
.wedding-works-page .ip-copyright{ color:rgba(36,20,23,0.4); }
.wedding-works-page .ip-item-banner{
  background:linear-gradient(to top, rgba(36,20,23,0.82) 0%, rgba(36,20,23,0.45) 55%, rgba(36,20,23,0) 100%);
}
.wedding-works-page .ip-empty-note{ color:rgba(36,20,23,0.5); }
.ip-item img{ width:100%; height:100%; display:block; object-fit:cover; transition:transform 0.4s ease; }
.ip-item:hover img{ transform:scale(1.04); }
.ip-item.is-hidden{ display:none; }
.ip-item.ip-landscape{ aspect-ratio:3/2; }
.ip-item.ip-portrait{ aspect-ratio:4/5; }
.ip-item.ip-square{ aspect-ratio:1/1; }
.ip-item-banner{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:28px 18px 14px;
  background:linear-gradient(to top, rgba(0,0,0,0.82) 0%, rgba(0,0,0,0.45) 55%, rgba(0,0,0,0) 100%);
  color:#fff;
  font-size:13.5px;
  font-weight:600;
  letter-spacing:0.01em;
  line-height:1.35;
  pointer-events:none;
}
@media (max-width:880px){
  /* Split out from the max-width:900px block below deliberately — the site
     header only stops being position:fixed at 880px (see body:not(.home)
     header.site-header further up this file), so removing .ip-wrap's own
     fixed-header clearance at the wider 900px breakpoint left an 881-900px
     dead zone where the still-fixed header overlapped the top of the
     sidebar/grid. The column-stacking layout below can stay at 900px —
     that's an independent design choice, not tied to header behavior. */
  .ip-wrap{ padding-top:0; }
}
@media (max-width:900px){
  .ip-wrap{ flex-direction:column; }
  .ip-sidebar{
    position:static; width:100%; height:auto;
    padding:24px 24px 16px;
    flex-direction:row; flex-wrap:wrap; align-items:center; gap:20px;
  }
  .ip-filters{ flex-direction:row; flex-wrap:wrap; gap:4px 16px; }
  .ip-sidebar-footer{ margin-top:0; width:100%; padding-top:10px; }
  .ip-content{ margin-left:0; padding:20px; }
  .ip-grid{ column-count:1; }
.ip-item{ margin-bottom:16px; }
}
/* --- Single Gallery Item page: slideshow nav (from original inline <style> block) --- */
				.gallery-slideshow-main{ min-height:300px; }
				.gallery-slide-prev, .gallery-slide-next{
					position:absolute; top:50%; transform:translateY(-50%);
					background:rgba(20,17,14,0.55); color:#fff; border:none;
					width:44px; height:44px; border-radius:50%; font-size:1.1rem;
					cursor:pointer; display:flex; align-items:center; justify-content:center;
					transition:background 0.2s;
				}
				.gallery-slide-prev{ left:14px; }
				.gallery-slide-next{ right:14px; }
				.gallery-slide-prev:hover, .gallery-slide-next:hover{ background:rgba(20,17,14,0.85); }
				.gallery-slide-counter{
					position:absolute; bottom:14px; right:14px;
					background:rgba(20,17,14,0.55); color:#fff;
					font-family:'JetBrains Mono', monospace; font-size:0.72rem;
					padding:4px 10px; border-radius:999px;
				}
				.gallery-thumbstrip{
					display:flex; flex-wrap:wrap; gap:8px; margin-top:12px;
				}
				.gallery-thumbstrip-item{
					width:72px; height:72px; border:2px solid transparent;
					border-radius:4px; overflow:hidden; cursor:pointer; background:none; padding:0;
					transition:border-color 0.15s;
				}
				.gallery-thumbstrip-item.is-active{ border-color:var(--rust-deep); }
				.gallery-thumbstrip-item img{ width:100%; height:100%; object-fit:cover; display:block; }
/* Chess Tracker feature CSS lived here — moved to the "Rujan Family App"
   plugin (see functions.php); page-chess-tracker.php no longer exists in
   this theme. .is-hidden is a shared utility class used elsewhere in the
   theme too, so it stays. */
.is-hidden{ display:none !important; }
/* =========================================================================
   Contact Form plugin ("Rujan Neupane Contact Form" — /wp-content/plugins/
   rujan-contact-form/). Moved here from an inline <style> block injected via
   wp_add_inline_style() in the plugin itself, so it loads in the same
   predictable cascade as the rest of the site instead of an independently
   injected block whose load order relative to this file wasn't guaranteed.
   If the plugin is ever deactivated, these rules are simply unused — safe
   to leave in place either way.
   ========================================================================= */
.rcf-wrap{
	--rcf-charcoal:#2B2520;
	--rcf-rust:#B1552F;
	--rcf-rust-deep:#8C3F22;
	--rcf-saffron:#D7993C;
	--rcf-paper:#F6F1E6;
	--rcf-stone:#EDE6D6;
	max-width:920px;
	margin:0 auto;
}
.rcf-card{
	display:grid;
	grid-template-columns:0.85fr 1.15fr;
	background:var(--rcf-paper);
	border:1px solid rgba(43,37,32,0.12);
	border-radius:6px;
	overflow:hidden;
	box-shadow:0 18px 50px rgba(43,37,32,0.10);
}
.rcf-info{
	background:var(--rcf-charcoal);
	color:var(--rcf-paper);
	padding:46px 38px;
	display:flex;
	flex-direction:column;
	justify-content:center;
}
.rcf-eyebrow{
	font-family:"JetBrains Mono", monospace;
	font-size:0.7rem;
	letter-spacing:0.08em;
	text-transform:uppercase;
	color:var(--rcf-saffron);
}
.rcf-heading{
	font-family:"Fraunces", serif;
	font-weight:500;
	font-size:2rem;
	margin:14px 0 12px;
	color:#fff;
}
.rcf-sub{
	font-family:"Work Sans", sans-serif;
	font-size:0.92rem;
	line-height:1.6;
	color:rgba(246,241,230,0.72);
	margin-bottom:26px;
}
.rcf-points{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.rcf-points li{
	display:flex; align-items:center; gap:10px;
	font-family:"Work Sans", sans-serif;
	font-size:0.85rem;
	color:rgba(246,241,230,0.85);
}
.rcf-dot{ width:6px; height:6px; border-radius:50%; background:var(--rcf-saffron); flex:none; }
.rcf-form-side{ padding:46px 38px; background:var(--rcf-paper); }
.rcf-form{ display:flex; flex-direction:column; gap:22px; }
.rcf-field{ position:relative; }
.rcf-field input,
.rcf-field select,
.rcf-field textarea{
	width:100%;
	background:#fff;
	border:1px solid rgba(43,37,32,0.18);
	border-radius:4px;
	padding:18px 14px 8px;
	font-family:"Work Sans", sans-serif;
	font-size:0.95rem;
	color:var(--rcf-charcoal);
	transition:border-color 0.2s;
}
.rcf-field textarea{ resize:vertical; min-height:90px; padding-top:28px !important; }
.rcf-field input:focus,
.rcf-field select:focus,
.rcf-field textarea:focus{ outline:none; border-color:var(--rcf-rust-deep); }
.rcf-field label{
	position:absolute;
	left:14px; top:14px;
	font-family:"Work Sans", sans-serif;
	font-size:0.95rem;
	color:rgba(43,37,32,0.5);
	pointer-events:none;
	transition:all 0.15s ease;
	background:transparent;
}
.rcf-field input:focus + label,
.rcf-field input:not(:placeholder-shown) + label{
    top:6px;
    font-size:0.68rem;
    letter-spacing:0.03em;
    text-transform:uppercase;
    color:var(--rcf-rust-deep);
}
.rcf-field textarea:focus + label,
.rcf-field textarea:not(:placeholder-shown) + label{
    opacity:0;
    visibility:hidden;
}
.rcf-field-select label{
	top:6px;
	font-size:0.68rem;
	letter-spacing:0.03em;
	text-transform:uppercase;
	color:rgba(43,37,32,0.5);
	position:static;
	display:block;
	margin-bottom:6px;
}
.rcf-field-select select{ padding:12px 14px; }
.rcf-field-select{ display:flex; flex-direction:column; }
.rcf-form button{
	margin-top:6px;
	align-self:flex-start;
	display:inline-flex;
	align-items:center;
	gap:10px;
	background:var(--rcf-rust);
	color:#fff;
	border:none;
	padding:15px 30px;
	font-weight:600;
	font-size:0.85rem;
	letter-spacing:0.02em;
	text-transform:uppercase;
	cursor:pointer;
	transition:background 0.25s, gap 0.25s;
	border-radius:999px;
}
.rcf-form button:hover{ background:var(--rcf-rust-deep); gap:14px; }
.rcf-arrow{ transition:transform 0.25s; }
.rcf-form button:hover .rcf-arrow{ transform:translateX(3px); }
.rcf-msg{
	padding:12px 16px;
	margin-bottom:6px;
	border-radius:4px;
	font-weight:600;
	font-size:0.88rem;
}
.rcf-msg-success{ background:rgba(177,85,47,0.10); color:var(--rcf-rust-deep); }
.rcf-msg-error{ background:rgba(224,122,95,0.15); color:#a8442b; }
.rcf-guide-summary{
	background:rgba(177,85,47,0.08);
	border:1px solid rgba(215,153,60,0.45);
	border-radius:4px;
	padding:14px 16px;
	margin-bottom:18px;
}
.rcf-guide-summary-label{
	display:block;
	font-family:"JetBrains Mono", monospace;
	font-size:0.68rem;
	letter-spacing:0.05em;
	text-transform:uppercase;
	color:var(--rcf-rust-deep);
	margin-bottom:6px;
}
.rcf-guide-summary p{ margin:0; font-size:0.9rem; color:var(--rcf-charcoal); }
.rcf-guide-summary strong{ color:var(--rcf-rust-deep); }
.rcf-guide-summary-row{
	display:flex; align-items:center; justify-content:space-between; gap:14px;
}
.rcf-guide-summary-price{
	font-family:"Fraunces", serif; font-weight:600; font-size:1.25rem;
	color:var(--rcf-rust-deep); white-space:nowrap; flex:none;
}
.rcf-guide-summary-price small{
	font-family:"JetBrains Mono", monospace; font-weight:400; font-size:0.6rem;
	text-transform:uppercase; letter-spacing:0.03em; color:rgba(43,37,32,0.55); margin-left:3px;
}
@media (max-width:700px){
	.rcf-card{ grid-template-columns:1fr; }
	.rcf-info, .rcf-form-side{ padding:32px 24px; }
}
/* -------------------------------------------------------------------------
 * Self-hosted CAPTCHA — intentionally minimal so it does not alter the design.
 * ---------------------------------------------------------------------- */
.rujan-captcha {
	display: flex;
	align-items: center;
	gap: .55rem;
	width: 100%;
	margin: .75rem 0 .85rem;
	padding: 0;
	background: none;
	border: 0;
	box-shadow: none;
	box-sizing: border-box;
}
.rujan-captcha label {
	margin: 0;
	font: inherit;
	line-height: 1.4;
	white-space: nowrap;
}
.rujan-captcha label strong {
	font-weight: 700;
	letter-spacing: .02em;
}
.rujan-captcha input[name="rujan_captcha_answer"] {
	width: 5rem;
	max-width: 5rem;
	padding: .3rem .4rem;
	margin: 0;
	background: transparent;
	border: 0;
	border-bottom: 1px solid currentColor;
	border-radius: 0;
	color: inherit;
	font: inherit;
	font-size: .95rem;
	outline: none;
}
.rujan-captcha input[name="rujan_captcha_answer"]::placeholder { opacity: .6; }
.rujan-captcha input[name="rujan_captcha_answer"]:focus {
	box-shadow: none;
	border-bottom-color: currentColor;
}
@media (max-width: 560px) {
	.rujan-captcha { flex-wrap: wrap; }
}
/* Rujan reCAPTCHA footer final-line rules */
.grecaptcha-badge {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
}
.site-footer-new {
  background: #1c1712;
}
.footer-bottom {
  background: #1c1712;
}
.rujan-recaptcha-footer-branding {
  display: block;
  width: 100%;
  max-width: 1240px;
  margin: 16px auto 0;
  padding: 10px 0 14px;
  box-sizing: border-box;
  text-align: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.58rem;
  line-height: 1.6;
  color: rgba(246,241,230,0.38);
  background: transparent;
}
.rujan-recaptcha-footer-branding a {
  color: rgba(246,241,230,0.45);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.rujan-recaptcha-footer-branding a:hover {
  color: var(--saffron);
}
@media (max-width: 880px) {
  .rujan-recaptcha-footer-branding {
    margin-top: 14px;
    padding: 10px 0 14px;
    font-size: 0.55rem;
  }
}
/* END Rujan reCAPTCHA footer final-line rules */
/* ============================================================
   About Page Timeline — "The Trail So Far"
   Append everything below to the end of css/main-style.css
   ============================================================ */
.rn-timeline-wrap {
	--rn-bg: #F6F1E7;
	--rn-paper: #FBF8F2;
	--rn-ink: #2B241C;
	--rn-ink-soft: #6B5F4F;
	--rn-line: #D9CDB8;
	--rn-accent: #B14A2A;
	--rn-accent-soft: #E7C9B8;
	--rn-pine: #4B5C3F;
	--rn-pine-soft: #D8DFC9;
	--rn-gold: #B8862E;
	--rn-gold-soft: #EFDDB4;
	--rn-focus: #7A6A4F;
	max-width: 760px;
	margin: 0 auto;
	padding: 3rem 1.5rem;
	color: var(--rn-ink);
	font-family: 'Work Sans', system-ui, sans-serif;
}
.rn-timeline-wrap * {
	box-sizing: border-box;
}
.rn-eyebrow {
	font-family: 'Work Sans', sans-serif;
	font-weight: 600;
	font-size: 0.72rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rn-accent);
	margin: 0 0 0.9rem;
}
.rn-heading {
	font-family: 'Fraunces', serif;
	font-weight: 600;
	font-size: clamp(2.1rem, 5vw, 2.9rem);
	line-height: 1.08;
	letter-spacing: -0.01em;
	text-wrap: balance;
	margin: 0 0 0.9rem;
}
.rn-intro {
	font-size: 1.05rem;
	line-height: 1.65;
	color: var(--rn-ink-soft);
	max-width: 56ch;
	margin: 0 0 3.6rem;
}
.rn-timeline {
	position: relative;
	padding-left: 3.4rem;
}
.rn-timeline::before {
	content: "";
	position: absolute;
	left: 1.15rem;
	top: 0.4rem;
	bottom: 0.4rem;
	width: 1px;
	background: repeating-linear-gradient(
		to bottom,
		var(--rn-line) 0 6px,
		transparent 6px 11px
	);
}
.rn-stop {
	position: relative;
	padding-bottom: 3.4rem;
}
.rn-stop:last-child {
	padding-bottom: 0;
}
.rn-marker {
	position: absolute;
	left: -3.4rem;
	top: 0;
	width: 2.3rem;
	height: 2.3rem;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--rn-paper);
	border: 1.5px solid var(--rn-line);
	z-index: 1;
}
.rn-marker svg {
	width: 1.15rem;
	height: 1.15rem;
}
.rn-stop[data-tone="pine"] .rn-marker {
	border-color: var(--rn-pine);
	background: var(--rn-pine-soft);
}
.rn-stop[data-tone="pine"] .rn-marker svg {
	stroke: var(--rn-pine);
}
.rn-stop[data-tone="accent"] .rn-marker {
	border-color: var(--rn-accent);
	background: var(--rn-accent-soft);
}
.rn-stop[data-tone="accent"] .rn-marker svg {
	stroke: var(--rn-accent);
}
.rn-stop[data-tone="gold"] .rn-marker {
	border-color: var(--rn-gold);
	background: var(--rn-gold-soft);
}
.rn-stop[data-tone="gold"] .rn-marker svg {
	stroke: var(--rn-gold);
}
.rn-stop[data-tone="ink"] .rn-marker {
	border-color: var(--rn-focus);
	background: var(--rn-paper);
}
.rn-stop[data-tone="ink"] .rn-marker svg {
	stroke: var(--rn-ink);
}
.rn-year {
	font-family: 'Fraunces', serif;
	font-weight: 500;
	font-size: 0.95rem;
	color: var(--rn-ink-soft);
	margin: 0.15rem 0 0.3rem;
}
.rn-year sup {
	font-family: 'Work Sans', sans-serif;
	font-size: 0.62em;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--rn-gold);
	vertical-align: super;
	margin-left: 0.4em;
}
.rn-stop h3 {
	font-family: 'Fraunces', serif;
	font-weight: 600;
	font-size: 1.28rem;
	line-height: 1.25;
	margin: 0 0 0.5rem;
	text-wrap: balance;
}
.rn-desc,
.rn-desc p {
	font-size: 0.97rem;
	line-height: 1.6;
	color: var(--rn-ink-soft);
	margin: 0;
	max-width: 52ch;
}
.rn-stop.now h3 {
	color: var(--rn-accent);
}
.rn-stop.now .rn-marker {
	background: var(--rn-accent);
	border-color: var(--rn-accent);
}
.rn-stop.now .rn-marker svg {
	stroke: var(--rn-paper);
}
@media (max-width: 480px) {
	.rn-timeline {
		padding-left: 2.6rem;
	}
	.rn-marker {
		left: -2.6rem;
		width: 2rem;
		height: 2rem;
	}
}

/* Fix: prevent the About page's left profile photo from stretching to
   match the height of the bio text column now that the timeline is there.
   Scoped to the About page itself (body.page-template-page-about-php —
   the class WordPress generates automatically for any page using
   page-about.php's "Template Name: About") because this rule was
   originally unscoped: template-parts/section-about.php (.about-grid,
   .about-photo) is shared verbatim by front-page.php AND page-about.php,
   so the unscoped version also forced the HOMEPAGE's About photo to this
   same fixed 1250px height and overrode its default align-items:stretch —
   even though the homepage's bio text is much shorter and never needed
   this fix in the first place. */
body.page-template-page-about-php .about-grid {
	align-items: start;
}
body.page-template-page-about-php .about-photo img {
	height: 1250px;
}

/* Trek price card — "not a fixed package" disclaimer */
.trek-price-disclaimer {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	width: 100%;
	margin: 16px 0 0;
	padding: 10px 12px;
	border-left: 2px solid #8C3F22;
	background: rgba(140, 63, 34, 0.06);
	border-radius: 0 4px 4px 0;
	font-size: 0.78rem;
	line-height: 1.5;
	color: #6b6156;
}
.trek-price-disclaimer-icon {
	flex: none;
	width: 16px;
	height: 16px;
	margin-top: 2px;
	color: #8C3F22;
}
.trek-price-card .btn-book-now-full {
	margin-top: 14px;
}

/* ==========================================================================
   Trek page redesign (2026-09) — section nav moved up under the breadcrumb,
   promo tagline band, 2-column Highlights+TripInfo / Overview+Map+Price
   split, Best Time To Travel, Altitude Map, Full Trip Description,
   full-width Hire Guide Only + Individual Services, Photos & Videos
   gallery, and Reviews. Follows the same stone-section / paper-card
   convention already used everywhere else on this page (FAQ, Itinerary,
   Trip Highlights, Quick Facts) rather than introducing a new one.
   ========================================================================== */

/* ---- Promo Tagline band ---- */
.trek-promo-band-section{ background:var(--stone); padding:26px 6vw 30px; text-align:center; }
.trek-promo-band-inner{ max-width:720px; margin:0 auto; display:flex; flex-direction:column; align-items:center; gap:14px; }
.trek-promo-band-icon{ width:26px; height:26px; color:var(--rust-deep); opacity:0.85; }
.trek-promo-band-icon svg{ width:100%; height:100%; }
.trek-promo-band-tagline{
	font-family:'Fraunces', serif; font-style:italic; font-weight:500;
	font-size:clamp(1.2rem, 2.4vw, 1.6rem); line-height:1.35; color:var(--charcoal);
}

/* ---- 2-column split: Highlights + Trip Info (sticky) / Overview + Map + Price ---- */
.trek-split-section{ background:var(--stone); padding:44px 6vw 60px; }
.trek-split-inner{ max-width:1240px; margin:0 auto; }
.trek-split-grid{ display:grid; grid-template-columns:360px 1fr; gap:44px; align-items:start; }
/* z-index:1 (below .trek-section-nav's z-index:20 further up this file) —
   both are position:sticky at the same top:74px offset, so once this
   column's sticky box reaches the nav's stuck position they'd otherwise
   fight over paint order with no defined winner; pinning this one lower
   guarantees the nav bar always stays visually on top instead of the
   sidebar content sometimes covering it. */
.trek-split-highlights-col{ position:sticky; top:74px; z-index:1; }
.trek-split-eyebrow{ display:block; color:var(--rust-deep); margin-bottom:12px; }
.trek-split-highlights-heading{ font-size:clamp(1.5rem, 2.6vw, 1.9rem); margin-bottom:20px; }
.trek-split-highlights-col .trek-highlights-grid{ grid-template-columns:1fr; gap:12px; margin-bottom:28px; }
.trek-trip-info-block{ margin-top:8px; }
.trek-trip-info-label{ display:block; color:var(--rust-deep); margin-bottom:12px; }
.trek-trip-info-table{
	background:var(--paper); border:1px solid var(--line); border-radius:8px;
	overflow:hidden;
}
.trek-trip-info-row{
	display:flex; justify-content:space-between; align-items:flex-start; gap:16px;
	padding:12px 18px; font-size:0.86rem;
}
.trek-trip-info-row:nth-child(even){ background:var(--stone); }
.trek-trip-info-key{ color:#7a7166; }
.trek-trip-info-value{ font-weight:600; color:var(--charcoal); text-align:right; }

.trek-split-highlights-col .trek-map-module{ margin-top:24px; }
.trek-split-highlights-col .trek-price-card{ margin-top:20px; }
.trek-split-highlights-col .trek-food-accom-module{ margin-top:20px; }

/* ---- Cost Includes/Excludes and What to Bring, nested in the left
   column (single-tour.php only) directly under Tour Highlights — sized
   down to match the other secondary modules in this column (Food &
   Accommodation, Difficulty) rather than their old full-width section
   scale, and stacked to one column instead of side-by-side since the
   column is too narrow for a genuine two-column split. ---- */
.trek-split-highlights-col .trek-cost-sidebar-module{ margin-top:20px; }
.trek-split-highlights-col .trek-bring-sidebar-module{ margin-top:20px; }
.trek-split-highlights-col .trek-cost-heading{ font-size:1.1rem; margin:6px 0 16px; }
.trek-split-highlights-col .trek-cost-columns{ grid-template-columns:1fr; gap:16px; }
.trek-split-highlights-col .trek-cost-column-title{ font-size:0.86rem; }

/* ---- Food & Accommodation module — sits just below the Price card in the
   left column. Deliberately on its own blue palette (distinct from the
   site's rust/saffron accent) so it reads as a clearly separate kind of
   information, the same way the Price card gets its own soft gradient. ---- */
.trek-food-accom-module{
	background:linear-gradient(160deg, #F2F8FD 0%, #E6F0F9 100%);
	border:1px solid #CDE1F1;
	border-radius:6px;
	padding:26px 24px;
	position:relative;
	overflow:hidden;
}
.trek-food-accom-module::before{
	content:'';
	position:absolute; top:-40px; right:-40px;
	width:140px; height:140px;
	background:radial-gradient(circle, rgba(60,120,180,0.16), transparent 70%);
}
.trek-food-accom-label{ color:#3E6FA0; display:block; position:relative; z-index:1; }
.trek-food-accom-heading{ font-size:1.1rem; color:#1B3A5C; margin:6px 0 18px; position:relative; z-index:1; }
.trek-food-accom-group{ position:relative; z-index:1; margin-bottom:20px; }
.trek-food-accom-group:last-child{ margin-bottom:0; }
.trek-food-accom-group-title{
	font-family:'JetBrains Mono', monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.06em;
	color:#4C86BB; margin:0 0 12px; padding-bottom:8px; border-bottom:1px solid #CDE1F1;
}
.trek-food-accom-item{ display:flex; gap:12px; margin-bottom:16px; }
.trek-food-accom-item:last-child{ margin-bottom:0; }
.trek-food-accom-item-icon{
	flex:none; width:36px; height:36px; border-radius:9px;
	background:#DCEBF9; color:#2E6DA4;
	display:flex; align-items:center; justify-content:center;
}
.trek-food-accom-item-icon svg{ width:17px; height:17px; }
.trek-food-accom-item-title{ font-size:0.88rem; font-weight:600; color:#1B3A5C; margin:0 0 3px; }
.trek-food-accom-item-desc{ font-size:0.8rem; line-height:1.55; color:#4c6478; margin:0 0 6px; }
.trek-food-accom-item-features{ margin:0; padding:0; list-style:none; }
.trek-food-accom-item-features li{
	font-size:0.78rem; color:#3d5266; line-height:1.65; padding-left:15px; position:relative;
}
.trek-food-accom-item-features li::before{
	content:''; position:absolute; left:0; top:0.6em; width:5px; height:5px; border-radius:50%; background:#6FAEDD;
}

.trek-split-highlights-col .trek-difficulty-module{ margin-top:20px; }

/* ---- Difficulty Level module — sits below Food & Accommodation in the
   left column, surfacing the trek's Trip Grade (Appearance → Customize →
   Trip Grades) as a full spec card instead of just the small hero badge.
   Its own vivid amber/"trail alert" palette — distinct from the Food &
   Accommodation module's blue and from the site's muted rust/saffron — so
   it reads as the one thing on the page worth pausing on before you book.
   The grade pill itself keeps using that grade's own signature color
   (green/rust/gold/plum), same as the hero badge, so severity still reads
   at a glance even inside the amber shell. ---- */
.trek-difficulty-module{
	background:linear-gradient(160deg, #FFF8EE 0%, #FDECD1 100%);
	border:1px solid #F3D9AE;
	border-radius:6px;
	padding:26px 24px;
	position:relative;
	overflow:hidden;
}
.trek-difficulty-module::before{
	content:'';
	position:absolute; top:-40px; right:-40px;
	width:140px; height:140px;
	background:radial-gradient(circle, rgba(217,114,10,0.16), transparent 70%);
}
.trek-difficulty-label{ color:#C97A1E; display:block; position:relative; z-index:1; }
.trek-difficulty-heading{ font-size:1.1rem; color:#7A3E05; margin:6px 0 16px; position:relative; z-index:1; }
.trek-difficulty-pill{
	position:relative; z-index:1;
	display:inline-flex; align-items:center; gap:7px;
	padding:8px 16px; border-radius:999px;
	font-size:0.86rem; font-weight:700;
	margin-bottom:20px;
}
.trek-difficulty-pill svg{ width:15px; height:15px; }
.trek-difficulty-specs{ position:relative; z-index:1; display:flex; flex-direction:column; gap:14px; }
.trek-difficulty-spec-row{ display:flex; gap:12px; align-items:flex-start; }
.trek-difficulty-spec-icon{
	flex:none; width:34px; height:34px; border-radius:9px; margin-top:1px;
	background:#FBE2B8; color:#B85C09;
	display:flex; align-items:center; justify-content:center;
}
.trek-difficulty-spec-icon svg{ width:16px; height:16px; }
.trek-difficulty-spec-text{ display:flex; flex-direction:column; gap:2px; padding-top:4px; }
.trek-difficulty-spec-label{
	font-family:'JetBrains Mono', monospace; font-size:0.66rem; text-transform:uppercase; letter-spacing:0.05em;
	color:#B4783A;
}
.trek-difficulty-spec-value{ font-size:0.85rem; font-weight:600; color:#5C3A10; line-height:1.4; }

/* Dot meter — shared by the "See How All 4 Grades Compare" card below and
   the "Our Trip Grading System" popup it opens (#gradeSystemModal). A
   filled dot's color comes from the --dot-color custom property set inline
   per grade, so it always matches that grade's own Trip Grade color. */
.trek-grade-dots{ display:flex; gap:5px; flex:none; }
.trek-grade-dots span{ width:8px; height:8px; border-radius:50%; background:rgba(43,37,32,0.15); display:block; }
.trek-grade-dots span.is-filled{ background:var(--dot-color, var(--rust)); }

/* "See How All 4 Grades Compare" — a compact card nested inside the
   Difficulty Level module, using that module's own warm palette so it
   reads as part of the same card rather than a separate block. */
.trek-grade-compare-card{
	position:relative; z-index:1;
	margin-top:22px; padding-top:20px;
	border-top:1px dashed #E8C68C;
}
.trek-grade-compare-heading{
	display:block; font-weight:600; font-size:0.86rem; color:#7A3E05;
	margin-bottom:12px;
}
.trek-grade-compare-row{
	display:flex; align-items:center; gap:12px;
	padding:7px 0;
}
.trek-grade-compare-label{ font-size:0.84rem; color:#5C3A10; }
.trek-grade-compare-row.is-current .trek-grade-compare-label{ font-weight:700; color:#7A3E05; }
.trek-grade-compare-card .btn{ margin-top:12px; padding:9px 18px; font-size:0.82rem; }

/* "Our Trip Grading System" popup contents */
.trek-grade-modal-list{ display:flex; flex-direction:column; gap:14px; }
.trek-grade-modal-item{
	border:1px solid var(--line); border-radius:10px;
	padding:16px 18px;
}
.trek-grade-modal-item.is-current{ border-color:var(--saffron); background:#FBF3E2; }
.trek-grade-modal-head{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.trek-grade-modal-pill{
	display:inline-flex; align-items:center;
	padding:5px 14px; border-radius:999px;
	font-size:0.8rem; font-weight:700;
}
.trek-grade-modal-current-tag{
	font-family:'JetBrains Mono', monospace; font-size:0.64rem; font-weight:700;
	letter-spacing:0.05em; text-transform:uppercase; color:var(--rust-deep);
}
.trek-grade-modal-specs{ display:flex; flex-direction:column; gap:5px; font-size:0.83rem; color:#4a423a; line-height:1.5; }
.trek-grade-modal-specs > div{ display:flex; align-items:flex-start; gap:8px; }
.trek-grade-modal-specs b{ color:var(--charcoal); }
.trek-grade-spec-icon{
	flex:none; width:16px; height:16px; margin-top:2px; color:var(--rust-deep);
}
.trek-grade-spec-icon svg{ width:100%; height:100%; }
@media (max-width:520px){
	.trek-grade-modal-item{ padding:14px 16px; }
}

/* When the sidebar (sticky, left) ends up taller than the Overview column —
   e.g. a short Overview next to Highlights + Info + Map + Price + Food &
   Accommodation + Difficulty Level — the grid row still takes the sidebar's
   height (a CSS Grid row is always as tall as its tallest item, no way
   around that with align-items/align-self alone). Rather than leaving that
   extra height as bare stone-colored gap below the text, Overview gets its
   own paper-toned card — same language as the Trip Info table in the
   sidebar — that stretches to fill the full row height. The content itself
   stays anchored to the TOP of the card (so "Overview" still lines up with
   "Trip Highlights" on the left — no centering, no vertical shift), and any
   leftover room below simply reads as generous card padding instead of a
   stray layout gap. When Overview is the taller column (the common case)
   the card just hugs its content, same as before. */
.trek-split-overview-col{
	min-width:0; align-self:stretch;
	background:var(--paper); border:1px solid var(--line); border-radius:8px;
	padding:38px 40px;
}
.trek-overview-body{ color:#4a423a; line-height:1.8; }
.trek-overview-body p{ margin-bottom:1em; }
.trek-split-overview-col .trek-docs-module{ margin-top:30px; }

/* Map hover: fade image, reveal "Enlarge Map" pill (click-to-popup handled by the shared lightbox) */
.trek-map-enlarge-link{ position:relative; display:block; cursor:zoom-in; border-radius:4px; overflow:hidden; }
.trek-map-enlarge-link img{ transition:opacity 0.25s ease; }
.trek-map-enlarge-link:hover img,
.trek-map-enlarge-link:focus-visible img{ opacity:0.35; }
.trek-map-enlarge-overlay{
	position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
	opacity:0; transition:opacity 0.25s ease; pointer-events:none;
}
.trek-map-enlarge-link:hover .trek-map-enlarge-overlay,
.trek-map-enlarge-link:focus-visible .trek-map-enlarge-overlay{ opacity:1; }
.trek-map-enlarge-pill{
	display:inline-flex; align-items:center; gap:8px;
	background:var(--paper); border:1px solid var(--line); border-radius:999px;
	padding:10px 18px; box-shadow:0 6px 18px rgba(43,37,32,0.14);
	font-family:'JetBrains Mono', monospace; font-size:0.7rem; font-weight:700;
	text-transform:uppercase; letter-spacing:0.05em; color:var(--rust-deep);
}
.trek-map-enlarge-pill svg{ width:15px; height:15px; }
/* Suppress the generic corner magnifier badge here — the centered pill above replaces it */
.trek-map-module-image .js-lightbox-trigger::after{ content:none; }

@media (max-width:980px){
	.trek-split-grid{ grid-template-columns:1fr; gap:34px; }
	.trek-split-highlights-col{ position:static; top:auto; }
}

/* ---- Best Time To Travel (season table) ---- */
.trek-season-section{ padding:60px 6vw 66px; background:var(--stone); }
.trek-season-inner{ max-width:1240px; margin:0 auto; }
.trek-season-label{ display:block; color:var(--rust-deep); margin-bottom:12px; }
.trek-season-heading{ font-size:clamp(1.9rem, 3.2vw, 2.5rem); margin-bottom:24px; }
.trek-season-table-head{
	display:grid; grid-template-columns:200px 1.4fr 1.2fr; gap:20px;
	padding:0 22px 10px; font-family:'JetBrains Mono', monospace; font-size:0.66rem;
	text-transform:uppercase; letter-spacing:0.04em; color:#9a9186;
}
.trek-season-list{ display:flex; flex-direction:column; gap:2px; }
.trek-season-row{
	display:grid; grid-template-columns:200px 1.4fr 1.2fr; gap:20px; align-items:start;
	background:var(--sc-bg, var(--paper)); border-left:3px solid var(--sc, var(--rust-deep));
	border-radius:4px; padding:18px 22px;
}
.trek-season-id{ display:flex; align-items:center; gap:12px; }
.trek-season-icon{ flex:none; width:26px; height:26px; color:var(--sc, var(--rust-deep)); }
.trek-season-icon svg{ width:100%; height:100%; }
.trek-season-name{ display:block; font-family:'Fraunces', serif; font-weight:600; font-size:1.05rem; color:var(--sc, var(--charcoal)); }
.trek-season-months{ display:block; font-family:'JetBrains Mono', monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.04em; color:#7a7166; margin-top:2px; }
.trek-season-desc{ font-size:0.9rem; line-height:1.6; color:#4a423a; }
.trek-season-suggestion{ font-size:0.9rem; line-height:1.6; color:#4a423a; font-style:italic; }
.trek-season-note{ margin-top:20px; font-size:0.76rem; color:#9a9186; }

@media (max-width:780px){
	.trek-season-table-head{ display:none; }
	.trek-season-row{ grid-template-columns:1fr; gap:8px; }
}

/* ---- Flight Info & Weight Limit ---- */
.trek-flight-section{ padding:60px 6vw 66px; background:var(--stone); }
.trek-flight-inner{ max-width:1240px; margin:0 auto; }
.trek-flight-label{ display:block; color:var(--rust-deep); margin-bottom:12px; }
.trek-flight-block + .trek-flight-block{ margin-top:48px; padding-top:40px; border-top:1px solid var(--line); }
.trek-flight-heading{ font-size:clamp(1.9rem, 3.2vw, 2.5rem); margin-bottom:24px; }
.trek-flight-stats-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:16px; }
.trek-flight-stat{ display:flex; align-items:flex-start; gap:12px; background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:20px 22px; box-shadow:0 2px 10px rgba(43,37,32,0.05); }
.trek-flight-stat-icon{ flex:none; width:24px; height:24px; color:var(--rust-deep); margin-top:2px; }
.trek-flight-stat-icon svg{ width:100%; height:100%; }
.trek-flight-stat-label{ display:block; font-family:'JetBrains Mono', monospace; font-size:0.62rem; text-transform:uppercase; letter-spacing:0.03em; color:#9a9186; margin-bottom:4px; }
.trek-flight-stat-value{ display:block; font-family:'Fraunces', serif; font-weight:600; font-size:1.1rem; color:var(--charcoal); line-height:1.3; }
.trek-flight-note{ display:flex; align-items:flex-start; gap:14px; margin-top:24px; background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:22px 26px; box-shadow:0 2px 10px rgba(43,37,32,0.05); }
.trek-flight-note svg{ flex:none; width:20px; height:20px; margin-top:3px; color:var(--rust-deep); }
.trek-flight-note-text{ font-size:0.95rem; line-height:1.75; color:#4a423a; }
.trek-flight-note-text p{ margin:0 0 14px; }
.trek-flight-note-text p:last-child{ margin-bottom:0; }
.trek-flight-note-text ul,
.trek-flight-note-text ol{ margin:0 0 14px; padding-left:24px; }
.trek-flight-note-text ul:last-child,
.trek-flight-note-text ol:last-child{ margin-bottom:0; }
.trek-flight-note-text li{ margin-bottom:8px; line-height:1.7; }
.trek-flight-note-text li:last-child{ margin-bottom:0; }
.trek-flight-note-text strong{ color:var(--charcoal); font-weight:700; }

@media (max-width:600px){
	.trek-flight-note{ padding:20px; }
}

@media (max-width:780px){
	.trek-flight-stats-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:480px){
	.trek-flight-stats-grid{ grid-template-columns:1fr; }
}

/* ---- Altitude Map ---- */
.trek-altitude-section{ padding:60px 6vw 66px; background:var(--stone); }
.trek-altitude-inner{ max-width:1240px; margin:0 auto; }
.trek-altitude-label{ display:block; color:var(--rust-deep); margin-bottom:12px; }
.trek-altitude-head-row{ display:flex; align-items:flex-end; justify-content:space-between; gap:30px; flex-wrap:wrap; margin-bottom:30px; }
.trek-altitude-heading{ font-size:clamp(1.9rem, 3.2vw, 2.5rem); margin-bottom:10px; }
.trek-altitude-sub{ font-size:0.94rem; color:#4a423a; max-width:480px; }
.trek-altitude-stats{ display:flex; gap:28px; flex-wrap:wrap; }
.trek-altitude-stat{ display:flex; align-items:flex-start; gap:9px; }
.trek-altitude-stat-icon{ flex:none; width:20px; height:20px; color:var(--rust-deep); margin-top:1px; }
.trek-altitude-stat-icon svg{ width:100%; height:100%; }
.trek-altitude-stat-label{ display:block; font-size:0.62rem; color:#7a7166; font-family:'JetBrains Mono', monospace; text-transform:uppercase; letter-spacing:0.03em; margin-bottom:2px; }
.trek-altitude-stat-value{ display:block; font-weight:600; font-size:0.9rem; color:var(--charcoal); }
.trek-altitude-chart-card{ background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:28px 30px 16px; box-shadow:0 2px 10px rgba(43,37,32,0.05); }
.trek-altitude-chart-card svg{ display:block; width:100%; height:auto; overflow:visible; }
.trek-altitude-peak-badge{ font-family:'JetBrains Mono', monospace; font-size:11px; font-weight:700; fill:var(--rust-deep); }
.trek-altitude-point-label{ font-family:'JetBrains Mono', monospace; font-size:12px; fill:#7a7166; }
.trek-altitude-axis-note{ font-family:'JetBrains Mono', monospace; font-size:0.66rem; letter-spacing:0.03em; text-transform:uppercase; color:#9a9186; text-align:right; margin-top:6px; }
/* An uploaded altitude map picture — reuses the Trek Map module's
   hover-fade + "Enlarge Map" pill (trek-map-enlarge-*) rather than
   duplicating it; only the card frame around the image is new here. */
.trek-altitude-map-image-card{
	background:var(--paper); border:1px solid var(--line); border-radius:8px;
	overflow:hidden; box-shadow:0 2px 10px rgba(43,37,32,0.05);
}
.trek-altitude-map-image-card + .trek-altitude-chart-card{ margin-top:20px; }
.trek-altitude-map-image-card img{ width:100%; display:block; }

@media (max-width:880px){
	.trek-altitude-head-row{ flex-direction:column; align-items:flex-start; }
	.trek-altitude-chart-card{ padding:22px 16px 12px; overflow-x:auto; }
	.trek-altitude-chart-card svg{ width:820px; max-width:none; }
}

/* ---- Full Trip Description ---- */
.trek-full-desc-section{ background:var(--stone); padding:60px 6vw 70px; }
.trek-full-desc-inner{ max-width:1240px; margin:0 auto; }
.trek-full-desc-label{ display:block; color:var(--rust-deep); margin-bottom:12px; }
.trek-full-desc-heading{ font-size:clamp(1.9rem, 3.2vw, 2.5rem); margin-bottom:32px; }
.trek-full-desc-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:22px; }
.trek-full-desc-card{ background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:30px 32px; box-shadow:0 2px 10px rgba(43,37,32,0.05); }
.trek-full-desc-card h3{ font-family:'Fraunces', serif; font-weight:600; font-size:1.1rem; margin-bottom:12px; color:var(--charcoal); }
.trek-full-desc-card p{ font-size:0.9rem; line-height:1.7; color:#4a423a; margin-bottom:12px; }
.trek-full-desc-card p:last-child{ margin-bottom:0; }
/* The Tour "About" card can also hold real WordPress editor content (see
   single-tour.php, $tour_editor_content) — headings, bullet/numbered
   lists, bold/italic and links pasted in from Word/Docs, not just the
   plain <p>-per-line fallback above. Styled here to match the card's
   existing type system rather than falling back to browser defaults. */
.trek-full-desc-card h2,
.trek-full-desc-card h4{ font-family:'Fraunces', serif; font-weight:600; color:var(--charcoal); margin:24px 0 12px; }
.trek-full-desc-card h2:first-child,
.trek-full-desc-card h3:first-child,
.trek-full-desc-card h4:first-child{ margin-top:0; }
.trek-full-desc-card h2{ font-size:1.35rem; }
.trek-full-desc-card h4{ font-size:1rem; }
.trek-full-desc-card ul,
.trek-full-desc-card ol{ margin:0 0 16px; padding-left:22px; font-size:0.9rem; line-height:1.7; color:#4a423a; }
.trek-full-desc-card ul:last-child,
.trek-full-desc-card ol:last-child{ margin-bottom:0; }
.trek-full-desc-card li{ margin-bottom:6px; }
.trek-full-desc-card li:last-child{ margin-bottom:0; }
.trek-full-desc-card strong{ color:var(--charcoal); font-weight:700; }
.trek-full-desc-card a{ color:var(--rust-deep); text-decoration:underline; text-underline-offset:2px; }

@media (max-width:780px){
	.trek-full-desc-grid{ grid-template-columns:1fr; }
}

/* ---- Hire Guide Only (full-width breakout) + Individual Services ----
   Kept in the site's existing warm paper/stone family rather than the
   dark charcoal look .trek-guide-fee-feature was already, deliberately,
   softened away from — the extra weight here comes from scale and
   framing (a full-width card, a thicker accent bar) instead. The tier
   picker is a set of clickable rows built alongside the original
   .trek-guide-fee-dropdown <select> (kept in the DOM but hidden — see
   .trek-guide-fee-dropdown--hidden), so the existing result-panel and
   booking-link JavaScript keeps working unmodified. */
.trek-guide-hire-section{ background:var(--stone); padding:60px 6vw 70px; }
.trek-guide-hire-card{
	max-width:1240px; margin:0 auto; position:relative; overflow:hidden;
	background:linear-gradient(160deg, var(--paper) 0%, var(--stone) 100%);
	border:1px solid var(--line); border-radius:10px;
	box-shadow:0 8px 30px rgba(43,37,32,0.09);
}
.trek-guide-hire-card::before{ content:''; position:absolute; top:0; left:0; right:0; height:6px; background:linear-gradient(90deg, var(--saffron), var(--rust-deep)); }
.trek-guide-hire-badge{
	/* Anchored to .trek-guide-hire-card (top:0 there is the card's own top
	   edge), while .trek-guide-hire-right's first child — the selected
	   guide-tier card — starts at its 44px top padding. This badge's own
	   box (padding + line-height) is taller than the old 28px offset left
	   as clearance, so its bottom edge dipped into the tier card's top
	   border and the border rendered as a line crossing the badge. Raised
	   to sit fully clear above it. */
	position:absolute; top:14px; right:6vw;
	font-family:'JetBrains Mono', monospace; font-size:0.62rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase;
	color:var(--rust-deep); background:rgba(140,63,34,0.1); border:1px solid rgba(140,63,34,0.28);
	border-radius:20px; padding:6px 14px;
}
.trek-guide-hire-grid{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:0; }
.trek-guide-hire-left{ padding:52px 44px 44px 6vw; max-width:520px; }
.trek-guide-hire-heading{ font-family:'Fraunces', serif; font-weight:600; font-size:clamp(1.7rem, 2.6vw, 2.15rem); line-height:1.2; margin:0 0 16px; }
.trek-guide-hire-sub{ font-size:0.96rem; line-height:1.65; color:#4a423a; margin-bottom:30px; }
.trek-guide-hire-trust-list{ display:flex; flex-direction:column; gap:16px; }
.trek-guide-hire-trust-item{ display:flex; align-items:flex-start; gap:12px; }
.trek-guide-hire-trust-icon{ flex:none; width:19px; height:19px; color:var(--rust-deep); margin-top:2px; }
.trek-guide-hire-trust-icon svg{ width:100%; height:100%; }
.trek-guide-hire-trust-item span{ font-size:0.88rem; color:var(--charcoal); line-height:1.5; }

.trek-guide-hire-right{ background:rgba(43,37,32,0.03); padding:44px 6vw 44px 40px; border-left:1px solid var(--line); }
/* .trek-guide-fee-select-module is kept on the wrapper purely so the
   existing dropdown-change JS (main.js, untouched) can still find it via
   .closest() — its own card chrome (paper background, border, padding)
   is switched off here since .trek-guide-hire-right already provides the
   framing and a second nested card would just look like a mistake. */
.trek-guide-hire-right .trek-guide-fee-select-module{ background:transparent; border:none; border-radius:0; padding:0; }
/* .trek-guide-fee-result's default border-top (see the plain-dropdown rule
   above) was a divider between the old select and its result text. Here the
   selected tier row already has its own full border immediately above, so
   that same line just floated in the gap above the book button with nothing
   left for it to divide — dropped in favor of plain spacing. */
.trek-guide-hire-right .trek-guide-fee-result{ border-top:none; padding-top:0; margin-top:14px; }
.trek-guide-picker{ display:flex; flex-direction:column; gap:10px; margin-bottom:10px; }
.trek-guide-tier-row{
	display:flex; align-items:center; justify-content:space-between; gap:16px;
	background:#fff; border:1px solid var(--line); border-radius:7px;
	padding:16px 18px; cursor:pointer;
}
.trek-guide-tier-row.is-selected{ border-color:var(--rust-deep); background:#FBF6EC; box-shadow:0 2px 10px rgba(140,63,34,0.1); }
.trek-guide-tier-row:focus-visible{ outline:2px solid var(--rust-deep); outline-offset:2px; }
.trek-guide-tier-main{ display:flex; align-items:center; gap:12px; }
.trek-guide-tier-check{ flex:none; width:19px; height:19px; border-radius:50%; border:1.5px solid rgba(43,37,32,0.25); position:relative; }
.trek-guide-tier-row.is-selected .trek-guide-tier-check{ border-color:var(--rust-deep); background:var(--rust-deep); }
.trek-guide-tier-row.is-selected .trek-guide-tier-check::after{ content:''; position:absolute; inset:0; margin:auto; width:7px; height:7px; border-radius:50%; background:#fff; }
.trek-guide-tier-name{ display:block; font-weight:600; font-size:0.92rem; color:var(--charcoal); }
.trek-guide-tier-desc{ display:block; font-size:0.78rem; color:#7a7166; margin-top:2px; }
.trek-guide-tier-price{ font-family:'Fraunces', serif; font-weight:600; font-size:1.05rem; color:var(--rust-deep); white-space:nowrap; }
.trek-guide-tier-price small{ font-family:'JetBrains Mono', monospace; font-weight:400; font-size:0.58rem; text-transform:uppercase; letter-spacing:0.04em; color:#9a9186; margin-left:2px; }
.trek-guide-fee-dropdown--hidden{
	position:absolute; width:1px; height:1px; padding:0; margin:-1px;
	overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

.trek-individual-services{ margin-top:24px; padding-top:22px; border-top:1px solid var(--line); }
.trek-individual-services-label{ display:block; color:var(--rust-deep); margin-bottom:8px; }
.trek-individual-services-sub{ font-size:0.86rem; color:#7a7166; line-height:1.5; }
.trek-individual-services-table{ border:1px solid var(--line); border-radius:8px; overflow:hidden; margin-top:16px; }
.trek-individual-service-row{
	display:grid; grid-template-columns:1.1fr 1.7fr auto; align-items:center; gap:20px;
	padding:14px 20px; background:#fff;
}
.trek-individual-service-row:nth-child(even){ background:#FBF6EC; }
.trek-individual-service-row + .trek-individual-service-row{ border-top:1px solid var(--line); }
.trek-individual-service-name{ font-weight:600; font-size:0.9rem; color:var(--charcoal); }
.trek-individual-service-desc{ font-size:0.82rem; color:#7a7166; line-height:1.5; }
.trek-individual-service-price{ font-family:'Fraunces', serif; font-weight:600; font-size:1rem; color:var(--rust-deep); text-align:right; white-space:nowrap; }
.trek-individual-service-price small{ font-family:'JetBrains Mono', monospace; font-weight:400; font-size:0.56rem; text-transform:uppercase; letter-spacing:0.04em; color:#9a9186; margin-left:2px; }

.trek-individual-services-enquire-btn{
	display:inline-flex; align-items:center; gap:9px; margin-top:16px;
	background:transparent; border:1.5px solid var(--rust-deep); border-radius:999px;
	padding:11px 22px; color:var(--rust-deep); font-weight:600; font-size:0.86rem;
	cursor:pointer; transition:background 0.15s ease, color 0.15s ease;
}
.trek-individual-services-enquire-btn svg{ width:17px; height:17px; flex:none; }
.trek-individual-services-enquire-btn:hover,
.trek-individual-services-enquire-btn:focus-visible{ background:var(--rust-deep); color:#fff; }

@media (max-width:880px){
	.trek-guide-hire-grid{ grid-template-columns:1fr; }
	.trek-guide-hire-left{ padding:40px 6vw 8px; max-width:none; }
	.trek-guide-hire-right{ padding:8px 6vw 40px; border-left:none; border-top:1px solid var(--line); margin-top:26px; }
	.trek-guide-hire-badge{ position:static; display:inline-block; margin-bottom:16px; }
	.trek-individual-service-row{ grid-template-columns:1fr; gap:6px; padding:12px 16px; }
	.trek-individual-service-price{ text-align:left; }
}

/* ---- Safety section — Safety Priorities (left) + Credentials showcase
   (right), inside one elevated card, same "premium split card" language as
   .trek-guide-hire-card just above (gradient top bar, light stone section
   background, tinted right column) so it reads as part of the same design
   system rather than a bolted-on block. ---- */
.trek-safety-section{ background:var(--stone); padding:60px 6vw 70px; }
.trek-safety-inner{ max-width:1240px; margin:0 auto; }
.trek-safety-card{ position:relative; background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 8px 30px rgba(43,37,32,0.08); }
.trek-safety-card::before{ content:''; position:absolute; top:0; left:0; right:0; height:6px; background:linear-gradient(90deg, var(--rust-deep), var(--saffron)); }
.trek-safety-grid{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:0; }
.trek-safety-left{ padding:52px 44px; }
.trek-safety-eyebrow{ color:var(--rust-deep); }
.trek-safety-heading{ font-size:clamp(1.7rem, 2.6vw, 2.15rem); line-height:1.2; margin:12px 0 14px; }
.trek-safety-sub{ font-size:0.95rem; line-height:1.65; color:#4a423a; margin-bottom:30px; max-width:480px; }
.trek-safety-priority-list{ display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:22px 32px; }
.trek-safety-priority-item{ display:flex; gap:13px; align-items:flex-start; }
.trek-safety-priority-icon{
  flex:none; width:38px; height:38px; border-radius:10px;
  background:rgba(140,63,34,0.08); color:var(--rust-deep);
  display:flex; align-items:center; justify-content:center;
}
.trek-safety-priority-icon svg{ width:18px; height:18px; }
.trek-safety-priority-title{ font-size:0.9rem; font-weight:600; color:var(--charcoal); margin:0 0 3px; }
.trek-safety-priority-desc{
  font-size:0.8rem; line-height:1.5; color:#7a7166; margin:0;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.trek-safety-priority-desc.is-expanded{ display:block; -webkit-line-clamp:unset; overflow:visible; }
.trek-safety-priority-desc p{ margin:0 0 0.6em; }
.trek-safety-priority-desc p:last-child{ margin-bottom:0; }
.trek-safety-priority-desc ul, .trek-safety-priority-desc ol{ margin:0 0 0.4em; padding-left:1.2em; }
.trek-safety-priority-desc a{ color:var(--rust-deep); text-decoration:underline; }
.trek-safety-read-more-btn{
  background:none; border:none; padding:5px 0 0; margin:0;
  font-family:'Work Sans', sans-serif; font-size:0.76rem; font-weight:600;
  color:var(--rust-deep); cursor:pointer; text-decoration:underline;
}
.trek-safety-read-more-btn:hover{ color:var(--rust); }
.trek-safety-right{ padding:52px 40px 52px 40px; background:rgba(43,37,32,0.03); border-left:1px solid var(--line); }
.trek-safety-cred-eyebrow{ display:block; color:var(--rust-deep); margin-bottom:8px; }
.trek-safety-cred-heading{ font-size:1.25rem; margin:0 0 8px; }
.trek-safety-cred-sub{ font-size:0.82rem; color:#7a7166; line-height:1.5; margin-bottom:22px; }
.trek-safety-cred-list{ display:flex; flex-direction:column; gap:12px; }
.trek-safety-cred-card{
  display:flex; align-items:center; gap:12px;
  background:#fff; border:1px solid var(--line); border-radius:10px; padding:14px 16px;
  transition:border-color 0.2s, transform 0.2s, box-shadow 0.2s;
}
.trek-safety-cred-card:hover{ border-color:var(--saffron); transform:translateY(-2px); box-shadow:0 8px 20px rgba(43,37,32,0.08); }
.trek-safety-cred-icon{
  flex:none; width:34px; height:34px; border-radius:8px;
  background:rgba(140,63,34,0.08); color:var(--rust-deep);
  display:flex; align-items:center; justify-content:center;
}
.trek-safety-cred-icon svg{ width:16px; height:16px; }
.trek-safety-cred-name{ flex:1; font-size:0.86rem; font-weight:600; color:var(--charcoal); }
.trek-safety-cred-view{
  display:flex; align-items:center; gap:5px; flex:none;
  font-family:'JetBrains Mono', monospace; font-size:0.66rem; text-transform:uppercase; letter-spacing:0.04em;
  color:var(--rust-deep); white-space:nowrap;
}
.trek-safety-cred-view svg{ width:11px; height:11px; }
@media (max-width:880px){
	.trek-safety-grid{ grid-template-columns:1fr; }
	.trek-safety-left{ padding:40px 6vw; }
	.trek-safety-right{ padding:8px 6vw 40px; border-left:none; border-top:1px solid var(--line); margin-top:6px; }
}
@media (max-width:560px){
	.trek-safety-priority-list{ grid-template-columns:1fr; }
}

/* ---- "Ask About a Service" popup — a real centered modal (dark backdrop,
   floating card) rather than the Reviews section's inline reveal, so it
   reads as its own, distinct thing even though it borrows .wizard-form /
   .feedback-msg / .trek-review-field for the input styling underneath. ---- */
.trek-service-enquiry-modal{
	position:fixed; inset:0; z-index:9999;
	background:rgba(20,16,12,0.78);
	display:flex; align-items:center; justify-content:center;
	padding:5vw; overflow-y:auto;
}
.trek-service-enquiry-modal[hidden]{ display:none; }
.trek-service-enquiry-card{
	position:relative; width:100%; max-width:520px; max-height:88vh; overflow-y:auto;
	background:var(--paper); border-radius:14px; padding:38px 36px 32px;
	box-shadow:0 24px 60px rgba(20,16,12,0.4);
	border-top:4px solid var(--saffron);
}
.trek-service-enquiry-close{
	position:absolute; top:16px; right:16px;
	width:34px; height:34px; border-radius:50%;
	border:1px solid var(--line); background:#fff;
	color:var(--charcoal); font-size:1.3rem; line-height:1; cursor:pointer;
}
.trek-service-enquiry-close:hover{ background:var(--stone); }
.trek-service-enquiry-eyebrow{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.trek-service-enquiry-eyebrow .rule{ width:28px; height:1px; background:var(--rust-deep); display:inline-block; }
.trek-service-enquiry-eyebrow .mono{ color:var(--rust-deep); }
.trek-service-enquiry-heading{ font-size:clamp(1.35rem, 2.6vw, 1.65rem); margin-bottom:8px; }
.trek-service-enquiry-sub{ font-size:0.86rem; color:#7a7166; line-height:1.55; margin-bottom:22px; }
.trek-service-enquiry-options{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.trek-service-enquiry-option{ position:relative; cursor:pointer; }
.trek-service-enquiry-option input{ position:absolute; opacity:0; }
.trek-service-enquiry-option span{
	display:flex; flex-direction:column; gap:2px;
	background:#fff; border:1.5px solid var(--line); border-radius:8px;
	padding:11px 14px; font-size:0.8rem; color:#7a7166; line-height:1.4;
}
.trek-service-enquiry-option span strong{ font-size:0.86rem; color:var(--charcoal); }
.trek-service-enquiry-option input:checked + span{ border-color:var(--saffron); background:#FBF3E2; }
.trek-service-enquiry-option input:checked + span strong{ color:var(--rust-deep); }
.trek-service-enquiry-option input:focus-visible + span{ outline:2px solid var(--rust-deep); outline-offset:2px; }
@media (max-width:520px){
	.trek-service-enquiry-card{ padding:30px 20px 26px; }
	.trek-service-enquiry-options{ grid-template-columns:1fr; }
}

/* ---- Shared "success card" component ----
   Used by every thank-you/confirmation message on the site: reviews (fixed
   Sage theme, shown as its own popup), and the trek/tour/service enquiry
   popups, main contact form, Trip Wizard, feedback and wedding contact form
   (one of four warm tinted themes, picked at random per submission —
   rujan_success_card_theme() in functions.php). Supersedes the old single
   dark .trek-enquiry-thankyou card the enquiry popups used before.

   Two ways this gets used:
   1. Standalone — .rujan-success-card wraps its own content (background,
      border, radius) — the inline confirmations (contact, feedback,
      wedding contact) that aren't already sitting inside a popup card.
   2. Inside an existing popup card — add class theme-{name} straight onto
      that card's own wrapper (.trek-service-enquiry-card) instead of
      nesting another card inside it; the content classes below (eyebrow,
      title, lede, etc.) work either way since they carry no background of
      their own. See single-trek.php/single-tour.php for this pattern. */
.rujan-success-card{
	border-radius:12px; padding:34px 30px; text-align:center; position:relative; overflow:hidden;
	border:1px solid var(--line);
}
.rujan-success-card::before{ content:''; position:absolute; top:0; left:0; right:0; height:4px; }
.rujan-success-card-eyebrow{
	display:flex; align-items:center; justify-content:center; gap:10px;
	font-family:'JetBrains Mono', monospace; font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase;
	margin-bottom:16px;
}
.rujan-success-card-eyebrow .rule{ width:28px; height:1px; display:inline-block; }
.rujan-success-card-stars{ display:inline-flex; gap:3px; margin-bottom:14px; color:var(--saffron); }
.rujan-success-card-stars svg{ width:16px; height:16px; }
.rujan-success-card-title{
	font-family:'Fraunces', serif; font-weight:600; font-size:clamp(1.3rem, 3vw, 1.65rem);
	color:var(--charcoal); margin:0 0 10px;
}
.rujan-success-card-title em{ font-style:normal; }
.rujan-success-card-lede{ font-size:0.9rem; line-height:1.6; color:#5a5148; max-width:440px; margin:0 auto; }
.rujan-success-card-elevation{ width:220px; height:44px; margin:22px auto 0; display:block; }
.rujan-success-card-elevation polyline{ fill:none; stroke-width:2; }
.rujan-success-card-note{ margin-top:20px; padding-top:16px; font-size:0.78rem; color:#8c8375; }
.rujan-success-card-actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:26px; }
.rujan-success-card-actions .btn.ghost{ border:1px solid rgba(43,37,32,0.28); color:var(--charcoal); }
.rujan-success-card-actions .btn.ghost:hover{ background:rgba(43,37,32,0.06); border-color:var(--charcoal); }
.rujan-success-card-meta{ margin-top:24px; padding-top:18px; font-size:0.8rem; color:#7a7166; }
.rujan-success-card-meta-label{
	font-family:'JetBrains Mono', monospace; font-size:0.66rem; letter-spacing:0.06em; text-transform:uppercase; color:#8c8375;
	display:block; margin-bottom:6px;
}
.rujan-success-card-meta a{ color:var(--rust-deep); }
.trek-service-enquiry-card[class*="theme-"]{ text-align:center; }

.rujan-success-card.theme-ivory, .trek-service-enquiry-card.theme-ivory{ background:linear-gradient(160deg, #FBF3E2, #F3E7CC); border-top-color:#B1552F; }
.rujan-success-card.theme-ivory::before{ background:linear-gradient(90deg, #8C3F22, #D7993C); }
.rujan-success-card.theme-ivory .rujan-success-card-eyebrow, .trek-service-enquiry-card.theme-ivory .rujan-success-card-eyebrow{ color:#8C3F22; }
.rujan-success-card.theme-ivory .rujan-success-card-eyebrow .rule, .trek-service-enquiry-card.theme-ivory .rujan-success-card-eyebrow .rule{ background:#8C3F22; }
.rujan-success-card.theme-ivory .rujan-success-card-title em, .trek-service-enquiry-card.theme-ivory .rujan-success-card-title em{ color:#8C3F22; }
.rujan-success-card.theme-ivory .rujan-success-card-elevation polyline, .trek-service-enquiry-card.theme-ivory .rujan-success-card-elevation polyline{ stroke:#B1552F; }
.rujan-success-card.theme-ivory .rujan-success-card-note, .trek-service-enquiry-card.theme-ivory .rujan-success-card-note,
.rujan-success-card.theme-ivory .rujan-success-card-meta, .trek-service-enquiry-card.theme-ivory .rujan-success-card-meta{ border-top:1px solid rgba(140,63,34,0.18); }

.rujan-success-card.theme-sage, .trek-service-enquiry-card.theme-sage{ background:linear-gradient(160deg, #EEF2E9, #DFE9D6); border-top-color:#3F5738; }
.rujan-success-card.theme-sage::before{ background:linear-gradient(90deg, #3F5738, #7C9A6E); }
.rujan-success-card.theme-sage .rujan-success-card-eyebrow, .trek-service-enquiry-card.theme-sage .rujan-success-card-eyebrow{ color:#4E6B45; }
.rujan-success-card.theme-sage .rujan-success-card-eyebrow .rule, .trek-service-enquiry-card.theme-sage .rujan-success-card-eyebrow .rule{ background:#4E6B45; }
.rujan-success-card.theme-sage .rujan-success-card-title em, .trek-service-enquiry-card.theme-sage .rujan-success-card-title em{ color:#4E6B45; }
.rujan-success-card.theme-sage .rujan-success-card-elevation polyline, .trek-service-enquiry-card.theme-sage .rujan-success-card-elevation polyline{ stroke:#5B7553; }
.rujan-success-card.theme-sage .rujan-success-card-note, .trek-service-enquiry-card.theme-sage .rujan-success-card-note,
.rujan-success-card.theme-sage .rujan-success-card-meta, .trek-service-enquiry-card.theme-sage .rujan-success-card-meta{ border-top:1px solid rgba(63,87,56,0.18); }

.rujan-success-card.theme-blush, .trek-service-enquiry-card.theme-blush{ background:linear-gradient(160deg, #FBEDE6, #F5D9C9); border-top-color:#A85A45; }
.rujan-success-card.theme-blush::before{ background:linear-gradient(90deg, #A85A45, #D99B85); }
.rujan-success-card.theme-blush .rujan-success-card-eyebrow, .trek-service-enquiry-card.theme-blush .rujan-success-card-eyebrow{ color:#B06A4F; }
.rujan-success-card.theme-blush .rujan-success-card-eyebrow .rule, .trek-service-enquiry-card.theme-blush .rujan-success-card-eyebrow .rule{ background:#B06A4F; }
.rujan-success-card.theme-blush .rujan-success-card-title em, .trek-service-enquiry-card.theme-blush .rujan-success-card-title em{ color:#B06A4F; }
.rujan-success-card.theme-blush .rujan-success-card-elevation polyline, .trek-service-enquiry-card.theme-blush .rujan-success-card-elevation polyline{ stroke:#C97B63; }
.rujan-success-card.theme-blush .rujan-success-card-note, .trek-service-enquiry-card.theme-blush .rujan-success-card-note,
.rujan-success-card.theme-blush .rujan-success-card-meta, .trek-service-enquiry-card.theme-blush .rujan-success-card-meta{ border-top:1px solid rgba(168,90,69,0.18); }

.rujan-success-card.theme-gold, .trek-service-enquiry-card.theme-gold{ background:linear-gradient(160deg, #FBF0DC, #F0DDA8); border-top-color:#B1552F; }
.rujan-success-card.theme-gold::before{ background:linear-gradient(90deg, #8C3F22, #D7993C); }
.rujan-success-card.theme-gold .rujan-success-card-eyebrow, .trek-service-enquiry-card.theme-gold .rujan-success-card-eyebrow{ color:#966423; }
.rujan-success-card.theme-gold .rujan-success-card-eyebrow .rule, .trek-service-enquiry-card.theme-gold .rujan-success-card-eyebrow .rule{ background:#966423; }
.rujan-success-card.theme-gold .rujan-success-card-title em, .trek-service-enquiry-card.theme-gold .rujan-success-card-title em{ color:#8C3F22; }
.rujan-success-card.theme-gold .rujan-success-card-elevation polyline, .trek-service-enquiry-card.theme-gold .rujan-success-card-elevation polyline{ stroke:#B1552F; }
.rujan-success-card.theme-gold .rujan-success-card-note, .trek-service-enquiry-card.theme-gold .rujan-success-card-note,
.rujan-success-card.theme-gold .rujan-success-card-meta, .trek-service-enquiry-card.theme-gold .rujan-success-card-meta{ border-top:1px solid rgba(150,100,35,0.2); }

/* ---- Photos & Videos gallery — reuses the site's existing .gallery/.ph-wrap
   masonry grid (see the Portfolio grid rules above) rather than a new one;
   only the video play-button/caption treatment below is new. ---- */
.trek-gallery-section{ background:var(--stone); padding:60px 6vw 70px; }
.trek-gallery-inner{ max-width:1240px; margin:0 auto; }
.trek-gallery-label{ display:block; color:var(--rust-deep); margin-bottom:12px; }
.trek-gallery-heading{ font-size:clamp(1.9rem, 3.2vw, 2.5rem); margin-bottom:30px; }
/* Photos & Videos grid — a row-flow "justified" layout: every tile shares
   one row height, and each tile's width is set inline (see single-trek.php)
   from that photo's own real aspect ratio, so a panorama runs wide and a
   portrait runs narrow. No tile is blown up bigger than the rest — every
   photo appears as a plain, evenly-sized thumbnail; clicking still opens
   the full photo via the lightbox. */
.trek-media-grid{ display:flex; flex-wrap:wrap; gap:10px; }
.trek-media-item{
  position:relative; display:block; height:230px;
  overflow:hidden; border-radius:10px;
  box-shadow:0 2px 10px rgba(43,37,32,0.08);
  cursor:zoom-in;
}
.trek-media-item img{
  display:block; width:100%; height:100%; object-fit:cover;
  transition:transform 0.5s ease;
}
.trek-media-item:hover img{ transform:scale(1.05); }
.trek-media-zoom{
  position:absolute; right:10px; bottom:10px;
  width:32px; height:32px; border-radius:50%;
  background:rgba(20,16,12,0.55); color:#fff;
  display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity 0.2s;
}
.trek-media-zoom svg{ width:15px; height:15px; }
.trek-media-item:hover .trek-media-zoom{ opacity:1; }
@media (max-width:640px){
  .trek-media-item{ height:150px; }
}
.trek-media-video{ position:relative; background:var(--charcoal); cursor:pointer; }
.trek-media-play{
	position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
	width:52px; height:52px; border-radius:50%;
	background:rgba(20,16,12,0.5); border:1.5px solid rgba(255,255,255,0.75);
	display:flex; align-items:center; justify-content:center;
}
.trek-media-play svg{ width:18px; height:18px; color:#fff; margin-left:2px; }
.trek-media-caption{
	position:absolute; left:0; right:0; bottom:0; padding:22px 14px 10px;
	background:linear-gradient(0deg, rgba(20,16,12,0.72) 0%, rgba(20,16,12,0) 100%);
}
.trek-media-caption span{ font-family:'JetBrains Mono', monospace; font-size:0.66rem; letter-spacing:0.03em; color:#fff; }

/* ---- Reviews ---- */
.trek-reviews-section{ background:var(--stone); padding:60px 6vw 70px; }
.trek-reviews-inner{ max-width:820px; margin:0 auto; }
.trek-reviews-heading-row{ display:flex; align-items:baseline; justify-content:space-between; border-bottom:1px solid var(--line); padding-bottom:18px; margin-bottom:22px; }
.trek-reviews-heading{ font-family:'Fraunces', serif; font-weight:600; font-size:clamp(1.5rem, 2.8vw, 1.9rem); margin:0; }
.trek-reviews-count{ font-family:'JetBrains Mono', monospace; font-size:0.72rem; letter-spacing:0.03em; text-transform:uppercase; color:#7a7166; }
.trek-reviews-summary{ display:flex; align-items:center; gap:12px; margin-bottom:24px; }
.trek-reviews-avg{ font-family:'Fraunces', serif; font-weight:600; font-size:1.7rem; color:var(--charcoal); }
.trek-reviews-stars{ display:flex; gap:2px; color:var(--saffron); }
.trek-reviews-stars svg{ width:16px; height:16px; }
.trek-reviews-summary-count{ font-size:0.82rem; color:#7a7166; }
.trek-review-list{ display:grid; grid-template-columns:repeat(2, 1fr); gap:18px; margin-bottom:24px; }
.trek-review-card{ background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:22px 24px; }
.trek-review-stars{ display:flex; gap:2px; color:var(--saffron); margin-bottom:10px; }
.trek-review-stars svg{ width:14px; height:14px; }
.trek-review-body{ font-size:0.9rem; line-height:1.6; color:#4a423a; font-style:italic; margin-bottom:12px; }
.trek-review-handwritten{ width:100%; border-radius:4px; margin-bottom:12px; display:block; }
.trek-review-author{ display:block; font-family:'JetBrains Mono', monospace; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.03em; color:var(--rust-deep); }
.trek-reviews-empty{
	background:var(--paper); border:1px solid var(--line); border-radius:8px;
	padding:38px 24px; text-align:center; margin-bottom:22px;
}
.trek-reviews-empty p{ font-size:0.92rem; color:#7a7166; font-style:italic; }
.trek-review-write-btn{
	display:inline-flex; align-items:center; justify-content:center; gap:8px;
	background:transparent; border:1.5px solid var(--rust-deep); color:var(--rust-deep);
	border-radius:999px; padding:13px 30px; font-size:0.85rem; font-weight:600; letter-spacing:0.02em;
	text-decoration:none; transition:all 0.2s;
	font-family:inherit; cursor:pointer;
}
.trek-review-write-btn:hover{ background:var(--rust-deep); color:#fff; }
.trek-review-write-btn[aria-expanded="true"]{ background:var(--rust-deep); color:#fff; }
.trek-review-write-btn svg{ width:16px; height:16px; }

/* ---- Verified Customer Reviews — booking-tied reviews submitted from My
   Account, stored as approved comments rather than testimonial CPT posts
   (kept out of the Home/All Testimonials pool on purpose). Reuses
   .trek-review-card/.trek-review-list for a consistent look, with its own
   heading so it reads as a distinct, second source rather than more of the
   curated testimonials above it. ---- */
.trek-customer-reviews{ margin-bottom:24px; padding-top:22px; border-top:1px solid var(--line); }
.trek-customer-reviews-heading{ font-family:'Fraunces', serif; font-weight:600; font-size:1.15rem; color:var(--charcoal); margin-bottom:6px; }
.trek-customer-reviews-sub{ font-size:0.82rem; color:#7a7166; margin-bottom:18px; }

/* ---- Write a Review — a real submission form (testimonial CPT, held for
   moderation as "pending" until approved in wp-admin), not a link out to the
   contact page. Reuses the site's existing .wizard-form input styling and
   .feedback-msg banner classes rather than duplicating them. ---- */
.trek-review-form-wrap{ margin-top:26px; }
.trek-review-form-card{
	/* Deliberately no max-width — spans the same width as .trek-reviews-empty
	   and .trek-review-list above it (both just inherit .trek-reviews-inner's
	   820px), instead of looking narrower/off next to them. */
	background:var(--paper); border:1px solid var(--line); border-radius:8px;
	padding:28px 26px;
}
.trek-review-form-heading{ font-family:'Fraunces', serif; font-weight:600; font-size:1.2rem; margin:0 0 6px; }
.trek-review-form-sub{ font-size:0.86rem; color:#7a7166; line-height:1.5; margin-bottom:20px; }
.trek-review-form-label{ font-size:0.82rem; font-weight:600; color:var(--charcoal); display:block; margin-bottom:8px; }
.trek-review-form-optional{ font-weight:400; color:#9a9186; }
.trek-review-field{ display:flex; flex-direction:column; }
/* Without this, the [hidden] attribute the handwritten-review toggle sets on
   .trek-review-image-field (also a .trek-review-field) has no visible effect
   — the browser's own [hidden]{display:none} UA rule loses to this author
   rule's display:flex above at equal specificity, since author styles beat
   user-agent ones regardless. This re-asserts it at higher specificity. */
.trek-review-field[hidden]{ display:none; }
.trek-review-form-privacy-note{
	font-size:0.78rem; color:#7a7166; line-height:1.4; margin:-4px 0 8px;
}
.trek-review-star-input{
	display:flex; flex-direction:row-reverse; justify-content:flex-end; gap:4px;
	margin-bottom:4px; position:relative;
}
.trek-review-star-input input{ position:absolute; opacity:0; width:1px; height:1px; }
.trek-review-star-input label{
	font-size:1.9rem; line-height:1; color:var(--line); cursor:pointer; transition:color 0.15s;
	/* The star glyph alone renders at roughly 30x30px — under a comfortable
	   tap target. Padding + equal negative margin grows the invisible hit
	   area to ~44px without changing the star's visual size or the gap
	   between stars (same technique used on .nav-toggle elsewhere). */
	padding:7px; margin:-7px;
}
.trek-review-star-input label:hover,
.trek-review-star-input label:hover ~ label,
.trek-review-star-input input:checked ~ label{ color:var(--rust-deep); }
.trek-review-star-input input:focus-visible + label{ outline:2px solid var(--rust-deep); outline-offset:2px; border-radius:3px; }
.trek-review-visibility-choice{ display:flex; gap:10px; flex-wrap:wrap; }
.trek-review-visibility-option{ flex:1; min-width:220px; position:relative; cursor:pointer; }
.trek-review-visibility-option input{ position:absolute; opacity:0; }
.trek-review-visibility-option span{
	display:block; padding:12px 14px;
	border:1.5px solid var(--line); border-radius:6px;
	font-size:0.84rem; color:#4a423a; line-height:1.4;
	transition:border-color 0.15s, background 0.15s;
}
.trek-review-visibility-option span strong{ display:block; font-size:0.86rem; color:var(--charcoal); margin-bottom:2px; }
.trek-review-visibility-option input:checked + span{
	border-color:var(--rust-deep); background:rgba(140,63,34,0.06);
}
.trek-review-visibility-option input:checked + span strong{ color:var(--rust-deep); }
.trek-review-visibility-option input:focus-visible + span{ outline:2px solid var(--rust-deep); outline-offset:2px; }
.trek-review-form button[type="submit"]{ align-self:flex-start; margin-top:4px; }

/* ---- Handwritten review toggle — swaps the typed textarea for a photo
   upload of an actual handwritten note, same _rujan_review_type/_image
   fields the admin-created "handwritten" testimonials already use, so it
   renders through the exact same display code as those. ---- */
.trek-review-handwritten-toggle{ position:relative; display:inline-flex; cursor:pointer; margin:-4px 0 2px; }
.trek-review-handwritten-toggle input{ position:absolute; opacity:0; }
.trek-review-handwritten-toggle span{
	display:inline-flex; align-items:center; gap:8px;
	padding:10px 16px; border:1.5px solid var(--line); border-radius:999px;
	font-size:0.82rem; font-weight:600; color:#4a423a;
	transition:border-color 0.15s, background 0.15s, color 0.15s;
}
.trek-review-handwritten-toggle svg{ width:16px; height:16px; flex:none; }
.trek-review-handwritten-toggle input:checked + span{
	border-color:var(--rust-deep); background:var(--rust-deep); color:#fff;
}
.trek-review-handwritten-toggle input:focus-visible + span{ outline:2px solid var(--rust-deep); outline-offset:2px; }
.trek-review-image-field-hint{ font-size:0.78rem; color:#7a7166; margin-top:8px; }
.trek-review-file-input{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.trek-review-file-input input[type="file"]{
	position:absolute; width:1px; height:1px; opacity:0; overflow:hidden;
}
.trek-review-file-input-btn{
	display:inline-flex; align-items:center; gap:8px; cursor:pointer;
	padding:11px 20px; border:1.5px solid var(--rust-deep); border-radius:999px;
	font-size:0.82rem; font-weight:600; color:var(--rust-deep);
	transition:background 0.15s, color 0.15s;
}
.trek-review-file-input-btn:hover{ background:var(--rust-deep); color:#fff; }
.trek-review-file-input-name{ font-size:0.84rem; color:#7a7166; word-break:break-all; }
.trek-review-image-preview{ margin-top:14px; max-width:220px; }
.trek-review-image-preview img{ width:100%; border-radius:6px; border:1px solid var(--line); display:block; }

.trek-review-module--testimonials .trek-review-handwritten-toggle input:checked + span{
	border-color:var(--prayer-blue); background:var(--prayer-blue);
}
.trek-review-module--testimonials .trek-review-handwritten-toggle input:focus-visible + span{ outline-color:var(--prayer-blue); }
.trek-review-module--testimonials .trek-review-file-input-btn{ border-color:var(--prayer-blue); color:var(--prayer-blue); }
.trek-review-module--testimonials .trek-review-file-input-btn:hover{ background:var(--prayer-blue); color:#fff; }

/* ---- Same "Write a Review" module, reused on the standalone Testimonials
   page (page-testimonials.php) for a general, not-trek-specific review —
   given the site's prayer-blue accent instead of rust-deep/saffron so it
   reads as its own section rather than a copy-pasted trek-page block. ---- */
.trek-review-module--testimonials .trek-review-write-btn{
	border-color:var(--prayer-blue); color:var(--prayer-blue);
}
.trek-review-module--testimonials .trek-review-write-btn:hover,
.trek-review-module--testimonials .trek-review-write-btn[aria-expanded="true"]{
	background:var(--prayer-blue); color:#fff;
}
.trek-review-module--testimonials .trek-review-star-input label:hover,
.trek-review-module--testimonials .trek-review-star-input label:hover ~ label,
.trek-review-module--testimonials .trek-review-star-input input:checked ~ label{
	color:var(--prayer-blue);
}
.trek-review-module--testimonials .trek-review-star-input input:focus-visible + label{
	outline-color:var(--prayer-blue);
}
.trek-review-module--testimonials .trek-review-visibility-option input:checked + span{
	border-color:var(--prayer-blue); background:rgba(58,107,130,0.08);
}
.trek-review-module--testimonials .trek-review-visibility-option input:checked + span strong{ color:var(--prayer-blue); }
.trek-review-module--testimonials .trek-review-visibility-option input:focus-visible + span{ outline-color:var(--prayer-blue); }
.trek-review-module--testimonials .btn.solid{ background:var(--prayer-blue); color:#fff; }
.trek-review-module--testimonials .btn.solid:hover{ background:#2f5468; }

@media (max-width:780px){
	.trek-review-list{ grid-template-columns:1fr; }
	.trek-review-form-card{ padding:22px 18px; }
	.trek-review-visibility-choice{ flex-direction:column; }
}