/* Norway: Huts & Trout — trail-guide look. One accent: the red T-blaze DNT paints on rocks. */
:root{
  --paper:#eef2f2; --ink:#16262e; --muted:#53666f; --rule:#cdd7da; --panel:#e2e9eb;
  --blaze:#c62a1f; --lichen:#55703a; --river:#23718c; --road:#6b7b83;
  --warn-bg:#f6ecd0; --warn-ink:#5f4300;
  --display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --text:"Literata",Georgia,"Times New Roman",serif;
}
@media (prefers-color-scheme:dark){
  :root{--paper:#0f1a1f; --ink:#e6eef0; --muted:#9db0b8; --rule:#26373e; --panel:#16252c;
    --blaze:#ef5a4d; --lichen:#9cc17a; --river:#6cc0dc; --road:#8fa1a9; --warn-bg:#2a2410; --warn-ink:#f0cf86}
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:1.0625rem/1.72 var(--text)}
a{color:var(--river);text-underline-offset:.15em}
a:focus-visible,button:focus-visible{outline:3px solid var(--blaze);outline-offset:2px}
h1,h2,h3,h4,.d{font-family:var(--display)}
img{max-width:100%}

/* hero */
.hero{position:relative;min-height:92vh;min-height:92svh;display:flex;align-items:flex-end;color:#fff;background:#16262e;overflow:hidden}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%;animation:settle 2.6s cubic-bezier(.2,.7,.2,1) both}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,20,26,.25) 0%,rgba(10,20,26,0) 30%,rgba(10,20,26,.82) 100%)}
.hero-text{position:relative;z-index:1;width:100%;max-width:1100px;margin:0 auto;padding:0 20px 56px}
.blaze{display:block;width:44px;height:auto;margin-bottom:18px}
.hero h1{margin:0;font-weight:800;font-stretch:125%;font-size:clamp(3rem,10.5vw,7.4rem);line-height:.92;letter-spacing:-.015em}
.hero .lede{max-width:36rem;margin:22px 0 0;font-size:clamp(1.05rem,2.2vw,1.3rem);line-height:1.55;text-shadow:0 1px 14px rgba(0,0,0,.45)}
.hero .meta{margin:20px 0 0;font:600 .95rem var(--display);font-stretch:100%;opacity:.92}
.hero .photo-credit{position:absolute;right:12px;top:12px;z-index:1;font:.72rem var(--display);color:#fff;opacity:.8;text-decoration:none;background:rgba(0,0,0,.35);padding:3px 8px;border-radius:2px}
@keyframes settle{from{transform:scale(1.07)}to{transform:scale(1)}}

/* nav */
nav.toc{position:sticky;top:0;z-index:20;background:var(--ink);overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
nav.toc .in{max-width:1100px;margin:0 auto;padding:0 8px}
nav.toc a{display:inline-block;color:var(--paper);text-decoration:none;padding:13px 12px;font:600 .9rem var(--display)}
nav.toc a:hover{box-shadow:inset 0 -3px 0 var(--blaze)}

/* layout */
main{padding-bottom:20px}
.col{max-width:44rem;margin:0 auto;padding:0 20px}
section{padding:72px 0 8px}
h2{font-weight:750;font-stretch:112%;font-size:clamp(1.9rem,4.6vw,2.7rem);line-height:1.1;letter-spacing:-.01em;margin:0 0 .6em}
h3{font-weight:700;font-stretch:100%;font-size:1.2rem;margin:2em 0 .3em;color:var(--lichen)}
p{margin:0 0 1em}
ul{padding-left:1.2em}
li{margin:.35em 0}
.v{display:inline-block;font:700 .72rem var(--display);color:var(--warn-ink);background:var(--warn-bg);padding:0 .45em;border-radius:2px;white-space:nowrap}

/* key facts: a plain ruled list, not cards */
.facts{margin:2em 0;border-top:2px solid var(--ink)}
.facts div{display:grid;grid-template-columns:8.5rem 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--rule)}
.facts dt{font:700 .95rem var(--display)}
.facts dd{margin:0}
.facts{display:block}

.note{border-left:4px solid var(--blaze);background:var(--panel);padding:14px 18px;margin:1.6em 0;border-radius:0 3px 3px 0}
.note.warn{border-left-color:#b98a1e;background:var(--warn-bg);color:var(--warn-ink)}
.note h4{margin:0 0 .35em;font-size:1rem}
.note p:last-child,.note ul:last-child{margin-bottom:0}

/* map */
.mapwrap{max-width:1100px;margin:28px auto 0;padding:0 20px}
#map{height:min(70vh,560px);min-height:360px;border-radius:4px;background:var(--panel);border:1px solid var(--rule)}
.views{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.views button{font:700 .88rem var(--display);min-height:40px;padding:7px 16px;border-radius:99px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer}
.views button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.mapnote{font-size:.9rem;color:var(--muted);margin:10px 0 0}
.key{display:flex;flex-wrap:wrap;gap:6px 18px;margin:12px 0 0;font:600 .88rem var(--display);padding:0}
.key li{list-style:none;margin:0;display:flex;align-items:center;gap:7px}
.key i{display:inline-block;width:22px;height:0;border-top:4px solid var(--blaze)}
.key i.drive{border-top:3px dashed var(--road)}
.pin{min-width:28px;height:28px;padding:0 7px;border-radius:14px;background:var(--ink);color:#fff;border:2px solid #fff;font:800 .74rem/24px var(--display);text-align:center;white-space:nowrap;box-shadow:0 1px 5px rgba(0,0,0,.5)}
.pin.hike{background:var(--blaze)} .pin.fish{background:var(--river)} .pin.move{background:var(--road)}
.leaflet-popup-content{font:.92rem/1.45 var(--display);margin:10px 14px}

/* 14 days at a glance */
.strip{max-width:1100px;margin:22px auto 0;padding:0 20px}
.strip ol{display:grid;grid-template-columns:repeat(14,1fr);gap:3px;margin:0;padding:0;list-style:none}
.strip li{margin:0}
.strip a{display:block;text-decoration:none;color:#fff;text-align:center;font:800 .95rem/1 var(--display);padding:11px 0 9px;border-radius:2px;background:var(--road)}
.strip a small{display:block;font:600 .6rem var(--display);opacity:.9;margin-top:4px}
.strip a.hike{background:var(--blaze)} .strip a.fish{background:var(--river)} .strip a.move{background:var(--road)}
.strip a:hover{filter:brightness(1.15)}
.strip p{font-size:.85rem;color:var(--muted);margin:8px 0 0}
@media (max-width:640px){.strip ol{grid-template-columns:repeat(7,1fr)}}

/* days */
.days{max-width:50rem;margin:36px auto 0;padding:0 20px}
.day{display:grid;grid-template-columns:76px 1fr;gap:18px;padding:26px 0;border-top:1px solid var(--rule);scroll-margin-top:56px}
.day .n{font:800 2.6rem/1 var(--display);font-stretch:118%;padding-top:12px;position:relative}
.day .n::before{content:"";position:absolute;left:0;top:0;width:34px;height:6px;background:var(--blaze)}
.day .n small{display:block;font:600 .8rem var(--display);color:var(--muted);margin-top:4px}
.day h3{margin:0 0 .25em;color:var(--ink);font-size:1.28rem}
.day p{margin:.3em 0}
.tag{display:inline-flex;align-items:center;gap:6px;font:700 .82rem var(--display);color:var(--muted);margin-bottom:2px}
.tag::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--road)}
.tag.hike::before{background:var(--blaze)} .tag.fish::before{background:var(--river)}
.dphoto{margin:14px 0 4px}
.dphoto img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:3px;background:var(--panel)}
.dphoto figcaption,.fig figcaption{font-size:.8rem;color:var(--muted);margin-top:6px;line-height:1.4}
.dphoto figcaption a,.fig figcaption a{color:inherit}
@media (max-width:560px){.day{grid-template-columns:1fr;gap:6px}.day .n{display:flex;align-items:baseline;gap:8px}.day .n small{margin:0}}

.fig{margin:1.6em 0}
.fig img{display:block;width:100%;border-radius:3px;aspect-ratio:3/2;object-fit:cover}

table{border-collapse:collapse;width:100%;font-size:.95rem;margin:1em 0}
th,td{border-bottom:1px solid var(--rule);padding:10px 10px 10px 0;text-align:left;vertical-align:top}
th{font:700 .9rem var(--display)}
.tablewrap{overflow-x:auto}

/* credits */
footer{margin-top:72px;padding:36px 0 64px;border-top:2px solid var(--ink);font-size:.9rem;color:var(--muted)}
footer h2{font-size:1.2rem;color:var(--ink);margin:0 0 .5em}
footer ul{list-style:none;padding:0;columns:2 280px;column-gap:28px}
footer li{break-inside:avoid;margin:.5em 0}

@media (prefers-reduced-motion:reduce){.hero img{animation:none}html{scroll-behavior:auto}}
@media (max-width:520px){.facts div{grid-template-columns:1fr;gap:2px}}

.hero .meta a{color:#fff;text-underline-offset:.2em}
.key .dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--road)}
.key .dot.hike{background:var(--blaze)} .key .dot.fish{background:var(--river)}

/* chooser */
.choose{max-width:1100px;margin:0 auto;padding:56px 20px 24px}
.choose h1{font-weight:800;font-stretch:125%;font-size:clamp(2.4rem,7vw,4.6rem);line-height:.95;margin:0 0 14px;letter-spacing:-.015em}
.choose .lede{max-width:40rem;font-size:1.15rem;color:var(--muted);margin:0 0 36px}
.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.choice{position:relative;display:flex;align-items:flex-end;min-height:440px;border-radius:4px;overflow:hidden;color:#fff;text-decoration:none;background:#16262e}
.choice img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.choice::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,20,26,0) 30%,rgba(10,20,26,.85) 100%)}
.choice:hover img{transform:scale(1.03)}
.choice:focus-visible{outline:3px solid var(--blaze);outline-offset:3px}
.choice div{position:relative;z-index:1;padding:24px}
.choice h2{margin:0 0 .3em;font-size:clamp(1.8rem,4vw,2.5rem);border:0;padding:0;color:#fff}
.choice p{margin:0;max-width:26rem;line-height:1.5}
@media (max-width:760px){.choices{grid-template-columns:1fr}.choice{min-height:340px}}
@media (prefers-reduced-motion:reduce){.choice img{transition:none}}
