/* Lykkehjul-popup (wh-*). Fixed: ingen layout shift. z-index under samtykke (160/310) og dialoger (180+), over sideinnhold.
   Kun øvre halvdel av hjulet vises (.wh-clip klipper); hele sirkelen roterer. Kortet skal passe uten rulling på vanlige skjermer. */
.wh-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wh-scrim{display:none}
.wh-card{position:fixed;left:0;top:50%;z-index:135;width:min(400px,calc(100vw - 16px));max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:14px 18px 16px 0;border-radius:0 var(--r-l) var(--r-l) 0;background:var(--cream);color:var(--ink);box-shadow:var(--shadow-l),0 0 0 1.5px var(--line);transform:translate(-105%,-50%);visibility:hidden;transition:transform .6s var(--ease),visibility 0s .6s;outline:0}
.wh-card.on{transform:translate(0,-50%);visibility:visible;transition:transform .6s var(--ease)}
.wh-x{position:absolute;right:6px;top:6px;z-index:3;width:44px;height:44px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:20px;box-shadow:var(--shadow-s)}
.wh-x svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.wh-x:hover{background:var(--blush)}
.wh-badge{margin:-14px 0 10px;padding:4px 52px 4px 18px;background:#ffd23f;color:#3a2a00;font-size:11.5px;font-weight:700;letter-spacing:.04em;line-height:1.3}
.wh-main{display:block}
.wh-head{padding-right:44px;min-height:44px}
.wh-head h2{font:400 clamp(22px,2vw,26px)/1.1 var(--f-display);letter-spacing:-.015em;margin:0 0 2px}
.wh-sub{color:var(--ink-2);font-size:13.5px;line-height:1.35;margin:0}
/* halvt hjul (høyre halvdel): navet ligger i venstre kant, venstre halvdel er skjult. --R = radius */
.wh-card{--R:clamp(96px,calc((100dvh - 330px) / 2),150px);padding-left:0}
.wh-card>.wh-badge,.wh-card .wh-body{margin-left:0}
.wh-card .wh-body{padding-left:16px}
.wh-vis{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.wh-stage{order:1;position:relative;flex:none;width:calc(var(--R) + 20px);padding-right:20px;margin:0}
.wh-head{order:2;flex:1;min-width:0;padding-right:44px;min-height:44px}
.wh-clip{position:relative;width:var(--R);height:calc(var(--R) * 2);overflow:hidden}
.wh-disc{position:absolute;left:calc(var(--R) * -1);top:0;width:calc(var(--R) * 2);height:calc(var(--R) * 2);border-radius:50%;will-change:transform}
.wh-disc svg{width:100%;height:100%;display:block;overflow:visible}
.wh-clip::after{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:#4a1a54;z-index:1}
.wh-ptr{position:absolute;right:0;top:50%;width:30px;height:35px;margin:-2px -4px 0 0;transform:translateY(-50%) rotate(90deg);transform-origin:50% 50%;z-index:3;filter:drop-shadow(0 2px 3px rgba(42,18,48,.35))}
.wh-ptr svg{width:100%;height:100%;display:block;fill:none;stroke:none}
.wh-hub{position:absolute;left:0;top:50%;width:calc(var(--R) * .34);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:#fff;color:var(--deep);box-shadow:0 0 0 4px #4a1a54,0 3px 10px rgba(42,18,48,.4);display:grid;place-items:center;z-index:2}
.wh-hub svg{width:56%;height:56%;fill:currentColor;stroke:none}
.wh-body{display:grid;align-content:start}
.wh-form{display:grid;gap:8px}
.wh-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wh-f{display:grid;gap:3px;min-width:0;align-content:start}
.wh-f>label{font-size:12.5px;font-weight:600;color:var(--ink-2)}
.wh-form input[type=text],.wh-form input[type=tel],.wh-form input[type=email]{width:100%;min-height:44px;padding:8px 12px;border:1.5px solid var(--line);border-radius:12px;background:#fff;font-size:16px;transition:border-color .2s,box-shadow .2s}
.wh-form input:focus{outline:0;border-color:var(--deep);box-shadow:0 0 0 4px rgba(239,142,246,.22)}
.wh-form input[aria-invalid=true]{border-color:var(--warn)}
.wh-cks{display:grid;gap:0}
.wh-ckr{display:flex;align-items:center;justify-content:space-between;gap:8px}
.wh-ck{display:flex;gap:10px;align-items:flex-start;min-height:36px;padding:5px 0;font-size:13px;line-height:1.35;color:var(--ink-2);cursor:pointer}
.wh-ckr .wh-ck{align-items:center}
.wh-ck input{flex:none;width:20px;height:20px;margin:0;accent-color:var(--deep)}
.wh-ck small{color:var(--muted)}
.wh-tl{min-height:36px;padding:0 6px;color:var(--deep);font-weight:600;font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;flex:none}
.wh-tt{white-space:pre-line;font-size:12.5px;color:var(--ink-2);line-height:1.45;max-height:130px;overflow:auto;padding:8px 10px;margin:2px 0 4px;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line-2)}
.wh-tt[hidden]{display:none}
.wh-err{font-size:12.5px;font-weight:600;color:var(--warn);margin:0;line-height:1.3}.wh-err[hidden]{display:none}
.wh-err.wh-top{padding:8px 12px;border-radius:12px;background:#fff3ec}
.wh-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.wh-go{width:100%;min-height:50px;margin-top:2px}.wh-go[disabled]{opacity:.6;cursor:progress}
.wh-spin{text-align:center;font-family:var(--f-display);font-size:22px;color:var(--ink-2);padding:6px 0 4px;animation:wh-pulse 1.4s ease-in-out infinite}
@keyframes wh-pulse{50%{opacity:.45}}
.wh-res{display:grid;gap:8px;text-align:center;justify-items:center;outline:0;animation:wh-in .7s var(--ease) both}
@keyframes wh-in{from{opacity:0;transform:translateY(10px)}}
.wh-res h3{font:400 26px/1.1 var(--f-display);margin:0}
.wh-msg{font-size:16px;color:var(--ink-2);line-height:1.4;margin:0}
.wh-code{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;padding:8px 8px 8px 16px;border-radius:18px;background:#fff;box-shadow:inset 0 0 0 2px var(--deep)}
.wh-code output{font:700 24px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;color:var(--plum);user-select:all;overflow-wrap:anywhere}
.wh-copy{min-height:44px;padding:0 18px;border-radius:999px;background:var(--ink);color:#fff;font-weight:600;font-size:14px}
.wh-exp{font-size:13px;font-weight:600;color:var(--ink-2);margin:0}
.wh-how,.wh-ok{font-size:13.5px;color:var(--ink-2);line-height:1.4;margin:0}
.wh-acts{display:grid;gap:2px;justify-items:center}
.wh-again{min-height:44px}
.wh-link{min-height:40px;padding:0 10px;font-weight:600;font-size:14.5px;color:var(--deep);text-decoration:underline;text-underline-offset:3px}
/* når resultatet vises: skjul undertittel for å spare høyde */
.wh-card.wh-done .wh-sub{display:none}
/* fane i venstre kant: teksten roteres, ikonet står oppreist (eget element) */
.wh-tab{position:fixed;left:0;top:50%;z-index:96;min-width:46px;min-height:136px;padding:12px 6px;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border-radius:0 14px 14px 0;background:var(--ink);color:#fff;font-weight:600;font-size:14.5px;letter-spacing:.02em;box-shadow:var(--shadow-m);animation:wh-tab .6s var(--ease) both}
.wh-tab-t{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;line-height:1}
.wh-tab-i{display:block;width:22px;height:22px;flex:none}
.wh-tab-i svg{width:100%;height:100%;display:block}
.wh-tab[hidden]{display:none}
.wh-tab:hover{background:var(--plum)}
@keyframes wh-tab{from{opacity:0;margin-left:-30px}}
html.ck-on .wh-tab{display:none}
@media(max-width:340px){.wh-row{grid-template-columns:1fr}}
@media(max-width:600px){
  .wh-scrim{display:block;position:fixed;inset:0;z-index:134;background:rgba(42,18,48,.5);opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
  .wh-scrim.on{opacity:1;visibility:visible}
  .wh-card{left:0;right:0;top:auto;bottom:0;width:100%;max-height:100vh;max-height:100dvh;border-radius:var(--r-l) var(--r-l) 0 0;padding:12px 16px calc(14px + env(safe-area-inset-bottom)) 0;transform:translateX(-105%)}
  .wh-card.on{transform:none}
  .wh-badge{margin:-12px 0 8px;padding-left:16px}
  .wh-card{--R:clamp(90px,calc((100dvh - 360px) / 2),140px)}
  .wh-go{min-height:52px}
  html.wh-open .bu-launch,html.wh-open .to-top{opacity:0;pointer-events:none;visibility:hidden}
  .wh-tab{top:42%}
}
/* liggende telefon / lav skjerm: hjul + tittel til venstre, skjema til høyre */
@media(max-height:480px) and (min-width:520px){
  .wh-card{--R:clamp(70px,calc(100dvh / 2 - 12px),120px);width:min(720px,calc(100vw - 8px));top:50%;bottom:auto;max-height:100dvh;padding:10px 16px 10px 0;border-radius:0 var(--r-l) var(--r-l) 0;transform:translate(-105%,-50%)}
  .wh-card.on{transform:translate(0,-50%)}
  .wh-main{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:12px;align-items:center}
  .wh-vis{margin:0}.wh-head{display:none}
  .wh-form{gap:6px}
  .wh-form input[type=text],.wh-form input[type=tel],.wh-form input[type=email]{min-height:40px;padding:6px 12px}
  .wh-ck{min-height:30px;padding:2px 0}.wh-tl{min-height:30px}
  .wh-go{min-height:44px}
  .wh-badge{margin:-10px 0 6px}
  .wh-scrim{display:none}
  .wh-tab{top:50%}
}
@media(prefers-reduced-motion:reduce){.wh-card,.wh-card.on{transition:none}.wh-tab,.wh-res,.wh-spin{animation:none}.wh-scrim{transition:none}}
@media print{.wh{display:none!important}}
