/*
 * Kirkepakka-mal (Takt) — main.css
 * ============================================================
 * TILPASNINGSSYSTEM (fra profiler/puls.html, Takt-malen)
 * Alle farger/fonter/radier er CSS custom properties som redefineres
 * per attributt-kombinasjon paa <html>. INGEN hardkodede farger i
 * komponent-CSS. data-mode x data-palett = 8 AA-validerte kombinasjoner.
 * Attributtene settes server-side av temaet (kp_profile_attrs()), ikke
 * av localStorage — kirken velger profil via konfigurasjon, aldri frie farger.
 * Fonter self-hostet (WOFF2 i assets/fonts/) — ingen Google Fonts-kall
 * (ytelse + GDPR). Bricolage Grotesque + Figtree er variable fonter:
 * ett woff2 per subset dekker hele vektspennet (font-weight-range).
 * ============================================================
 */

/* —— Self-hostede fonter (variable, latin + latin-ext) —— */
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:700 800;font-display:swap;src:url(../fonts/bricolage-grotesque-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:700 800;font-display:swap;src:url(../fonts/bricolage-grotesque-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Figtree';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/figtree-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Figtree';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/figtree-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}

/* ============================================================
   TOKEN-ARKITEKTUR
   ============================================================ */
:root{
  /* Spacing (8px-grid) */
  --s-1:8px;--s-2:16px;--s-3:24px;--s-4:40px;--s-5:64px;--s-6:104px;

  /* Motion */
  --ease-out:cubic-bezier(0.16,1,0.3,1);
  --ease-smooth:cubic-bezier(0.25,0.46,0.45,0.94);
  --dur-fast:150ms;--dur-normal:250ms;--dur-slow:450ms;

  /* Fonter — default = par 1 (Bricolage Grotesque + Figtree). data-fonter redefinerer. */
  --font-display:'Bricolage Grotesque',system-ui,sans-serif;
  --font-body:'Figtree',system-ui,sans-serif;

  /* Form/radius — default = «myk». data-form redefinerer. */
  --radius-kort:16px;--radius-knapp:10px;--radius-bilde:16px;--radius-felt:6px;

  /* Media-tokens — foto-oeyer (hero, foto-scrim). Alltid moerke i BEGGE moduser. */
  --media-ink:#F4F2EC;
  --media-ink-dim:#D3D2D8;
  --media-ink-rgb:244,242,236;
  --media-line:rgba(244,242,236,.20);
  --media-floor:#101014;
  --media-floor-rgb:16,16,20;
  --scrim-rgb:10,10,13;
}

/* —— Palett-aksenter (modus-uavhengige) ——
   bright = uttrykk paa moerk flate (moerk modus + hero-oeyer)
   deep   = uttrykk paa lys flate (lys modus) */
:root,:root[data-palett="a"]{        /* a «Gloed» — oransje */
  --accent-bright:#FF6B4A;--accent-bright-deep:#E5512F;--accent-bright-ink:#1A0E08;--accent-bright-rgb:255,107,74;
  --accent-deep:#B8461F;--accent-deep-deep:#9E3A15;--accent-deep-ink:#FFF7F2;--accent-deep-rgb:184,70,31;
}
:root[data-palett="b"]{              /* b «Elektrisk» — blaalilla */
  --accent-bright:#9A8CFF;--accent-bright-deep:#7E6EF0;--accent-bright-ink:#0C0C1A;--accent-bright-rgb:154,140,255;
  --accent-deep:#4B45C7;--accent-deep-deep:#3A34A8;--accent-deep-ink:#FFFFFF;--accent-deep-rgb:75,69,199;
}
:root[data-palett="c"]{              /* c «Smaragd» — dyp groenn */
  --accent-bright:#34D6A0;--accent-bright-deep:#23BE8B;--accent-bright-ink:#05231A;--accent-bright-rgb:52,214,160;
  --accent-deep:#0B7A54;--accent-deep-deep:#0A6647;--accent-deep-ink:#FFFFFF;--accent-deep-rgb:11,122,84;
}
:root[data-palett="d"]{              /* d «Rubin» — bringebaer/dyp roed */
  --accent-bright:#FF6188;--accent-bright-deep:#F0466F;--accent-bright-ink:#2A0710;--accent-bright-rgb:255,97,136;
  --accent-deep:#BE1E48;--accent-deep-deep:#A5163C;--accent-deep-ink:#FFFFFF;--accent-deep-rgb:190,30,72;
}

/* —— Modus: MOERK (malens naturlige modus, default) —— */
:root,:root[data-mode="dark"]{
  --bg:#101014;--surface:#1A1B21;--surface-2:#22232B;
  --text:#F4F2EC;--text-dim:#A8A8B0;
  --text-rgb:244,242,236;--bg-rgb:16,16,20;--shadow-rgb:0,0,0;
  --line:rgba(244,242,236,.14);
  --line-strong:rgba(var(--accent-bright-rgb),.45);
  --signal:var(--accent-bright);--signal-deep:var(--accent-bright-deep);
  --signal-ink:var(--accent-bright-ink);--signal-rgb:var(--accent-bright-rgb);
}
/* —— Modus: LYS (varm base — kinematisk beholdt via moerke foto-oeyer) —— */
:root[data-mode="light"]{
  --bg:#F4F1EA;--surface:#FBF9F4;--surface-2:#E7E2D6;
  --text:#201E24;--text-dim:#56545C;
  --text-rgb:32,30,36;--bg-rgb:244,241,234;--shadow-rgb:60,50,40;
  --line:rgba(32,30,36,.16);
  --line-strong:rgba(var(--accent-deep-rgb),.45);
  --signal:var(--accent-deep);--signal-deep:var(--accent-deep-deep);
  --signal-ink:var(--accent-deep-ink);--signal-rgb:var(--accent-deep-rgb);
}

/* —— Form-varianter (data-form) —— */
:root[data-form="skarp"]{--radius-kort:2px;--radius-knapp:2px;--radius-bilde:2px;--radius-felt:0px}
:root[data-form="myk"]{--radius-kort:16px;--radius-knapp:10px;--radius-bilde:16px;--radius-felt:6px}
:root[data-form="rund"]{--radius-kort:24px;--radius-knapp:999px;--radius-bilde:24px;--radius-felt:16px}

/* —— Fontpar-varianter (data-fonter) ——
   Par 1 = self-hostet (Bricolage Grotesque + Figtree). Par 2/3 er mekanisk
   forberedt: legg til deres woff2 + @font-face i fase 4 foer de tas i bruk. */
:root[data-fonter="1"]{--font-display:'Bricolage Grotesque',system-ui,sans-serif;--font-body:'Figtree',system-ui,sans-serif}

/* —— Hero = «moerk oey» i begge moduser (foto-scrim beholdes moerk, lys aksent) —— */
.kp-hero{
  --text:var(--media-ink);--text-dim:var(--media-ink-dim);
  --line:var(--media-line);
  --signal:var(--accent-bright);--signal-deep:var(--accent-bright-deep);
  --signal-ink:var(--accent-bright-ink);--signal-rgb:var(--accent-bright-rgb);
}

/* ============================================================
   RESET + BASE
   ============================================================ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img,svg,video{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul{list-style:none}
:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:2px}

/* —— Skip-link (WCAG 2.4.1) —— */
.kp-skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--signal);color:var(--signal-ink);font-weight:700;
  font-family:var(--font-display);
  padding:12px 20px;border-radius:0 0 var(--radius-felt) 0;text-decoration:none;
}
.kp-skip-link:focus{left:0}

/* —— DEV-banner (blog_public=0) —— */
body.is-dev::before{
  content:'DEV — ikke offentlig';display:block;
  background:#FEF3C7;color:#78350F;text-align:center;
  font-size:.75rem;padding:.25rem;font-family:ui-monospace,monospace;letter-spacing:.5px;
}

/* ============================================================
   LAYOUT + TYPOGRAFI-BYGGEKLOSSER
   ============================================================ */
.kp-wrap{max-width:1200px;margin:0 auto;padding:0 var(--s-3)}
.kp-main{min-height:50vh}
.kp-section{padding:var(--s-6) 0}

.kp-kicker{
  font-family:var(--font-display);
  font-size:.78rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--signal);
  display:inline-flex;align-items:center;gap:14px;margin-bottom:var(--s-2);
}
.kp-kicker::before{content:"";width:28px;height:2px;background:var(--signal);flex:none}
.kp-h1,.kp-h2,.kp-h3{font-family:var(--font-display);font-weight:800;line-height:1.08;letter-spacing:-.015em;color:var(--text)}
.kp-h1{font-size:clamp(2.6rem,6vw,4.4rem);margin:0 0 var(--s-3)}
.kp-h2{font-size:clamp(2rem,4.5vw,3.2rem);margin:0 0 var(--s-2)}
.kp-h3{font-size:1.35rem;margin:0 0 var(--s-1);font-weight:700}
.kp-lede{color:var(--text-dim);max-width:54ch;font-size:1.12rem}
.kp-prose{max-width:62ch}
.kp-prose > * + *{margin-top:1rem}
.kp-prose h2{font-family:var(--font-display);font-size:1.6rem;font-weight:700;margin-top:1.6rem}
.kp-meta{color:var(--text-dim);font-family:var(--font-display);display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-2)}

/* —— Knapper —— */
.kp-btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-display);font-weight:700;font-size:1rem;
  padding:15px 28px;border-radius:var(--radius-knapp);
  text-decoration:none;cursor:pointer;border:0;
  transition:transform var(--dur-fast) var(--ease-smooth),background-color var(--dur-fast) var(--ease-smooth),border-color var(--dur-fast) var(--ease-smooth);
}
.kp-btn:hover{transform:translateY(-1px)}
.kp-btn--primary{background:var(--signal);color:var(--signal-ink)}
.kp-btn--primary:hover{background:var(--signal-deep)}
.kp-btn--ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.kp-btn--ghost:hover{border-color:var(--signal);color:var(--signal)}

/* ============================================================
   HEADER
   ============================================================ */
.kp-header{
  position:sticky;top:0;z-index:100;
  background:linear-gradient(180deg,rgba(var(--bg-rgb),.94),rgba(var(--bg-rgb),.78));
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.kp-header__inner{display:flex;align-items:center;justify-content:space-between;height:72px}
.kp-logo{
  font-family:var(--font-display);font-weight:800;font-size:1.25rem;
  letter-spacing:.02em;display:flex;align-items:center;gap:10px;color:var(--text);
}
.kp-logo__mark{width:10px;height:10px;border-radius:50%;background:var(--signal);
  box-shadow:0 0 14px rgba(var(--signal-rgb),.7);flex:none}
.kp-nav__list{display:flex;align-items:center;gap:6px}
.kp-nav__list a{
  font-family:var(--font-display);font-size:.95rem;font-weight:500;
  color:var(--text-dim);padding:9px 14px;border-radius:var(--radius-felt);
  transition:color var(--dur-fast) var(--ease-smooth),background-color var(--dur-fast) var(--ease-smooth);
}
.kp-nav__list a:hover{color:var(--text);background:rgba(var(--text-rgb),.06)}
.kp-nav-toggle{display:none;background:none;border:0;color:var(--text);cursor:pointer;padding:10px}
.kp-nav-toggle span{display:block;width:24px;height:2px;background:currentColor;margin:5px 0}
.kp-mobile-menu__list{display:grid;gap:4px;padding:var(--s-2) var(--s-3) var(--s-3);
  background:var(--bg);border-bottom:1px solid var(--line)}
.kp-mobile-menu__list a{font-family:var(--font-display);color:var(--text);padding:14px;display:block}

/* ============================================================
   FOOTER
   ============================================================ */
.kp-footer{border-top:1px solid var(--line);padding:var(--s-5) 0 var(--s-4);background:var(--bg)}
.kp-footer__inner{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center;justify-content:space-between}
.kp-footer__brand{font-family:var(--font-display);font-weight:800;font-size:1.1rem;color:var(--text)}
.kp-footer__meta{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center;
  font-size:.9rem;color:var(--text-dim);font-family:var(--font-display)}
.kp-footer__meta a{color:var(--text-dim)}
.kp-footer__meta a:hover{color:var(--signal)}

.kp-rik-tekst .kp-prose{margin-top:var(--s-2)}

/* ============================================================
   FC-SEKSJONER (Takt-forsidemoduler, portert fra profiler/puls.html)
   Alt token-drevet — ingen hardkodede farger.
   ============================================================ */
:root{--kp-header-h:72px}
html{scroll-padding-top:calc(var(--kp-header-h) + 14px)}

.kp-sect-head{max-width:640px;margin-bottom:var(--s-4)}
.kp-sect-head .kp-h2{margin-top:var(--s-1)}
.kp-tomtilstand{padding:var(--s-3) 0}
.kp-dim{color:var(--text-dim)}

/* —— 1. Hero — «moerk oey», bilde bak den gjennomsiktige headeren —— */
.kp-hero{
  position:relative;min-height:88vh;display:flex;align-items:flex-end;
  isolation:isolate;overflow:hidden;
  margin-top:calc(-1 * var(--kp-header-h));
  padding:calc(var(--kp-header-h) + var(--s-4)) 0 0;
  color:var(--text);
}
.kp-hero__media{position:absolute;inset:0;z-index:-2;overflow:hidden;background:var(--media-floor)}
.kp-hero__media img{width:100%;height:100%;object-fit:cover;opacity:.9}
.kp-hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(180deg,rgba(var(--media-floor-rgb),.42) 0%,rgba(var(--media-floor-rgb),.18) 38%,rgba(var(--media-floor-rgb),.86) 78%,var(--media-floor) 100%),
    linear-gradient(90deg,rgba(var(--media-floor-rgb),.82) 0%,rgba(var(--media-floor-rgb),.35) 52%,rgba(var(--media-floor-rgb),.12) 100%);
}
.kp-hero__content{padding-bottom:var(--s-5)}
.kp-hero__title{
  font-family:var(--font-display);font-weight:800;line-height:1.08;letter-spacing:-.015em;
  color:var(--text);
  font-size:clamp(2.8rem,7.5vw,5.4rem);max-width:14ch;margin:var(--s-2) 0 var(--s-3);
  text-shadow:0 1px 22px rgba(var(--media-floor-rgb),.45);
}
.kp-hero__lede{color:var(--text);text-shadow:0 1px 16px rgba(var(--media-floor-rgb),.5);max-width:46ch}
.kp-hero__cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:var(--s-4)}
.kp-hero__info{display:flex;flex-wrap:wrap;gap:0;margin-top:var(--s-5);border-top:1px solid var(--line)}
.kp-hero__info>div{display:flex;align-items:center;gap:12px;padding:20px 28px 20px 0;margin-right:28px;
  font-family:var(--font-display);font-size:.95rem}
.kp-hero__info svg{color:var(--signal);flex:none}
.kp-hero__info strong{font-weight:500;color:var(--text)}

/* —— 4. Taler —— */
.kp-taler__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;margin-bottom:var(--s-4)}
.kp-taler__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3)}
.kp-tale-kort{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-kort);
  overflow:hidden;display:flex;flex-direction:column;color:var(--text);
  transition:transform var(--dur-fast) var(--ease-smooth),border-color var(--dur-fast) var(--ease-smooth);
}
.kp-tale-kort:hover{transform:translateY(-3px);border-color:var(--line-strong)}
.kp-tale-kort__thumb{position:relative;aspect-ratio:16/9;background:var(--surface-2);overflow:hidden}
.kp-tale-kort__thumb img{width:100%;height:100%;object-fit:cover;opacity:.85}
.kp-tale-kort__play{position:absolute;inset:0;display:grid;place-items:center}
.kp-tale-kort__play span{
  width:54px;height:54px;border-radius:50%;display:grid;place-items:center;
  background:rgba(var(--scrim-rgb),.66);backdrop-filter:blur(6px);
  border:1px solid rgba(var(--media-ink-rgb),.30);color:var(--media-ink);
  transition:background-color var(--dur-fast) var(--ease-smooth),transform var(--dur-fast) var(--ease-smooth);
}
.kp-tale-kort:hover .kp-tale-kort__play span{background:var(--signal);color:var(--signal-ink);transform:scale(1.06)}
.kp-tale-kort__body{padding:var(--s-3)}
.kp-tale-kort__serie{font-family:var(--font-display);font-size:.74rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--signal)}
.kp-tale-kort__body .kp-h3{margin:10px 0 8px}
.kp-tale-kort__meta{font-size:.9rem;color:var(--text-dim)}

.kp-podkast{
  margin-top:var(--s-4);display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;
  padding:var(--s-3);border:1px solid var(--line);border-radius:var(--radius-kort);background:var(--surface);
}
.kp-podkast__tekst{display:flex;align-items:center;gap:16px;flex:1 1 240px;min-width:0}
.kp-podkast__ikon{width:48px;height:48px;flex:none;display:grid;place-items:center;
  border-radius:var(--radius-knapp);background:rgba(var(--signal-rgb),.14);color:var(--signal)}
.kp-podkast__tekst p{font-size:.9rem;color:var(--text-dim)}
.kp-podkast__lenker{display:flex;gap:10px;flex-wrap:wrap}
.kp-podkast__lenker .kp-btn{padding:12px 18px;font-size:.92rem}

/* —— 5. Kalender (liste-rader) —— */
.kp-kalender{background:var(--surface);border-block:1px solid var(--line)}
.kp-event-rad{
  display:grid;grid-template-columns:86px 1fr auto;gap:var(--s-3);align-items:center;
  padding:var(--s-3) 0;border-bottom:1px solid var(--line);color:var(--text);
  transition:background-color var(--dur-fast) var(--ease-smooth);
}
.kp-event-rad:hover{background:rgba(var(--text-rgb),.045)}
.kp-event-rad:hover .kp-event-rad__pil{transform:translateX(4px);color:var(--signal)}
.kp-dato-blokk{text-align:center;font-family:var(--font-display);
  border:1px solid var(--line);border-radius:var(--radius-knapp);padding:10px 6px;background:var(--bg)}
.kp-dato-blokk__dag{font-size:1.5rem;font-weight:800;line-height:1.1;display:block}
.kp-dato-blokk__mnd{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--signal)}
.kp-event-rad__info .kp-h3{margin-bottom:4px}
.kp-event-rad__info p{font-size:.92rem;color:var(--text-dim)}
.kp-event-rad__beskr{margin-top:2px}
.kp-event-rad__pil{color:var(--text-dim);transition:transform var(--dur-fast) var(--ease-smooth),color var(--dur-fast) var(--ease-smooth)}
.kp-pameld-merke{display:inline-flex;align-items:center;gap:6px;margin-top:6px;
  font-family:var(--font-display);font-size:.72rem;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;color:var(--signal)}

/* —— 6. Fellesskap (kort) —— */
.kp-steg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-2)}
.kp-steg{
  border:1px solid var(--line);border-radius:var(--radius-kort);
  padding:var(--s-4) var(--s-3);color:var(--text);
  display:flex;flex-direction:column;gap:14px;min-height:190px;
  transition:transform var(--dur-fast) var(--ease-smooth),border-color var(--dur-fast) var(--ease-smooth),background-color var(--dur-fast) var(--ease-smooth);
}
a.kp-steg:hover{transform:translateY(-3px);border-color:var(--line-strong);background:var(--surface)}
.kp-steg__ikon{color:var(--signal)}
.kp-steg__tittel{margin-top:auto}
.kp-steg p{font-size:.9rem;color:var(--text-dim)}

/* —— 13. «Det vi tror paa»-inngang (statement) —— */
.kp-tro__inner{max-width:900px}
.kp-tro__utsagn{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(1.5rem,3.4vw,2.5rem);line-height:1.3;letter-spacing:-.01em;
  max-width:24ch;margin-top:var(--s-1);color:var(--text);
}
.kp-tro__tekst{margin-top:var(--s-3)}
.kp-tro__punkter{display:flex;flex-wrap:wrap;gap:10px;margin-top:var(--s-4)}
.kp-tro__punkter li{
  font-family:var(--font-display);font-size:.9rem;font-weight:500;color:var(--text);
  border:1px solid var(--line);border-radius:999px;padding:8px 16px;
}
.kp-tro__lenke{margin-top:var(--s-4)}

/* —— 8. Gi —— */
.kp-gi__band{
  display:grid;grid-template-columns:1.2fr .8fr;gap:var(--s-4);align-items:center;
  background:linear-gradient(120deg,var(--surface) 0%,var(--surface-2) 100%);
  border:1px solid var(--line);border-radius:var(--radius-kort);padding:var(--s-4);
}
.kp-gi__band .kp-h2{margin:10px 0 8px;font-size:clamp(1.6rem,3vw,2.2rem)}
.kp-gi__band .kp-lede{font-size:1rem}
.kp-gi__skatt{display:flex;gap:14px;align-items:flex-start;margin-top:var(--s-3);
  padding:var(--s-3);border:1px solid var(--line);border-radius:var(--radius-felt);background:rgba(var(--signal-rgb),.06)}
.kp-gi__skatt-ikon{flex:none;color:var(--signal)}
.kp-gi__skatt .kp-h3{font-size:1.05rem}
.kp-gi__skatt p{font-size:.92rem;color:var(--text-dim);margin-top:4px}
.kp-gi__handling{display:flex;flex-direction:column;align-items:flex-start;gap:12px;justify-self:end}
.kp-gi__qr{background:#fff;padding:10px;border-radius:var(--radius-felt);width:150px}
.kp-gi__qr img{width:100%;height:auto}
.kp-gi__qr figcaption{font-family:var(--font-display);font-size:.72rem;color:#333;text-align:center;margin-top:6px}
.kp-gi__nr{font-family:var(--font-display);font-size:.92rem;color:var(--text-dim)}
.kp-gi__nr strong{color:var(--text);letter-spacing:.04em}

/* —— 12. Kontakt / kart —— */
.kp-kontakt{background:var(--surface);border-block:1px solid var(--line)}
.kp-kontakt__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--s-5);align-items:center}
.kp-kart{position:relative;aspect-ratio:16/11;overflow:hidden;
  border:1px solid var(--line);border-radius:var(--radius-bilde);background:var(--bg)}
.kp-kart__svg{width:100%;height:100%;display:block}
.kp-kart__blokk{fill:var(--surface-2)}
.kp-kart__vann{fill:rgba(var(--signal-rgb),.12)}
.kp-kart__vei{fill:none;stroke:var(--line);stroke-width:6;stroke-linecap:round}
.kp-kart__vei-fin{fill:none;stroke:var(--line);stroke-width:3}
.kp-kart__pin-ring{fill:rgba(var(--signal-rgb),.20)}
.kp-kart__pin{fill:var(--signal)}
.kp-kart__pin-kjerne{fill:var(--signal-ink)}
.kp-kart__lenke{
  position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:8px;min-height:44px;
  padding:10px 16px;border-radius:var(--radius-knapp);
  background:rgba(var(--bg-rgb),.86);backdrop-filter:blur(6px);
  border:1px solid var(--line);color:var(--text);
  font-family:var(--font-display);font-weight:500;font-size:.9rem;
  transition:border-color var(--dur-fast) var(--ease-smooth),color var(--dur-fast) var(--ease-smooth);
}
.kp-kart__lenke:hover{border-color:var(--signal);color:var(--signal)}
.kp-kart__lenke svg{color:var(--signal)}
.kp-kontakt__info .kp-h2{margin-top:var(--s-1)}
.kp-kontakt__adresse{font-family:var(--font-display);font-size:1.05rem;font-style:normal;line-height:1.5;margin-bottom:var(--s-2)}
.kp-praktisk{display:grid;gap:16px;margin-top:var(--s-3)}
.kp-praktisk li{display:flex;gap:14px;align-items:flex-start;color:var(--text-dim);font-size:.96rem}
.kp-praktisk li strong{color:var(--text);font-weight:500}
.kp-praktisk svg{color:var(--signal);flex:none;margin-top:3px}

/* —— Moerk oey: delt token-kontrakt (banner + nyhetsbrev), som .kp-hero —— */
.kp-livestream,.kp-nyhetsbrev{
  --text:var(--media-ink);--text-dim:var(--media-ink-dim);
  --line:var(--media-line);
  --signal:var(--accent-bright);--signal-deep:var(--accent-bright-deep);
  --signal-ink:var(--accent-bright-ink);--signal-rgb:var(--accent-bright-rgb);
}

/* —— 2. Velkomst (statement + fotobaand) —— */
.kp-velkomst__utsagn{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(1.5rem,3.4vw,2.5rem);line-height:1.3;letter-spacing:-.01em;
  max-width:24ch;color:var(--text);
}
.kp-velkomst__lede{margin-top:var(--s-3)}
.kp-velkomst__foto{
  position:relative;margin-top:var(--s-5);
  border-radius:var(--radius-bilde);overflow:hidden;
  aspect-ratio:21/8;background:var(--surface-2);
}
.kp-velkomst__foto img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease-smooth)}
.kp-velkomst__foto:hover img{transform:scale(1.03)}
.kp-velkomst__foto figcaption{
  position:absolute;left:0;right:0;bottom:0;
  padding:var(--s-4) var(--s-3) var(--s-2);
  background:linear-gradient(0deg,rgba(var(--scrim-rgb),.78),transparent);
  color:var(--media-ink);font-family:var(--font-display);font-size:.92rem;
}

/* —— 3. Ny her? (asymmetrisk split) —— */
.kp-nyher{background:var(--surface);border-block:1px solid var(--line)}
.kp-nyher__grid{display:grid;grid-template-columns:.55fr .45fr;gap:var(--s-5);align-items:center}
.kp-nyher__foto{
  position:relative;border-radius:var(--radius-bilde);overflow:hidden;
  aspect-ratio:4/4.6;background:var(--surface-2);
}
.kp-nyher__foto img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease-smooth)}
.kp-nyher__foto:hover img{transform:scale(1.03)}
.kp-nyher__foto figcaption{
  position:absolute;left:16px;bottom:16px;
  background:rgba(var(--scrim-rgb),.82);backdrop-filter:blur(8px);
  font-family:var(--font-display);font-size:.82rem;color:var(--media-ink);
  padding:9px 14px;border-radius:var(--radius-felt);
}
.kp-sjekkliste{margin:var(--s-3) 0 var(--s-4);display:grid;gap:14px}
.kp-sjekkliste li{display:flex;gap:14px;align-items:flex-start;color:var(--text-dim)}
.kp-sjekkliste li strong{color:var(--text);font-weight:500}
.kp-sjekkliste__ikon{color:var(--signal);flex:none;margin-top:4px;display:inline-flex}

/* —— 7. Stab (CPT kp_staff + fotoloes fallback) —— */
.kp-stab__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-3)}
.kp-person__foto{
  aspect-ratio:1/1.15;border-radius:var(--radius-bilde);overflow:hidden;
  background:var(--surface-2);margin-bottom:var(--s-2);position:relative;
}
.kp-person__foto img{width:100%;height:100%;object-fit:cover;filter:grayscale(18%);
  transition:filter var(--dur-normal) var(--ease-smooth),transform .5s var(--ease-smooth)}
.kp-person:hover .kp-person__foto img{filter:grayscale(0);transform:scale(1.03)}
.kp-person__foto--tom{display:grid;place-items:center;
  background:linear-gradient(135deg,var(--surface) 0%,var(--surface-2) 100%)}
.kp-person__init{font-family:var(--font-display);font-weight:800;font-size:2.6rem;color:var(--signal);opacity:.85}
.kp-person__navn{font-size:1.05rem}
.kp-person__rolle{font-size:.88rem;color:var(--text-dim)}

/* —— 11. Nyhetsbrev (moerk oey m/ fotobaand) —— */
.kp-nyhetsbrev{position:relative;isolation:isolate;overflow:hidden;background:var(--media-floor);color:var(--text)}
.kp-nyhetsbrev__media{position:absolute;inset:0;z-index:-2}
.kp-nyhetsbrev__media img{width:100%;height:100%;object-fit:cover;opacity:.42}
.kp-nyhetsbrev::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(90deg,rgba(var(--media-floor-rgb),.94) 0%,rgba(var(--media-floor-rgb),.62) 60%,rgba(var(--media-floor-rgb),.40) 100%),
    linear-gradient(0deg,rgba(var(--media-floor-rgb),.55),rgba(var(--media-floor-rgb),.30));
}
.kp-nyhetsbrev__inn{max-width:600px}
.kp-nyhetsbrev__inn .kp-h2{margin:var(--s-2) 0}
.kp-nyhetsbrev__inn .kp-lede{color:var(--text)}
.kp-nb-skjema{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-top:var(--s-3)}
.kp-nb-skjema__felt{flex:1 1 260px;min-width:0}
.kp-nb-skjema__felt label{display:block;font-family:var(--font-display);font-size:.82rem;font-weight:500;margin-bottom:8px;color:var(--text)}
.kp-nb-skjema__felt input{
  width:100%;min-height:52px;padding:14px 16px;
  border:1px solid var(--line);border-radius:var(--radius-felt);
  background:rgba(var(--media-ink-rgb),.06);color:var(--text);
  font-family:var(--font-body);font-size:1rem;
  transition:border-color var(--dur-fast) var(--ease-smooth),background-color var(--dur-fast) var(--ease-smooth);
}
.kp-nb-skjema__felt input::placeholder{color:var(--text-dim)}
.kp-nb-skjema__felt input:focus-visible{outline:2px solid var(--signal);outline-offset:2px;border-color:var(--signal)}
.kp-nb-skjema__felt input:disabled{opacity:.55;cursor:not-allowed}
.kp-nb-skjema .kp-btn{min-height:52px}
.kp-nb-skjema .kp-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.kp-nb-personvern{margin-top:14px;font-size:.82rem;color:var(--text-dim)}
.kp-nb-personvern a{color:var(--text);text-underline-offset:3px;text-decoration:underline}

/* —— 10. Livestream-banner (tynn, moerk, avvisbar, fixed oeverst) —— */
:root{--kp-ls-h:48px}
body.kp-has-livestream{padding-top:var(--kp-ls-h)}
body.kp-has-livestream .kp-header{top:var(--kp-ls-h)}
.kp-livestream{
  position:fixed;inset:0 0 auto 0;z-index:115;min-height:var(--kp-ls-h);
  background:var(--media-floor);color:var(--text);border-bottom:1px solid var(--line);
}
.kp-livestream__inn{display:flex;align-items:center;gap:13px;min-height:var(--kp-ls-h);
  font-family:var(--font-display);font-size:.9rem}
.kp-livestream__puls{position:relative;width:9px;height:9px;flex:none}
.kp-livestream__puls b{position:absolute;inset:0;border-radius:50%;background:var(--signal)}
.kp-livestream__puls b::before{content:"";position:absolute;inset:0;border-radius:50%;
  background:var(--signal);opacity:.5;animation:kpLivePuls 2.4s var(--ease-out) infinite}
@keyframes kpLivePuls{0%{transform:scale(1);opacity:.5}70%,100%{transform:scale(3.4);opacity:0}}
.kp-livestream__tekst{color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kp-livestream__tekst strong{font-weight:700}
.kp-livestream__lenke{color:var(--signal);font-weight:500;flex:none;display:inline-flex;align-items:center;gap:6px}
.kp-livestream__lenke:hover{text-decoration:underline}
.kp-livestream__lukk{
  margin-left:auto;flex:none;display:grid;place-items:center;width:36px;height:36px;
  border-radius:999px;background:transparent;border:1px solid var(--line);color:var(--text);cursor:pointer;
  transition:border-color var(--dur-fast) var(--ease-smooth),background-color var(--dur-fast) var(--ease-smooth);
}
.kp-livestream__lukk:hover{border-color:var(--signal);background:rgba(var(--media-ink-rgb),.08)}

/* ============================================================
   FOOTER-GRID (Kirkeinfo-drevet)
   ============================================================ */
.kp-footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--s-4)}
.kp-footer__brand{display:flex;align-items:center;gap:10px}
.kp-footer__kontakt{margin-top:14px;color:rgba(var(--text-rgb),.8);font-size:.95rem}
.kp-footer__kontakt a{color:rgba(var(--text-rgb),.86)}
.kp-footer__kontakt a:hover{color:var(--signal)}
.kp-footer__tittel{font-family:var(--font-display);font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--text-dim);margin-bottom:var(--s-2);font-weight:500}
.kp-footer__col p{color:rgba(var(--text-rgb),.8);font-size:.95rem}
.kp-footer__lenker{display:grid;gap:10px}
.kp-footer__lenker a{color:rgba(var(--text-rgb),.86);font-size:.95rem;transition:color var(--dur-fast) var(--ease-smooth)}
.kp-footer__lenker a:hover{color:var(--signal)}
.kp-footer__bunn{margin-top:var(--s-5);padding-top:var(--s-3);border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:var(--s-2);flex-wrap:wrap;font-size:.85rem;color:var(--text-dim)}
.kp-footer__bunn a{color:var(--text-dim)}
.kp-footer__bunn a:hover{color:var(--signal)}

/* ============================================================
   LAUNCHER — global «Neste steg»-widget (Nucleus-moensteret)
   ============================================================ */
.kp-launcher{position:fixed;right:22px;bottom:22px;z-index:120;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.kp-launcher__panel{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-kort);
  box-shadow:0 18px 48px rgba(var(--shadow-rgb),.45);width:264px;overflow:hidden;
  opacity:0;transform:translateY(8px) scale(.97);pointer-events:none;
  transition:opacity var(--dur-normal) var(--ease-out),transform var(--dur-normal) var(--ease-out);
}
.kp-launcher.is-open .kp-launcher__panel{opacity:1;transform:none;pointer-events:auto}
.kp-launcher__tittel{font-family:var(--font-display);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--text-dim);font-weight:500;padding:18px 20px 8px}
.kp-launcher__panel a{display:flex;align-items:center;gap:12px;padding:13px 20px;
  font-family:var(--font-display);font-size:.97rem;color:var(--text);
  transition:background-color var(--dur-fast) var(--ease-smooth)}
.kp-launcher__panel a:hover{background:rgba(var(--text-rgb),.06)}
.kp-launcher__panel a svg{color:var(--signal);flex:none}
.kp-launcher__panel a:last-child{padding-bottom:18px}
.kp-launcher__knapp{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--signal);color:var(--signal-ink);border:0;cursor:pointer;
  font-family:var(--font-display);font-weight:700;font-size:.97rem;
  padding:15px 22px;border-radius:999px;box-shadow:0 10px 30px rgba(var(--signal-rgb),.35);
  transition:transform var(--dur-fast) var(--ease-smooth),background-color var(--dur-fast) var(--ease-smooth);
}
.kp-launcher__knapp:hover{transform:translateY(-1px);background:var(--signal-deep)}
.kp-launcher__knapp svg{transition:transform var(--dur-normal) var(--ease-smooth)}
.kp-launcher.is-open .kp-launcher__knapp svg{transform:rotate(45deg)}

/* ============================================================
   SCROLL-REVEAL
   ============================================================ */
.kp-reveal{opacity:0;transform:translateY(20px);
  transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}
.kp-reveal.is-visible{opacity:1;transform:none}
.kp-reveal-group .kp-reveal:nth-child(2){transition-delay:60ms}
.kp-reveal-group .kp-reveal:nth-child(3){transition-delay:120ms}
.kp-reveal-group .kp-reveal:nth-child(4){transition-delay:180ms}

/* ============================================================
   RESPONSIVT
   ============================================================ */
@media (max-width:980px){
  .kp-taler__grid{grid-template-columns:1fr 1fr}
  .kp-steg-grid{grid-template-columns:1fr 1fr}
  .kp-stab__grid{grid-template-columns:1fr 1fr}
  .kp-nyher__grid{grid-template-columns:1fr;gap:var(--s-4)}
  .kp-nyher__foto{aspect-ratio:16/10}
  .kp-velkomst__foto{aspect-ratio:16/9}
  .kp-gi__band{grid-template-columns:1fr}
  .kp-gi__handling{justify-self:start}
  .kp-kontakt__grid{grid-template-columns:1fr;gap:var(--s-4)}
  .kp-footer__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .kp-section{padding:var(--s-5) 0}
  .kp-nav{display:none}
  .kp-nav-toggle{display:block}
  .kp-taler__grid{grid-template-columns:1fr}
  .kp-hero{min-height:80vh}
  .kp-hero__info>div{padding:14px 0;margin-right:0;width:100%}
  .kp-event-rad{grid-template-columns:64px 1fr}
  .kp-event-rad__pil{display:none}
  .kp-dato-blokk__dag{font-size:1.2rem}
  .kp-podkast{flex-direction:column;align-items:flex-start}
  .kp-podkast__lenker{width:100%}
  .kp-podkast__lenker .kp-btn{flex:1 1 auto;justify-content:center}
  .kp-nb-skjema .kp-btn{width:100%;justify-content:center}
  .kp-livestream__tekst .kp-dim{display:none}
  .kp-footer__grid{grid-template-columns:1fr}
  .kp-launcher{right:16px;bottom:16px}
}

/* —— Reduced motion (obligatorisk, alltid sist) —— */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
  .kp-reveal{opacity:1;transform:none}
}
