/* =========================================================
   coming-soon.css (Snøfri)
   Snø = body::after (bak innholdet). Kort/hero ligger over.
   ========================================================= */

:root{
  --container: 980px;
  --gutter: clamp(16px, 3.2vw, 32px);

  --text: #0b1119;
  --muted: rgba(10, 18, 30, 0.68);

  --stroke: rgba(10, 18, 30, 0.12);

  --glass-strong: rgba(255,255,255,0.94);

  --shadow2: 0 30px 70px rgba(8, 12, 20, 0.18);

  --radius: 28px;
  --pillRadius: 999px;

  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

*{ box-sizing: border-box; }
html, body{ height: 100%; }

body{
  margin: 0;
  font-family: "Space Grotesk", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--text);
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;

  /* Bakgrunn */
  background:
    radial-gradient(1200px 720px at 50% -20%, rgba(255,255,255,0.96), transparent 72%),
    radial-gradient(900px 560px at 80% -10%, rgba(120,150,190,0.18), transparent 65%),
    radial-gradient(1000px 680px at 20% 120%, rgba(8,12,20,0.14), transparent 60%),
    linear-gradient(180deg, #f7f9fc 0%, #eef3f9 55%, #e5edf6 100%);
}

/* Innhold skal ligge OVER snø */
.comingShell{ position: relative; z-index: 1; }

/* =========================================================
   SNØ: ligger bak alt innhold (body::after)
   ========================================================= */
body::after{
  content:"";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;

  /* 3 lag snø + “skygge-lag” for kontrast */
  background-image:
    radial-gradient(circle, rgba(255,255,255,.95) 0 1.3px, transparent 1.9px),
    radial-gradient(circle, rgba(10,18,30,.10) 0 1.2px, transparent 1.8px),

    radial-gradient(circle, rgba(255,255,255,.70) 0 1.1px, transparent 1.8px),
    radial-gradient(circle, rgba(10,18,30,.08) 0 1.0px, transparent 1.7px),

    radial-gradient(circle, rgba(255,255,255,.55) 0 1.0px, transparent 1.7px),
    radial-gradient(circle, rgba(10,18,30,.06) 0 0.9px, transparent 1.6px);

  background-size:
    120px 120px, 120px 120px,
    180px 180px, 180px 180px,
    260px 260px, 260px 260px;

  /* litt random “start” */
  background-position:
    0 -200px,  1px -199px,
    40px -420px, 41px -419px,
    90px -760px, 91px -759px;

  opacity: .38;
  filter: blur(0.15px);
  mix-blend-mode: screen;

  animation: snowFall 16s linear infinite;
  transform: translateZ(0);
}

@keyframes snowFall{
  0%{
    background-position:
      0 -240px,  1px -239px,
      40px -520px, 41px -519px,
      90px -980px, 91px -979px;
  }
  100%{
    background-position:
      60px 820px,  61px 821px,
      20px 1180px, 21px 1181px,
      0px 1560px,  1px 1561px;
  }
}

/* Respekter reduced motion */
@media (prefers-reduced-motion: reduce){
  body::after{ animation: none; }
}

/* =========================================================
   Layout
   ========================================================= */
body.coming-soon{ min-height: 100svh; }

.comingShell{
  max-width: var(--container);
  margin: 0 auto;
  min-height: 100svh;
  padding: clamp(28px, 6vw, 64px) var(--gutter) clamp(22px, 4vw, 44px);
  display: grid;
  place-items: center;
  gap: 18px;
}

/* =========================================================
   Card frame (panelShell)
   ========================================================= */
.panelShell{
  width: 100%;
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,0.75);
  background: var(--glass-strong);
  box-shadow: var(--shadow2);
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  isolation: isolate; /* holder effekter “inni” kortet */
}

.panelShell::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(820px 360px at 10% 0%, rgba(160, 185, 215, 0.18), transparent 70%),
    radial-gradient(820px 360px at 90% 30%, rgba(200, 220, 240, 0.18), transparent 70%);
  opacity:.20;
}

.panelShell::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background: linear-gradient(90deg, rgba(255,255,255,0.45), rgba(255,255,255,0) 40%, rgba(255,255,255,0.22));
  mix-blend-mode: screen;
  opacity: .22;
}

.comingSimple{
  padding: clamp(22px, 4vw, 44px);
  display: grid;
  gap: 12px;
  text-align: center;
  align-items: center;
}

.comingSimple > *{ position: relative; z-index: 1; }

/* =========================================================
   Content
   ========================================================= */
.cs-logo{
  width: min(360px, 9292%);
  height: auto;
  margin: 0 auto 6px;
  display: block;
  filter: drop-shadow(0 18px 34px rgba(10, 18, 30, 0.22));
}

.hero-kicker{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 2px auto 2px;
  font-weight: 900;
  letter-spacing: .9px;
  text-transform: uppercase;
  font-size: 11px;
  color: var(--text);
  padding: 8px 12px;
  border-radius: var(--pillRadius);
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,0.78);
}

.comingSimple h1{
  margin: 6px 0 4px;
  font-size: clamp(34px, 4.2vw, 56px);
  line-height: 1.05;
  letter-spacing: -0.5px;
  font-weight: 900;
}

.comingSimple p{
  margin: 0 auto;
  max-width: 60ch;
  color: var(--muted);
  line-height: 1.6;
  font-size: 16px;
}

/* =========================================================
   Buttons
   ========================================================= */
.hero-actions{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  padding: 12px 18px;
  font-weight: 900;
  letter-spacing: .3px;
  border: 1px solid rgba(10, 18, 30, 0.20);
  cursor: pointer;
  transition: transform 180ms ease, background 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.btn-primary{
  background: linear-gradient(180deg, #e9f0fa 0%, #d7e2f1 100%);
  color: var(--text);
  border-color: rgba(10, 18, 30, 0.24);
  box-shadow: 0 14px 30px rgba(8,12,20,0.14);
}
.btn-primary:hover{
  transform: translateY(-1px);
  background: #ffffff;
  border-color: rgba(10,18,30,0.30);
  box-shadow: 0 18px 36px rgba(8,12,20,0.16);
}

.btn-ghost{
  background: rgba(255,255,255,0.78);
  color: var(--text);
  border-color: rgba(10, 18, 30, 0.18);
  box-shadow: 0 12px 26px rgba(8,12,20,0.10);
}
.btn-ghost:hover{
  transform: translateY(-1px);
  background: #ffffff;
  border-color: rgba(10,18,30,0.26);
  box-shadow: 0 18px 36px rgba(8,12,20,0.14);
}

/* =========================================================
   Mini line
   ========================================================= */
.hero-mini{
  margin: 14px auto 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(10, 18, 30, 0.10);
  background: rgba(255,255,255,0.70);
  color: var(--muted);
  max-width: 62ch;
}

.mini-dot{
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(120, 160, 200, 0.85);
  box-shadow: 0 0 0 6px rgba(120, 160, 200, 0.14);
  animation: csPulse 2.6s ease-in-out infinite;
}

@keyframes csPulse{
  0% { box-shadow: 0 0 0 6px rgba(120, 160, 200, 0.14); }
  50% { box-shadow: 0 0 0 10px rgba(120, 160, 200, 0.08); }
  100% { box-shadow: 0 0 0 6px rgba(120, 160, 200, 0.14); }
}

/* =========================================================
   Footer line
   ========================================================= */
.comingFooterLine{
  text-align: center;
  font-size: 12px;
  letter-spacing: .6px;
  text-transform: uppercase;
  font-weight: 800;
  color: rgba(120, 140, 165, 0.78);
}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 640px){
  .hero-actions{ flex-direction: column; align-items: stretch; }
  .btn{ width: 100%; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .btn{ transition: none; }
  .mini-dot{ animation: none; }
}
