/* ==========================================================================
   Offshore Prosjektkonferansen — designsystem «Full himmel»
   Himmelblå flate, tung svart uppercase-typografi, frostede glasskort, svarte pille-knapper,
   fjell som bakgrunnselement, video i rundet ramme. Lastes SIST på alle offentlige sider
   og overstyrer sidenes egne inline-stiler.
   ========================================================================== */
:root {
  --sky1:#5aa6ec; --sky2:#8cc6f3; --sky3:#d6eafb; --deep:#042130; --ink:#000;
  --glass:rgba(255,255,255,.58); --glass-bd:rgba(255,255,255,.8); --glass-sh:0 24px 50px -28px rgba(0,60,120,.5);
  --txt:#000; --txt2:#0b2540; --link:#0d4f9a;
  --font-display:'Sora','Manrope',-apple-system,"Segoe UI",sans-serif;
}
html { scroll-padding-top:110px; }
body { font-family:'Manrope','Inter',-apple-system,"Segoe UI",sans-serif; color:var(--txt);
  background:linear-gradient(180deg,var(--sky1),var(--sky2) 30%,var(--sky1) 65%,var(--sky2)); }

/* ---- typografi ---- */
h1,h2,.title,.nl-head,.fc-body h2 { font-family:var(--font-display); font-weight:800; text-transform:none; letter-spacing:-.015em; line-height:1.1; }
/* Store bokstaver kun på hovedoverskriften (hero); øvrige titler har vanlig skrivemåte og er mindre */
.hero h1,.nl-head { text-transform:uppercase; line-height:1.04; }
.page-hero h1 { text-transform:none; }
.title,.title .accent,.title .dot,.title .b,.title .w { color:var(--txt); }
.kcard h3,.spk h3,.pcard .pname,.why-card h3,.stat .num { font-family:var(--font-display); font-weight:800; }
.sec-head p,.lead,.body,.sub { color:var(--txt2); }

/* ---- knapper: svart pille ---- */
.btn { border-radius:48px; text-transform:none; letter-spacing:0; font-weight:800; font-size:15px; padding:14px 30px; }
.btn-lg { padding:16px 34px; font-size:16px; border-radius:48px; }
.btn-amber,.btn-blue,.btn-dark { background:#000; color:#fff; border:0; }
.btn-amber:hover,.btn-blue:hover,.btn-dark:hover { background:#1c2b3a; filter:none; color:#fff; }
.btn-amber::after { content:none; }
.btn-outline-w,.btn-outline-d { border:2px solid #000; color:#000; background:transparent; }
.btn-outline-w:hover,.btn-outline-d:hover { background:#000; color:#fff; border-color:#000; }
a:focus-visible,.btn:focus-visible,button:focus-visible,input:focus-visible { outline:3px solid #fff; outline-offset:3px; box-shadow:0 0 0 6px #000; }

/* ---- nav ---- */
header.nav { background:#fff; border-bottom:0; box-shadow:0 1px 0 rgba(0,0,0,.06); }
.nav-links a { color:#000; font-weight:700; }
.nav-links a:hover,.nav-links a.active { color:var(--link); }
.nav-links a.active { text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:2px; }

/* ---- flater: alt transparent over himmelen ---- */
section.block,.keynote,.feature,.partners,#teampass,#hvem,.newsletter,.eventbar,.speakers,.program,.pricing,.why,.exhibitors,
.bank,.who,.contact,.soft,#utbyttet,#behovet { background:transparent; }
.berg-bg { display:none !important; }

/* ---- frostet glass ---- */
.promo-card,.kcard,#keynotes .kcard,#keynotes .kcard.mint,#keynotes .kcard.blue,.pcard,.plogo,.nl-card,.feature-card,.newmarkets,.reg-form,
.pill,.nm-pill,.nl-team,.ses,.why-card,.stat,.exh,.infobox,.addon,.payinfo,.gain,.need-copy,.urg,.spk-note {
  background:var(--glass); border:1px solid var(--glass-bd); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:var(--glass-sh); color:var(--txt); }
.kcard,.pcard,.feature-card,.newmarkets,.reg-form,.promo-card,.ses,.why-card,.exh,.infobox,.gain,.urg { border-radius:26px; }
.kcard h3,.kcard p,.why-card h3,.why-card p,.ses .stitle,.ses .sdesc,.pcard,.pcard .pdesc,.pcard li,.exh,.gain { color:var(--txt); }
.kcard p,.why-card p,.ses .sdesc,.pcard .pdesc,.pcard .plist li { color:var(--txt2); }
.kcard::after { display:none; }
#keynotes .kfeat { background:linear-gradient(rgba(4,33,48,.35),rgba(4,33,48,.78)),url('images/prosjektkonferansen-2-1448.webp') center/cover; }
#keynotes .kfeat h3,#keynotes .kfeat p { color:#fff; }
#keynotes .kfeat .btn { background:rgba(255,255,255,.2); color:#fff; border:1.5px solid rgba(255,255,255,.8); }
#keynotes .kfeat .btn:hover { background:#fff; color:#000; }
.pill,.nm-pill { color:#000; font-weight:800; }
.pcard.featured { border:2px solid #000; }
.pcard .pbadge { background:#000; color:#fff; }
.pcard .pprice,.pcard .pprice small,.pcard .pcount,.pcard .pper { color:#000; }
.pcard .plist li svg { color:#000; }
.spk .ph-clip { border-radius:24px; border:4px solid rgba(255,255,255,.75); box-shadow:var(--glass-sh); background:var(--sky3); }
.spk h3,.spk .co { color:#000; } .spk .role { color:var(--txt2); }
.spk .ph-initials { background:var(--sky3); color:#000; }
.feature .montage img { border-radius:24px; border:4px solid rgba(255,255,255,.75); }
.feature .lead { color:#000; }
.fc-body h2,.fc-stat .num { color:#000; } .fc-sub,.fc-stat .lbl { color:var(--txt2); } .fc-eyebrow,.fc-link,.fc-chev { color:var(--link); }
.fc-stat { border-left-color:#000; }
.tier .tname,.plogo,.team-quote,.team-note { color:#000; }
#hvem .title,#hvem .accent,#hvem .dot,#hvem .sec-head p { color:#000; }
.tp-eyebrow { background:var(--glass); color:#000; border-color:var(--glass-bd); }
.eyebrow { color:#000; }

/* ---- statistikkbånd: mørkt bånd, hvit tekst (kontrast) ---- */
.statband { background:var(--deep); color:#fff; }
.statband .big { color:#fff !important; -webkit-text-fill-color:#fff; -webkit-text-stroke:0; }
.statband .big .pct { color:#8cc6f3 !important; -webkit-text-fill-color:#8cc6f3; -webkit-text-stroke:0 !important; }
.statband .big small { color:#d6eafb !important; -webkit-text-fill-color:#d6eafb; -webkit-text-stroke:0; }
.statband .stxt h2 { color:#fff; text-transform:none; }
.statband .stxt p { color:rgba(255,255,255,.9); }
.statband .stxt .src { color:#b5d0ea; }

/* ---- HERO (forside) ---- */
.hero { background:linear-gradient(180deg,var(--sky1) 0%,var(--sky2) 100%); color:#000; align-items:center; min-height:86vh; overflow:hidden; }
.hero-overlay,.hero-bg { display:none; }
.hero .wrap { display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center; width:100%; padding-top:72px; padding-bottom:110px; z-index:2; }
.hero .eyebrow { color:#000; font-weight:800; letter-spacing:.16em; }
.hero .eyebrow .d { background:#000; }
.hero h1 { color:#000; font-size:clamp(44px,6.4vw,92px); max-width:12ch; }
.hero h1 .a { color:#fff; }
.hero p.sub { color:#000; font-weight:500; }
.hero .hero-meta .hm,.hero .hero-meta .hm svg { color:#000; }
.hero-right { position:relative; z-index:3; display:flex; flex-direction:column; }
.hero-media { position:relative; border-radius:34px; overflow:hidden; aspect-ratio:4/3; background:linear-gradient(135deg,#2a6fbf,#0b3d75);
  border:5px solid rgba(255,255,255,.8); box-shadow:0 34px 70px -34px rgba(0,50,110,.65); }
.hero-media video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(90,166,236,.10),rgba(0,40,90,.28)); pointer-events:none; }
.hm-chip { position:absolute; left:18px; top:18px; z-index:2; display:inline-flex; align-items:center; gap:9px; padding:9px 16px;
  background:rgba(255,255,255,.78); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.9);
  border-radius:40px; font-weight:800; font-size:13px; letter-spacing:.04em; text-transform:uppercase; color:#000; }
.hm-chip i { width:9px; height:9px; border-radius:50%; background:#e5322d; box-shadow:0 0 0 4px rgba(229,50,45,.22); }
.hero-card { position:relative; z-index:4; margin:-72px 0 0 -44px; width:calc(100% - 20px); align-self:flex-end; }
.hero-card .promo-card { display:block; max-width:none; margin:0; }
.hero-card .promo-notify { display:block; padding:26px 28px 28px; }
.hero-card .promo-notify .eyebrow { color:#000; }
.hero-card h3 { font-family:var(--font-display); font-weight:800; text-transform:none; font-size:clamp(18px,1.9vw,23px); color:#000; margin:6px 0 16px; }
.hero-card form { display:flex; flex-direction:column; gap:12px; flex:none; width:100%; max-width:none; }
.hero-card .promo-text { flex:none; }
.hero-card input { width:100%; flex:none; background:rgba(255,255,255,.9); border:1px solid rgba(255,255,255,.95); border-radius:12px; padding:14px 16px; color:#000; }
.hero-card .btn { width:100%; }
.promo-msg { color:#000; } .promo-msg.ok { color:#075e45; } .promo-msg.err { color:#a4281c; }

/* ---- dekor: stiplede linjer + fjell ---- */
.hero-deco { position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden; }
.hero-deco .dl { position:absolute; bottom:0; border-left:2px dashed rgba(255,255,255,.7); z-index:0; }
.hero-deco .dl::before { content:""; position:absolute; top:-7px; left:-8px; width:14px; height:14px; border-radius:50%; background:#fff; }
.hero-deco .d1 { left:6%; height:30%; } .hero-deco .d2 { left:52.5%; height:62%; } .hero-deco .d3 { left:93%; height:34%; }
.mtn { position:absolute; left:0; bottom:0; width:100%; height:44%; min-height:190px; }
.mtn .m-back { fill:#fff; opacity:.24; } .mtn .m-mid { fill:#fff; opacity:.36; } .mtn .m-mid2 { fill:#fff; opacity:.30; }
.mtn .m-front { fill:#fff; opacity:.55; } .mtn .m-face { fill:#fff; opacity:.35; }
.deco-host { position:relative; }

/* ---- side-hero (undersider) ---- */
.page-hero { background:linear-gradient(180deg,var(--sky1),var(--sky2)); color:#000; text-align:left; padding:76px 0 130px; overflow:hidden; }
.page-hero .wrap { z-index:3; }
.page-hero .eyebrow { background:rgba(255,255,255,.7); color:#000; border:1px solid rgba(255,255,255,.9); border-radius:40px; padding:8px 18px; font-weight:800; }
.page-hero h1,.page-hero h1 .b { color:#000; text-transform:none; }
.page-hero h1 { font-size:clamp(32px,5vw,60px); }
.page-hero p.sub { color:#000; font-weight:500; max-width:680px; margin:0; }
.page-hero .mtn { height:60%; min-height:130px; }

/* ---- slutt-CTA med video og fjell ---- */
.endcta { background:var(--sky1); color:#fff; isolation:isolate; position:relative; overflow:hidden; padding-bottom:150px; }
.cta-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.endcta::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(90,166,236,.78),rgba(18,80,168,.93)); }
.endcta .title,.endcta h2 .b,.endcta h2 .w { color:#fff; }
.endcta p { color:#fff; }
.endcta .btn-amber,.endcta .btn-blue { background:#000; color:#fff; }
.endcta .btn-outline-w { border-color:#fff; color:#fff; } .endcta .btn-outline-w:hover { background:#fff; color:#000; }
.endcta .cta-range { display:none; }
.endcta .mtn { height:34%; min-height:110px; z-index:0; }
.endcta .wrap { z-index:3; }
.urg { color:#000; } .urg-badge { background:#000; color:#fff; }
.urg-price .now,.urg-price small,.urg-note,.urg-seats,.urg-seats b,.urg-seats svg { color:#000; }
.reg-sub { color:#fff; }
.reg-form h3 { color:#000; } .rf-lead,.rf-fine { color:#0b2540; } .rf-field label { color:#000; }
.rf-field input { background:rgba(255,255,255,.92); border-radius:12px; }
.rf-msg.ok { color:#075e45; } .rf-msg.err { color:#a4281c; }

.midcta { background:var(--deep); color:#fff; }
.midcta .title { color:#fff; }
footer { background:var(--deep); }

/* ---- program ---- */
.progbar { background:rgba(255,255,255,.55); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-bottom:1px solid var(--glass-bd); }
.printbtn { background:#000; color:#fff; border-radius:40px; border:0; }
.daychips a,.daychips button { border-radius:40px; }
.ses.quiet { background:rgba(255,255,255,.28); box-shadow:none; }
.ses .time { color:#000; font-family:var(--font-display); font-weight:800; }
.ses .time .end { color:var(--txt2); }
.ses .stitle { font-family:var(--font-display); font-weight:800; color:#000; }
.tp { border-radius:40px; font-weight:800; }
.tp.keynote { background:#000; color:#fff; } .tp.foredrag { background:#fff; color:#000; } .tp.panel { background:#0d4f9a; color:#fff; } .tp.aapning { background:#042130; color:#fff; }
.theme-pill { background:rgba(255,255,255,.7); color:#000; border:1px solid rgba(255,255,255,.9); border-radius:40px; }
.smeta,.smeta .co,.smeta .item { color:var(--txt2); }
.footnote { color:#000; }

/* ---- deltakerpass / utstilling ---- */
.stat .num,.why-card .num { color:#000; } .stat .lbl { color:var(--txt2); }
.why-card .ic { background:rgba(255,255,255,.7); color:#000; border-radius:14px; }
.addon,.infobox,.payinfo { border-radius:22px; }
.pricing-note,.intro { color:var(--txt2); }
.exh { color:#000; }

/* ---- one-pager ---- */
.khero { color:#fff; }
.need-copy p,.gain .k { color:var(--txt2); }
.need-grid .pill,.tags .tag { background:var(--glass); color:#000; border:1px solid var(--glass-bd); }

@media (max-width:900px){
  .hero .wrap { grid-template-columns:1fr; padding-bottom:96px; }
  .hero-card { margin:-56px 0 0; width:100%; }
  .hero-deco .d2 { display:none; }
  .page-hero { padding:56px 0 110px; }
}
@media (prefers-reduced-motion:reduce){ .hero-media video,.cta-bg { display:none; } }

/* ---- kontrast- og spesifisitetsrettelser (funnet i automatisk kontrast-sjekk) ---- */
.hero h1 .a { color:#002454; }
.feature p.body,.newmarkets p,.sec-head p { color:var(--txt2); }
#keynotes .kcard.mint p,#keynotes .kcard.blue p,#keynotes .kcard p { color:var(--txt2); }
#keynotes .kcard.mint h3,#keynotes .kcard.blue h3,#keynotes .kcard h3 { color:#000; }
#keynotes .kfeat h3,#keynotes .kfeat p { color:#fff; }
.midcta .title,.midcta .title .dot,.midcta .title .accent,.endcta .title .dot { color:#fff; }
.midcta p { color:#fff; }
.midcta .btn-outline-w { border-color:#fff; color:#fff; } .midcta .btn-outline-w:hover { background:#fff; color:#000; }
.midcta .btn-amber { background:#fff; color:#000; } .midcta .btn-amber:hover { background:#d6eafb; color:#000; }
.endcta::before { background:linear-gradient(180deg,rgba(20,84,170,.86),rgba(8,52,128,.95)); }
.reg-form .rf-lead,.reg-form .rf-fine,.rf-fine { color:#0b2540; }
.rf-field label .req { color:#a4281c; } .rf-field label .opt { color:#0b2540; }
.hero-card .promo-notify .eyebrow,.hm-chip { color:#000; }
.endcta .urg p,.endcta .urg span,.endcta .urg b,.endcta .urg small { color:#000; }
.endcta .urg-badge { color:#fff; }
.endcta .reg-form p,.endcta .reg-form h3,.endcta .reg-form label { color:#000; }
.endcta .reg-form .rf-lead,.endcta .reg-form .rf-fine { color:#0b2540; }

/* grå tekst → mørk blågrå (WCAG AA på glass) */
:root { --gray:#1a3350; --line:rgba(255,255,255,.6); }

/* ---- one-pager: mørke seksjoner beholder egen bakgrunn ---- */
.khero .kicker,.khero .kicker span,.khero .khero-top,.khero .khero-top b,.khero p.sub { color:#fff; }
.khero .btn-amber,.khero .btn-blue { background:#fff; color:#000; } .khero .btn-amber:hover { background:#d6eafb; color:#000; }
.khero .btn-outline-w { border-color:#fff; color:#fff; } .khero .btn-outline-w:hover { background:#fff; color:#000; }
.khero .eyebrow { color:#fff; }
.statband .stxt h2 em { color:#8cc6f3; }
.bank .flow i { color:#002454; }
.how { color:#fff; } .how h2,.how h3,.how-item h3 { color:#fff; } .how .eyebrow { color:#ffd99a; }
.how-item p { color:rgba(255,255,255,.88); } .how-item .k { color:#fca806; }
.contact { border-top:0; }
.endcta .urg .urg-badge { color:#fff; background:#000; }

/* ---- mobilnavigasjon: lenkene ligger som rullbar stripe under logoraden ---- */
@media (max-width:900px){
  header.nav .nav-inner { flex-wrap:wrap; height:auto; row-gap:0; padding-top:8px; padding-bottom:0; gap:12px; }
  header.nav .nav-links { display:flex !important; order:3; flex:0 0 100%; margin:0 -24px; padding:10px 24px 12px; gap:22px;
    overflow-x:auto; white-space:nowrap; border-top:1px solid rgba(0,0,0,.08); -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  header.nav .nav-links::-webkit-scrollbar { display:none; }
  header.nav .nav-links a { font-size:15px; flex:0 0 auto; padding:2px 0; }
  header.nav .nav-links a.active { text-decoration:underline; text-underline-offset:6px; }
  html { scroll-padding-top:130px; }
}

/* ---- små skjermer: ingen sideveis overflyt, kompakt nav ---- */
h1,h2,.title { overflow-wrap:break-word; }
@media (max-width:560px){
  .sec-head h2 { font-size:clamp(22px,6.6vw,30px); }
  .page-hero h1 { font-size:clamp(28px,8.4vw,40px); overflow-wrap:anywhere; }
  .hero h1 { font-size:clamp(40px,12.5vw,60px); }
  .endcta h2 { font-size:clamp(28px,8.4vw,44px); }
  .statband .stxt h2 { font-size:clamp(20px,6vw,26px); }
  header.nav .nav-inner { flex-wrap:wrap; gap:8px; }
  header.nav .logo { gap:8px; min-width:0; }
  header.nav .logo img { height:38px; }
  header.nav .logo-txt .l1 { font-size:14px; } header.nav .logo-txt .l2 { font-size:8.5px; letter-spacing:.16em; }
  header.nav .nav-cta .btn { padding:9px 14px; font-size:13px; }
}
.feature-grid > *,.hero .wrap > *,.bank-grid > *,.need-grid > * { min-width:0; }
@media (max-width:560px){ .feature h2,.fc-body h2,.newmarkets p { font-size:clamp(22px,6.4vw,30px); overflow-wrap:anywhere; } }

/* foredragsholder-logo: rundet hvit merkelapp i stedet for sky */
.spk-cloud { width:150px; height:60px; left:12px; bottom:-28px; background:#fff; border-radius:16px; box-shadow:0 14px 26px -14px rgba(0,50,110,.5); border:1px solid rgba(255,255,255,.9); }
.spk-cloud svg { display:none; }
.spk-cloud .spk-cloud-logo { width:118px; height:38px; filter:none; }
.spk.has-cloud .ph { margin-bottom:46px; }
@media (max-width:560px){ .spk-cloud { width:calc(100% - 20px); max-width:150px; } .spk-cloud .spk-cloud-logo { width:80%; } }

/* ---- hero V1: video i egen ramme, kompakt skjema UNDER (tittel + felt til venstre, knapp til høyre) ---- */
.hm-chip { display:none; }
.hero .wrap { align-items:center; padding-top:64px; }
.hero-media { aspect-ratio:16/10; }
.hero-card { margin:18px 0 0; width:100%; align-self:stretch; }
.hero-card .promo-card { border-radius:20px; }
.hero-card .promo-notify { display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto auto; column-gap:12px; row-gap:8px; align-items:end; padding:16px 18px 18px; }
.hero-card .promo-text { grid-column:1; grid-row:1; }
.hero-card .promo-notify .eyebrow { display:none; }
.hero-card h3 { font-size:15px; line-height:1.2; margin:0; }
.hero-card form { display:contents; }
.hero-card input { grid-column:1; grid-row:2; width:100%; min-width:0; padding:11px 14px; font-size:15px; border-radius:10px; }
.hero-card .btn { grid-column:2; grid-row:2; width:auto; white-space:nowrap; padding:11px 22px; font-size:14px; }
.hero-card .promo-msg { grid-column:1 / -1; grid-row:3; margin:0; min-height:0; }
.hero-card .promo-msg:empty { display:none; }
@media (max-width:480px){
  .hero-card .promo-notify { grid-template-columns:1fr; }
  .hero-card .btn { grid-column:1; grid-row:3; width:100%; }
  .hero-card .promo-msg { grid-row:4; }
}
.hero .wrap { grid-template-columns:1fr 1fr; }
.hero-card h3 { font-size:14px; }
.hero-card .btn { padding:11px 20px; }
@media (max-width:900px){ .hero .wrap { grid-template-columns:1fr; } }

/* ---- Ny OP-lockup i nav (hel logo som bilde) ---- */
header.nav .logo img.logo-img { height:54px; width:auto; }
@media (max-width:560px) { header.nav .logo img.logo-img { height:38px; } }

/* ==========================================================================
   Justeringer: kortere/mindre titler, påmelding + gruppepriser, varselstripe
   ========================================================================== */

/* ---- mindre titler + stikkord (sentence case) ---- */
.sec-head h2 { font-size:clamp(26px,3.5vw,40px); }
.feature h2 { font-size:clamp(26px,3.5vw,42px); }
.endcta h2 { font-size:clamp(30px,5vw,56px); }
.reg-head h2 { font-size:clamp(28px,4vw,44px); }
.fc-body h2 { font-size:clamp(24px,2.8vw,36px); }
.statband .stxt h2 { font-size:clamp(22px,2.6vw,32px); }
.midcta .title { font-size:clamp(24px,3.2vw,38px); }
.sec-eyebrow { display:block; font-weight:800; font-size:15px; color:var(--link); margin-bottom:10px; }
.sec-head .sec-eyebrow { text-align:inherit; }

/* ---- «Forsvar / Subsea» som tekst i stedet for bokser ---- */
.newmarkets { text-align:center; }
.newmarkets p { margin:0 auto; max-width:62ch; font-size:18px; }

/* ---- påmelding og gruppepriser ---- */
.pa-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:44px; align-items:stretch; }
.pa-card { position:relative; display:flex; flex-direction:column; border-radius:28px; padding:28px 24px 24px; color:var(--txt);
  background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(255,255,255,.52)); border:1px solid rgba(255,255,255,.9);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:0 22px 44px -28px rgba(0,60,120,.55);
  transition:transform .3s cubic-bezier(.23,1,.32,1), box-shadow .3s ease; }
@media (hover:hover) and (pointer:fine) { .pa-card:hover { transform:translateY(-6px); box-shadow:0 34px 56px -28px rgba(0,60,120,.62); } }
.pa-top { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.pa-name { font-family:var(--font-display); font-weight:800; font-size:19px; color:#000; }
/* personikoner viser gruppestørrelsen (maks 5 per rad) */
.pa-people { display:flex; flex-wrap:wrap; gap:5px; width:calc(5*20px + 4*5px); min-height:45px; margin:18px 0 12px; color:#0d4f9a; align-content:flex-start; }
.pa-people i { width:20px; height:20px; background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='4.4'/%3E%3Cpath d='M3.5 21.5c0-4.7 3.8-7.6 8.5-7.6s8.5 2.9 8.5 7.6z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='4.4'/%3E%3Cpath d='M3.5 21.5c0-4.7 3.8-7.6 8.5-7.6s8.5 2.9 8.5 7.6z'/%3E%3C/svg%3E") center/contain no-repeat; }
.pa-count { font-size:14px; font-weight:700; color:var(--txt2); }
.pa-price { font-family:var(--font-display); font-weight:800; font-size:clamp(34px,3.4vw,44px); color:#000; line-height:1; margin-top:16px; white-space:nowrap; letter-spacing:-.02em; }
.pa-price small { font-size:16px; font-weight:700; letter-spacing:0; }
.pa-per { font-size:14.5px; font-weight:700; color:var(--txt2); margin-top:10px; margin-bottom:22px; }
.pa-foot { margin-top:auto; padding-top:22px; }
.pa-card .btn { width:100%; padding:13px 20px; font-size:15px; background:transparent; color:#000; border:2px solid #000; }
.pa-card .btn:hover { background:#000; color:#fff; }
/* fremhevet kort: mørkt og løftet */
.pa-feat { color:#fff; border:1px solid rgba(255,255,255,.2); overflow:hidden; box-shadow:0 36px 60px -26px rgba(2,22,40,.75);
  background:linear-gradient(165deg,#0f4c78 0%,#06304a 45%,#042130 100%); }
.pa-feat::before { content:""; position:absolute; top:-60px; right:-60px; width:220px; height:220px; border-radius:50%;
  background:radial-gradient(closest-side,rgba(140,198,243,.45),rgba(140,198,243,0)); pointer-events:none; }
.pa-feat > * { position:relative; }
.pa-feat .pa-name,.pa-feat .pa-price { color:#fff; }
.pa-feat .pa-count,.pa-feat .pa-per { color:#cfe3f5; }
.pa-feat .pa-people { color:#8cc6f3; }
.pa-feat .pa-foot { border-top:1px solid rgba(255,255,255,.18); margin-top:auto; }
.pa-feat .btn { background:#fff; color:#000; border-color:#fff; }
.pa-feat .btn:hover { background:#d6eafb; border-color:#d6eafb; color:#000; }
@media (min-width:981px) { .pa-feat { transform:translateY(-12px); } .pa-feat:hover { transform:translateY(-18px); } }
.pa-cta { display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:40px; }
.pa-note { text-align:center; color:var(--txt2); font-size:14.5px; margin-top:16px; }
@media (max-width:980px){ .pa-grid { grid-template-columns:repeat(2,1fr); gap:26px 22px; } }
@media (max-width:520px){ .pa-grid { grid-template-columns:1fr; } }

/* ---- varselstripe øverst (publiseres fra admin) ---- */
.announce { background:var(--deep); color:#fff; font-size:14.5px; position:relative; z-index:70; }
.announce[hidden] { display:none; }
.announce-inner { display:flex; align-items:flex-start; gap:12px; max-width:1180px; margin:0 auto; padding:10px 24px; }
.announce-list { flex:1; display:flex; flex-direction:column; gap:5px; min-width:0; }
.announce-item { display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; line-height:1.4; }
.announce-tag { background:#fff; color:var(--deep); font-weight:800; font-size:11px; padding:2px 9px; border-radius:20px; letter-spacing:.04em; }
.announce a { color:#fff; font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.announce a:hover { color:var(--sky3); }
.announce-x { flex:0 0 auto; background:none; border:0; color:#fff; font-size:22px; line-height:1; padding:0 4px; cursor:pointer; opacity:.85; }
.announce-x:hover { opacity:1; }
.announce a:focus-visible,.announce-x:focus-visible { outline:3px solid #fff; outline-offset:2px; box-shadow:none; }

/* ---- foredragsholdere (forsiden): fire i bredden, to rader ---- */
#speakers .spk-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:38px 30px; padding:14px 10px 10px; }
@media (max-width:1000px) { #speakers .spk-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px 22px; } }

/* ---- «Dette sitter du igjen med»: tre kolonner (Expedition-inspirert) ---- */
.ui-cols { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:34px; }
.ui-col { border-radius:26px; overflow:hidden; background:var(--glass); border:1px solid var(--glass-bd);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:var(--glass-sh); color:var(--txt); }
.ui-col .ui-img { aspect-ratio:4/3; overflow:hidden; }
.ui-col .ui-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 400ms cubic-bezier(.23,1,.32,1); }
@media (hover:hover) and (pointer:fine) { .ui-col:hover .ui-img img { transform:scale(1.04); } }
.ui-col .ui-body { padding:22px 24px 26px; }
.ui-col h3 { font-family:var(--font-display); font-weight:800; font-size:28px; line-height:1.1; color:#000; margin-bottom:10px; }
.ui-col p { color:var(--txt2); font-size:16px; line-height:1.55; }
.ui-stats { justify-content:center; margin-top:40px; }
.ui-cta { display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:34px; }

/* ---- «Hvem bør delta?»: to valgkort (Expedition-inspirert) ---- */
.wh-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:34px; }
.wh-card { display:flex; flex-direction:column; border-radius:26px; padding:32px 30px 30px; background:var(--glass); border:1px solid var(--glass-bd);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:var(--glass-sh); color:var(--txt); }
.wh-kicker { font-weight:800; font-size:14px; color:var(--link); margin-bottom:8px; }
.wh-card h3 { font-family:var(--font-display); font-weight:800; font-size:clamp(24px,2.6vw,30px); line-height:1.1; color:#000; }
.wh-lead { color:var(--txt2); font-size:17px; margin-top:10px; }
.wh-roles { list-style:none; padding:0; margin:22px 0 28px; display:flex; flex-direction:column; gap:11px; }
.wh-roles li { display:flex; align-items:center; gap:12px; font-weight:700; font-size:16.5px; color:#000; }
.wh-roles li::before { content:""; flex:0 0 auto; width:9px; height:9px; border-radius:50%; background:#000; }
.wh-card .btn { align-self:flex-start; margin-top:auto; }
.wh-shared { text-align:center; margin-top:26px; font-size:17px; color:var(--txt2); }
.wh-shared strong { color:#000; }

@media (max-width:960px) {
  .ui-cols, .wh-grid { grid-template-columns:1fr; }
}

/* ---- foredragsholder-kort: hvitt kort med lys ramme, avrundet portrett, navn + «tittel, selskap», logo til høyre ---- */
.spk { position:relative; background:#fff; border-radius:22px; padding:14px 14px 20px; text-align:left;
  box-shadow:0 0 0 9px rgba(255,255,255,.26), 0 0 0 10px rgba(255,255,255,.58), 0 26px 40px -26px rgba(0,50,110,.55);
  transition:transform .25s cubic-bezier(.23,1,.32,1); }
@media (hover:hover) and (pointer:fine) { .spk:hover { transform:translateY(-4px); } }
.spk .ph { aspect-ratio:1; margin:0 0 16px; }
.spk .ph-clip { border-radius:14px; border:0; box-shadow:none; }
.spk-foot { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; padding:0 6px; min-height:56px; }
.spk-info { min-width:0; }
.spk h3 { font-size:clamp(16px,1.4vw,18px); font-weight:600; line-height:1.2; color:#000; }
.spk .role { font-size:13.5px; line-height:1.35; color:#4d5d6d; margin-top:4px; }
.spk-logo { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:68px; height:46px;
  padding:0; border:0; border-radius:0; background:none; }
.spk-logo img { max-width:100%; max-height:100%; object-fit:contain; display:block; }
/* kortet måler sin egen bredde: smale kort legger logoen under teksten (hindrer også sideveis overflyt i rutenettet) */
.spk { container-type:inline-size; min-width:0; }
@container (max-width:200px) {
  .spk-foot { flex-direction:column; align-items:flex-start; gap:10px; padding:0 2px; }
  .spk-info { overflow-wrap:break-word; hyphens:auto; max-width:100%; }
}

/* ---- hero: stort fasettert fjell med tåke og pinner (inspirert av referansebilde) ---- */
.hero .peak { position:absolute; left:0; bottom:0; width:100%; height:78%; min-height:360px; z-index:0; }
.peak .pk-w { fill:#fff; fill-opacity:.62; }
.peak .pk-l { fill:#fff; fill-opacity:.38; }
.peak .pk-m { fill:#cfe8fb; fill-opacity:.62; }
.peak .pk-d { fill:#2f78c8; fill-opacity:.46; }
.peak .pk-s { fill:#fff; fill-opacity:.22; }
.peak .pk-back { opacity:.5; }
.peak .pk-far { opacity:.95; }
.peak .pk-front { opacity:.92; }
.peak .pk-facets polygon, .peak .pk-far polygon, .peak .pk-back polygon, .peak .pk-front polygon { stroke:#fff; stroke-opacity:.9; stroke-width:1.1; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.peak .pk-mist-back ellipse { fill:#d9f0fd; fill-opacity:.55; }
.peak .pk-mist-front ellipse { fill:#fff; fill-opacity:.62; }
.peak .pk-cloud ellipse { fill:#fff; }
.peak .pk-cloud-back { opacity:.38; }
.peak .pk-cloud-front { opacity:.3; }
@media (prefers-reduced-motion:no-preference) {
  .peak .cl-a { animation:clDrift 38s ease-in-out infinite alternate; }
  .peak .cl-b { animation:clDrift 52s ease-in-out infinite alternate-reverse; }
}
@keyframes clDrift { from { transform:translateX(-26px); } to { transform:translateX(26px); } }
.peak .pk-pins line { stroke:#fff; stroke-opacity:.85; stroke-width:1.6; vector-effect:non-scaling-stroke; }
.peak .pk-pins line.dash { stroke-dasharray:4 5; }
.peak .pk-pins circle { fill:#fff; }
@media (max-width:900px) { .hero .peak { top:70px; bottom:auto; left:0; width:150%; height:480px; min-height:0; -webkit-mask:linear-gradient(180deg,#000 55%,transparent 100%); mask:linear-gradient(180deg,#000 55%,transparent 100%); } }

/* ---- logomerket («op») som svakt hjørne-element i noen seksjoner ---- */
.op-mark { position:relative; overflow:hidden; }
.op-mark > * { position:relative; z-index:1; }
.op-mark::after { content:""; position:absolute; z-index:0; pointer-events:none; right:-70px; bottom:-90px; width:430px; height:383px;
  background:url(brand/op-mark-white-tone.png) no-repeat center/contain; opacity:.16; }
.op-mark.om-left::after { right:auto; left:-70px; }
@media (max-width:760px) { .op-mark::after { width:260px; height:232px; right:-50px; bottom:-60px; } .op-mark.om-left::after { left:-50px; } }

/* ---- seksjonen under hero er hvit, for et tydelig skille mot den blå hero-en ---- */
#praktisk { background:#fff; }


/* ---- utstilling på smale mobiler: kortene i «hvorfor»-rutenettet må ikke gjøre siden bredere enn skjermen ---- */
@media (max-width:900px) { .why-grid { grid-template-columns:minmax(0,1fr); } .why-card > div { min-width:0; } .why-card h3, .why-card p { overflow-wrap:break-word; hyphens:auto; } }
@media (max-width:420px) { .why-card { padding:22px 18px; } }

/* ---- mobil: tydeligere overlegg over bakgrunnsvideoen i avslutningen, så tekst i videoen ikke skinner gjennom bak overskriften ---- */
@media (max-width:760px) { .endcta::before { background:linear-gradient(180deg,rgba(90,166,236,.94),rgba(18,80,168,.97)); } }

/* ---- Snowflake-Expedition-oppsett (body.snow): én sammenhengende blå bakgrunn, og noen seksjoner som hvite/mørke avrundede kort på den ---- */
body.snow .hero { background:linear-gradient(180deg,var(--sky1) 0%,rgba(90,166,236,0) 100%); }
body.snow .hero .peak { -webkit-mask:linear-gradient(180deg,#000 74%,transparent 100%); mask:linear-gradient(180deg,#000 74%,transparent 100%); }
body.snow #praktisk, body.snow #utbytte, body.snow .statband, body.snow .midcta { background:transparent; }
body.snow #praktisk > .wrap, body.snow #utbytte > .wrap { background:#fff; border-radius:28px; padding:clamp(26px,4.4vw,60px); box-shadow:0 26px 50px -30px rgba(0,50,110,.5); }
body.snow .statband > .wrap, body.snow .midcta > .wrap { background:var(--deep); border-radius:28px; padding:clamp(28px,4.4vw,60px); box-shadow:0 26px 50px -30px rgba(0,30,60,.6); }
@media (max-width:760px) { body.snow #praktisk > .wrap, body.snow #utbytte > .wrap, body.snow .statband > .wrap, body.snow .midcta > .wrap { border-radius:22px; width:calc(100% - 28px); margin-left:auto; margin-right:auto; padding:26px 20px; } }


/* ---- bokser i Snowflake-stil: gjennomsiktig frostet glass, tynn lys kant, liten radius, nesten ingen skygge ---- */
:root { --glass:linear-gradient(135deg,rgba(255,255,255,.38),rgba(255,255,255,.16)); --glass-bd:rgba(255,255,255,.62); --glass-sh:0 10px 28px -22px rgba(0,50,110,.35); }
.kcard,#keynotes .kcard,#keynotes .kcard.mint,#keynotes .kcard.blue,.pcard,.feature-card,.newmarkets,.reg-form,.promo-card,.ses,.why-card,.exh,.infobox,.gain,.urg,
.wh-card,.ui-col,.pa-card,.nl-card,.stat,.addon,.payinfo,.need-copy { border-radius:14px; }
.pa-card:not(.pa-feat) { background:var(--glass); border:1px solid var(--glass-bd); box-shadow:var(--glass-sh); }
@media (hover:hover) and (pointer:fine) { .pa-card:not(.pa-feat):hover { box-shadow:0 18px 36px -24px rgba(0,50,110,.45); } }
/* bokser som ligger inne i hvite kort skal fortsatt være hvite */
body.snow #utbytte .ui-col { background:#fff; border:1px solid #e3edf6; box-shadow:0 10px 28px -22px rgba(0,50,110,.25); }

/* ---- «op»-merket som bakgrunn: utvisket hjørne (påmelding) og mønster inne i det mørke kortet (0,5 %) ---- */
.op-fade { position:relative; overflow:hidden; }
.op-fade > * { position:relative; z-index:1; }
.op-fade::after { content:""; position:absolute; z-index:0; pointer-events:none; right:-20px; top:18px; width:520px; height:463px; background:url(brand/op-mark-white-tone.png) no-repeat center/contain; opacity:.24;
  -webkit-mask:linear-gradient(270deg,#000 25%,transparent 100%); mask:linear-gradient(270deg,#000 25%,transparent 100%); }
body.snow .op-card > .wrap { position:relative; overflow:hidden; }
body.snow .op-card > .wrap::after { content:""; position:absolute; inset:0; z-index:0; pointer-events:none; background:url(brand/op-mark-white.png) 0 0/104px auto; opacity:.06; }
body.snow .op-card > .wrap > * { position:relative; z-index:1; }
@media (max-width:760px) { .op-fade::after { width:300px; height:267px; } }

/* ---- flere steder med «op»-merket (runde 2) ---- */
/* temaer og målgruppe: merket flyttes opp i hjørnet, der det ikke skjules av boksene */
.op-mark::after { right:-70px; bottom:auto; top:18px; opacity:.2; }
.op-mark.om-left::after { right:auto; left:-70px; }
/* utvisket hjørnemerke, speilvendt til venstre */
.op-fade.op-left::after { right:auto; left:-20px; transform:scaleX(-1); }
/* blått merke inne i de hvite kortene */
body.snow .op-tint > .wrap { position:relative; overflow:hidden; }
body.snow .op-tint > .wrap > * { position:relative; z-index:1; }
body.snow .op-tint > .wrap::after { content:""; position:absolute; z-index:0; pointer-events:none; right:-50px; bottom:-60px; width:380px; height:338px; background:#5aa6ec; opacity:.13;
  -webkit-mask:url(brand/op-mark-white.png) no-repeat center/contain; mask:url(brand/op-mark-white.png) no-repeat center/contain; }
body.snow .op-tint.ot-tl > .wrap::after { right:auto; bottom:auto; left:-50px; top:-50px; }
/* avslutningen: hvitt merke øverst til høyre */
.endcta::after { content:""; position:absolute; z-index:1; pointer-events:none; right:-30px; top:20px; width:460px; height:410px; background:url(brand/op-mark-white-tone.png) no-repeat center/contain; opacity:.2;
  -webkit-mask:linear-gradient(270deg,#000 25%,transparent 100%); mask:linear-gradient(270deg,#000 25%,transparent 100%); }
@media (max-width:760px) { .op-mark::after { top:10px; } .endcta::after { width:280px; height:250px; } body.snow .op-tint > .wrap::after { width:240px; height:214px; } }


/* ---- test: logoens blågrønne (#00909C) som sparsom aksent. På blått brukes den ikke til tekst (for lav kontrast), bare på hvite/mørke flater og ikoner ---- */
body.snow #praktisk .sec-eyebrow, body.snow #utbytte .sec-eyebrow { color:#007580; }
body.snow .statband .big .pct { color:#2bb7c4 !important; -webkit-text-fill-color:#2bb7c4; }
body.snow #keynotes .kcard .kic { background:rgba(0,144,156,.16); }
body.snow #keynotes .kcard .kic svg { stroke:#006f79; }
body.snow .pa-card:not(.pa-feat) .pa-people { color:#007580; }
body.snow .pa-feat .pa-people { color:#2bb7c4; }
body.snow #utbytte .fc-stat { border-left-color:#00909C; }
body.snow .op-tint > .wrap::after { background:#00909C; opacity:.11; }

/* ---- undersidene: samme Snowflake-oppsett som forsiden (body.snow). Generiske kort: .sn-white / .sn-dark på en seksjon gjør innholdet (.wrap) til et avrundet kort på den blå bakgrunnen ---- */
body.snow .page-hero { background:linear-gradient(180deg,var(--sky1) 0%,rgba(90,166,236,0) 100%); }
body.snow section.sn-white, body.snow section.sn-dark { background:transparent; }
body.snow .sn-white > .wrap { background:#fff; border-radius:28px; padding:clamp(26px,4.4vw,60px); box-shadow:0 26px 50px -30px rgba(0,50,110,.5); }
body.snow .sn-dark > .wrap { background:var(--deep); border-radius:28px; padding:clamp(28px,4.4vw,60px); box-shadow:0 26px 50px -30px rgba(0,30,60,.6); }
/* bokser inne i hvite kort: hvite/lysegrå i stedet for glass */
body.snow .sn-white :is(.kcard,.why-card,.need-copy,.exh,.stat,.infobox,.pill,.nm-pill,.ses,.addon,.gain,.payinfo) { background:#f4f9fd; border:1px solid #e0ebf5; box-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none; }
body.snow .sn-white .eyebrow, body.snow .sn-white .sec-eyebrow { color:#007580; }
@media (max-width:760px) { body.snow .sn-white > .wrap, body.snow .sn-dark > .wrap { border-radius:22px; width:calc(100% - 28px); margin-left:auto; margin-right:auto; padding:26px 20px; } }


/* ---- mobil: større trykkflater (min. 44 px) og ingen skrift under 12 px ---- */
@media (max-width:760px) {
  .btn, header.nav .btn, button.btn { min-height:44px; }
  header.nav .nav-links { padding-top:0; padding-bottom:0; }
  header.nav .nav-links a { display:inline-flex; align-items:center; min-height:44px; padding:0; }
  .exh .web { display:inline-flex; align-items:center; min-height:44px; }
  .contact a, a.url, .printbtn { display:inline-flex; align-items:center; min-height:44px; }
  .foot-col a { padding:9px 0; margin-bottom:0; }
  .tp, .theme-pill, .exh .stand, .announce-tag { font-size:12px; }
}

/* ---- bokser: samme skriftstørrelser som boksene på Snowflake Expedition (justert ned: tittel 20 px, brødtekst 15 px, støttetekst 13 px) ---- */
.kcard h3, #keynotes .kcard h3, #keynotes .kfeat h3, .wh-card h3, .ui-body h3, .pa-name, .why-card h3, .pcard .pname, .reg-form h3 { font-size:20px; line-height:1.15; }
.kcard p, #keynotes .kcard p, #keynotes .kfeat p, .wh-card p, .ui-body p, .why-card p, .newmarkets p, .urg-note, .pcard .pdesc { font-size:15px; line-height:1.4; }
.wh-roles li, .pcard .plist li { font-size:15px; }
.pa-count, .pa-per, .pa-note, .pcard .pcount { font-size:13px; }

/* ---- fonter som Snowflake Expedition: Lato til brødtekst (samme font) og Figtree til overskrifter (nærmeste frie slektning til Texta, som er en lisensiert font) ---- */
:root { --font-display:'Figtree','Lato',-apple-system,"Segoe UI",sans-serif; --font-body:'Lato',-apple-system,"Segoe UI",sans-serif; }
body, button, input, select, textarea { font-family:var(--font-body); }
h1, h2, h3, h4, .title, .hero .title, .hero h1, .nl-head, .fc-body h2, .logo { font-family:var(--font-display); }
body { font-size:16px; }


/* ---- Sponsor-/utstillerlogoer fra admin (companies.js) ---- */
.plogo { text-decoration:none; }
.tier .plogo { min-height:96px; }
.tier.gold .plogo { min-height:132px; }
.plogo img { display:block; width:auto; height:auto; max-width:180px; max-height:52px; object-fit:contain; }
.tier.gold .plogo img { max-width:240px; max-height:76px; }
.exh .mark img { display:block; width:auto; height:auto; max-width:100%; max-height:48px; object-fit:contain; }
.exh .exh-name { font-size:15px; font-weight:800; color:var(--txt); margin-top:4px; }
.exh .spons { display:inline-block; margin-top:6px; font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#0a3a6b; }
.plogo:has(img) { background:#fff; -webkit-backdrop-filter:none; backdrop-filter:none; border-color:#fff; }

/* ---- Lettere vekt: mindre bold (Figtree 600/700 for titler, Lato 400 for løpende tekst) ---- */
h1,h2,.title,.nl-head,.fc-body h2,.statband .stxt h2,.feature .lead,.team-quote,.urg-price,.pa-price,.pcard .pprice,.stat .num,.fc-stat .num,.kcard .knum,.ui-col h3,.wh-card h3 { font-weight:700; }
h3,.kcard h3,#keynotes .kcard h3,#keynotes .kfeat h3,.spk h3,.why-card h3,.pcard .pname,.pa-name,.reg-form h3,.ui-body h3,#temaer .track h3,.principle h3,.hero-card h3,.exh .exh-name,.ses .stitle,.ses .time { font-weight:600; }
.foot-col h3 { font-weight:700; }
.btn { font-weight:700; }
.nav-links a { font-weight:400; }
.nav-links a.active,.nav-links a[aria-current] { font-weight:700; }
.hero .eyebrow,.page-hero .eyebrow,.sec-eyebrow,.wh-kicker,.pill,.nm-pill,.tp,.tp-eyebrow,.announce-tag,.pcard .pbadge,.exh .spons,.pcard .plist .lbl,.tier .tname,.statband .big small,.fc-eyebrow { font-weight:700; }
.wh-roles li,.pa-count,.pa-per,.pa-price small,.pcard .pcount,.pcard .pper,.pcard .pprice small,.spk .co,.urg-price small,.statband .stxt .src,.fc-link,.newmarkets p strong,.tp-pay p strong { font-weight:400; }
.announce a { font-weight:700; }
.rf-field label,.reg-form label { font-weight:400; }
.plogo { font-weight:600; }
.feature .lead { font-weight:400; }
/* undersider: resterende 800-vekter */
.exh .mark,.pull,.gain h3,.how-item h3,.bank .flow { font-weight:600; }
.khero h1,.eyebrow,.endcta .url,.endcta .promise b,.contact .org { font-weight:700; }

/* ---- Skjema: bestill utstillingsplass ---- */
.stand-form-card { max-width:720px; margin:0 auto; }
.stand-form { display:flex; flex-direction:column; gap:14px; text-align:left; }
.sf-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.sf-field { display:flex; flex-direction:column; gap:6px; }
.sf-field label { font-size:14px; font-weight:400; color:#000; }
.sf-field .req { color:#b5402f; }
.sf-field .opt { color:#5b6b7b; }
.sf-field input,.sf-field textarea { font:inherit; font-size:16px; padding:12px 14px; border:1px solid #c9d6e2; border-radius:12px; background:#fff; color:#000; width:100%; }
.sf-field textarea { resize:vertical; min-height:110px; }
.sf-field input:focus,.sf-field textarea:focus { outline:none; border-color:#002454; box-shadow:0 0 0 3px rgba(0,36,84,.15); }
.sf-check { display:flex; align-items:center; gap:10px; font-size:15px; cursor:pointer; min-height:44px; }
.sf-check input { width:20px; height:20px; accent-color:#002454; }
.sf-hp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.stand-form .btn { align-self:flex-start; min-width:220px; justify-content:center; border:0; }
.sf-msg { font-size:15px; min-height:20px; }
.sf-msg.ok { color:#0b7d5a; } .sf-msg.err { color:#b5402f; }
.sf-fine { font-size:13px; color:#5b6b7b; }
.sf-done { text-align:center; padding:28px 12px; }
.sf-done svg { width:44px; height:44px; color:#0b7d5a; }
.sf-done h3 { font-size:24px; margin:12px 0 6px; }
.sf-done p { color:#3b4a58; }
@media (max-width:620px) { .sf-row { grid-template-columns:1fr; } .stand-form .btn { align-self:stretch; } }
.stand-form[hidden],.sf-done[hidden] { display:none; }

/* ---- Hero: punktum som hvit «topp-markør» (samme uttrykk som pinnene på fjellet) ---- */
.hero h1 .a { font-size:0; display:inline-block; position:relative;
  width:clamp(10px,1.3vw,19px); height:clamp(10px,1.3vw,19px); margin-left:clamp(7px,1vw,16px);
  top:calc(-1 * clamp(7px,1.02vw,15px)); border-radius:50%; background:#fff;
  box-shadow:0 0 0 clamp(3px,.45vw,6px) rgba(255,255,255,.4), 0 8px 22px rgba(0,36,84,.22); }

/* ---- Standkart: lyst blått kart med gradient, rett på sidens blå bakgrunn ---- */
.map-wrap { max-width:500px; margin:0 auto; }
.stand-map { display:block; width:100%; height:auto; overflow:visible; font-family:var(--font-display); }
.stand-map .fl { fill:url(#fl-g); stroke:url(#fl-g); stroke-width:30; stroke-linejoin:round; filter:drop-shadow(0 24px 36px rgba(0,60,130,.30)); }
.stand-map .door path { fill:none; stroke:rgba(10,58,107,.28); stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.stand-map .bar { fill:none; stroke:rgba(10,58,107,.22); stroke-width:18; stroke-linecap:round; }
.stand-map .fix rect { fill:rgba(40,110,190,.16); }
.stand-map .fix .serv { fill:rgba(40,110,190,.08); stroke:rgba(10,58,107,.22); stroke-width:5; }
.stand-map .recep .rbox { fill:none; stroke:rgba(10,58,107,.22); stroke-width:4; }
.stand-map .recep .stairs { stroke:rgba(10,58,107,.16); stroke-width:4; fill:none; stroke-linecap:round; }
.stand-map .thresh { stroke:#33b0ba; stroke-width:10; stroke-linecap:round; }
.stand-map .arrow { fill:none; stroke:#fff; stroke-width:12; stroke-linecap:round; stroke-linejoin:round; paint-order:stroke; }
.stand-map text { font-weight:600; text-anchor:middle; dominant-baseline:central; pointer-events:none; letter-spacing:-.01em; }
.stand-map .lbl-xl { font-size:70px; fill:#000; font-weight:700; letter-spacing:-.02em; }
.stand-map .lbl-xl.lbl-start { text-anchor:start; }
.stand-map .lbl-w { font-size:32px; fill:#2b5f9e; font-weight:600; letter-spacing:0; }
.stand-map .lbl-w.lbl-sm { font-size:25px; }
.stand-map .stand { cursor:pointer; outline:none; }
.stand-map .st-box { fill:rgba(255,255,255,.7); stroke:rgba(255,255,255,.9); stroke-width:3; transition:fill .25s, stroke .25s, stroke-width .2s; filter:drop-shadow(0 6px 10px rgba(0,60,130,.18)); }
.stand-map .st-num { font-size:54px; fill:#0a3a6b; font-weight:600; letter-spacing:-.02em; }
.stand-map .stand.taken .st-box { fill:url(#st-g); stroke:#2f78c8; filter:drop-shadow(0 8px 12px rgba(0,50,120,.35)); }
.stand-map .stand.taken .st-num { fill:#fff; font-weight:700; }
.stand-map .stand:hover .st-box,.stand-map .stand:focus-visible .st-box { fill:#fff; stroke:#33b0ba; stroke-width:8; }
.stand-map .stand.taken:hover .st-box,.stand-map .stand.taken:focus-visible .st-box { fill:url(#st-g); }
.stand-map .stand.sel .st-box { stroke:#33b0ba; stroke-width:11; }
.map-legend { display:flex; justify-content:center; gap:10px; flex-wrap:wrap; margin-top:26px; font-size:14px; color:#000; }
.map-legend span { display:inline-flex; align-items:center; gap:8px; padding:8px 15px; background:var(--glass); border:1px solid var(--glass-bd); border-radius:980px; box-shadow:var(--glass-sh); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); }
.map-legend .lg { width:14px; height:14px; border-radius:5px; display:inline-block; }
.map-legend .lg-free { background:#fff; border:2px solid #b9d6f3; } .map-legend .lg-taken { background:linear-gradient(135deg,#3b86d6,#0f4a8a); } .map-legend .lg-fix { background:rgba(40,110,190,.28); }
.map-info { max-width:100%; margin:14px auto 0; padding:16px 22px; border-radius:22px; background:var(--glass); border:1px solid var(--glass-bd); box-shadow:var(--glass-sh); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); font-size:16px; text-align:center; color:#000; min-height:56px; }
.map-info a { color:#000; text-decoration:underline; text-underline-offset:3px; }

/* ---- Standkart: tooltip ---- */
.map-wrap { position:relative; }
.map-tip { position:absolute; z-index:5; min-width:130px; max-width:230px; padding:11px 15px 12px; text-align:center;
  background:rgba(255,255,255,.96); border:1px solid rgba(255,255,255,.9); border-radius:16px; color:#000;
  box-shadow:0 14px 34px -10px rgba(0,50,120,.45), 0 2px 6px rgba(0,50,120,.12);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }
.map-tip[hidden] { display:none; }
.map-tip::after { content:""; position:absolute; left:var(--ax,50%); bottom:-6px; width:12px; height:12px; margin-left:-6px; background:rgba(255,255,255,.96); transform:rotate(45deg); border-radius:2px; }
.map-tip.below::after { bottom:auto; top:-6px; }
.map-tip .tip-num { font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#0a3a6b; margin-bottom:6px; }
.map-tip .tip-free { font-size:15px; font-weight:700; color:#000; }
.map-tip .tip-name { font-size:16px; font-weight:700; color:#000; line-height:1.2; }
.map-tip .tip-logo { display:block; margin:0 auto; max-width:170px; max-height:48px; width:auto; height:auto; object-fit:contain; }
.map-tip .tip-cta { display:inline-block; margin-top:8px; padding:7px 14px; border-radius:980px; background:#002454; color:#fff; font-size:13px; font-weight:700; text-decoration:none; white-space:nowrap; }
.map-tip .tip-cta:hover { background:#0a3a6b; }

/* ---- Standard logoformat 3:1 (600×200 px) – vises likt for foredragsholdere, utstillere og sponsorer ---- */
.spk-logo { width:80px; height:27px; }
.plogo img { width:156px; height:52px; max-width:100%; max-height:none; object-fit:contain; }
.tier.gold .plogo img { width:228px; height:76px; max-width:100%; max-height:none; }
.exh .mark img { width:144px; height:48px; max-width:100%; max-height:none; object-fit:contain; object-position:left center; }
.map-tip .tip-logo { width:144px; height:48px; max-width:100%; max-height:none; object-fit:contain; }

/* ---- Standkart: nummerknapper (mobil) ---- */
.stand-chips { display:none; }
@media (max-width:700px) {
  .stand-chips { display:grid; grid-template-columns:repeat(6,1fr); gap:8px; margin-top:16px; }
  .stand-chips .chip { min-height:44px; padding:0; border-radius:12px; font:inherit; font-size:16px; font-weight:600; color:#0a3a6b; cursor:pointer;
    background:rgba(255,255,255,.7); border:1px solid rgba(255,255,255,.95); box-shadow:0 4px 10px -4px rgba(0,60,130,.3); }
  .stand-chips .chip.taken { background:linear-gradient(135deg,#3b86d6,#0f4a8a); border-color:#2f78c8; color:#fff; }
  .stand-chips .chip.sel { outline:3px solid #33b0ba; outline-offset:1px; }
}

/* ---- Utstilling på mobil: tettere mellomrom ---- */
@media (max-width:760px) {
  .map-first { padding:24px 0 10px; }
  .stats-flat { padding:0 16px 14px; }
  .stats-flat ~ section.block { padding:26px 0; }
  .stats-flat ~ .endcta { padding-top:64px; padding-bottom:72px; }
  .stats-flat .stats { grid-template-columns:repeat(3,1fr); gap:8px; }
  .stats-flat .stat { padding:14px 8px; border-radius:16px; }
  .stats-flat .stat .num { font-size:26px; }
  .stats-flat .stat .lbl { font-size:12px; line-height:1.25; }
}

/* ---- Dummy-innhold: skjult som standard (slå på med showDummy: true i supabase-config.js) ---- */
html:not(.show-dummy) [data-dummy] { display:none !important; }
[hidden] { display:none !important; }
.spk-empty { text-align:center; font-size:18px; color:#000; padding:30px 0; }

/* ---- «Hvem bør delta»: hvite kort (skiller seg fra de frostede «Dagen»-boksene) ---- */
.wh-card { position:relative; overflow:hidden; background:#fff; border:1px solid #fff; -webkit-backdrop-filter:none; backdrop-filter:none;
  box-shadow:0 28px 50px -30px rgba(0,50,120,.55); }
.wh-card::before { content:""; position:absolute; left:0; right:0; top:0; height:6px; background:linear-gradient(90deg,#33b0ba,#0a3a6b); }
.wh-kicker { color:#1f8f99; font-weight:700; letter-spacing:.02em; }
.wh-roles li { font-weight:400; font-size:16px; }
.wh-roles li::before { width:20px; height:20px; border-radius:50%; background:#33b0ba url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/12px 12px no-repeat; }
.wh-card p { color:#3b4a58; }

/* ---- Mobil: forbedringer fra gjennomgang (hero-punktum, hero-luft, meny, bunntekst) ---- */
@media (max-width:900px) {
  .hero .wrap { padding-bottom:28px; }
  .hero + #praktisk { padding-top:26px; }
}
@media (max-width:760px) {
  /* punktumene etter «SMARTERE. RASKERE. SIKRERE.» – større og tydeligere mot fjellet */
  .hero h1 .a { width:15px; height:15px; margin-left:9px; top:-8px;
    box-shadow:0 0 0 4px rgba(255,255,255,.55), 0 4px 12px rgba(0,36,84,.45); }
  /* bunntekst: store nok trykkflater */
  .foot-col a { padding:11px 0; margin-bottom:0; }
  .foot-bottom a { display:inline-flex; align-items:center; min-height:44px; padding:0 4px; }
}
@media (max-width:430px) {
  /* alle fire menypunkt får plass uten å rulle */
  header.nav .nav-links { gap:8px; justify-content:space-between; padding-left:16px; padding-right:16px; margin-left:-16px; margin-right:-16px; }
  header.nav .nav-links a { font-size:13.5px; letter-spacing:-.01em; }
}

/* ---- Personvernside (juridisk tekst) ---- */
.legal .wrap { max-width:920px; }
.legal h2 { font-size:22px; font-weight:600; color:#000; margin:34px 0 10px; }
.legal h2:first-of-type { margin-top:8px; }
.legal p, .legal li { font-size:16.5px; line-height:1.55; color:#1f2d3a; }
.legal p { margin:0 0 12px; }
.legal ul { margin:0 0 14px; padding-left:22px; }
.legal li { margin-bottom:6px; }
.legal a { color:#0a3a6b; text-decoration:underline; text-underline-offset:3px; }
.legal code { background:#eef4f9; padding:2px 6px; border-radius:6px; font-size:14px; }
.legal .updated { color:#5b6b7b; font-size:14px; }
.legal mark.fill { background:#fff3c4; color:#7a5a00; padding:1px 6px; border-radius:6px; }
.legal .draft-note { background:#fff3c4; border:1px solid #f0d77a; border-radius:14px; padding:12px 16px; margin:0 0 14px; font-size:15px; color:#5b4500; }
.legal-table { border:1px solid #dbe6f1; border-radius:16px; overflow:hidden; margin:12px 0 16px; }
.lt-row { display:grid; grid-template-columns:1.1fr 1.3fr 2fr 1.2fr; gap:0; border-top:1px solid #e6eef6; }
.lt-row.lt-3 { grid-template-columns:1.2fr 2.2fr 1fr; }
.lt-row > div { padding:12px 14px; font-size:15px; line-height:1.45; color:#1f2d3a; }
.lt-row.lt-head { border-top:0; background:#f1f6fb; }
.lt-row.lt-head > div { font-size:13px; font-weight:700; color:#0a3a6b; text-transform:uppercase; letter-spacing:.04em; }
@media (max-width:760px) {
  .lt-row, .lt-row.lt-3 { grid-template-columns:1fr; }
  .lt-row.lt-head { display:none; }
  .lt-row > div { padding:6px 14px; }
  .lt-row > div:first-child { padding-top:14px; }
  .lt-row > div:last-child { padding-bottom:14px; }
  .lt-row > div:nth-child(2)::before { content:"Opplysninger: "; font-weight:700; }
  .lt-row.lt-3 > div:nth-child(2)::before { content:"Formål: "; }
  .lt-row:not(.lt-3) > div:nth-child(3)::before { content:"Formål og grunnlag: "; font-weight:700; }
  .lt-row:not(.lt-3) > div:nth-child(4)::before { content:"Hvor lenge: "; font-weight:700; }
  .lt-row.lt-3 > div:nth-child(3)::before { content:"Varighet: "; font-weight:700; }
}

/* ---- Program skjult: «publiseres snart» + nyhetsbrev ---- */
html:not(.show-program) [data-program] { display:none !important; }
html.show-program .program-soon { display:none; }
.program-soon .wrap { text-align:center; max-width:760px; }
.program-soon .title { font-size:clamp(28px,4.4vw,44px); margin:6px 0 14px; }
.soon-lead { font-size:18px; line-height:1.5; color:#1f2d3a; max-width:52ch; margin:0 auto 24px; }
.soon-form { display:flex; gap:10px; max-width:520px; margin:0 auto; }
.soon-form input { flex:1; min-width:0; font:inherit; font-size:16px; padding:13px 16px; border:1px solid #c9d6e2; border-radius:980px; background:#fff; color:#000; }
.soon-form input:focus { outline:none; border-color:#002454; box-shadow:0 0 0 3px rgba(0,36,84,.15); }
.soon-form .btn { white-space:nowrap; }
.soon-msg { min-height:22px; margin-top:12px; font-size:15px; }
.soon-msg.ok { color:#0b7d5a; } .soon-msg.err { color:#b5402f; }
.soon-fine { font-size:13px; color:#5b6b7b; margin-top:6px; }
@media (max-width:560px) { .soon-form { flex-direction:column; } .soon-form .btn { width:100%; justify-content:center; } }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* ---- Kontaktkolonne i bunnteksten ---- */
.foot-col .fc-line { display:block; color:#93a4b5; font-size:15px; line-height:1.4; margin-bottom:4px; }
.foot-col .fc-name { color:#fff; font-weight:600; }
