/* Fonts are served from this site (fonts/ folder), not from Google, for visitors' privacy. Licence: SIL Open Font License.
   font-display: optional = use the font only if it's ready almost immediately (it's preloaded and cached), otherwise keep the fallback for that page view: the text never visibly switches font. */
/* Fraunces italic — latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/fraunces-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Fraunces italic — latin */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/fraunces-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Fraunces normal — latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/fraunces-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Fraunces normal — latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/fraunces-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Fraunces normal — latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: optional;
  src: url(fonts/fraunces-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Fraunces normal — latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: optional;
  src: url(fonts/fraunces-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Inter normal — latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/inter-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Inter normal — latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/inter-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Inter normal — latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url(fonts/inter-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Inter normal — latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url(fonts/inter-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* JetBrains Mono normal — latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/jetbrains-mono-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* JetBrains Mono normal — latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/jetbrains-mono-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  --basalt-900:#14181a;
  --basalt-800:#1d2326;
  --basalt-700:#2b3336;
  --mist-100:#e9e5db;
  --mist-200:#d8d2c2;
  --ember-600:#b3552e;
  --ember-500:#c96c3e;
  --gold-500:#c9a961;
  --teal-500:#5b8a86;
  --font-display: 'Fraunces', 'Iowan Old Style', 'Palatino Linotype', serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', 'Courier New', monospace;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--basalt-900); color:var(--mist-100); font-family:var(--font-body); line-height:1.6; overflow-x:hidden;}
a{color:inherit;}
/* Language switch, modern browsers: the old page cross-fades straight into the new one. */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root){ animation-duration:.4s; animation-timing-function:ease; }
@media (prefers-reduced-motion: reduce){ @view-transition { navigation: none; } }
/* Language switch, other browsers: the page fades out, the other language's page fades in. */
body{transition:opacity .2s ease;}
body.page-leaving{opacity:0;}
html.page-entering body{animation:pageIn .25s ease both;}
@keyframes pageIn{ from{opacity:0;} to{opacity:1;} }
@media (prefers-reduced-motion: reduce){ body{transition:none;} html.page-entering body{animation:none;} }
.wrap{max-width:1160px; margin:0 auto; padding:0 32px;}
section[id]{scroll-margin-top:84px;}

.nav{position:fixed; top:0;left:0;right:0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:22px 32px; background:linear-gradient(to bottom, rgba(20,24,26,0.9), transparent); border-bottom:1px solid transparent; font-family:var(--font-mono); font-size:12px; letter-spacing:0.12em; text-transform:uppercase; transition:background-color .3s ease, border-color .3s ease;}
.nav.scrolled{background:rgba(20,24,26,0.94); border-bottom-color:rgba(233,229,219,0.1); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);}
.nav .mark{font-family:var(--font-display); font-size:16px; letter-spacing:0.02em; text-transform:none; font-weight:500;}
.nav .mark a{display:inline-flex; align-items:center; gap:10px;}
.nav .mark-logo{width:26px; height:26px; flex-shrink:0; display:block;}
.nav .links{display:flex; gap:26px; align-items:center;}
.nav .links a{opacity:0.75; text-decoration:none; white-space:nowrap; transition:opacity .2s;}
.nav .links a:hover{opacity:1;}
/* Below 1120px the links no longer fit on one line next to the logo, so they move into the drop-down menu. */
@media (max-width:1120px){ .nav .links a{display:none;} .nav .links .lang-switch{display:flex;} }
@media (max-width:400px){ .nav .links{gap:10px;} .nav .mark-logo{width:22px; height:22px;} .nav .mark a{gap:8px;} .lang-switch{margin-left:0;} }
.mobile-menu-btn{display:none; flex-direction:column; justify-content:center; gap:4px; background:none; border:0; cursor:pointer; padding:12px 10px; margin:-6px -10px -6px 4px;}
.mobile-menu-btn span{width:20px; height:2px; background:var(--mist-100); display:block; transition:transform .25s ease, opacity .2s ease;}
.mobile-menu-btn.open span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.mobile-menu-btn.open span:nth-child(2){opacity:0;}
.mobile-menu-btn.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
@media (max-width:1120px){ .mobile-menu-btn{display:flex;} }
.mobile-menu{display:flex; position:fixed; top:var(--nav-h, 74px); left:0; right:0; z-index:99; background:rgba(20,24,26,0.97); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border-bottom:1px solid rgba(233,229,219,0.12); flex-direction:column; padding:4px 20px 16px; opacity:0; visibility:hidden; transform:translateY(-8px); transition:opacity .22s ease, transform .22s ease, visibility 0s linear .22s;}
.mobile-menu.open{opacity:1; visibility:visible; transform:translateY(0); transition:opacity .22s ease, transform .22s ease, visibility 0s;}
.mobile-menu a{font-family:var(--font-mono); font-size:13px; letter-spacing:0.08em; text-transform:uppercase; color:var(--mist-200); text-decoration:none; padding:14px 0; border-bottom:1px solid rgba(233,229,219,0.08);}
.mobile-menu a:last-child{border-bottom:none;}

.lang-switch{display:flex; gap:0; border:1px solid rgba(233,229,219,0.25); border-radius:20px; overflow:hidden; margin-left:8px;}
.lang-switch > *{font-family:var(--font-mono); font-size:11px; letter-spacing:0.08em; padding:7px 13px; background:transparent; border:0; color:var(--mist-200); cursor:pointer; text-decoration:none; transition:all .2s ease;}
.nav .links .lang-switch > *{display:block; opacity:1;}
.lang-switch > .active{background:var(--ember-600); color:#fff; cursor:default;}
.lang-switch > a:hover{color:var(--mist-100);}

.hero{position:relative; min-height:auto; padding-top:140px; display:flex; flex-direction:column; justify-content:flex-start; overflow:hidden;
  background:
    linear-gradient(100deg, rgba(14,17,19,0.82) 0%, rgba(14,17,19,0.62) 30%, rgba(14,17,19,0.22) 55%, rgba(14,17,19,0.05) 75%),
    linear-gradient(180deg, rgba(14,17,19,0.42) 0%, rgba(14,17,19,0.22) 25%, rgba(14,17,19,0.38) 100%),
    url('images/hero-fjord-sunset.webp');
  background-size: cover;
  background-position: center 60%;
}
@media (max-width:760px){
  .hero{
    background:
      linear-gradient(100deg, rgba(14,17,19,0.82) 0%, rgba(14,17,19,0.62) 30%, rgba(14,17,19,0.22) 55%, rgba(14,17,19,0.05) 75%),
      linear-gradient(180deg, rgba(14,17,19,0.42) 0%, rgba(14,17,19,0.22) 25%, rgba(14,17,19,0.38) 100%),
      url('images/hero-fjord-sunset-1200.webp');
    background-size: cover;
    background-position: center 60%;
  }
}
.hero-content{position:relative; z-index:2; padding:0 32px 40px; max-width:1160px; margin:0 auto; width:100%;}
/* Hero text is visible from the first frame (only a slight slide-up), so the page never looks empty while loading. */
.hero h1{font-family:var(--font-display); font-weight:400; font-size:clamp(2.6rem, 6.2vw, 5.4rem); line-height:1.03; letter-spacing:-0.01em; max-width:920px; color:var(--mist-100); animation:riseIn .8s ease-out both;}
.hero h1 em{font-style:italic; color:var(--ember-500);}
.hero-sub{margin-top:26px; font-size:1.08rem; max-width:620px; color:var(--mist-200); animation:riseIn .8s ease-out .1s both;}
.hero-cta{margin-top:40px; display:flex; gap:16px; align-items:center; flex-wrap:wrap; animation:riseIn .8s ease-out .2s both;}
@keyframes riseIn{ from{transform:translateY(14px);} to{transform:translateY(0);} }
.btn{font-family:var(--font-body); font-weight:600; font-size:14.5px; padding:15px 28px; border-radius:3px; text-decoration:none; display:inline-flex; align-items:center; gap:10px; transition:transform .25s ease, box-shadow .25s ease; border:1px solid transparent; cursor:pointer;}
.btn-primary{background:var(--ember-600); color:#fff;}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 10px 24px rgba(179,85,46,0.35);}
.btn-ghost{border-color:rgba(233,229,219,0.3); color:var(--mist-100);}
.btn-ghost:hover{border-color:var(--mist-100); transform:translateY(-2px);}

section{position:relative; padding:120px 0;}
.hero + section{padding-top:40px;}
.section-head{max-width:640px; margin-bottom:64px;}
.section-eyebrow{font-family:var(--font-mono); font-size:12px; letter-spacing:0.16em; text-transform:uppercase; color:var(--teal-500); margin-bottom:18px;}
h2{font-family:var(--font-display); font-weight:400; font-size:clamp(1.9rem, 3.4vw, 2.7rem); line-height:1.15; color:var(--mist-100);}
.section-lede{margin-top:18px; color:var(--mist-200); font-size:1.02rem; max-width:560px;}
hr.strata{border:0; height:1px; background:linear-gradient(90deg, rgba(233,229,219,0.18), transparent); margin:0;}

.guide-text{max-width:720px;}
.guide-photos{display:flex; gap:20px; margin-top:40px; max-width:900px;}
.guide-photos img{width:50%; height:320px; object-fit:cover; border-radius:4px;}
@media (max-width:640px){ .guide-photos{flex-direction:column;} .guide-photos img{width:100%;} }
.guide-text p{color:var(--mist-200); margin-bottom:18px; font-size:1.05rem;}
.guide-text p:first-child{font-family:var(--font-display); font-size:1.35rem; color:var(--mist-100); line-height:1.4;}

.about-grid{display:grid; grid-template-columns:repeat(2, 1fr); gap:32px;}
@media (max-width:780px){ .about-grid{grid-template-columns:1fr;} }
.about-card{background:var(--basalt-800); border:1px solid rgba(233,229,219,0.08); border-radius:4px; padding:32px;}
.about-card.has-image{padding:0;}
.about-card.has-image .card-img{width:100%; height:230px; object-fit:cover; display:block; border-radius:4px 4px 0 0;}
.about-card.has-image .card-body{padding:32px 32px 0;}
.about-card.wide.has-image .card-img{height:320px;}
.about-card .n{font-family:var(--font-mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-500);}
.about-card h3{font-family:var(--font-display); font-weight:500; font-size:1.3rem; margin:12px 0 14px; color:var(--mist-100);}
.about-card p{color:var(--mist-200); font-size:14.5px;}
.about-card p + p{margin-top:12px;}
.about-card.wide{grid-column:1 / -1;}
.facts-row{display:flex; gap:0; margin-top:12px; flex-wrap:wrap;}
.fact{flex:1; min-width:140px; padding:18px 22px 18px 0; border-right:1px solid rgba(233,229,219,0.12);}
.fact:last-child{border-right:none;}
.fact .big{font-family:var(--font-display); font-size:1.5rem; color:var(--mist-100);}
.fact .small{font-size:12px; color:var(--mist-200); margin-top:4px;}

.seasons{display:flex; flex-direction:column;}
.season-row{display:grid; grid-template-columns:150px 1px 1fr; gap:0 32px; padding:30px 0;}
.season-row + .season-row{border-top:1px solid rgba(233,229,219,0.1);}
.season-when{font-family:var(--font-mono); color:var(--gold-500); font-size:12.5px; letter-spacing:0.04em; padding-top:4px;}
.season-line{background:rgba(233,229,219,0.14);}
.season-body p{color:var(--mist-200); max-width:680px; font-size:14.5px;}
.season-body img{margin-top:16px; width:100%; max-width:340px; height:auto; border-radius:4px; display:block;}

.it-intro{background:var(--basalt-800); border:1px solid rgba(233,229,219,0.08); border-radius:4px; padding:32px; margin-bottom:44px;}
.it-intro p{color:var(--mist-200); font-size:14.5px; margin-bottom:0;}
.it-intro img{width:100%; height:320px; object-fit:cover; border-radius:4px; display:block; margin-bottom:20px;}
.it-intro p + p{margin-top:14px;}
.it-intro .tag{font-family:var(--font-mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--teal-500); margin-bottom:14px; display:block;}

.itinerary{display:flex; flex-direction:column;}
.it-row{display:grid; grid-template-columns:120px 1px 1fr; gap:0 32px; padding:34px 0; position:relative;}
.it-row + .it-row{border-top:1px solid rgba(233,229,219,0.1);}
.it-day{font-family:var(--font-mono); color:var(--gold-500); font-size:13px; letter-spacing:0.08em; padding-top:4px;}
.it-day strong{display:block; font-family:var(--font-display); font-size:2.1rem; color:var(--mist-100); font-weight:400; line-height:1; margin-bottom:6px;}
.it-line{background:rgba(233,229,219,0.14);}
.it-body h3{font-family:var(--font-display); font-weight:500; font-size:1.2rem; color:var(--mist-100); margin-bottom:8px;}
.it-body p{color:var(--mist-200); max-width:640px;}
.it-body img{margin-top:16px; width:100%; max-width:600px; height:280px; object-fit:cover; border-radius:4px; display:block;}

/* Phones: stack the date above the text instead of beside it, so the text gets the full width. */
@media (max-width:640px){
  .wrap{padding:0 20px;}
  .nav{padding-left:20px; padding-right:20px;}
  .hero-content{padding-left:20px; padding-right:20px;}
  .season-row, .it-row{grid-template-columns:1fr; gap:10px 0; padding:24px 0;}
  .season-line, .it-line{display:none;}
  .it-day strong{display:inline-block; font-size:1.6rem; margin:0 10px 0 0;}
  .it-body img{height:220px;}
}

.tour-tabs{display:flex; gap:12px; margin-bottom:48px; flex-wrap:wrap; scroll-margin-top:96px;}
.tour-tab{font-family:var(--font-mono); font-size:12.5px; letter-spacing:0.06em; text-transform:uppercase; padding:14px 22px; border-radius:30px; border:1px solid rgba(233,229,219,0.2); background:transparent; color:var(--mist-200); cursor:pointer; transition:all .2s ease;}
.tour-tab.active{background:var(--ember-600); border-color:var(--ember-600); color:#fff;}
.tour-tab:hover:not(.active){border-color:rgba(233,229,219,0.5); color:var(--mist-100);}
.tour-panel{display:none;}
[id^="packing-list"]{scroll-margin-top:96px;}
.inline-link{color:var(--ember-500); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px;}
.inline-link:hover{color:var(--mist-100);}
.guide-text .guide-more{margin-top:26px; font-size:0.95rem;}
.tour-panel.active{display:block; animation: tourFadeIn .5s ease;}
@keyframes tourFadeIn{ from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);} }
.gear-list{columns:2; gap:40px; margin-top:8px;}
@media (max-width:640px){ .gear-list{columns:1;} }
.gear-list li{color:var(--mist-200); font-size:14px; margin-bottom:10px; break-inside:avoid;}
.fact-strip{display:flex; gap:0; flex-wrap:wrap; background:var(--basalt-800); border:1px solid rgba(233,229,219,0.08); border-radius:4px; margin-bottom:44px;}
.fact-strip div{flex:1; min-width:140px; padding:22px; border-right:1px solid rgba(233,229,219,0.1);}
.fact-strip div:last-child{border-right:none;}
.fact-strip .big{font-family:var(--font-display); font-size:1.4rem; color:var(--gold-500);}
.fact-strip .small{font-size:11.5px; color:var(--mist-200); margin-top:4px;}

.tour-dates-grid{display:grid; grid-template-columns:1fr 1fr; gap:32px;}
@media (max-width:900px){ .tour-dates-grid{grid-template-columns:1fr;} }
.tour-date-title{font-family:var(--font-display); font-weight:500; font-size:1.2rem; color:var(--gold-500); margin-bottom:18px;}
.date-block .label{font-family:var(--font-mono); font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--teal-500); margin-bottom:14px;}
.date-block .big{font-family:var(--font-display); font-size:2.6rem; color:var(--mist-100);}
.date-block .sub{color:var(--mist-200); margin-top:8px; font-size:14.5px;}
.group-meter{margin-top:26px;}
.meter-steps{display:flex; gap:4px; height:22px;}
.meter-step{flex:1; background:rgba(233,229,219,0.12); border-radius:2px; transition:background-color .4s ease;}
.meter-step.filled{background:var(--ember-600);}
.meter-caption{display:flex; justify-content:space-between; margin-top:10px; font-family:var(--font-mono); font-size:12px; color:var(--mist-200);}

.price-card{background:var(--basalt-800); border:1px solid rgba(233,229,219,0.08); border-radius:4px; padding:48px;}
.tour-date-col .price-card{padding:32px;}
.price-includes-title{font-family:var(--font-display); font-weight:500; font-size:1.15rem; color:var(--mist-100); margin:28px 0 14px;}
.price-top{display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:20px; padding-bottom:32px; border-bottom:1px solid rgba(233,229,219,0.12);}
.price-figure{font-family:var(--font-display); font-size:3rem; color:var(--mist-100);}
.price-figure span{font-size:1.1rem; color:var(--mist-200); font-family:var(--font-body);}
.price-includes{margin-top:36px; display:grid; grid-template-columns:1fr 1fr; gap:10px 40px;}
@media (max-width:640px){ .price-includes{grid-template-columns:1fr;} }
.price-includes div{font-size:14.5px; color:var(--mist-200); padding:10px 0; border-bottom:1px solid rgba(233,229,219,0.08); display:flex; gap:10px;}
.price-includes div::before{content:'—'; color:var(--ember-500);}

.form-panel{background:var(--basalt-800); border:1px solid rgba(233,229,219,0.08); border-radius:4px; padding:48px; max-width:640px;}
.field{margin-bottom:22px;}
.field label{display:block; font-family:var(--font-mono); font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--mist-200); margin-bottom:10px;}
.field input, .field textarea{width:100%; background:var(--basalt-900); border:1px solid rgba(233,229,219,0.16); border-radius:3px; padding:13px 14px; color:var(--mist-100); font-family:var(--font-body); font-size:14.5px;}
.field input:focus, .field textarea:focus{outline:2px solid var(--teal-500); outline-offset:1px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (max-width:520px){ .field-row{grid-template-columns:1fr;} }

.faq-item{border-bottom:1px solid rgba(233,229,219,0.12);}
.faq-q{width:100%; text-align:left; background:none; border:0; color:var(--mist-100); font-family:var(--font-display); font-size:1.15rem; padding:26px 0; display:flex; justify-content:space-between; align-items:center; cursor:pointer; gap:20px;}
.faq-q .icon{font-family:var(--font-mono); color:var(--ember-500); font-size:20px; transition:transform .3s ease; flex-shrink:0;}
.faq-item.open .faq-q .icon{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .35s ease; color:var(--mist-200); font-size:14.5px;}
.faq-a-inner{padding-bottom:26px; max-width:640px;}
.faq-a-inner ul{margin:0; padding-left:20px;}
.faq-a-inner ul li{margin-bottom:8px;}
.faq-a-inner ul li:last-child{margin-bottom:0;}
.faq-item.open .faq-a{max-height:700px;}

footer{padding:64px 0 48px; border-top:1px solid rgba(233,229,219,0.1);}
/* Footer: logo + name, contact email and copyright in a block at the bottom right. */
.footer-grid{display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:40px;}
.footer-heading{font-family:var(--font-display); font-size:1.35rem; color:var(--mist-100); margin-bottom:16px;}
.footer-legal ul{list-style:none; display:flex; flex-direction:column; gap:10px;}
.footer-legal a{color:var(--mist-200); text-decoration:none; font-size:15px;}
.footer-legal a:hover{color:var(--ember-500);}
.footer-brand{display:flex; flex-direction:column; align-items:flex-start; gap:14px;}
.footer-mark{display:flex; align-items:center; gap:12px; font-family:var(--font-display); font-size:1.35rem; color:var(--mist-100);}
.footer-mark .mark-logo{width:34px; height:34px; flex-shrink:0;}
.footer-social{display:flex; gap:10px;}
.footer-social a{width:40px; height:40px; border-radius:4px; display:flex; align-items:center; justify-content:center; color:#fff; transition:transform .2s ease, filter .2s ease;}
.footer-social a:hover{transform:translateY(-2px); filter:brightness(1.1);}
.footer-social svg{width:22px; height:22px; display:block;}
.footer-social .social-ig{background:linear-gradient(45deg, #f09433, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888);}
.footer-social .social-yt{background:#ff0000;}
.footer-email{font-size:15px; color:var(--ember-500); text-decoration:none;}
.footer-email:hover{color:var(--mist-100); text-decoration:underline; text-underline-offset:3px;}
@media (max-width:640px){ .footer-grid{flex-direction:column;} }
.footer-meta{font-family:var(--font-mono); font-size:12px; color:var(--mist-200); opacity:0.6;}

/* Blocks start hidden only when the script is running ("js" class set in the page head),
   so if the script can't run, everything simply stays visible. */
html.js .reveal{opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease;}
html.js .reveal.visible{opacity:1; transform:translateY(0);}

/* Hero title on phones: let the lines break naturally instead of at the desktop line breaks. */
@media (max-width:640px){
  .hero h1 br{display:none;}
  .hero h1{text-wrap:balance;}
}

/* Full-screen photo gallery, opened from the "Gallery" menu item */
.lightbox{border:0; padding:0; margin:0; width:100vw; height:100vh; max-width:none; max-height:none; background:rgba(10,12,13,0.985); color:var(--mist-100);}
.lightbox[open]{display:flex; align-items:center; justify-content:center; animation:lbIn .25s ease;}
.lightbox::backdrop{background:transparent;}
@keyframes lbIn{ from{opacity:0;} to{opacity:1;} }
.lightbox figure{max-width:min(1200px, 92vw); display:flex; flex-direction:column; align-items:center; gap:14px;}
.lightbox img{max-width:100%; max-height:80vh; object-fit:contain; border-radius:3px; display:block;}
.lightbox figcaption{font-size:14px; color:var(--mist-200); text-align:center;}
.lightbox .lb-count{position:absolute; top:24px; left:24px; font-family:var(--font-mono); font-size:12px; letter-spacing:0.08em; color:var(--mist-200);}
.lightbox button{position:absolute; background:rgba(29,35,38,0.7); border:1px solid rgba(233,229,219,0.2); color:var(--mist-100); width:48px; height:48px; border-radius:50%; font-size:22px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background-color .2s ease, border-color .2s ease;}
.lightbox button:hover{background:var(--ember-600); border-color:var(--ember-600);}
.lightbox .lb-close{top:16px; right:16px;}
.lightbox .lb-prev{left:16px; top:50%; transform:translateY(-50%);}
.lightbox .lb-next{right:16px; top:50%; transform:translateY(-50%);}
.lightbox.single .lb-prev, .lightbox.single .lb-next, .lightbox.single .lb-count{display:none;}
@media (max-width:640px){
  .lightbox .lb-prev, .lightbox .lb-next{top:auto; bottom:20px; transform:none;}
  .lightbox .lb-prev{left:calc(50% - 60px);}
  .lightbox .lb-next{right:calc(50% - 60px);}
}
html.lb-open{overflow:hidden;}

/* Side-by-side comparison of the two expeditions */
.compare-head{margin:0 0 22px;}
.compare-head h3{font-family:var(--font-display); font-weight:500; font-size:1.6rem; color:var(--mist-100);}
.compare-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:56px;}
@media (max-width:780px){ .compare-grid{grid-template-columns:1fr;} }
.compare-card{background:var(--basalt-800); border:1px solid rgba(233,229,219,0.08); border-radius:4px; padding:30px 30px 26px; display:flex; flex-direction:column;}
.compare-card h4{font-family:var(--font-display); font-weight:500; font-size:1.35rem; color:var(--gold-500);}
.compare-card .compare-sub{font-family:var(--font-mono); font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--teal-500); margin-top:6px;}
.compare-card dl{margin:20px 0 0; flex:1;}
.compare-card dl div{display:grid; grid-template-columns:120px 1fr; gap:16px; padding:12px 0; border-top:1px solid rgba(233,229,219,0.08);}
.compare-card dt{font-family:var(--font-mono); font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--mist-200); opacity:0.8; padding-top:2px;}
.compare-card dd{font-size:14.5px; color:var(--mist-100);}
.compare-foot{display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-top:18px; padding-top:20px; border-top:1px solid rgba(233,229,219,0.12);}
.compare-price{font-family:var(--font-display); font-size:2rem; color:var(--mist-100); line-height:1;}
.compare-price span{font-family:var(--font-body); font-size:0.95rem; color:var(--mist-200);}
.compare-link{background:none; border:0; padding:6px 0; font-family:var(--font-mono); font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ember-500); cursor:pointer; text-decoration:none;}
.compare-link:hover{color:var(--mist-100);}
@media (max-width:420px){ .compare-card dl div{grid-template-columns:1fr; gap:4px;} }

/* Contact form: hidden anti-spam field, sending state and confirmation message */
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.contact-form-fs .btn:disabled{opacity:.6; cursor:wait; transform:none; box-shadow:none;}
.form-status{font-family:var(--font-mono); font-size:13px; margin:16px 0 0; min-height:1.4em; color:var(--mist-200);}
.form-status.ok{color:var(--teal-500);}
.form-status.err{color:#e08a64;}

/* Legal pages (privacy, terms) */
.legal-page.wrap{max-width:820px; padding-top:130px; padding-bottom:88px;}
.legal-back{font-family:var(--font-mono); font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ember-500); text-decoration:none;}
.legal-back:hover{color:var(--mist-100);}
.legal-page h1{font-family:var(--font-display); font-weight:400; font-size:clamp(2.2rem, 5vw, 3.2rem); line-height:1.1; color:var(--mist-100); margin:26px 0 10px;}
.legal-updated{font-family:var(--font-mono); font-size:12px; color:var(--mist-200); opacity:0.7; margin-bottom:36px;}
.legal-page h2{font-family:var(--font-display); font-weight:500; font-size:1.35rem; color:var(--mist-100); margin:40px 0 12px;}
.legal-page p, .legal-page li{color:var(--mist-200); font-size:15.5px;}
.legal-page p + p{margin-top:12px;}
.legal-page ul{padding-left:20px; margin-top:12px;}
.legal-page li{margin-bottom:10px;}
.legal-page strong{color:var(--mist-100); font-weight:600;}
.legal-page a:not(.legal-back){color:var(--ember-500);}
