/* TIDEL — forsiden og /download.
   Bygger paa css/tidel.css (tokens, ordmerke, bunn). Alt her er det forsiden
   trenger ekstra: hero, fotoband, mosaikk, diagrammer og butikkknapper. */

h1,h2,h3{letter-spacing:-.005em}
.xxl{font-family:var(--disp);font-weight:700;text-transform:uppercase;
  font-size:clamp(52px,8.6vw,140px);line-height:.83;letter-spacing:-.03em;margin:0}
.xl{font-family:var(--disp);font-weight:700;text-transform:uppercase;
  font-size:clamp(34px,5.2vw,80px);line-height:.88;letter-spacing:-.02em;margin:0}
.lg{font-family:var(--disp);font-weight:700;text-transform:uppercase;
  font-size:clamp(23px,2.8vw,38px);line-height:.95;margin:0}
.kick{font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.3em;
  text-transform:uppercase;color:var(--dim)}
.kick.r{color:var(--acc)}
.txt{font-size:17px;color:var(--mut);max-width:44ch;margin:0}
.txt.sm{font-size:15px}
.num{font-family:var(--disp);font-weight:700;font-variant-numeric:tabular-nums;
  letter-spacing:-.028em;line-height:.9}
.red{color:var(--acc)}

.wrap{max-width:1320px;margin:0 auto;padding:0 40px}
.pad{padding:clamp(68px,9vw,130px) 0}
.hr{height:1px;background:var(--line)}

.ix{display:flex;align-items:baseline;gap:16px;margin-bottom:26px}
.ix .no{font-family:var(--disp);font-weight:700;font-size:15px;letter-spacing:.14em;color:var(--acc)}
.ix .lb{font-family:var(--disp);font-weight:700;font-size:15px;letter-spacing:.26em;
  text-transform:uppercase;color:var(--dim)}
.ix .rl{flex:1;height:1px;background:var(--line2)}

/* ── topplinje over foto ── */
.navTop{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;
  gap:38px;padding:24px 40px;background:none;border:0}
.navTop .brand{font-size:29px;display:flex;align-items:baseline;gap:12px;text-decoration:none}
.navTop .brand small{font-family:var(--disp);font-weight:600;font-size:9px;letter-spacing:.22em;
  color:var(--mut);text-transform:uppercase}
.navTop .links{display:flex;gap:28px;margin-left:20px}
.navTop .links a{font-family:var(--disp);font-weight:700;font-size:14.5px;letter-spacing:.14em;
  text-transform:uppercase;color:#C9C9D1;text-decoration:none;text-shadow:0 2px 12px rgba(0,0,0,.8)}
.navTop .links a:hover{color:#fff}
.navTop .right{margin-left:auto}

.knapp{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--disp);font-weight:700;font-size:17px;letter-spacing:.12em;text-transform:uppercase;
  padding:16px 30px;cursor:pointer;border:1px solid var(--line2);background:#141418;color:var(--ink);
  text-decoration:none}
.knapp.p{background:var(--acc);border-color:var(--acc);color:#fff}
.knapp.p:hover{background:var(--accHot);border-color:var(--accHot)}
.knapp.g{background:rgba(8,8,10,.42);backdrop-filter:blur(6px)}
.knapp.g:hover{border-color:var(--ink)}
.knapp.sm{font-size:14px;padding:11px 20px}

/* ── butikk ── */
.stores{display:flex;gap:12px;flex-wrap:wrap}
.store{display:flex;align-items:center;gap:12px;border:1px solid var(--line2);
  background:rgba(10,10,14,.72);backdrop-filter:blur(6px);padding:11px 18px 11px 15px;
  min-width:214px;text-decoration:none}
.store:hover{border-color:var(--mut)}
.store svg{width:22px;height:22px;flex:0 0 22px;color:var(--mut)}
.store .t1{display:block;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dim);font-family:var(--disp);font-weight:700}
.store .t2{display:block;font-family:var(--disp);font-weight:700;font-size:19px;letter-spacing:.03em}
.store .st{margin-left:auto;font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  padding:3px 7px;border:1px solid rgba(227,6,19,.6);color:var(--accHot);white-space:nowrap}

/* ── hero ── */
.hero{position:relative;min-height:min(96vh,980px);display:flex;align-items:flex-end;overflow:hidden}
.hero .ph{position:absolute;inset:0;background:url(/assets/photo/hero-berm.jpg) center 42%/cover;
  filter:contrast(1.06) saturate(.92)}
.hero .tt{position:absolute;inset:0;
  background:linear-gradient(92deg,rgba(6,6,8,.93) 0%,rgba(6,6,8,.72) 34%,rgba(6,6,8,.18) 62%,rgba(6,6,8,.45) 100%),
             linear-gradient(0deg,rgba(6,6,8,.96) 2%,rgba(6,6,8,0) 42%)}
.hero .wrap{position:relative;z-index:3;padding-top:168px;padding-bottom:62px;width:100%}
.heroGrid{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:flex-end}
.hero h1{text-shadow:0 6px 40px rgba(0,0,0,.6)}
.hero .sub{margin-top:24px;font-size:19px;color:#D6D6DC;max-width:40ch;
  text-shadow:0 2px 18px rgba(0,0,0,.7)}
.hero .cta{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}
.hero .stores{margin-top:24px}
.heroPhone{width:clamp(178px,17vw,236px);border:9px solid #17171a;border-radius:34px;
  overflow:hidden;background:#000;box-shadow:0 50px 90px -30px rgba(0,0,0,.95)}
/* UTEN denne blir bildet klemt: bredden styres av ramma, men height-attributtet
   (844) blir staaende, og telefonen strekkes til nesten dobbel hoeyde. */
.heroPhone img{display:block;width:100%;height:auto}

/* ── fotoband ── */
.band{position:relative;min-height:min(76vh,640px);display:flex;align-items:center;overflow:hidden}
.band .ph{position:absolute;inset:0;background-size:cover;background-position:center;
  filter:contrast(1.05) saturate(.9)}
.band .tt{position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(6,6,8,.94),rgba(6,6,8,.60) 48%,rgba(6,6,8,.24)),
             linear-gradient(0deg,rgba(6,6,8,.86),rgba(6,6,8,0) 55%)}
.band.mid .tt{background:linear-gradient(0deg,rgba(6,6,8,.92),rgba(6,6,8,.34) 55%,rgba(6,6,8,.62)),
             radial-gradient(70% 60% at 50% 60%,rgba(227,6,19,.16),transparent 70%)}
.band .wrap{position:relative;z-index:2}
.band .txt{color:#CFCFD6}
.band.a .ph{background-image:url(/assets/photo/aerial-sunset.jpg)}
.band.b .ph{background-image:url(/assets/photo/overlook.jpg)}
.band.c .ph{background-image:url(/assets/photo/dawn-straight.jpg)}

/* ── to kolonner ── */
.split{display:grid;grid-template-columns:5fr 7fr;gap:clamp(28px,4.4vw,66px);align-items:center}
.split.rev{grid-template-columns:7fr 5fr}
.split.even{grid-template-columns:1fr 1fr}
/* Kildebildene er 400-520 px brede. Uten taket her ble de blaast opp 1,4x i en
   684 px kolonne, og da forsvinner detaljene. */
.shot{position:relative;overflow:hidden;background:#0C0C0E;border:1px solid var(--line);
  aspect-ratio:16/9;max-width:560px}
.shot img{width:100%;height:100%;object-fit:cover;filter:contrast(1.04) saturate(.92)}
.shot .cap{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;
  background:linear-gradient(0deg,rgba(6,6,8,.9),transparent);
  font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.2em;
  text-transform:uppercase;color:#D6D6DC}

/* ── satellittkart ──
   Satellittbildet ligger som CSS-bakgrunn, ikke som <image> inne i SVG-en. Grunnen:
   et SVG-filter paa et rasterbilde blir rasterisert av nettleseren i filterets eget
   rutenett, og resultatet ble en graa groet naar SVG-en samtidig skaleres med "slice".
   Nedtoningen gjoeres derfor med CSS. Begge lagene dekker samme boks fra samme
   kildeforhold (1000x1444), saa GPS-linja treffer banen noeyaktig som foer. */
.sat{position:relative;border:1px solid var(--line2);background:#000;overflow:hidden;
  aspect-ratio:1000/1290}
.satBg{position:absolute;inset:0;background:url(/assets/photo/froland-satellitt.jpg) center/cover;
  filter:saturate(.55) brightness(.74)}
.satBg::after{content:'';position:absolute;inset:0;background:rgba(8,8,10,.30)}
.sat svg{position:absolute;inset:0;display:block;width:100%;height:100%}
.legend{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:11.5px;color:var(--dim);
  letter-spacing:.08em;text-transform:uppercase;font-family:var(--disp);font-weight:700}
.legend .ramp{width:120px;height:6px;
  background:linear-gradient(90deg,#E84C3D,#F5C242,#45D06C)}

.figRow{display:flex;gap:clamp(24px,4.4vw,62px);flex-wrap:wrap;align-items:flex-end}
.fig .k{font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--dim);margin-bottom:6px}
.fig .v{font-size:clamp(40px,5.6vw,86px)}
.fig .v.gold{color:var(--gold)}

.bars{display:grid;gap:14px}
.bar{display:grid;grid-template-columns:38px 1fr 92px;align-items:center;gap:14px}
.bar .nm{font-family:var(--disp);font-weight:700;font-size:16px;letter-spacing:.14em;color:var(--mut)}
.bar .tr{height:14px;background:#141418;border:1px solid var(--line);position:relative}
.bar .tr i{position:absolute;left:0;top:0;bottom:0;background:var(--gold)}
.bar .vl{font-family:var(--disp);font-weight:700;font-size:22px;text-align:right;
  font-variant-numeric:tabular-nums}

.sitat{border-left:3px solid var(--acc);padding:4px 0 4px 22px}
.sitat p{margin:0;font-size:19px;line-height:1.5;color:var(--ink)}
.sitat .src{margin-top:12px;font-family:var(--disp);font-weight:700;font-size:11.5px;
  letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}

.graf svg{display:block;width:100%;height:auto;overflow:visible}

/* ── kilder ── */
.kilder{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line)}
.kilde{background:var(--bg2);padding:24px 22px 22px}
.kilde .n{font-family:var(--disp);font-weight:700;font-size:21px;letter-spacing:.05em}
.kilde .d{font-size:13.5px;color:var(--mut);margin-top:6px;line-height:1.5}
.kilde .tg{display:block;font-family:var(--disp);font-weight:700;font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--acc);margin-bottom:10px}
.kilde .tg.n2{color:var(--dim)}
.kilderNote{font-size:12.5px;color:var(--dim);margin-top:18px;max-width:74ch;line-height:1.55}

/* ── mosaikk ── */
/* Samme grunn: 1240 px delt paa tre ga 405 px celler, og det minste bildet (267 px)
   ble strukket 1,5x. 1040 px gir 339 px celler og maks 1,27x. */
.mos{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:238px;gap:12px;
  max-width:1040px;margin-left:auto;margin-right:auto}
.mos .m{overflow:hidden;background:#0C0C0E}
.mos .m img{width:100%;height:100%;object-fit:cover;filter:contrast(1.04) saturate(.9)}
/* Detaljbildene er bare 239-293 px brede. Uten taket sprakk de paa nettbrettbredde. */
.mos.par{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px;max-width:520px}

/* ── /download ── */
.dlHead{padding:130px 0 56px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.dlHead .ph{position:absolute;inset:0;background:url(/assets/photo/start-gate.jpg) center 60%/cover;
  filter:contrast(1.04) saturate(.85)}
.dlHead .tt{position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(6,6,8,.96),rgba(6,6,8,.72) 55%,rgba(6,6,8,.5))}
.dlHead .wrap{position:relative;z-index:2}
.dlGrid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);
  border:1px solid var(--line);margin-top:8px}
.dlCard{background:var(--bg2);padding:34px 30px 30px}
.dlCard .plat{font-family:var(--disp);font-weight:700;font-size:30px;letter-spacing:.04em}
.dlCard .meta{font-size:14px;color:var(--mut);margin:10px 0 22px;line-height:1.55}
.dlCard .knapp{width:100%}
.dlCard .req{font-size:12.5px;color:var(--dim);margin-top:14px}

@media (max-width:1080px){
  .heroGrid{grid-template-columns:1fr}
  .heroPhone{display:none}
  .split,.split.rev,.split.even{grid-template-columns:1fr}
  .navTop .links{display:none}
  .kilder{grid-template-columns:1fr 1fr}
  .dlGrid{grid-template-columns:1fr}
  .wrap{padding:0 24px}
  /* BEHOLD tre kolonner. Faerre kolonner = bredere celler = mer oppskalering,
     og kildebildene er bare 267-518 px brede. */
  .mos{grid-template-columns:repeat(3,1fr);grid-auto-rows:180px}
}
@media (max-width:620px){
  .wrap{padding:0 18px}
  .kilder{grid-template-columns:1fr}
  .mos{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}
  .knapp{font-size:15px;padding:14px 22px}
  .hero{min-height:auto}
  .hero .wrap{padding-top:132px;padding-bottom:44px}
  .band{min-height:auto;padding:64px 0}
  .store{min-width:0;width:100%}
}
