:root{
  --bg:#f3f5f8;
  --surface:#ffffff;
  --surface-raised:#eaeef3;
  --ink:#0e1c33;
  --ink-soft:#3d4c66;
  --ink-faint:#7c879a;
  --line:#d3dae3;
  --line-soft:#e3e8ee;
  --accent:#c8451c;
  --accent-strong:#9c3313;
  --accent-ink:#fff3ea;
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0a1220;
    --surface:#101b2d;
    --surface-raised:#152238;
    --ink:#eef2f7;
    --ink-soft:#aab6c8;
    --ink-faint:#6f7c91;
    --line:#233145;
    --line-soft:#1a2536;
    --accent:#ff7a3d;
    --accent-strong:#ffa478;
    --accent-ink:#0a1220;
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0a1220;
  --surface:#101b2d;
  --surface-raised:#152238;
  --ink:#eef2f7;
  --ink-soft:#aab6c8;
  --ink-faint:#6f7c91;
  --line:#233145;
  --line-soft:#1a2536;
  --accent:#ff7a3d;
  --accent-strong:#ffa478;
  --accent-ink:#0a1220;
  color-scheme: dark;
}

*{box-sizing:border-box;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Work Sans', 'Segoe UI', system-ui, sans-serif;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1100px; margin-inline:auto; padding-inline:20px;}
h1,h2,h3,h4{
  font-family:'Oswald', 'Arial Narrow', sans-serif;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.01em;
  text-wrap:balance;
  margin:0;
  color:var(--ink);
}
p{margin:0; line-height:1.62; color:var(--ink-soft); max-width:65ch;}
a{color:inherit;}
.mono{font-family:'IBM Plex Mono', ui-monospace, monospace; font-variant-numeric:tabular-nums;}
.eyebrow{
  font-family:'Oswald', sans-serif;
  font-weight:600;
  font-size:.82rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--accent-strong);
  display:inline-flex;
  align-items:center;
  gap:.6em;
}
.eyebrow::before{content:"";width:22px;height:3px;background:var(--accent);display:inline-block;}
.btn{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  font-family:'Oswald', sans-serif;
  font-weight:600;
  font-size:.92rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  padding:.85em 1.5em;
  border-radius:2px;
  border:2px solid transparent;
  text-decoration:none;
  cursor:pointer;
  white-space:nowrap;
}
.btn-primary{background:var(--accent); color:var(--accent-ink); border-color:var(--accent);}
.btn-primary:hover{background:var(--accent-strong); border-color:var(--accent-strong);}
.btn-ghost{background:transparent; border-color:var(--ink); color:var(--ink);}
.btn-ghost:hover{border-color:var(--accent); color:var(--accent-strong);}

/* ===== HEADER ===== */
header.site{
  position:sticky;
  top:env(safe-area-inset-top,0px);
  z-index:50;
  background:var(--bg);
  border-bottom:3px solid var(--ink);
}
.nav-row{
  display:flex; align-items:center; justify-content:space-between;
  padding-block:14px;
  gap:16px;
}
.brand{
  font-family:'Oswald', sans-serif;
  font-weight:700;
  text-transform:uppercase;
  font-size:1.02rem;
  letter-spacing:.03em;
  text-decoration:none;
  color:var(--ink);
  line-height:1.15;
  flex:none;
}
nav.links{display:flex; flex-wrap:wrap; justify-content:flex-end; gap:16px; row-gap:6px; align-items:center;}
nav.links a{
  text-decoration:none;
  font-family:'Oswald', sans-serif;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.03em;
  text-transform:uppercase;
  color:var(--ink-soft);
  white-space:nowrap;
}
nav.links a:hover{color:var(--accent-strong);}
nav.links a.active{color:var(--accent-strong);}
#nav-toggle{display:none;}
.burger{display:none; background:none; border:2px solid var(--ink); border-radius:2px; width:38px; height:38px; align-items:center; justify-content:center; cursor:pointer; flex:none;}
.burger span, .burger span::before, .burger span::after{
  content:""; display:block; width:18px; height:2px; background:var(--ink); position:relative;
}
.burger span::before{position:absolute; top:-6px;}
.burger span::after{position:absolute; top:6px;}

@media (max-width:900px){
  nav.links{
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:flex-start; gap:0;
    background:var(--bg); border-bottom:3px solid var(--ink);
    max-height:0; overflow:hidden; padding-inline:20px;
  }
  nav.links a{padding-block:14px; width:100%; border-bottom:1px solid var(--line-soft); font-size:.85rem;}
  #nav-toggle:checked ~ nav.links{max-height:520px; overflow-y:auto; padding-block:8px;}
  .burger{display:flex;}
  .nav-cta{display:none;}
}

/* ===== HERO (home) ===== */
.hero{padding-block:52px 0; border-bottom:3px solid var(--ink); overflow:hidden; background:var(--bg); position:relative;}
.contour-bg{position:absolute; inset:0; opacity:.5; pointer-events:none;}
.hero-grid{display:grid; grid-template-columns:1fr; gap:40px; align-items:center; position:relative; max-width:760px;}
.hero h1{font-size:clamp(2.3rem, 5vw, 3.7rem); line-height:.98; margin-block:16px 18px;}
.hero h1 .accent-word{color:var(--accent-strong);}
.hero p.lede{font-size:1.05rem; max-width:44ch; text-transform:none;}
.hero-ctas{display:flex; gap:12px; margin-top:26px; flex-wrap:wrap;}
.credential-row{display:flex; gap:8px; flex-wrap:wrap; margin-top:28px;}
.tag{
  font-family:'Oswald', sans-serif; font-size:.72rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase;
  border:2px solid var(--ink); border-radius:2px; padding:.4em .8em;
  color:var(--ink); background:var(--surface);
}
.tag.solid{background:var(--ink); color:var(--bg); border-color:var(--ink);}
/* ===== PEAKS SKYLINE (full width, home) ===== */
.peaks-strip{background:var(--surface-raised); border-bottom:3px solid var(--ink); overflow:hidden;}
.peaks-svg{width:100%; height:auto; display:block; min-width:900px;}
.peaks-strip .wrap{overflow-x:auto; -webkit-overflow-scrolling:touch;}
.range-label{font-family:'IBM Plex Mono', monospace; font-size:15px; font-weight:600; fill:var(--ink-faint);}
.range-label-peak{font-family:'IBM Plex Mono', monospace; font-size:16px; font-weight:600; fill:var(--accent-strong);}

/* ===== PHOTO BAND ===== */
.photo-band{position:relative; height:50vh; min-height:300px; max-height:480px; overflow:hidden; border-bottom:3px solid var(--ink); background:var(--ink);}
.photo-band img{width:100%; height:100%; object-fit:cover; display:block; opacity:0; transition:opacity .3s ease;}
.photo-band img[src]{opacity:1;}

/* ===== GALLERY GRID ===== */
.gallery-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:12px;}
@media (max-width:900px){ .gallery-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:520px){ .gallery-grid{grid-template-columns:1fr;} }
.gallery-tile{position:relative; aspect-ratio:4/5; overflow:hidden; border:2px solid var(--ink); border-radius:2px; background:var(--surface-raised);}
.gallery-tile img{width:100%; height:100%; object-fit:cover; display:block; opacity:0; transition:opacity .3s ease;}
.gallery-tile img[src]{opacity:1;}
.gallery-tile::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.68) 100%); pointer-events:none;}
.gallery-tile .cap{position:absolute; left:0; right:0; bottom:0; padding:10px 12px; z-index:2;}
.gallery-tile .cap span{font-family:'Oswald',sans-serif; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:#fff; font-size:.72rem; text-shadow:0 1px 4px rgba(0,0,0,.5);}

/* ===== PAGE HERO (subpages) ===== */
.page-hero{padding-block:44px 38px; border-bottom:3px solid var(--ink); background:var(--bg);}
.page-hero h1{font-size:clamp(2rem,4vw,2.7rem); line-height:1.02;}
.page-hero .eyebrow{margin-bottom:12px;}
.page-hero p{margin-top:14px; max-width:62ch; text-transform:none; font-size:1rem;}

/* ===== SECTION SCAFFOLD ===== */
section{padding-block:56px;}
section.alt{background:var(--surface); border-block:3px solid var(--ink);}
.section-head{max-width:56ch; margin-bottom:32px;}
.section-head h2{font-size:clamp(1.6rem,2.6vw,2.15rem); margin-top:10px;}
.section-head p{margin-top:12px; text-transform:none;}

/* ===== PRICING NOTE ===== */
.pricing-note{display:flex; gap:16px; align-items:flex-start; max-width:72ch; border-left:4px solid var(--accent); padding-left:18px;}
.pricing-note p{font-size:.99rem; text-transform:none;}
.pricing-note p strong{color:var(--ink);}

/* ===== EXPEDITION / GENERIC CARDS ===== */
.exp-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media (max-width:900px){ .exp-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .exp-grid{grid-template-columns:1fr;} }
.exp-card{
  background:var(--surface-raised); border:2px solid var(--ink); border-radius:2px;
  padding:22px; display:flex; flex-direction:column; gap:10px; border-top:6px solid var(--accent);
}
.exp-top{display:flex; justify-content:space-between; align-items:flex-start; gap:10px;}
.exp-alt{font-family:'IBM Plex Mono',monospace; font-size:.85rem; font-weight:600; color:var(--accent-strong); white-space:nowrap; font-variant-numeric:tabular-nums;}
.exp-card h3{font-size:1.15rem;}
.exp-loc{font-size:.76rem; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.07em; font-family:'Oswald',sans-serif; font-weight:600;}
.exp-card p{text-transform:none;}
.exp-guide{font-size:.8rem; color:var(--accent-strong); font-weight:700; display:flex; align-items:center; gap:6px; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.03em;}
.exp-guide svg{flex:none;}
.exp-meta{display:flex; gap:14px; font-size:.85rem; color:var(--ink-soft); border-top:2px solid var(--line-soft); padding-top:12px; margin-top:auto; font-family:'IBM Plex Mono',monospace;}
.exp-meta b{color:var(--ink); font-weight:600;}
.exp-card .btn{align-self:flex-start; margin-top:2px;}

/* ===== TIER LADDER ===== */
.tier-list{display:flex; flex-direction:column; border-top:2px solid var(--ink); margin:0; padding:0; list-style:none;}
.tier-item{display:flex; gap:18px; align-items:baseline; padding-block:14px; border-bottom:2px solid var(--line-soft);}
.tier-num{
  font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:.85rem;
  color:var(--bg); background:var(--accent); flex:none;
  width:26px; height:26px; border-radius:2px; display:flex; align-items:center; justify-content:center;
}
.tier-item h4{font-family:'Oswald',sans-serif; font-size:1rem; text-transform:uppercase; letter-spacing:.02em; margin:0;}
.tier-item p{font-size:.9rem; text-transform:none; margin-top:2px;}
.tier-item.top .tier-num{background:var(--ink);}

/* ===== GENERIC GROUPS GRID ===== */
.groups-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media (max-width:820px){ .groups-grid{grid-template-columns:1fr;} }
.groups-grid.cols-4{grid-template-columns:repeat(4,1fr);}
@media (max-width:980px){ .groups-grid.cols-4{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .groups-grid.cols-4{grid-template-columns:1fr;} }
.group-card{border:2px solid var(--ink); border-radius:2px; padding:24px; background:var(--surface-raised); border-top:6px solid var(--ink);}
.group-card.accent-top{border-top-color:var(--accent);}
.group-card .eyebrow{margin-bottom:8px;}
.group-card h3{font-size:1.08rem; margin-bottom:8px;}
.group-card p{font-size:.92rem; text-transform:none;}
.group-card a.card-link{text-decoration:none;}
.partner-strip{display:flex; flex-wrap:wrap; gap:10px; margin-top:22px;}

/* ===== PROMO GRID (home page links to other pages) ===== */
.promo-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
@media (max-width:900px){ .promo-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .promo-grid{grid-template-columns:1fr;} }
.promo-card{
  border:2px solid var(--ink); border-radius:2px; padding:20px; background:var(--surface-raised);
  border-top:6px solid var(--accent); text-decoration:none; display:flex; flex-direction:column; gap:8px;
}
.promo-card h3{font-size:1.02rem;}
.promo-card p{font-size:.86rem; text-transform:none;}
.promo-card .go{font-family:'Oswald',sans-serif; font-size:.75rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--accent-strong); margin-top:auto;}

/* ===== QUALIFICATIONS ===== */
.qual-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
@media (max-width:820px){ .qual-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .qual-grid{grid-template-columns:1fr;} }
.qual-item{padding:18px; border:2px solid var(--ink); border-radius:2px; border-top:6px solid var(--accent); background:var(--surface-raised);}
.qual-item .qname{font-family:'Oswald',sans-serif; font-weight:600; font-size:1rem; color:var(--ink); display:block; text-transform:uppercase; letter-spacing:.01em;}
.qual-item .qcode{display:block; font-family:'IBM Plex Mono',monospace; font-size:.68rem; color:var(--accent-strong); margin-top:8px; letter-spacing:.02em;}

/* ===== CONTACT ===== */
.contact-panel{
  background:var(--ink); color:var(--bg); border-radius:2px;
  padding:42px; display:grid; grid-template-columns:1.2fr .8fr; gap:36px; align-items:center;
  border-top:6px solid var(--accent);
}
@media (max-width:820px){ .contact-panel{grid-template-columns:1fr; padding:30px 24px;} }
.contact-panel h2{color:var(--bg); font-size:clamp(1.5rem,2.6vw,2rem);}
.contact-panel p{color:color-mix(in srgb, var(--bg) 78%, transparent); margin-top:10px; text-transform:none;}
.contact-links{display:flex; flex-direction:column; gap:14px;}
.contact-links a{
  text-decoration:none; font-family:'IBM Plex Mono',monospace; font-size:.95rem;
  display:flex; justify-content:space-between; border-bottom:1px solid color-mix(in srgb, var(--bg) 30%, transparent);
  padding-bottom:10px; color:var(--bg);
}
.contact-links a span.k{color:color-mix(in srgb, var(--bg) 60%, transparent); font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:.78rem; letter-spacing:.05em;}

/* ===== PARTNER / ACCREDITATION STRIP ===== */
.partner-strip{border-top:1px solid var(--line); background:color-mix(in srgb, var(--ink) 4%, var(--bg));}
.partner-strip .wrap{padding-block:22px;}
.partner-strip .partner-label{
  display:block; font-family:'Oswald',sans-serif; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-faint); margin-bottom:14px; text-align:center;
}
.partner-row{
  display:flex; flex-wrap:nowrap; justify-content:center; align-items:center; gap:0;
  overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none;
}
.partner-row::-webkit-scrollbar{display:none;}
.partner-row .p-item{
  font-family:'Oswald',sans-serif; font-weight:600; font-size:.68rem; letter-spacing:.04em; text-transform:uppercase;
  color:var(--ink-soft); padding-inline:14px; border-right:1px solid var(--line); line-height:1;
  display:flex; align-items:center; justify-content:center; min-height:30px; white-space:nowrap; flex:0 0 auto;
}
.partner-row .p-item:last-child{border-right:none;}
.partner-row .p-item .sub{display:inline; font-family:'IBM Plex Mono',monospace; font-weight:500; font-size:.6rem; letter-spacing:0; text-transform:none; color:var(--ink-faint); margin-left:6px;}
.partner-row .p-item .sub::before{content:"— ";}
.partner-row .p-item.p-logo img{
  height:26px; max-width:110px; width:auto; object-fit:contain; display:block;
}
@media (max-width:700px){
  .partner-row{justify-content:flex-start;}
  .partner-row .p-item{padding-inline:10px; font-size:.62rem;}
  .partner-row .p-item.p-logo img{height:17px; max-width:70px;}
}

/* ===== FOOTER ===== */
footer{padding-block:30px; border-top:3px solid var(--ink);}
.foot-row{display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:.78rem; color:var(--ink-faint); font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.03em;}
.placeholder{color:var(--accent-strong); font-style:normal;}
