/* ==========================================================================
   Journeys: index, collection hubs and itinerary pages.
   Builds on destinations.css (hero, chapter bar, in-short, facts, profile, FAQ).
   ========================================================================== */

/* Hero stats ---------------------------------------------------------------- */
.jny-stats{list-style:none;margin:30px 0 0;padding:18px 0 0;display:flex;flex-wrap:wrap;gap:14px 36px;border-top:1px solid rgba(246,246,242,.25);max-width:760px}
.jny-stats li{display:grid;gap:2px}
.jny-stats b{font-family:var(--font-display);font-weight:300;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1}
.jny-stats span{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(246,246,242,.75)}
.jny-hero h1{font-size:clamp(2.8rem,8vw,6.6rem);max-width:15ch}
.jny-intro{margin-top:26px;color:var(--ink-2)}

/* Route map -------------------------------------------------------------------- */
.jmap{margin:8px 0 0}
.jmap-frame{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow-x:auto;color:var(--ink)}
.jmap-frame svg{width:100%;min-width:640px;height:auto}
.jm-ridge{fill:none;stroke:rgba(15,26,20,.22);stroke-width:1.2;stroke-dasharray:1 5;stroke-linecap:round}
.jm-river{fill:none;stroke:#8fb3c4;stroke-width:2.4;stroke-linecap:round;opacity:.8}
.jm-region{font-family:var(--font-mono);font-size:13px;letter-spacing:.42em;text-transform:uppercase;fill:rgba(15,26,20,.26)}
.jm-peak path{fill:var(--ink)}
.jm-peak text{font-family:var(--font-mono);font-size:11px;fill:var(--slate)}
.jm-leg{fill:none;stroke:var(--dest);stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.jm-leg.fly{stroke-width:2;stroke-dasharray:.012 .02;opacity:.85}
.js .jmap .jm-leg:not(.fly){stroke-dashoffset:1;transition:stroke-dashoffset 1.1s var(--ease);transition-delay:calc(.3s + var(--i,0)*.45s)}
.js .jmap.in .jm-leg:not(.fly){stroke-dashoffset:0}
.js .jmap .jm-leg.fly{opacity:0;transition:opacity .8s var(--ease);transition-delay:calc(.3s + var(--i,0)*.45s)}
.js .jmap.in .jm-leg.fly{opacity:.85}
.jm-dot{fill:var(--c);stroke:#fff;stroke-width:3}
.jm-num{font-family:var(--font-mono);font-size:12px;font-weight:500;fill:#fff}
.jm-port{fill:var(--saffron);stroke:#fff;stroke-width:2}
.jm-label{font-family:var(--font-display);font-size:19px;fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:6px;stroke-linejoin:round}
.jm-mark.port .jm-label{font-family:var(--font-mono);font-size:12px;fill:var(--slate)}
.jmap figcaption{display:flex;gap:8px;align-items:center;margin-top:12px;color:var(--slate);font-size:.7rem}

/* Nights bar ------------------------------------------------------------------- */
.nbar{margin-top:34px}
.nbar-title{color:var(--slate);text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;margin-bottom:10px}
.nbar-track{display:flex;gap:4px;min-height:64px}
.nbar-seg{display:flex;flex-direction:column;justify-content:space-between;min-width:74px;padding:10px 12px;border-radius:var(--r);background:var(--c);color:#fff;overflow:hidden}
.nbar-seg b{font-family:var(--font-display);font-weight:300;font-size:1.6rem;line-height:1}
.nbar-seg em{font-style:normal;font-size:.8rem;line-height:1.25;opacity:.92}
.jny-dests{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:26px}
.jny-dests .mono,.col-chips .mono{color:var(--slate);text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;margin-right:6px}
.jny-dests a,.col-chips a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;text-decoration:none;font-size:.9rem;transition:border-color .25s,background .25s}
.jny-dests a:hover,.col-chips a:hover{border-color:var(--ink)}
.jny-dests i{width:10px;height:10px;border-radius:50%;background:var(--c)}
.col-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:34px}

/* Elevation by day --------------------------------------------------------------- */
.jprofile .profile-chart{aspect-ratio:1000/280}
@media (max-width:640px){.jprofile .profile-chart{aspect-ratio:1000/520}}
.jp-reach{stroke:var(--saffron-2);stroke-width:2;stroke-dasharray:3 4}
.jp-high{position:absolute;transform:translate(-50%,-150%);font-family:var(--font-mono);font-size:.62rem;color:var(--saffron-2);white-space:nowrap}
.jp-mark{position:absolute;transform:translate(-50%,-50%)}
.jp-mark i{display:block;width:11px;height:11px;border-radius:50%;background:var(--ink);border:2px solid var(--dest-soft)}
.js .jprofile .jp-mark,.js .jprofile .jp-high{opacity:0;transition:opacity .5s var(--ease);transition-delay:calc(.6s + var(--i,0)*.12s)}
.js .jprofile.in .jp-mark,.js .jprofile.in .jp-high{opacity:1}
.jp-days{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:2px}
.jp-days li{display:grid;justify-items:center;text-align:center;gap:2px;font-size:.66rem;font-family:var(--font-mono);color:rgba(246,246,242,.6)}
.jp-days b{font-weight:500;color:var(--paper);white-space:nowrap}
@media (max-width:760px){.jp-days span{display:none}.jp-days b{font-size:.6rem}}

/* Highlights ---------------------------------------------------------------------- */
.hl-grid{list-style:none;margin:0;padding:0;display:grid;gap:14px}
@media (min-width:700px){.hl-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.hl-grid{grid-template-columns:repeat(3,1fr)}}
.hl-grid li{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px 22px;display:grid;grid-template-columns:44px 1fr;gap:16px;align-items:start}
.hl-ico{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--dest-soft);color:var(--dest)}
.hl-ico svg{width:22px;height:22px}
.hl-grid p{font-family:var(--font-display);font-size:1.25rem;font-weight:300;line-height:1.35}

/* Day by day ----------------------------------------------------------------------- */
.days-grid{display:grid;gap:40px}
@media (min-width:1100px){.days-grid{grid-template-columns:minmax(0,1fr) 300px;gap:56px;align-items:start}}
.days{list-style:none;margin:0;padding:0;position:relative}
.days::before{content:"";position:absolute;left:27px;top:10px;bottom:10px;width:1px;background:linear-gradient(var(--dest),var(--line) 12%,var(--line) 88%,var(--dest))}
@media (max-width:700px){.days::before{left:19px}}
.day{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);gap:22px;padding-bottom:28px;scroll-margin-top:130px}
@media (max-width:700px){.day{grid-template-columns:40px minmax(0,1fr);gap:12px}}
.day-rail{position:relative;z-index:1}
.day-num{position:sticky;top:130px;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--ink);color:var(--paper);font-family:var(--font-display);font-size:1.3rem;box-shadow:0 0 0 6px var(--paper)}
@media (max-width:700px){.day-num{width:40px;height:40px;font-size:1rem;box-shadow:0 0 0 4px var(--paper)}}
.day.on .day-num{background:var(--dest)}
.day-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 26px 22px;display:grid;gap:14px}
@media (max-width:700px){.day-card{padding:20px 18px 18px}}
.day-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:4px;color:var(--dest);text-transform:uppercase;letter-spacing:.12em;font-size:.66rem}
.day-kicker .ico{width:14px;height:14px}
.day-card h3{font-size:clamp(1.5rem,2.6vw,2.1rem);text-wrap:balance}
.day-facts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.day-facts li{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:var(--mist);font-size:.8rem;color:var(--ink-2)}
.day-facts .ico{width:14px;height:14px;color:var(--dest)}
.lvl i{width:8px;height:8px;border-radius:50%;background:#7fae7a}
.lvl-moderate i{background:var(--saffron)}
.lvl-active i{background:var(--maroon)}
.day-img{margin:4px 0 0;aspect-ratio:16/8;overflow:hidden;border-radius:var(--r);background:var(--mist-2)}
.day-img img{width:100%;height:100%;object-fit:cover}
.day-body{font-size:1.04rem;line-height:1.7;color:var(--ink)}
.day-moment{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;background:var(--dest-soft);border-left:2px solid var(--dest);font-family:var(--font-display);font-size:1.18rem;font-weight:300;line-height:1.4}
.day-moment .ico{color:var(--dest);margin-top:4px}
.day-moment b,.day-notes b,.not-for b{display:block;font-family:var(--font-mono);font-weight:500;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin-bottom:4px}
.day-notes{display:grid;gap:10px}
@media (min-width:760px){.day-notes{grid-template-columns:1fr 1fr}}
.day-notes p{display:flex;gap:10px;align-items:flex-start;font-size:.92rem;line-height:1.55;color:var(--ink-2);padding:12px 14px;border:1px solid var(--line);border-radius:var(--r)}
.day-notes .ico{color:var(--dest);margin-top:2px}
.day-foot{margin:0;display:flex;flex-wrap:wrap;gap:10px 28px;padding-top:12px;border-top:1px solid var(--line);font-size:.9rem}
.day-foot div{display:flex;gap:8px}
.day-foot dt{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);padding-top:3px}
.day-foot dd{margin:0}
.day-foot a{color:var(--ink);text-decoration-color:var(--dest);text-underline-offset:3px}

.days-aside{display:none}
@media (min-width:1100px){.days-aside{display:block;position:sticky;top:130px}}
.aside-card{background:var(--ink);color:var(--paper);border-radius:var(--r);padding:24px 22px;display:grid;gap:14px;max-height:calc(100vh - 160px);overflow:auto;scrollbar-width:thin}
.aside-k{color:rgba(246,246,242,.6);text-transform:uppercase;letter-spacing:.14em;font-size:.64rem}
.aside-title{font-family:var(--font-display);font-size:1.5rem;font-weight:300;line-height:1.15}
.aside-price{display:grid;gap:2px}
.aside-price small{font-family:var(--font-mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(246,246,242,.6)}
.aside-price b{font-family:var(--font-display);font-weight:300;font-size:2rem;line-height:1}
.aside-price span{font-size:.78rem;color:rgba(246,246,242,.7)}
.aside-card .btn-primary{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.aside-card .btn-primary:hover{background:#fff}
.aside-wa{color:var(--paper)}
.aside-days{display:grid;gap:2px;margin-top:6px;padding-top:12px;border-top:1px solid rgba(246,246,242,.15)}
.aside-days a{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:7px 8px;border-radius:var(--r);text-decoration:none;font-size:.82rem;line-height:1.3;color:rgba(246,246,242,.72);transition:background .2s,color .2s}
.aside-days a b{font-family:var(--font-mono);font-weight:500;color:var(--dest-soft)}
.aside-days a:hover,.aside-days a.on{background:rgba(246,246,242,.08);color:var(--paper)}

/* Price ------------------------------------------------------------------------------ */
.price-grid{display:grid;gap:44px}
@media (min-width:960px){.price-grid{grid-template-columns:5fr 7fr;gap:72px;align-items:start}}
.price-big{font-family:var(--font-display);font-weight:300;font-size:clamp(3rem,7vw,5.2rem);line-height:1;margin:6px 0 16px}
.price-big small{display:block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,246,242,.6);margin-bottom:8px}
.price-note{color:rgba(246,246,242,.78);max-width:44ch}
.price-alt{display:grid;gap:10px;margin-top:30px}
.price-alt a{display:grid;gap:2px;padding:14px 16px;border:1px solid rgba(246,246,242,.18);border-radius:var(--r);text-decoration:none;transition:border-color .25s,background .25s}
.price-alt a:hover{border-color:rgba(246,246,242,.5);background:rgba(246,246,242,.04)}
.price-alt .mono{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dest-soft)}
.price-alt b{font-family:var(--font-display);font-weight:300;font-size:1.3rem}
.price-alt span:last-child{font-size:.82rem;color:rgba(246,246,242,.6)}
.price-lists{display:grid;gap:30px}
@media (min-width:760px){.price-lists{grid-template-columns:1fr 1fr}}
.price-lists h3{font-size:1.5rem;margin-bottom:14px}
.tick,.cross{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.tick li,.cross li{position:relative;padding-left:26px;font-size:.95rem;line-height:1.5;color:rgba(246,246,242,.86)}
.tick li::before{content:"";position:absolute;left:2px;top:.45em;width:10px;height:6px;border-left:1.5px solid var(--dest-soft);border-bottom:1.5px solid var(--dest-soft);transform:rotate(-45deg)}
.cross li::before,.cross li::after{content:"";position:absolute;left:3px;top:.72em;width:11px;height:1.5px;background:rgba(246,246,242,.45);transform:rotate(45deg)}
.cross li::after{transform:rotate(-45deg)}
.addons{margin-top:56px;padding-top:36px;border-top:1px solid rgba(246,246,242,.14)}
.addons-h{font-size:1.7rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 18px;margin-bottom:20px}
.addons-h .mono{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,246,242,.55)}
.addon-grid{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:rgba(246,246,242,.14);border:1px solid rgba(246,246,242,.14)}
@media (min-width:700px){.addon-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.addon-grid{grid-template-columns:repeat(3,1fr)}}
.addon-grid li{background:var(--ink);padding:20px 20px 22px;display:grid;gap:6px}
.addon-grid .ico{color:var(--dest-soft);width:22px;height:22px}
.addon-grid b{font-weight:500}
.addon-grid span:last-child{font-size:.9rem;color:rgba(246,246,242,.72)}

/* Before you go ------------------------------------------------------------------------- */
.before-grid{display:grid;gap:36px}
@media (min-width:960px){.before-grid{grid-template-columns:5fr 7fr;gap:72px;align-items:start}}
.not-for{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:var(--r);font-size:.95rem;color:var(--ink-2)}
.not-for .ico{color:var(--dest);margin-top:2px}
.before-list{list-style:none;counter-reset:b;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--line)}
.before-list li{counter-increment:b;display:grid;grid-template-columns:44px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);line-height:1.6}
.before-list li::before{content:counter(b,decimal-leading-zero);font-family:var(--font-mono);font-size:.78rem;color:var(--dest);padding-top:2px}

/* Cards ------------------------------------------------------------------------------------ */
.jc-grid{display:grid;gap:22px}
@media (min-width:700px){.jc-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.jc-grid{grid-template-columns:repeat(3,1fr)}}
.jc{display:grid;grid-template-rows:auto 1fr;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;color:inherit;transition:transform .5s var(--ease),box-shadow .5s}
.jc:hover{transform:translateY(-4px);box-shadow:0 30px 60px -40px rgba(15,26,20,.55)}
.jc.out{display:none}
.jc-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--mist-2)}
.jc-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.jc:hover .jc-media img{transform:scale(1.04)}
.jc-kicker{position:absolute;top:14px;left:14px;font-family:var(--font-mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;background:rgba(15,26,20,.55);color:var(--paper);padding:6px 10px;border-radius:999px;backdrop-filter:blur(8px)}
.jc-nights{position:absolute;right:14px;bottom:14px;background:var(--paper);color:var(--ink);padding:6px 12px;border-radius:999px;font-size:.8rem}
.jc-nights b{font-family:var(--font-display);font-size:1.1rem;font-weight:400}
.jc-body{display:grid;gap:12px;align-content:start;padding:20px 20px 18px}
.jc-body h3{font-size:1.55rem;line-height:1.1;text-wrap:balance}
.jc-bar{display:flex;gap:3px;height:6px}
.jc-bar i{border-radius:3px}
.jc-route{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.8rem;color:var(--ink-2)}
.jc-route small{font-family:var(--font-mono);color:var(--slate);margin-left:4px}
.jc-sum{font-size:.92rem;color:var(--ink-2);line-height:1.55}
.jc-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px;padding-top:12px;margin-top:auto;border-top:1px solid var(--line)}
.jc-when{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;color:var(--slate);max-width:60%}
.jc-when .ico{width:14px;height:14px}
.jc-price{display:grid;justify-items:end;line-height:1.1}
.jc-price small{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.12em;color:var(--slate)}
.jc-price b{font-family:var(--font-display);font-weight:400;font-size:1.3rem}

/* Index: collection tiles and finder ------------------------------------------------------ */
.col-tiles{list-style:none;margin:48px 0 0;padding:0;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}
@media (min-width:760px){.col-tiles{grid-template-columns:repeat(4,1fr)}}
@media (min-width:1100px){.col-tiles{grid-template-columns:repeat(5,1fr)}}
.col-tile{position:relative;display:block;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;color:var(--paper);text-decoration:none;background:var(--ink);isolation:isolate}
.col-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s var(--ease)}
.col-tile::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(15,26,20,.05),rgba(15,26,20,.75))}
.col-tile:hover img{transform:scale(1.05)}
.col-tile-body{position:absolute;left:14px;right:14px;bottom:12px;display:grid;gap:2px}
.col-tile-body b{font-family:var(--font-display);font-weight:300;font-size:1.25rem;line-height:1.1}
.col-tile-body span{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.finder{display:grid;gap:12px;margin-bottom:34px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.finder-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.finder-row>.mono{width:64px;color:var(--slate);text-transform:uppercase;letter-spacing:.14em;font-size:.64rem}
.finder-count{display:flex;align-items:center;gap:12px;color:var(--slate);padding-top:8px;border-top:1px solid var(--line)}
.finder-reset{background:none;border:0;padding:0;font:inherit;color:var(--ink);text-decoration:underline;cursor:pointer}
.finder-empty{padding:30px 0;color:var(--slate)}
@media (max-width:640px){.finder-row>.mono{width:100%}}

@media (prefers-reduced-motion:reduce){
  .js .jmap .jm-leg{stroke-dashoffset:0;opacity:.85}
  .js .jprofile .jp-mark,.js .jprofile .jp-high{opacity:1}
}
.nbar-seg:nth-child(even){filter:brightness(1.18)}
.jp-high.end{transform:translate(-100%,-150%)}
.jp-high.start{transform:translate(0,-150%)}
@media (max-width:760px){
  .nbar-track{flex-wrap:wrap}
  .nbar-seg{min-width:0;flex:0 0 calc(33.333% - 3px)!important;min-height:64px}
}
/* map legend as labels */
.jm-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px}
.jm-legend span{display:inline-flex;align-items:center;gap:8px}
.jm-legend .lg-base::before{content:"1";display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--ink);color:var(--paper);font-size:.6rem}
.jm-legend .lg-road::before{content:"";width:24px;border-top:2px solid currentColor}
.jm-legend .lg-air::before{content:"";width:24px;border-top:2px dashed currentColor}

/* currency and other-passport prices */
.price-fx{margin-top:10px;font-size:.92rem;color:rgba(246,246,242,.78);max-width:52ch}
.price-fx a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.price-other{padding-top:10px;border-top:1px solid rgba(246,246,242,.16)}
.price-other b{color:var(--paper);font-weight:500}
.aside-fx{display:block;margin-top:6px;font-size:.8rem;color:var(--slate)}

/* In short: who this journey is for */
.choose{display:grid;gap:10px;margin:18px 0 22px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-left:3px solid var(--dest);border-radius:var(--r);font-size:.98rem;line-height:1.55;max-width:62ch}
.choose p{margin:0}
.choose b{font-family:var(--font-mono);font-weight:500;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dest);margin-right:8px}

/* collection chooser table */
.choose-table{margin:0 0 40px}
.choose-table .pl-table{min-width:760px}
.choose-table tbody th a{font-family:var(--font-display);font-weight:400;font-size:1.1rem;text-decoration:none}
.choose-table tbody th a:hover{color:var(--tea)}
