  /* Typsnitt lokalt i vendor/fonts (uppdrag 05). Latinsk teckenuppsättning, SIL Open Font License. */
  @font-face{font-family:'Inter';font-style:normal;font-weight:400 600;font-display:swap;src:url(vendor/fonts/inter-latin-var.woff2) format('woff2')}
  @font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url(vendor/fonts/poppins-latin-400.woff2) format('woff2')}
  @font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(vendor/fonts/poppins-latin-500.woff2) format('woff2')}
  @font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(vendor/fonts/poppins-latin-600.woff2) format('woff2')}
  @font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url(vendor/fonts/poppins-latin-700.woff2) format('woff2')}
  :root{--ink:#18181F;--ink-soft:#57575F;--line:#E7E5E1;--field-line:#808089;--bg:#FFFFFF;--bg-soft:#F7F5F1;--surface:#FFFFFF;--dark:#0E0F16;--accent:#1E50A2;--accent-soft:#EAF0F9;--cta:#0E0F16;--radius:14px;--accent-hover:#2A63C0;--sig-people:#FF4FA3;--sig-tech:#5BB6FA;--sig-process:#FFA040;--sig-result:#86E0A4;--sig-stroke:rgba(160,190,235,.5);--on-dark:#ECECF1;--on-dark-soft:#A6A6B2;--btn-bg:var(--accent);--btn-bg-hover:var(--accent-hover);--sig-stroke-strong:rgba(160,190,235,.55);--sig-stroke-faint:rgba(160,190,235,.18);--sig-fill:rgba(160,190,235,.08);--sig-flow:rgba(205,218,247,.6);--sig-node:rgba(120,160,230,.95);--surface-glass:var(--dark);--accent-on-dark:#5B86D6;--sig-people-ljus:#E0358C;--sig-tech-ljus:#2E86D1;--sig-process-ljus:#D96A00;--sig-result-ljus:#2F8F55}
  /* Betydelsevariablerna gäller hela sidan: ljus variant i ljust läge, stark i mörkt (sidhuvudet sätter egna) */
  :root{--ik-people:var(--sig-people-ljus);--ik-tech:var(--sig-tech-ljus);--ik-process:var(--sig-process-ljus);--ik-result:var(--sig-result-ljus)}
  html[data-theme="dark"]{--ik-people:var(--sig-people);--ik-tech:var(--sig-tech);--ik-process:var(--sig-process);--ik-result:var(--sig-result)}
  html[data-theme="dark"]{--ink:#ECECF1;--ink-soft:#A6A6B2;--line:#272836;--field-line:#70717E;--bg:#0E0F16;--bg-soft:#14151E;--surface:#16171F;--dark:#0E0F16;--accent:#5B86D6;--accent-soft:#1B2436;--cta:#171823;--accent-hover:#7A9FE0;--btn-bg:#3A6CC4;--btn-bg-hover:#2A63C0}
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:'Inter',system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.7;-webkit-font-smoothing:antialiased}
  h1,h2,h3{font-family:'Poppins',sans-serif;line-height:1.16;letter-spacing:-0.015em;font-weight:600}
  /* Långa ord (finska, tyska) i smala fönster: mindre rubriker och avstavning efter sidans lang, radbrytning i ordet bara som sista utväg (uppdrag 54 steg 6) */
  h1,h2,h3{overflow-wrap:break-word}
  .wrap{max-width:1120px;margin:0 auto;padding:0 24px}
  a{color:inherit;text-decoration:none}
  .accent{color:var(--accent)}

  /* ── Sidhuvud och meny (godkänd 2026-09-30, uppdrag 11, 12 och 14) ──
     Sidhuvud och panel är en yta som följer bakgrunden den ligger på: mörk över mörk topp, ljus över ljus sektion.
     Texten byter aldrig färg när menyn öppnas. Ytan (.hd-surface, skapas i app.js) växer nedåt med transform och innehållet tonar in efter. */
  header{position:fixed;top:0;left:0;right:0;z-index:50;background:transparent;--hd:#FFFFFF;
    --hd-surface:var(--surface-glass);--hd-line:rgba(255,255,255,.09);
    --ik-people:var(--sig-people);--ik-tech:var(--sig-tech);--ik-process:var(--sig-process);--ik-result:var(--sig-result)}
  header.light{--hd:#18181F;--hd-surface:var(--surface);--hd-line:var(--line);
    --ik-people:var(--sig-people-ljus);--ik-tech:var(--sig-tech-ljus);--ik-process:var(--sig-process-ljus);--ik-result:var(--sig-result-ljus)}
  html[data-theme="dark"] header.light{--hd-surface:var(--surface-glass);--ik-people:var(--sig-people);--ik-tech:var(--sig-tech);--ik-process:var(--sig-process);--ik-result:var(--sig-result)}
  header.scrolled{background:var(--hd-surface);box-shadow:0 1px 0 var(--hd-line)}   /* hjälten passerad: egen yta i underlagets färg (uppdrag 102) */
  #site-header .mega{--ink:var(--on-dark);--ink-soft:var(--on-dark-soft);--bg-soft:rgba(255,255,255,.05);--line:rgba(255,255,255,.09);--accent:var(--accent-on-dark)}
  #site-header.light .mega{--ink:inherit;--ink-soft:inherit;--bg-soft:inherit;--line:inherit;--accent:inherit}
  #site-header:not(.light) :focus-visible{outline-color:var(--on-dark)}
  .nav{display:flex;align-items:center;justify-content:space-between;height:60px}
  .brand{display:flex;align-items:center;gap:11px}
  .nav-right{display:flex;align-items:center;gap:24px}
  .wordmark{font-family:'Poppins',sans-serif;font-size:1.25rem;letter-spacing:-0.01em;color:var(--hd)}
  .brand-link{display:flex;align-items:center;gap:11px}
  .lg-ring{height:26px;width:auto;display:block}
  nav.links{display:flex;align-items:center;gap:28px;font-size:0.9062rem;font-weight:500}
  nav.links a{color:var(--hd);transition:color .2s cubic-bezier(.2,.8,.2,1)}
  nav.links a:hover{color:var(--hd);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
  .nl-item{display:flex;align-items:center}
  .nl-top{display:inline-flex;align-items:center;gap:7px}
  .caret{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .25s ease;opacity:.85}
  .has-mega.mega-open .caret,.has-mega:focus-within .caret{transform:translateY(0) rotate(225deg)}
  .nl-toggle{display:none}
  .mega{position:absolute;left:0;right:0;top:100%;z-index:49}
  .mega-inner{max-width:1120px;margin:0 auto;padding:24px 24px 32px;display:grid;grid-template-columns:312px 1fr;gap:40px}
  .mega-lead{padding-top:8px}
  .mega-h{font-family:'Poppins',sans-serif;font-weight:600;font-size:1.0625rem;line-height:1.16;letter-spacing:-0.015em;margin-bottom:8px;color:var(--ink)}
  .mega-lead p{color:var(--ink-soft);font-size:0.875rem;line-height:1.6;margin-bottom:16px;text-wrap:balance}
  .mega-all{font-weight:600;font-size:0.875rem;color:var(--accent);display:inline-flex;gap:7px}
  .mega-all:hover{gap:11px;transition:gap .18s}
  .mega-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}
  .mega-card{display:block;padding:8px 12px;border-radius:8px;transition:background .18s}
  .mega-card:hover{background:var(--bg-soft)}
  .mega-card strong{display:block;font-family:'Poppins',sans-serif;font-weight:600;font-size:0.9375rem;color:var(--ink);margin-bottom:2px}
  .mega-card span{display:block;color:var(--ink-soft);font-size:0.8438rem;line-height:1.5;text-wrap:balance}
  .mega-helhet{background:var(--bg-soft)}
  .hl-line{fill:none;stroke:var(--ink-soft);stroke-width:1.2;opacity:.6}
  .hl-p{fill:var(--ik-people,var(--sig-people))}.hl-t{fill:var(--ik-tech,var(--sig-tech))}.hl-o{fill:var(--ik-process,var(--sig-process))}.hl-r{fill:var(--ik-result,var(--sig-result))}
  .hd-surface{position:absolute;left:0;right:0;top:0;height:800px;z-index:-1;background:var(--hd-surface);transform-origin:50% 0;transform:scaleY(0);opacity:0;
    transition:transform .22s cubic-bezier(.2,.8,.2,1),opacity .16s ease-out;pointer-events:none}
  .hd-edge{position:absolute;left:0;right:0;top:0;height:1px;z-index:-1;background:var(--hd-line);opacity:0;
    transition:transform .22s cubic-bezier(.2,.8,.2,1),opacity .16s ease-out;pointer-events:none}
  /* Öppen panel: svag dämpning av sidan bakom */
  body::before{content:"";position:fixed;inset:0;z-index:40;background:rgba(10,12,20,.16);opacity:0;visibility:hidden;transition:opacity .22s ease-out,visibility .22s;pointer-events:none}
  @media(min-width:781px){
    body.mega-active::before{opacity:1;visibility:visible}
    body.mega-active #site-header:not(.light){--hd:var(--on-dark)}
    body.mega-active #site-header.light{--hd:var(--ink)}
    body.mega-active .floats{opacity:0;pointer-events:none;transition:opacity .16s ease-out}
    .mega{background:transparent;border-top:1px solid var(--line);opacity:0;visibility:hidden;
      transition:opacity .08s ease-out,visibility 0s linear .08s;max-height:calc(100vh - 60px);overflow:auto}
    .has-mega.mega-open .mega{opacity:1;visibility:visible;transition:opacity .16s ease-out .04s,visibility 0s}
  }
  .menu-btn{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;padding:9px;background:none;border:0;cursor:pointer}
  .menu-btn span{display:block;height:2px;width:24px;background:var(--hd);border-radius:2px;transition:transform .25s ease,opacity .2s ease,background .3s ease}
  header.open .menu-btn span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  header.open .menu-btn span:nth-child(2){opacity:0}
  header.open .menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .theme-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:none;border:0;cursor:pointer;color:var(--hd);transition:color .2s cubic-bezier(.2,.8,.2,1)}
  .theme-btn svg{display:none}
  .theme-btn .ic-moon{display:block}   /* specificitet som .theme-btn svg, annars syns ingen ikon i ljust läge (uppdrag 11) */
  html[data-theme="dark"] .ic-moon{display:none}
  html[data-theme="dark"] .ic-sun{display:block}
  /* Språkväljaren (uppdrag 54). Syns först när minst två språk är publicerade. details fungerar utan JavaScript. */
  .sprakval{position:relative;color:var(--hd);font-size:0.875rem;font-weight:500}
  .sprakval summary{list-style:none;cursor:pointer;display:flex;align-items:center;min-height:34px;padding:0 6px}
  .sprakval summary::-webkit-details-marker{display:none}
  .sprakval-glob{flex:none;margin-right:8px}
  @media(max-width:480px){.sprakval-namn,.sprakval summary::after{display:none}.sprakval-glob{margin-right:0}}   /* bara globen i smal mobil, namnet står i aria-label och i listan */
  .sprakval summary::after{content:"";width:6px;height:6px;margin:0 0 3px 8px;border:solid currentColor;border-width:0 1.6px 1.6px 0;transform:rotate(45deg)}
  .sprakval[open] summary::after{margin-bottom:-3px;transform:rotate(225deg)}
  .sprakval summary:focus-visible{outline:2px solid currentColor;outline-offset:2px;border-radius:6px}
  .sprakval ul{position:absolute;right:0;top:100%;z-index:60;margin:8px 0 0;padding:6px;list-style:none;min-width:160px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius)}
  .sprakval ul a{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:8px;color:inherit}
  .sprakval ul a:hover{background:var(--bg-soft)}
  .sprakval ul a[aria-current]{font-weight:600}
  .sprakval ul a[aria-current]::after{content:"";width:5px;height:10px;margin:0 3px 3px 12px;border:solid currentColor;border-width:0 1.8px 1.8px 0;transform:rotate(45deg)}   /* bock vid valt språk, Inter har vikterna 400 till 600 */
  @media(min-width:781px){.sprakval ul{right:auto;left:0}}   /* listan börjar under globen i dator */
  #site-header .sprakval ul a:focus-visible{outline-color:var(--accent)}   /* listan är ljus även under mörkt sidhuvud, se rad 28 */
  /* Språkförslaget vid första besöket (uppdrag 83): en diskret ruta under sidhuvudet, skapas av app.js. */
  .sprakforslag{position:fixed;top:72px;right:max(24px,calc((100vw - 1120px) / 2 + 24px));z-index:55;display:flex;align-items:center;gap:14px;max-width:calc(100% - 48px);padding:8px 8px 8px 18px;background:var(--surface-glass);color:var(--on-dark);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);box-shadow:0 12px 32px rgba(0,0,0,.35);font-size:0.9062rem}   /* samma mörka glasyta som sidhuvudet i båda lägena, eftersom hjälten alltid är mörk. Högerkanten i linje med sidhuvudets innehåll (.wrap) */
  .sprakforslag a{color:var(--accent-on-dark);font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
  .sprakforslag-stang{min-height:40px;padding:0 14px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:transparent;color:var(--on-dark);font:inherit;cursor:pointer}
  .sprakforslag-stang:hover{background:rgba(255,255,255,.06)}
  .sprakforslag :focus-visible{outline:2px solid var(--on-dark);outline-offset:2px}
  @media(max-width:780px){.sprakforslag{right:18px}}
  @media(max-width:480px){.sprakforslag{left:18px;right:18px;max-width:none;justify-content:space-between}}
  .foot-sprak{display:flex;flex-wrap:wrap;gap:12px;margin-left:auto;order:1}   /* sist i raden, efter Hantera cookies som app.js lägger till */
  @media(max-width:680px){.foot-sprak{flex-basis:100%;margin-left:0;margin-top:6px}}   /* egen rad i mobil (uppdrag 93) */
  .foot-sprak a[aria-current]{color:var(--on-dark)}
  .btn{display:inline-block;font-weight:600;font-size:0.9375rem;padding:12px 22px;border-radius:999px;cursor:pointer;transition:.18s;border:1.5px solid transparent}
  .btn-primary{background:var(--btn-bg);color:#fff}.btn-primary:hover{background:var(--btn-bg-hover)}
  .btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}.btn-ghost:hover{background:var(--ink);color:var(--bg)}
  .link-arrow{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:0.9375rem;color:var(--accent)}
  .link-arrow:hover{gap:11px;transition:gap .18s}
  section[id]{scroll-margin-top:88px}
  .cap{scroll-margin-top:90px}
  @media(max-width:780px){
    .menu-btn{display:flex}
    .nav-right{gap:12px}   /* sidhuvudet ryms med språkväljaren (uppdrag 55) */
    nav.links{position:fixed;top:60px;bottom:0;left:0;right:0;overflow:auto;flex-direction:column;align-items:stretch;gap:28px;display:none;background:var(--surface-glass);padding:8px 24px 32px;border-top:1px solid rgba(255,255,255,.08)}
    header.open{background:var(--surface-glass);--hd:var(--on-dark)}
    header.open nav.links{display:flex}
    nav.links a{font-size:1.125rem;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.07);color:#E7E7EE}
    .nl-item{position:relative;flex-direction:column;align-items:stretch}
    .nl-item .nl-top{font-size:1.125rem;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.07);color:#E7E7EE}
    .nl-item .nl-top .caret{display:none}
    .nl-toggle{display:flex;align-items:center;justify-content:center;position:absolute;top:0;right:0;width:54px;height:58px;background:none;border:0;cursor:pointer;color:#E7E7EE}
    .caret-m{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .25s ease}
    .nl-item.open .caret-m{transform:translateY(2px) rotate(225deg)}
    .mega{position:static;display:none;z-index:auto}
    .nl-item.open .mega{display:block}
    .mega-inner{max-width:none;margin:0 0 -12px;padding:8px 0 0;gap:0;display:block}
    .mega-lead{display:none}
    .mega-grid{display:block}
    .mega-card{padding:12px 0 12px 16px;border-radius:8px;border-bottom:0}
    .mega-card:hover{background:rgba(255,255,255,.05)}
    .mega-card strong{color:#fff}
    .mega-card span{color:#AEAEBC}
    .wrap{padding:0 18px}
  }

  /* ── Glass hero (home) ── */
  .hero{position:relative;min-height:100vh;min-height:100svh;color:#FAFAFC;overflow:hidden;
        background:radial-gradient(ellipse at 60% 50%, #060610 0%, #020205 60%, #000000 100%)}
  #stars{position:absolute;inset:0;width:100%;height:100%;z-index:0;display:block;pointer-events:none}
  #glassmount{position:absolute;inset:0;z-index:1}
  #glassmount canvas{display:block;width:100%;height:100%}
  /* Stillbild av glasknuten: mobil, minskad rörelse och när WebGL saknas. Döljs när 3D-knuten ritats (html.glass-on). */
  .hero-still{position:absolute;z-index:1;right:2vw;top:50%;width:min(40vw,560px);height:auto;transform:translateY(-58%);pointer-events:none;opacity:0;transition:opacity 1.1s ease;mix-blend-mode:screen}
  @media(min-width:761px) and (max-width:1100px){.hero-still{width:min(34vw,380px);top:34%}}
  html.glass-still .hero-still{opacity:.92}
  html.glass-on .hero-still{transition-duration:.3s}   /* stillbilden går undan innan 3D-knuten syns, ingen dubbel knut (uppdrag 99) */
  @media(max-width:760px){
    #glassmount{display:none}
    .hero-still,html.glass-on .hero-still{opacity:.92}
    .hero-still{right:auto;left:50%;top:8svh;width:min(100vw,480px);transform:translateX(-50%)}
  }
  .hero-vignette{position:absolute;inset:0;z-index:2;pointer-events:none;
        background:linear-gradient(0deg, rgba(8,8,16,.72) 0%, rgba(8,8,16,.28) 26%, rgba(8,8,16,0) 52%)}
  .hero .wrap{position:relative;z-index:5;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:72px}
  .hero-text{max-width:600px}
  .hero h1{font-size:4.125rem;color:#FAFAFC;margin-bottom:20px;max-width:700px;line-height:1.08}
  .hero h1 .w{display:inline-block;white-space:nowrap;font-weight:700;color:#FAFAFC;transition:color .15s linear}
  .hero p.lead{font-size:1.1875rem;color:#C2C2CE;max-width:540px;margin-bottom:14px}
  @media(max-width:900px){.hero h1{font-size:2.75rem}}
  @media(max-width:760px){
    .hero{min-height:100svh;background:radial-gradient(ellipse at 60% 45%, #0a0a14 0%, #020205 70%, #000 100%)}
    .hero .wrap{min-height:100svh;padding-bottom:112px}
  }

  /* mobile drifting colour glow (lightweight, no WebGL) */
  .mglow{display:none}
  @media(max-width:760px){
    .mglow{display:block;position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
    .mglow span{position:absolute;border-radius:50%;filter:blur(46px);opacity:.5;will-change:transform}
    .mglow span:nth-child(1){width:64vw;height:64vw;left:-12vw;top:34vw;background:radial-gradient(circle,var(--sig-people),transparent 68%);animation:mg1 15s ease-in-out infinite alternate}
    .mglow span:nth-child(2){width:56vw;height:56vw;right:22vw;top:-6vw;background:radial-gradient(circle,var(--sig-tech),transparent 68%);animation:mg2 19s ease-in-out infinite alternate}
    .mglow span:nth-child(3){width:52vw;height:52vw;left:56vw;top:30vw;bottom:auto;background:radial-gradient(circle,var(--sig-process),transparent 68%);animation:mg3 17s ease-in-out infinite alternate}
  }
  @keyframes mg1{from{transform:translate(0,0) scale(1)}to{transform:translate(10vw,7vw) scale(1.18)}}
  @keyframes mg2{from{transform:translate(0,0) scale(1)}to{transform:translate(-9vw,-6vw) scale(1.12)}}
  @keyframes mg3{from{transform:translate(0,0) scale(1)}to{transform:translate(-6vw,-9vw) scale(1.2)}}
  @media(prefers-reduced-motion:reduce){html:not([data-motion="full"]) .mglow span{animation:none}}
  html[data-motion="reduce"] .mglow span{animation:none}

  /* ── Subpage hero ── */
  .subhero{position:relative;min-height:60vh;min-height:60svh;display:flex;align-items:flex-end;overflow:hidden;color:#FAFAFC;
        background:radial-gradient(ellipse at 62% 38%, #0b0b14 0%, #050509 62%, #000 100%)}
  .subhero .glow{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;opacity:.55}
  .subhero .glow span{position:absolute;border-radius:50%;filter:blur(72px);opacity:.4;will-change:transform}
  .subhero .glow span:nth-child(1){width:42vw;height:42vw;left:-6vw;top:-8vw;background:radial-gradient(circle,#FF4FA3,transparent 68%);animation:mg1 16s ease-in-out infinite alternate}
  .subhero .glow span:nth-child(2){width:38vw;height:38vw;right:-6vw;top:6vw;background:radial-gradient(circle,#5BB6FA,transparent 68%);animation:mg2 20s ease-in-out infinite alternate}
  .subhero .glow span:nth-child(3){width:36vw;height:36vw;left:32vw;bottom:-12vw;background:radial-gradient(circle,#FFA040,transparent 68%);animation:mg3 18s ease-in-out infinite alternate}
  .subhero-vignette{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(0deg, rgba(8,8,16,.66) 0%, rgba(8,8,16,.16) 34%, rgba(8,8,16,0) 62%)}
  .subhero .wrap{position:relative;z-index:5;padding-top:128px;padding-bottom:58px;width:100%}   /* full bredd: rubriken linjerar med rutnätet (uppdrag 10) */
  .subhero h1{font-size:3.25rem;max-width:780px;color:#FAFAFC}
  .subhero .sub-lead{font-size:1.1875rem;color:#C9C9D3;max-width:600px;margin-top:18px}
  @media(max-width:900px){.subhero h1{font-size:2.375rem}.subhero{min-height:56svh}}

  .trust{padding:30px 0;border-bottom:1px solid var(--line);background:var(--bg);overflow:hidden}
  .trust-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 18px;margin-bottom:18px}
  .trust-label{text-align:center;font-size:0.7812rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:18px}
  .trust-head .trust-label{margin-bottom:0}
  /* pausknapp för rullningen (WCAG 2.2.2, uppdrag 26). Visas av app.js, döljs vid minskad rörelse då inget rullar. */
  .marquee-paus{position:relative;display:inline-flex;align-items:center;gap:8px;font-family:inherit;font-size:0.8125rem;line-height:1;color:var(--ink-soft);background:transparent;border:1px solid var(--ink-soft);border-radius:999px;padding:7px 14px;cursor:pointer;transition:background .18s,color .18s,border-color .18s}
  .marquee-paus[hidden]{display:none}
  .marquee-paus svg{width:10px;height:10px;fill:currentColor;flex:0 0 auto}
  .marquee-paus:hover{color:var(--ink);border-color:var(--ink)}
  .marquee-paus[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--ink)}
  .marquee-paus:focus-visible{border-radius:999px}
  @media(pointer:coarse){.marquee-paus::after{content:"";position:absolute;inset:-9px -4px}}   /* pekyta 44 px utan att knappen blir större */
  .marquee{position:relative;width:100%;overflow:hidden;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
  .marquee-track{display:flex;width:max-content;list-style:none;margin:0;padding:0;animation:marq 40s linear infinite}
  .marquee-track li{flex:0 0 auto;padding:0 40px;font-family:'Poppins';font-weight:600;font-size:1.0625rem;color:var(--ink-soft);white-space:nowrap}
  .marquee:hover .marquee-track,.marquee:focus-within .marquee-track,.trust.pausad .marquee-track,.trust.utom .marquee-track{animation-play-state:paused}
  @keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  @media(prefers-reduced-motion:reduce){html:not([data-motion="full"]) .marquee-track{animation:none;flex-wrap:wrap;justify-content:center;row-gap:10px;width:auto}html:not([data-motion="full"]) .marquee-track li{padding:0 18px}html:not([data-motion="full"]) .marquee-track li[aria-hidden]{display:none}html:not([data-motion="full"]) .marquee-paus{display:none}html:not([data-motion="full"]) .marquee{-webkit-mask-image:none;mask-image:none}}
  html[data-motion="reduce"] .marquee-track{animation:none;flex-wrap:wrap;justify-content:center;row-gap:10px;width:auto}html[data-motion="reduce"] .marquee-track li{padding:0 18px}html[data-motion="reduce"] .marquee-track li[aria-hidden]{display:none}html[data-motion="reduce"] .marquee-paus{display:none}html[data-motion="reduce"] .marquee{-webkit-mask-image:none;mask-image:none}
  /* samma namn som stilla lista på Om oss */
  .kunder{margin:28px 0 30px;padding-top:22px;border-top:1px solid var(--line)}
  .about-prose .kunder:last-child{margin-bottom:4px}
  .about-prose .kunder .trust-label{text-align:left;font-size:0.7812rem;line-height:1.5;margin-bottom:12px}
  .kunder-lista{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 28px;font-family:'Poppins',sans-serif;font-weight:600;font-size:1rem;color:var(--ink-soft)}

  section.block{padding:88px 0}
  .sec-head{max-width:680px;margin-bottom:46px}
  .sec-head h2{font-size:2.125rem;margin-bottom:14px}.sec-head p{font-size:1.125rem;color:var(--ink-soft)}

  .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:32px 28px;transition:.22s}
  .card:hover{border-color:var(--accent);transform:translateY(-3px)}
  .card .ic{width:46px;height:46px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:1.125rem;font-weight:700;font-family:'Poppins';margin-bottom:20px}
  .card h3{font-size:1.25rem;margin-bottom:10px}.card p{font-size:0.9688rem;color:var(--ink-soft)}
  @media(max-width:860px){.cards{grid-template-columns:1fr}}

  .caps-home{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  @media(max-width:860px){.caps-home{grid-template-columns:1fr 1fr}}
  @media(max-width:560px){.caps-home{grid-template-columns:minmax(0,1fr)}}
  .cap-mini{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;transition:.22s;position:relative;overflow:hidden}
  .cap-mini:hover{border-color:var(--accent);transform:translateY(-3px)}
  .cap-mini:before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:var(--accent)}
  .cap-mini h3{font-size:1.125rem;margin-bottom:8px}
  .cap-mini p{font-size:0.9062rem;color:var(--ink-soft)}
  a.cap-mini{display:block;color:inherit;text-decoration:none}   /* områdeskorten leder till tjänstesidorna (52.1, uppdrag 88) */
  a.cap-mini:focus-visible{border-color:var(--c)}
  .viz{width:100%;height:96px;margin-bottom:14px;display:block;overflow:visible}
  .viz .scatter circle{fill:var(--c);opacity:.6;transition:opacity .4s ease}
  .cap-mini:hover .viz .scatter circle{opacity:0}
  .viz .bars rect{fill:var(--c);opacity:.9;transform-box:fill-box;transform-origin:bottom;transform:scaleY(0);transition:transform .5s cubic-bezier(.5,0,.2,1)}
  .cap-mini:hover .viz .bars rect{transform:scaleY(1)}
  .viz .bars rect:nth-of-type(1){transition-delay:.04s}
  .viz .bars rect:nth-of-type(2){transition-delay:.11s}
  .viz .bars rect:nth-of-type(3){transition-delay:.18s}
  .viz .bars rect:nth-of-type(4){transition-delay:.25s}
  .viz .trend{fill:none;stroke:var(--c);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:120;stroke-dashoffset:120;opacity:0;transition:stroke-dashoffset .55s ease .28s,opacity .2s ease .28s}
  .cap-mini:hover .viz .trend{stroke-dashoffset:0;opacity:1}
  .viz .before{transition:opacity .35s ease}
  .cap-mini:hover .viz .before{opacity:0}
  .viz .after{opacity:0;transition:opacity .4s ease .12s}
  .cap-mini:hover .viz .after{opacity:1}
  .viz .draw{fill:none;stroke:var(--c);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:110;stroke-dashoffset:110;transition:stroke-dashoffset .6s ease .25s}
  .cap-mini:hover .viz .draw{stroke-dashoffset:0}
  .viz .node{fill:var(--c)}
  .viz .pop{transform-box:fill-box;transform-origin:center;transform:scale(0);transition:transform .45s cubic-bezier(.5,-0.3,.35,1.5) .32s}
  .cap-mini:hover .viz .pop{transform:scale(1)}
  .viz-sys .box{opacity:.5;transition:opacity .4s ease}
  .cap-mini:hover .viz-sys .box{opacity:1}
  .viz-sys .flow,.viz-proc .flow{fill:var(--c);opacity:0}
  .cap-mini:hover .viz-sys .flow{animation:sysflow 1.1s linear .3s infinite}
  .cap-mini:hover .viz-proc .flow{animation:procflow 1.9s linear .35s infinite}
  @keyframes sysflow{0%{transform:translateX(0);opacity:0}25%{opacity:1}75%{opacity:1}100%{transform:translateX(13px);opacity:0}}
  @keyframes procflow{0%{transform:translateX(0);opacity:0}12%{opacity:1}88%{opacity:1}100%{transform:translateX(92px);opacity:0}}
  .viz-data .dot{fill:var(--c)}
  .viz-data .d-link{fill:none;stroke:var(--c);stroke-width:1.6;opacity:.55;stroke-dasharray:120;stroke-dashoffset:120;transition:stroke-dashoffset .55s ease .05s}
  .cap-mini:hover .viz-data .d-link{stroke-dashoffset:0}
  .viz-data .d-db{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.5);transition:opacity .35s ease .5s,transform .45s cubic-bezier(.5,-0.2,.3,1.5) .5s}
  .cap-mini:hover .viz-data .d-db{opacity:1;transform:scale(1)}
  .viz-data .d-bar{fill:var(--c);transform-box:fill-box;transform-origin:bottom;transform:scaleY(0);transition:transform .45s cubic-bezier(.5,0,.2,1) .9s}
  .cap-mini:hover .viz-data .d-bar{transform:scaleY(1)}
  .viz-data .d-bar:nth-of-type(2){transition-delay:1.0s}
  .viz-data .d-bar:nth-of-type(3){transition-delay:1.1s}
  .film{width:100%;height:58px;margin-bottom:14px;overflow:hidden;position:relative;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 16%,#000 84%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 16%,#000 84%,transparent)}
  .film .strip{display:flex;width:500%;height:100%;transition:transform .5s ease;will-change:transform}
  .film .scene{flex:0 0 20%;height:100%;display:flex;align-items:center;justify-content:center}
  .film .scene svg{width:80%;height:100%}
  .cap-mini:hover .film .strip{animation:rollstory 11s linear infinite}
  @keyframes rollstory{from{transform:translateX(0)}to{transform:translateX(-80%)}}
  .viz-data2 .link{fill:none;stroke:var(--c);stroke-width:1.5;opacity:.55;stroke-dasharray:240;stroke-dashoffset:240}
  .viz-data2 .net{transform-box:fill-box;transform-origin:60px 22px}
  .viz-data2 .db{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.5)}
  .viz-data2 .bar{fill:var(--c);transform-box:fill-box;transform-origin:bottom;transform:scaleY(0)}
  .viz-data2 .table{opacity:0}
  .viz-data2 .screen{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.7)}
  .viz-data2 .p-left{opacity:0;transform:translate(-10px,5px)}
  .viz-data2 .p-right{opacity:0;transform:translate(10px,5px)}
  .cap-mini:hover .viz-data2 .link{animation:dlink 1s ease .1s forwards}
  .cap-mini:hover .viz-data2 .net{animation:dsuck .9s cubic-bezier(.6,0,.35,1) 1.3s forwards}
  .cap-mini:hover .viz-data2 .db{animation:dphase 1.9s ease .9s forwards}
  .cap-mini:hover .viz-data2 .bar{animation:drise .55s cubic-bezier(.34,1.45,.5,1) forwards}
  .cap-mini:hover .viz-data2 .bar:nth-of-type(1){animation-delay:2.5s}
  .cap-mini:hover .viz-data2 .bar:nth-of-type(2){animation-delay:2.62s}
  .cap-mini:hover .viz-data2 .bar:nth-of-type(3){animation-delay:2.74s}
  .cap-mini:hover .viz-data2 .bar:nth-of-type(4){animation-delay:2.86s}
  .cap-mini:hover .viz-data2 .screen{animation:spop .5s cubic-bezier(.5,-0.2,.3,1.5) 2.25s forwards}
  .cap-mini:hover .viz-data2 .table{animation:fadein .4s ease 3.0s forwards}
  .cap-mini:hover .viz-data2 .p-left{animation:psit .7s cubic-bezier(.2,.85,.3,1) 3.1s forwards}
  .cap-mini:hover .viz-data2 .p-right{animation:psit .7s cubic-bezier(.2,.85,.3,1) 3.35s forwards}
  @keyframes dlink{to{stroke-dashoffset:0}}
  @keyframes dsuck{to{transform:translate(0,12px) scale(.2);opacity:0}}
  @keyframes dphase{0%{opacity:0;transform:scale(.5)}22%{opacity:1;transform:scale(1)}68%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.08)}}
  @keyframes drise{to{transform:scaleY(1)}}
  @keyframes fadein{to{opacity:1}}
  @keyframes psit{to{opacity:1;transform:translate(0,0)}}
  @keyframes spop{to{opacity:1;transform:scale(1)}}
  /* Processer: silos -> shared kanban board, work flows right, team high-five */
  .viz-proc2 .person{transition:transform .7s cubic-bezier(.5,0,.2,1) .9s}
  .cap-mini:hover .viz-proc2 .p-l{transform:translateX(4px)}
  .cap-mini:hover .viz-proc2 .p-r{transform:translateX(-4px)}
  .viz-proc2 .wall{transform-box:fill-box;transform-origin:top center;transition:transform .6s cubic-bezier(.5,0,.2,1) .15s}
  .cap-mini:hover .viz-proc2 .wall{transform:scaleY(.64)}
  .viz-proc2 .board{fill:none;stroke:var(--c);stroke-width:1.8;stroke-dasharray:230;stroke-dashoffset:230}
  .cap-mini:hover .viz-proc2 .board{animation:dlink .8s ease .1s forwards}
  .viz-proc2 .bhead{opacity:0}
  .cap-mini:hover .viz-proc2 .bhead{animation:fadein .5s ease .55s forwards}
  .viz-proc2 .kcard{opacity:0;transform-box:fill-box;transform-origin:center}
  .cap-mini:hover .viz-proc2 .rest1{animation:fadein .4s ease .8s forwards}
  .cap-mini:hover .viz-proc2 .rest3{animation:fadein .4s ease .8s forwards}
  .cap-mini:hover .viz-proc2 .mv1{animation:kmove1 1.5s cubic-bezier(.5,0,.2,1) .95s forwards}
  .cap-mini:hover .viz-proc2 .mv2{animation:kmove2 1.5s cubic-bezier(.5,0,.2,1) 1.35s forwards}
  @keyframes kmove1{0%{opacity:0;transform:translateX(0)}18%{opacity:1;transform:translateX(0)}100%{opacity:1;transform:translateX(24px)}}
  @keyframes kmove2{0%{opacity:0;transform:translateX(0)}22%{opacity:1;transform:translateX(0)}100%{opacity:1;transform:translateX(24px)}}
  .viz-proc2 .hi5 path{fill:none;stroke:var(--c);stroke-width:2;stroke-linecap:round;stroke-dasharray:16;stroke-dashoffset:16}
  .cap-mini:hover .viz-proc2 .hi5 path{animation:dlink .45s ease 2.55s forwards}
  .viz-proc2 .spark{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.4)}
  .cap-mini:hover .viz-proc2 .spark{animation:spop .5s cubic-bezier(.5,-0.2,.3,1.6) 2.95s forwards}
  .viz-sys2 .swipe{transform-box:fill-box;transform-origin:center}
  .cap-mini:hover .viz-sys2 .s1{animation:swipeL .55s ease .2s forwards}
  .cap-mini:hover .viz-sys2 .s2{animation:swipeR .55s ease .4s forwards}
  .cap-mini:hover .viz-sys2 .s3{animation:swipeL .55s ease .6s forwards}
  .viz-sys2 .ext{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.5)}
  .cap-mini:hover .viz-sys2 .ext{animation:spop .5s cubic-bezier(.5,-0.2,.3,1.5) 1.0s forwards}
  .cap-mini:hover .viz-sys2 .ext:nth-of-type(2){animation-delay:1.12s}
  .cap-mini:hover .viz-sys2 .ext:nth-of-type(3){animation-delay:1.24s}
  .cap-mini:hover .viz-sys2 .ext:nth-of-type(4){animation-delay:1.36s}
  .viz-sys2 .link2{fill:none;stroke:var(--c);stroke-width:1.6;opacity:.6;stroke-dasharray:36;stroke-dashoffset:36}
  .cap-mini:hover .viz-sys2 .link2{animation:dlink .7s ease 1.3s forwards}
  @keyframes swipeL{to{transform:translateX(-70px);opacity:0}}
  @keyframes swipeR{to{transform:translateX(70px);opacity:0}}
  /* Struktur: jumbled org (a pile) -> assembles into capability map -> roadmap */
  .viz-struct2 .cbox{opacity:1;transform-box:fill-box;transform-origin:center;transition:transform .7s cubic-bezier(.5,0,.2,1)}
  .viz-struct2 .p1{transform:translate(-20px,47px) rotate(-18deg)}
  .viz-struct2 .p2{transform:translate(32px,35px) rotate(12deg)}
  .viz-struct2 .p3{transform:translate(6px,38px) rotate(-8deg)}
  .viz-struct2 .p4{transform:translate(-50px,40px) rotate(22deg)}
  .viz-struct2 .p5{transform:translate(46px,24px) rotate(-25deg)}
  .viz-struct2 .p6{transform:translate(42px,26px) rotate(15deg)}
  .viz-struct2 .p7{transform:translate(-14px,29px) rotate(8deg)}
  .viz-struct2 .p8{transform:translate(12px,28px) rotate(-14deg)}
  .viz-struct2 .p9{transform:translate(-32px,30px) rotate(28deg)}
  .viz-struct2 .p10{transform:translate(-36px,23px) rotate(-20deg)}
  .cap-mini:hover .viz-struct2 .cbox{transform:none}
  .cap-mini:hover .viz-struct2 .b-top{transition-delay:.05s}
  .cap-mini:hover .viz-struct2 .b-mid{transition-delay:.18s}
  .cap-mini:hover .viz-struct2 .b-det1{transition-delay:.34s}
  .cap-mini:hover .viz-struct2 .b-det2{transition-delay:.48s}
  .viz-struct2 .clink{opacity:0}
  .cap-mini:hover .viz-struct2 .clink{animation:fadein .45s ease .7s forwards}
  .viz-struct2 .darrow{opacity:0;transform-box:fill-box;transform-origin:center;transform:translateY(-4px)}
  .cap-mini:hover .viz-struct2 .darrow{animation:adrop .5s ease 1.5s forwards}
  @keyframes adrop{to{opacity:1;transform:translateY(0)}}
  .viz-struct2 .chev{opacity:0;transform-box:fill-box;transform-origin:center;transform:translateX(-7px) scale(.85)}
  .cap-mini:hover .viz-struct2 .chev{animation:chevin .5s cubic-bezier(.4,0,.3,1) forwards}
  .cap-mini:hover .viz-struct2 .chev:nth-of-type(1){animation-delay:1.9s}
  .cap-mini:hover .viz-struct2 .chev:nth-of-type(2){animation-delay:2.03s}
  .cap-mini:hover .viz-struct2 .chev:nth-of-type(3){animation-delay:2.16s}
  .cap-mini:hover .viz-struct2 .chev:nth-of-type(4){animation-delay:2.29s}
  .cap-mini:hover .viz-struct2 .chev:nth-of-type(5){animation-delay:2.42s}
  .cap-mini:hover .viz-struct2 .chev:nth-of-type(6){animation-delay:2.55s}
  @keyframes chevin{to{opacity:1;transform:translateX(0) scale(1)}}
  /* AI: a human on each side, both press a central AI, results bloom upward */
  .viz-ai2 .ai-glow{transform-box:fill-box;transform-origin:center;transform:scale(.4);opacity:0}
  .cap-mini:hover .viz-ai2 .ai-glow{animation:spop .6s ease .35s forwards}
  .viz-ai2 .ai-spark{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.3) rotate(-40deg)}
  .cap-mini:hover .viz-ai2 .ai-spark{animation:sparkin .55s cubic-bezier(.5,-0.2,.3,1.6) .45s forwards}
  @keyframes sparkin{to{opacity:1;transform:scale(1) rotate(0)}}
  .viz-ai2 .ai-person{transition:transform .7s cubic-bezier(.5,0,.2,1)}
  .cap-mini:hover .viz-ai2 .ai-pl{transform:translateX(6px)}
  .cap-mini:hover .viz-ai2 .ai-pr{transform:translateX(-6px)}
  .viz-ai2 .ai-link{fill:none;stroke:var(--c);stroke-width:1.6;opacity:.6;stroke-dasharray:32;stroke-dashoffset:32}
  .cap-mini:hover .viz-ai2 .ai-link{animation:dlink .45s ease .15s forwards}
  .viz-ai2 .stream{fill:none;stroke:var(--c);stroke-width:1.6;opacity:.7;stroke-dasharray:70;stroke-dashoffset:70}
  .cap-mini:hover .viz-ai2 .stream{animation:dlink .55s ease forwards}
  .cap-mini:hover .viz-ai2 .stream:nth-of-type(1){animation-delay:1s}
  .cap-mini:hover .viz-ai2 .stream:nth-of-type(2){animation-delay:1.15s}
  .cap-mini:hover .viz-ai2 .stream:nth-of-type(3){animation-delay:1.3s}
  .cap-mini:hover .viz-ai2 .stream:nth-of-type(4){animation-delay:1.45s}
  .viz-ai2 .task{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.4)}
  .cap-mini:hover .viz-ai2 .task{animation:spop .45s cubic-bezier(.5,-0.2,.3,1.5) forwards}
  .cap-mini:hover .viz-ai2 .task:nth-of-type(1){animation-delay:1.55s}
  .cap-mini:hover .viz-ai2 .task:nth-of-type(2){animation-delay:1.7s}
  .cap-mini:hover .viz-ai2 .task:nth-of-type(3){animation-delay:1.85s}
  .cap-mini:hover .viz-ai2 .task:nth-of-type(4){animation-delay:2s}
  .viz-ai2 .check{fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:12;stroke-dashoffset:12}
  .cap-mini:hover .viz-ai2 .check{animation:dlink .35s ease forwards}
  .cap-mini:hover .viz-ai2 .check:nth-of-type(1){animation-delay:1.85s}
  .cap-mini:hover .viz-ai2 .check:nth-of-type(2){animation-delay:2s}
  .cap-mini:hover .viz-ai2 .check:nth-of-type(3){animation-delay:2.15s}
  .cap-mini:hover .viz-ai2 .check:nth-of-type(4){animation-delay:2.3s}
  @media(prefers-reduced-motion:reduce){html:not([data-motion="full"]) .viz *{transition:none;animation:none}html:not([data-motion="full"]) .viz-data2 .net{opacity:0}html:not([data-motion="full"]) .viz-data2 .db{opacity:0}html:not([data-motion="full"]) .viz-data2 .screen{opacity:1;transform:scale(1)}html:not([data-motion="full"]) .viz-data2 .bar{transform:scaleY(1)}html:not([data-motion="full"]) .viz-data2 .table{opacity:1}html:not([data-motion="full"]) .viz-data2 .p-left,html:not([data-motion="full"]) .viz-data2 .p-right{opacity:1;transform:translateX(0)}html:not([data-motion="full"]) .viz-proc2 .wall{transform:scaleY(.64)}html:not([data-motion="full"]) .viz-proc2 .board{stroke-dashoffset:0}html:not([data-motion="full"]) .viz-proc2 .bhead{opacity:1}html:not([data-motion="full"]) .viz-proc2 .kcard{opacity:1}html:not([data-motion="full"]) .viz-proc2 .mv1,html:not([data-motion="full"]) .viz-proc2 .mv2{transform:translateX(24px)}html:not([data-motion="full"]) .viz-proc2 .p-l{transform:translateX(4px)}html:not([data-motion="full"]) .viz-proc2 .p-r{transform:translateX(-4px)}html:not([data-motion="full"]) .viz-proc2 .hi5 path{stroke-dashoffset:0}html:not([data-motion="full"]) .viz-proc2 .spark{opacity:1;transform:scale(1)}html:not([data-motion="full"]) .viz-sys2 .swipe{opacity:0}html:not([data-motion="full"]) .viz-sys2 .ext{opacity:1;transform:scale(1)}html:not([data-motion="full"]) .viz-sys2 .link2{stroke-dashoffset:0}html:not([data-motion="full"]) .viz-struct2 .clink{opacity:.5}html:not([data-motion="full"]) .viz-struct2 .cbox{opacity:1;transform:none}html:not([data-motion="full"]) .viz-struct2 .darrow{opacity:1;transform:translateY(0)}html:not([data-motion="full"]) .viz-struct2 .chev{opacity:1;transform:none}html:not([data-motion="full"]) .viz-ai2 .ai-glow{opacity:1;transform:scale(1)}html:not([data-motion="full"]) .viz-ai2 .ai-spark{opacity:1;transform:none}html:not([data-motion="full"]) .viz-ai2 .ai-link{stroke-dashoffset:0}html:not([data-motion="full"]) .viz-ai2 .stream{stroke-dashoffset:0}html:not([data-motion="full"]) .viz-ai2 .task{opacity:1;transform:scale(1)}html:not([data-motion="full"]) .viz-ai2 .check{stroke-dashoffset:0}}
  html[data-motion="reduce"] .viz *{transition:none;animation:none}html[data-motion="reduce"] .viz-data2 .net{opacity:0}html[data-motion="reduce"] .viz-data2 .db{opacity:0}html[data-motion="reduce"] .viz-data2 .screen{opacity:1;transform:scale(1)}html[data-motion="reduce"] .viz-data2 .bar{transform:scaleY(1)}html[data-motion="reduce"] .viz-data2 .table{opacity:1}html[data-motion="reduce"] .viz-data2 .p-left,html[data-motion="reduce"] .viz-data2 .p-right{opacity:1;transform:translateX(0)}html[data-motion="reduce"] .viz-proc2 .wall{transform:scaleY(.64)}html[data-motion="reduce"] .viz-proc2 .board{stroke-dashoffset:0}html[data-motion="reduce"] .viz-proc2 .bhead{opacity:1}html[data-motion="reduce"] .viz-proc2 .kcard{opacity:1}html[data-motion="reduce"] .viz-proc2 .mv1,html[data-motion="reduce"] .viz-proc2 .mv2{transform:translateX(24px)}html[data-motion="reduce"] .viz-proc2 .p-l{transform:translateX(4px)}html[data-motion="reduce"] .viz-proc2 .p-r{transform:translateX(-4px)}html[data-motion="reduce"] .viz-proc2 .hi5 path{stroke-dashoffset:0}html[data-motion="reduce"] .viz-proc2 .spark{opacity:1;transform:scale(1)}html[data-motion="reduce"] .viz-sys2 .swipe{opacity:0}html[data-motion="reduce"] .viz-sys2 .ext{opacity:1;transform:scale(1)}html[data-motion="reduce"] .viz-sys2 .link2{stroke-dashoffset:0}html[data-motion="reduce"] .viz-struct2 .clink{opacity:.5}html[data-motion="reduce"] .viz-struct2 .cbox{opacity:1;transform:none}html[data-motion="reduce"] .viz-struct2 .darrow{opacity:1;transform:translateY(0)}html[data-motion="reduce"] .viz-struct2 .chev{opacity:1;transform:none}html[data-motion="reduce"] .viz-ai2 .ai-glow{opacity:1;transform:scale(1)}html[data-motion="reduce"] .viz-ai2 .ai-spark{opacity:1;transform:none}html[data-motion="reduce"] .viz-ai2 .ai-link{stroke-dashoffset:0}html[data-motion="reduce"] .viz-ai2 .stream{stroke-dashoffset:0}html[data-motion="reduce"] .viz-ai2 .task{opacity:1;transform:scale(1)}html[data-motion="reduce"] .viz-ai2 .check{stroke-dashoffset:0}
  @media(hover:none){
    .viz .before{opacity:0}
    .viz .after{opacity:1}
    .viz .scatter circle{opacity:0}
    .viz .bars rect{transform:scaleY(1)}
    .viz .trend{stroke-dashoffset:0;opacity:1}
    .viz .draw{stroke-dashoffset:0}
    .viz .pop{transform:scale(1)}
    .viz-sys .box{opacity:1}
    .viz-data .d-link{stroke-dashoffset:0}
    .viz-data .d-db{opacity:1;transform:scale(1)}
    .viz-data .d-bar{transform:scaleY(1)}
    .film .strip{transform:translateX(-60%)}
    .viz-data2 .net{opacity:0}
    .viz-data2 .db{opacity:0}
    .viz-data2 .screen{opacity:1;transform:scale(1)}
    .viz-data2 .bar{transform:scaleY(1)}
    .viz-data2 .table{opacity:1}
    .viz-data2 .p-left,.viz-data2 .p-right{opacity:1;transform:translateX(0)}
    .viz-proc2 .wall{transform:scaleY(.64)}
    .viz-proc2 .board{stroke-dashoffset:0}
    .viz-proc2 .bhead{opacity:1}
    .viz-proc2 .kcard{opacity:1}
    .viz-proc2 .mv1,.viz-proc2 .mv2{transform:translateX(24px)}
    .viz-proc2 .p-l{transform:translateX(4px)}
    .viz-proc2 .p-r{transform:translateX(-4px)}
    .viz-proc2 .hi5 path{stroke-dashoffset:0}
    .viz-proc2 .spark{opacity:1;transform:scale(1)}
    .viz-sys2 .swipe{opacity:0}
    .viz-sys2 .ext{opacity:1;transform:scale(1)}
    .viz-sys2 .link2{stroke-dashoffset:0}
    .viz-struct2 .clink{opacity:.5}
    .viz-struct2 .cbox{opacity:1;transform:none}
    .viz-struct2 .darrow{opacity:1;transform:translateY(0)}
    .viz-struct2 .chev{opacity:1;transform:none}
    .viz-ai2 .ai-glow{opacity:1;transform:scale(1)}
    .viz-ai2 .ai-spark{opacity:1;transform:none}
    .viz-ai2 .ai-link{stroke-dashoffset:0}
    .viz-ai2 .stream{stroke-dashoffset:0}
    .viz-ai2 .task{opacity:1;transform:scale(1)}
    .viz-ai2 .check{stroke-dashoffset:0}
  }

  .method{background:var(--bg-soft)}
  .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
  .step .n{font-family:'Poppins';font-weight:600;font-size:0.9375rem;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--accent);margin-bottom:16px}
  .step h3{font-size:1.125rem;margin-bottom:8px}.step p{font-size:0.9375rem;color:var(--ink-soft)}
  @media(max-width:860px){.steps{grid-template-columns:1fr 1fr}}
  @media(max-width:520px){.steps{grid-template-columns:1fr}}

  .principles{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
  @media(max-width:760px){.principles{grid-template-columns:1fr;gap:24px}}
  .principle{border-top:2px solid var(--accent);padding-top:18px}
  .principle h3{font-size:1.3125rem;margin-bottom:9px}
  .principle p{font-size:0.9688rem;color:var(--ink-soft)}

  /* ── Capabilities ── */
  .caps{display:grid;grid-template-columns:1fr 1fr;gap:24px}
  @media(max-width:860px){.caps{grid-template-columns:minmax(0,1fr)}}
  .cap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px;transition:.22s}
  .cap:hover{border-color:var(--accent)}
  .cap h3{font-size:1.3125rem;margin-bottom:6px}
  .cap .outcome{font-size:0.9062rem;color:var(--accent);font-weight:600;margin-bottom:16px}
  .cap ul{list-style:none;display:flex;flex-direction:column;gap:9px}
  .cap li{font-size:0.9688rem;color:var(--ink-soft);padding-left:20px;position:relative}
  .cap li:before{content:"";position:absolute;left:0;top:10px;width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:.55}
  .cap-wide{grid-column:1 / -1;background:var(--cta);border:1px solid var(--line)}
  .cap-wide h3{color:#fff}
  .cap-wide .outcome{color:#9FC0F2}
  .cap-wide li{color:#C7C7D2}
  .cap-wide-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px 28px}
  @media(max-width:700px){.cap-wide-grid{grid-template-columns:minmax(0,1fr)}}

  /* ── Values ── */
  .values{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 24px}
  .values-2{grid-template-columns:1fr 1fr}   /* två kort, se Två vägar till värde (uppdrag 94) */
  .values-efter{max-width:640px;margin-top:40px;font-size:1rem;color:var(--ink-soft);text-wrap:pretty}
  @media(max-width:860px){.values{grid-template-columns:1fr 1fr}}
  @media(max-width:560px){.values{grid-template-columns:1fr}}
  .value h3{font-size:1.1875rem;margin-bottom:8px}
  .value p{font-size:0.9688rem;color:var(--ink-soft)}

  /* ── Mission / vision / why ── */
  .mv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
  @media(max-width:860px){.mv{grid-template-columns:minmax(0,1fr)}}
  .mv .box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:34px 32px}
  .mv .box .label{font-size:0.8125rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
  .mv .box h3{font-size:1.4375rem;margin-bottom:12px;line-height:1.28}
  .mv .box p{font-size:1.0312rem;color:var(--ink-soft)}
  .mv .box.full{grid-column:1 / -1}

  .about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:52px;align-items:center}
  .photo{aspect-ratio:4/5;border-radius:var(--radius);background:var(--bg-soft);border:1px dashed var(--line);display:flex;align-items:center;justify-content:center;text-align:center;color:var(--ink-soft);font-size:0.875rem;padding:20px}
  .about-grid h2{font-size:2rem;margin-bottom:18px}.about-grid p{font-size:1.0625rem;color:var(--ink-soft);margin-bottom:16px}
  @media(max-width:860px){.about-grid{grid-template-columns:1fr}}

  .case-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px}
  .case{border:1px solid var(--line);border-radius:var(--radius);padding:30px;position:relative;overflow:hidden}
  .case:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--accent)}
  .case .tag{font-size:0.8125rem;font-weight:600;color:var(--accent);margin-bottom:12px}
  .case h3{font-size:1.25rem;margin-bottom:10px}.case p{font-size:0.9688rem;color:var(--ink-soft)}
  @media(max-width:860px){.case-cards{grid-template-columns:1fr}}

  /* ── Contact ── */
  .contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start}
  .contact-grid>*{min-width:0}   /* långa alternativ i select på andra språk ska inte göra kolumnen bredare än skärmen */
  @media(max-width:860px){.contact-grid{grid-template-columns:1fr;gap:36px}}
  .field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}
  .field label{font-size:0.875rem;font-weight:600;color:var(--ink)}
  .field[hidden]{display:none}
  .field input,.field select,.field textarea{font-family:inherit;font-size:0.9688rem;color:var(--ink);background:var(--surface);border:1px solid var(--field-line);border-radius:10px;padding:12px 14px;transition:border-color .18s}
  .field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:2px}
  .field textarea{min-height:150px;resize:vertical}
  .form-note{font-size:0.8125rem;color:var(--ink-soft);margin-top:6px}
  /* varför vi frågar (uppdrag 42): syns alltid under etiketten, kopplad med aria-describedby */
  .field-help{font-size:0.8125rem;line-height:1.45;color:var(--ink-soft);margin-top:-3px}
  .choice .field-help{display:block;margin:2px 0 6px}
  .form-sprak{margin:0 0 20px}
  /* rapportera fel (uppdrag 93): ett smalt formulär och info-ikoner i stället för hjälptexter. Texten finns kvar för skärmläsare via aria-describedby. */
  .felrapport{max-width:640px}
  .felrapport .form-note{margin-top:16px}
  /* details är inline, så att den öppna texten bryter ut till hela radens bredd under etiketten */
  .info{display:inline;margin-left:4px}
  .info summary{list-style:none;display:inline-flex;vertical-align:middle;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:var(--ink-soft);cursor:pointer}
  .info summary::-webkit-details-marker{display:none}
  .info summary:hover{color:var(--ink)}
  .info summary:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
  .info-text{display:block;margin:2px 0 4px;font-size:0.8125rem;line-height:1.45;color:var(--ink-soft)}
  .contact-info .bokning .btn-primary{color:#fff;margin-top:8px}
  .contact-info .row{margin-bottom:22px}
  .contact-info .label{font-size:0.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px}
  .contact-info a{color:var(--accent)}
  /* Kartlänk i stället för inbäddad Google-karta: inget laddas från tredje part före klick (uppdrag 09) */
  .map-link{margin-top:8px;display:flex;align-items:center;gap:14px;padding:18px 20px;border-radius:var(--radius);border:1px solid var(--line);background:var(--bg-soft);color:var(--ink);transition:border-color .18s}
  .map-link:hover,.map-link:focus-visible{border-color:var(--accent)}
  .map-pin{flex:0 0 auto;width:44px;height:44px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center}
  .map-tx strong{display:block;font-family:'Poppins',sans-serif;font-weight:600;font-size:1rem;color:var(--ink)}
  .map-tx span{display:block;font-size:0.875rem;color:var(--ink-soft);line-height:1.5;margin-top:2px}

  .cta-wrap .cta{background:var(--cta);color:#fff;border:1px solid var(--line);border-radius:24px;padding:62px 48px;text-align:center}
  .cta h2{font-size:2.125rem;margin-bottom:14px;color:#fff}.cta p{font-size:1.125rem;color:#C3C2CC;margin-bottom:30px;max-width:560px;margin-left:auto;margin-right:auto}
  .cta .btn-primary{font-size:1rem;padding:15px 30px}
  /* Boka ett samtal (uppdrag 42): två knappar när BOOKINGS_URL är satt, annars bara kontaktlänken */
  .cta-knappar{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
  .cta-knappar [hidden]{display:none}
  .cta .btn-ghost{font-size:1rem;padding:15px 30px;color:#fff;border-color:#fff}.cta .btn-ghost:hover{background:#fff;color:var(--cta)}
  @media(max-width:680px){html[lang=da] :is(h1,h2),html[lang=nb] :is(h1,h2),html[lang=fi] :is(h1,h2),html[lang=de] :is(h1,h2){hyphens:auto;-webkit-hyphens:auto}} /* långa sammansatta ord (U83) */
  @media(max-width:360px){h1,h2,h3{hyphens:auto;-webkit-hyphens:auto}.subhero h1{font-size:2rem}.sec-head h2{font-size:1.75rem}.cta-wrap .cta{padding:48px 22px}.cta h2{font-size:1.75rem}}

  footer{background:var(--dark);color:#AFAEB8;padding:66px 0 38px;border-top:1px solid var(--line)}
  .foot-min{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
  .foot-wordmark{font-family:'Poppins',sans-serif;font-size:1.375rem;letter-spacing:-0.01em;color:#fff}
  .foot-slogan{font-size:1.125rem;color:#C9C8D2;max-width:520px;line-height:1.5}
  .foot-contact{font-size:0.9062rem;color:#9C9BA6}
  .foot-mail{font-size:1rem;color:#fff;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:2px;transition:border-color .18s}
  .foot-mail:hover{border-color:#fff}
  .foot-legal{display:flex;align-items:center;gap:12px;font-size:0.8438rem;margin-top:2px}
  .foot-legal a{color:#AFAEB8;transition:color .18s}
  .foot-legal a:hover{color:#fff}
  .foot-legal span{color:#7E7D88}
  .copy{margin-top:12px;font-size:0.8125rem;color:var(--on-dark-soft)}
  @media(max-width:600px){.copy-sep{display:none}.copy-org{display:block}}   /* org.nr på egen rad, så att knappen till toppen inte täcker det (uppdrag 28) */

  /* Sektioner visas direkt, ingen intoning vid scroll (undviker mörkt genomslag och "tändning") */
  .js .reveal{opacity:1;transform:none;transition:none}
  .js .reveal.in{opacity:1;transform:none}
  @media(prefers-reduced-motion:reduce){html.js:not([data-motion="full"]) .reveal{opacity:1;transform:none;transition:none}}
  html.js[data-motion="reduce"] .reveal{opacity:1;transform:none;transition:none}

  /* page transition wipe */
  #pagewipe{position:fixed;inset:0;z-index:9999;background:#0E0F16;transform:translateX(0);will-change:transform;pointer-events:none}
  @media(prefers-reduced-motion:reduce){html:not([data-motion="full"]) #pagewipe{display:none}}
  html[data-motion="reduce"] #pagewipe{display:none}

  /* ===================================================================
     Tillägg: startsidans fasta stjärnhimmel, ny navigering, undersidor,
     kontaktflöde, flytande UI, cookie-banner och legala sidor.
     =================================================================== */

  /* ── Startsidan: fast stjärnhimmel som ligger kvar bakom loggan vid scroll ──
     #stars läggs fixed bakom allt, en mörk bakgrund flyttas till body.home, och
     sektionerna under hjälten görs ogenomskinliga så den mörka botten inte lyser
     igenom. .method behåller sin mjuka ton via högre specificitet. */
  body.home{background:radial-gradient(ellipse at 60% 36%, #07070f 0%, #020205 58%, #000 100%) fixed, #020205}
  body.home #stars{position:fixed;inset:0;width:100%;height:100%;z-index:-1}
  body.home .hero{background:transparent}
  body.home section.block{background:var(--bg)}
  body.home section.block.method{background:var(--bg-soft)}
  body.home .trust{background:var(--bg)}

  /* ── Navigering: Kontakt som knapp + aktiv sida ── */
  nav.links a.nav-cta{background:var(--btn-bg);color:#fff;border-radius:999px;padding:7px 16px;font-size:0.875rem;line-height:20px;transition:background .18s,transform .18s}
  nav.links a.nav-cta:hover{background:var(--btn-bg-hover);color:#fff;text-decoration:none;transform:translateY(-1px)}
  nav.links a[data-nav]{position:relative}
  body[data-page="tjanster"] a[data-nav="tjanster"]::after,
  body[data-page="sa-arbetar-vi"] a[data-nav="sa-arbetar-vi"]::after,
  body[data-page="om-oss"] a[data-nav="om-oss"]::after,
  body[data-page="omnidrift-os"] a[data-nav="omnidrift-os"]::after{content:"";position:absolute;left:0;bottom:-7px;width:20px;height:2px;border-radius:2px;background:currentColor;opacity:.65}
  @media(max-width:780px){
    nav.links a[data-nav]::after{display:none}
    nav.links a.nav-cta{display:inline-block;align-self:flex-start;border-bottom:0;margin:20px 0 4px;padding:10px 22px;font-size:1rem}
  }

  /* ── Footer-nav ── */
  .foot-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin-top:2px}
  .foot-nav a{font-size:0.9062rem;color:#AFAEB8;transition:color .18s}
  .foot-nav a:hover{color:#fff}

  /* ── Undersidor: prosa, checklista, utfall, områdeslänkar ── */
  .prose{max-width:720px}
  .prose p{font-size:1.125rem;color:var(--ink-soft);margin-bottom:16px}
  .prose p:last-child{margin-bottom:0}
  .prose + .sec-head{margin-top:72px}   /* rubrik direkt efter brödtext i samma avsnitt (uppdrag 80) */
  .do-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 40px;margin-top:4px;list-style:none}
  @media(max-width:700px){.do-grid{grid-template-columns:1fr}}
  .do-grid li{font-size:1rem;color:var(--ink-soft);padding-left:28px;position:relative;padding-bottom:3px;line-height:1.55}
  .do-grid li:before{content:"";position:absolute;left:4px;top:5px;width:6px;height:11px;border-right:2.4px solid var(--accent);border-bottom:2.4px solid var(--accent);transform:rotate(45deg)}
  .area-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
  .area-links a{display:inline-flex;align-items:center;gap:8px;font-size:0.9375rem;font-weight:600;color:var(--accent);border:1px solid var(--line);border-radius:999px;padding:9px 16px;transition:.18s}
  .area-links a:hover{border-color:var(--accent);background:var(--accent-soft)}
  .lead-tag{display:inline-block;font-size:0.8125rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}

  /* ── Orkestrerings-visual (Så arbetar vi) ── */
  .orch{width:100%;max-width:840px;margin:8px auto 0;display:block;height:auto;overflow:visible}
  /* stegens färger följer temat: ljusvarianterna på ljus botten, signalfärgerna på mörk (uppdrag 25) */
  .orch{--o1:var(--sig-people-ljus);--o2:var(--sig-tech-ljus);--o3:var(--sig-process-ljus);--o4:var(--sig-result-ljus)}
  html[data-theme="dark"] .orch{--o1:var(--sig-people);--o2:var(--sig-tech);--o3:var(--sig-process);--o4:var(--sig-result)}
  .orch .seg{fill:none;stroke:var(--line);stroke-width:2.5}
  .orch .seg-fill{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
  .js .reveal.in .orch .seg-fill{animation:orchdraw 2.6s ease .2s forwards}
  @keyframes orchdraw{to{stroke-dashoffset:0}}
  .orch .node{fill:var(--surface);stroke-width:2.5}
  .orch .dot{transform-box:fill-box;transform-origin:center;transform:scale(0)}
  .js .reveal.in .orch .dot{animation:orchpop .5s cubic-bezier(.5,-0.2,.3,1.6) forwards}
  .js .reveal.in .orch .dot:nth-of-type(1){animation-delay:.5s}
  .js .reveal.in .orch .dot:nth-of-type(2){animation-delay:1.1s}
  .js .reveal.in .orch .dot:nth-of-type(3){animation-delay:1.7s}
  .js .reveal.in .orch .dot:nth-of-type(4){animation-delay:2.3s}
  @keyframes orchpop{to{transform:scale(1)}}
  .orch text{font-family:'Poppins',sans-serif;fill:var(--ink);font-weight:600}
  .orch .lbl-sub{fill:var(--ink-soft);font-weight:500}
  /* vägen fortsätter efter Lämna över: förmågan finns kvar (uppdrag 23). Grönt per tema för 3:1 mot bakgrunden */
  .orch .kvar path{fill:none;stroke:var(--o4);stroke-width:1.8;stroke-linecap:round}
  .orch .kvar circle{fill:var(--o4)}
  .js .reveal .orch .kvar{opacity:0}
  .js .reveal.in .orch .kvar{animation:orchkvar .8s ease 2.9s forwards}
  @keyframes orchkvar{to{opacity:1}}
  @media(prefers-reduced-motion:reduce){
    html:not([data-motion="full"]) .orch .seg-fill{stroke-dashoffset:0}html:not([data-motion="full"]) .orch .dot{transform:scale(1)}
    html.js:not([data-motion="full"]) .reveal .orch .kvar,html.js:not([data-motion="full"]) .reveal.in .orch .kvar{opacity:1;animation:none}
  }
  html[data-motion="reduce"] .orch .seg-fill{stroke-dashoffset:0}html[data-motion="reduce"] .orch .dot{transform:scale(1)}
    html.js[data-motion="reduce"] .reveal .orch .kvar,html.js[data-motion="reduce"] .reveal.in .orch .kvar{opacity:1;animation:none}
  /* i mobil blir etiketten i figuren för liten: samma text som en rad under figuren */
  .orch-kvar-m{display:none}
  @media(max-width:600px){
    .orch .kvar text{display:none}
    .orch-kvar-m{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:6px;font-size:0.8125rem;font-weight:500;color:var(--ink-soft)}
    .orch-kvar-m::before{content:"";width:22px;border-top:2px solid var(--sig-result-ljus)}
    html[data-theme="dark"] .orch-kvar-m::before{border-top-color:var(--sig-result)}
  }
  /* kretsloppet Mål, nyckeltal och lärande och listan över rollen (uppdrag 23) */
  .kl-led path{fill:none;stroke:var(--sig-stroke);stroke-width:2;stroke-linecap:round;marker-end:url(#klpil)}
  .kl-pil{fill:none;stroke:var(--sig-stroke-strong);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
  .os-lbl.kl-lbl text{font-size:1.0625rem}
  .prose ol{margin:0 0 16px;padding-left:1.4em;font-size:1.125rem;color:var(--ink-soft)}
  .prose ol li{margin-bottom:8px;padding-left:4px}

  /* ── Kontaktflöde ── */
  .form-msg{display:none;border-radius:12px;padding:14px 16px;font-size:0.9375rem;margin-bottom:18px;line-height:1.5}
  .form-msg.show{display:block}
  .form-msg.ok{background:#E7F6EC;color:#1E6B3A;border:1px solid #BFE6CC}
  .form-msg.err{background:#FBEAEA;color:#A12B2B;border:1px solid #F0C9C9}
  html[data-theme="dark"] .form-msg.ok{background:#16271C;color:#7FD79B;border-color:#264A32}
  html[data-theme="dark"] .form-msg.err{background:#2A1818;color:#E89393;border-color:#4A2626}
  .field.invalid input,.field.invalid textarea{border-color:#D14343}
  .felrapport .field.invalid input:focus,.felrapport .field.invalid textarea:focus{outline-color:#D14343}
  .field .err-line{display:none;font-size:0.8125rem;color:#C0392B;margin-top:1px}
  .field.invalid .err-line{display:block}
  html[data-theme="dark"] .field .err-line{color:#E89393}   /* 4,5:1 mot mörk botten (bildgranskaren, uppdrag 93) */
  .hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
  .btn[disabled]{opacity:.6;cursor:default}
  /* bokning (uppdrag 43): dag och tid som radioknappar i knappform, tre steg, bekräftelse med fokus */
  .boka{max-width:920px}
  /* kalender (uppdrag 46): tider bredvid kalendern i dator, under den i mobil */
  .boka-nasta{margin:0 0 28px}
  .boka-nasta[hidden]{display:none}
  .boka-nasta-knapp{background:var(--accent-soft);border-color:var(--accent);color:var(--ink);font-weight:400}
  .boka-nasta-knapp strong{font-weight:600}
  .boka-kal-huvud{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 2px 10px}
  .boka-kal-manad{font-size:1.125rem;font-weight:600;margin:0}
  .boka-kal-pil{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer}
  .boka-kal-pil:hover:not([disabled]){border-color:var(--accent);color:var(--accent)}
  .boka-kal-pil[disabled]{opacity:.35;cursor:default}
  .boka-kal-pil:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  .boka-vecka{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:14px 12px 14px}
  .boka-dagar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
  .boka-dagar:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  .boka-dag{min-width:0;border-radius:10px;padding:10px 6px 12px;background:var(--bg-soft);border:1px solid transparent}
  .boka-dag.tom{background:transparent;border:1px dashed var(--line)}
  .boka-dag-rubrik{display:flex;flex-direction:column;align-items:center;margin:0 0 10px;font-family:inherit;font-size:0.875rem;font-weight:600;line-height:1.3;text-align:center;color:var(--ink)}
  .boka-dag-datum{font-weight:400;font-size:0.8125rem;color:var(--ink-soft)}
  .boka-dag-idag{font-size:0.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}
  .boka-dag.tom .boka-dag-namn{font-weight:400;color:var(--ink-soft)}
  .boka-dag-ingen{margin:0;font-size:0.8125rem;line-height:1.35;text-align:center;color:var(--ink-soft)}
  .boka-dag-tider{display:grid;gap:6px}
  .boka-dag-tider .boka-chip span{padding:9px 2px;font-size:0.875rem}
  .boka-annan{margin:14px 0 0;font-size:0.9375rem}
  .boka-dagval{display:none}
  @media (max-width:700px){.boka-dagval{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:0 0 12px}.boka-dagval-knapp{display:flex;flex-direction:column;align-items:center;gap:1px;min-height:48px;padding:6px 0;border:1px solid var(--accent);border-radius:10px;background:var(--accent-soft);color:var(--ink);font:inherit;font-size:0.75rem;cursor:pointer}.boka-dagval-knapp.tom{border:1px dashed var(--line);background:transparent;color:var(--ink-soft)}.boka-dagval-knapp[disabled]{opacity:.45;cursor:default}.boka-dagval-knapp[aria-pressed="true"]{background:var(--accent);border:1px solid var(--accent);color:var(--bg);font-weight:600}.boka-dagval-knapp:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.boka-dagval-nr{font-size:0.9375rem;font-weight:600}.boka-dagar{display:block}.boka-dag:not(.visad){display:none}.boka-dag-tider{grid-template-columns:repeat(3,minmax(0,1fr))}.boka-klar-cta .btn{flex:1 1 100%;justify-content:center;text-align:center}}
  .sr-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .boka-reserv{font-size:1rem;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-soft)}
  .boka-reserv a,.boka-klar p a,.boka-klar li a,.boka-annan a,.boka .form-note a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
  .boka-reserv[hidden],.boka-flode[hidden],.boka-steg[hidden],.boka-klar[hidden]{display:none}
  .boka-steg{border:0;padding:0;margin:0 0 34px;min-width:0}
  .boka-steg,.boka-klar,.boka-reserv{scroll-margin-top:96px}
  .boka input,.boka textarea{scroll-margin-top:140px}
  .felrapport .form-msg{scroll-margin-top:96px}
  .felrapport input,.felrapport textarea,.felrapport select{scroll-margin-top:140px}
  .boka-steg legend{display:flex;align-items:center;gap:10px;font-family:'Poppins',sans-serif;font-size:1.1875rem;font-weight:600;color:var(--ink);margin-bottom:6px;padding:0}
  .boka-nr{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--accent);color:var(--accent);font-size:0.875rem}
  .boka-steg > .field-help{display:block;margin:0 0 14px}
  .boka-val{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}
  .boka-tider{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}
  .boka-chip{position:relative;display:block;cursor:pointer}
  .boka-chip input{position:absolute;opacity:0;width:1px;height:1px}
  .boka-chip span{display:block;text-align:center;padding:11px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:0.9375rem;color:var(--ink);transition:border-color .18s,background .18s}
  .boka-chip:hover span{border-color:var(--accent)}
  .boka-chip input:checked + span{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:600}
  .boka-chip input:focus-visible + span{outline:2px solid var(--accent);outline-offset:3px}
  .boka-vald{font-weight:600;margin:4px 0 16px}
  .boka-klar h2{display:flex;align-items:center;gap:12px;font-size:1.5rem;margin-bottom:6px}
  .boka-nr-klar{flex:none;background:var(--accent);color:var(--bg)}
  .boka-klar-tid{font-size:1.0625rem;font-weight:600;margin:0 0 26px 40px}
  .boka-klar h3{font-size:1.0625rem;margin:0 0 8px}
  .boka-klar-lista{margin:0 0 26px;padding-left:1.2em}
  .boka-klar-lista li{margin:6px 0}
  .boka-klar-cta{display:flex;flex-wrap:wrap;gap:12px}
  .boka-klar:focus{outline:none}
  .boka-klar:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
  @media (prefers-reduced-motion: reduce){html:not([data-motion="full"]) .boka-chip span{transition:none}}
  html[data-motion="reduce"] .boka-chip span{transition:none}

  /* ── Flytande kontakt + till toppen ── */
  .floats{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;flex-direction:column;gap:12px;align-items:flex-end}
  .float-btn{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;border-radius:999px;box-shadow:0 4px 14px rgba(10,12,20,.16);transition:transform .18s,opacity .25s,background .18s,border-color .18s,color .18s;font-family:'Poppins',sans-serif}
  .float-contact{gap:9px;background:var(--btn-bg);color:#fff;font-weight:600;font-size:0.875rem;padding:10px 16px}
  .float-contact.float-away{opacity:0;pointer-events:none;transform:translateY(12px)}
  .float-contact:hover{background:var(--btn-bg-hover);transform:translateY(-2px)}
  .float-top{width:46px;height:46px;background:var(--surface);color:var(--ink);border:1px solid var(--line);opacity:0;visibility:hidden;transform:translateY(8px)}
  .float-top.show{opacity:1;visibility:visible;transform:none}
  .float-top:hover{transform:translateY(-2px);border-color:var(--accent);color:var(--accent)}
  body[data-page="kontakt"] .float-contact{display:none}
  @media(max-width:600px){
    .floats{right:14px;bottom:14px;gap:10px}
    .float-contact .fc-txt{display:none}
    .float-contact{padding:0;width:52px;height:52px}
  }

  /* ── Cookie-banner ── */
  .cookie{position:fixed;left:20px;right:20px;bottom:20px;z-index:70;max-width:560px;margin:0 auto;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(10,12,20,.24);padding:22px 24px;display:none}
  .cookie.show{display:block}
  .cookie h2{font-size:1.125rem;margin-bottom:8px}
  .cookie>p{font-size:0.9062rem;color:var(--ink-soft);margin-bottom:16px;line-height:1.6}
  .cookie>p a{color:var(--accent);text-decoration:underline}
  .cookie-actions{display:flex;flex-wrap:wrap;gap:10px}
  .cookie-actions .btn{font-size:0.875rem;padding:10px 18px}
  .btn-soft{background:var(--bg-soft);color:var(--ink);border:1px solid var(--line)}
  .btn-soft:hover{border-color:var(--accent);color:var(--accent)}
  .cookie-prefs{display:none;margin:4px 0 16px;border-top:1px solid var(--line);padding-top:12px}
  .cookie-prefs.show{display:block}
  .cookie-row{display:flex;align-items:flex-start;gap:12px;padding:9px 0}
  .cookie-row input{margin-top:2px;flex:0 0 auto;width:20px;height:20px;accent-color:var(--accent)}
  .cookie-row label.c-txt{display:block;cursor:pointer;min-height:24px}
  .cookie-row .c-txt strong{display:block;font-size:0.9062rem;color:var(--ink)}
  .cookie-row .c-txt span{display:block;font-size:0.8125rem;color:var(--ink-soft);line-height:1.5}
  @media(max-width:600px){.cookie{left:12px;right:12px;bottom:12px;padding:18px}}

  /* ── Legala sidor ── */
  .legal{max-width:760px}
  .legal .updated{font-size:0.8438rem;color:var(--ink-soft);opacity:.85;margin-bottom:26px}
  .legal h2{font-size:1.4375rem;margin:34px 0 12px}
  .legal h3{font-size:1.125rem;margin:22px 0 8px}
  .legal p{font-size:1rem;color:var(--ink-soft);line-height:1.75;margin-bottom:14px}
  .legal ul{margin:4px 0 14px 22px}
  .legal li{font-size:1rem;color:var(--ink-soft);line-height:1.7;margin-bottom:6px}
  .legal a{color:var(--accent);text-decoration:underline}
  .legal table{width:100%;border-collapse:collapse;margin:8px 0 20px}
  .legal th,.legal td{text-align:left;font-size:0.9062rem;border:1px solid var(--line);padding:10px 12px;vertical-align:top;color:var(--ink-soft)}
  .legal th{background:var(--bg-soft);font-family:'Poppins',sans-serif;font-weight:600;color:var(--ink)}
  .legal .btn{margin-top:8px}
  @media(max-width:680px){
    /* Varje rad blir ett kort med kolumnrubriken före värdet (uppdrag 97). Rubrikraden finns kvar för skärmläsare. */
    .legal table,.legal tbody,.legal tr,.legal td{display:block}
    .legal thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
    .legal tr{border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;margin-bottom:12px}
    .legal td{border:0;padding:4px 0;font-size:0.9062rem}
    .legal td[data-label]::before{content:attr(data-label);content:attr(data-label) / "";display:block;font-family:'Poppins',sans-serif;font-weight:600;font-size:0.75rem;color:var(--ink)}
  }

  /* ── Footer: vänster/höger-layout i stället för centrerad stapel ── */
  .foot-min{display:grid;grid-template-columns:1fr auto;gap:4px 56px;align-items:start;text-align:left;
    grid-template-rows:auto auto auto 1fr auto auto;
    grid-template-areas:"brand nav" "contact nav" "mail nav" ". nav" "legal legal" "copy copy"}
  .foot-min .foot-wordmark{grid-area:brand;margin-bottom:18px}
  .foot-min .foot-nav{grid-area:nav;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:12px;margin:4px 0 0}
  .foot-min .foot-contact{grid-area:contact}
  .foot-min .foot-mail{grid-area:mail;justify-self:start;margin-top:6px}
  .foot-min .foot-legal a{white-space:nowrap}
  .foot-min .foot-legal{grid-area:legal;flex-wrap:wrap;row-gap:6px;margin-top:30px;border-top:1px solid rgba(255,255,255,.09);padding-top:20px}
  .foot-min .copy{grid-area:copy;margin-top:10px}
  @media(max-width:680px){
    .foot-min{grid-template-columns:minmax(0,1fr);gap:2px 0;
      grid-template-rows:none;
      grid-template-areas:"brand" "nav" "contact" "mail" "legal" "copy"}
    .foot-min .foot-nav{margin:6px 0 18px}
  }

  /* ── Statiska produktikoner i mega-menyn ── */
  .mega-card.has-viz{display:flex;align-items:flex-start;gap:12px}
  .mega-viz,.mega-card .mega-viz{flex:0 0 auto;width:26px;height:26px;display:flex;align-items:center;justify-content:center;color:var(--c,var(--accent))}
  .mega-viz svg{width:24px;height:24px;display:block}
  .mega-tx{min-width:0}

  /* ── Hero-story: animerad bakgrundsberättelse i subhero (en story per sida) ── */
  .hero-story{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;
    -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 44%,rgba(0,0,0,.22) 82%,transparent 100%);
    mask-image:linear-gradient(to bottom,#000 0%,#000 44%,rgba(0,0,0,.22) 82%,transparent 100%)}
  .hero-story svg{width:100%;height:100%;display:block}
  @media(prefers-reduced-motion:reduce){ html:not([data-motion="full"]) .hero-story{display:none} }
  html[data-motion="reduce"] .hero-story{display:none}

  /* ── Minskad rörelse: glöden i topparna (undersidor och startsidan i mobil), mjuk scrollning och metodfiguren (uppdrag 05) ── */
  @media(prefers-reduced-motion:reduce){
    html:not([data-motion="full"]){scroll-behavior:auto}
    html:not([data-motion="full"]) .subhero .glow span:nth-child(n),html:not([data-motion="full"]) .mglow span:nth-child(n){animation:none}
    html.js:not([data-motion="full"]) .reveal.in .orch .seg-fill,html.js:not([data-motion="full"]) .reveal.in .orch .dot{animation:none}
  }
  html[data-motion="reduce"]{scroll-behavior:auto}
    html[data-motion="reduce"] .subhero .glow span:nth-child(n),html[data-motion="reduce"] .mglow span:nth-child(n){animation:none}
    html.js[data-motion="reduce"] .reveal.in .orch .seg-fill,html.js[data-motion="reduce"] .reveal.in .orch .dot{animation:none}

  /* ── Tillgänglighet och illustration (uppdrag 10) ── */
  .skip{position:absolute;left:16px;top:-80px;z-index:10000;background:var(--btn-bg);color:#fff;font-weight:600;font-size:0.9375rem;padding:12px 20px;border-radius:999px;transition:top .15s}
  .skip:focus{top:14px}
  :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
  [data-dark] :focus-visible,.hero :focus-visible,footer :focus-visible{outline-color:var(--on-dark)}
  main:focus{outline:none}
  .form-note a{color:var(--accent);text-decoration:underline}
  .about-art{margin:0;background:var(--dark);border-radius:var(--radius);padding:18px;border:1px solid var(--line)}
  .about-art svg{display:block;width:100%;height:auto}
  .rf-line{fill:none;stroke:var(--sig-stroke);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .rf-dash{fill:none;stroke:var(--sig-stroke);stroke-width:2;stroke-dasharray:6 10;stroke-linecap:round}
  .rf-soft{fill:var(--sig-fill);stroke:var(--sig-stroke);stroke-width:2}
  .rf-people{fill:var(--sig-people)}.rf-tech{fill:var(--sig-tech)}.rf-process{fill:var(--sig-process)}.rf-result{fill:var(--sig-result)}
  .rf-s-process{fill:none;stroke:var(--sig-process);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
  .rf-s-result{fill:none;stroke:var(--sig-result);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
  .has-mega.esc-closed .mega{opacity:0;visibility:hidden}
  @media(prefers-reduced-motion:reduce){ html:not([data-motion="full"]) .hd-surface,html:not([data-motion="full"]) .hd-edge,html:not([data-motion="full"]) .mega,html:not([data-motion="full"]) nav.links a,html:not([data-motion="full"]) .theme-btn,html:not([data-motion="full"]) body::before,html:not([data-motion="full"]) .caret,html:not([data-motion="full"]) .floats,html:not([data-motion="full"]) .menu-btn span,html:not([data-motion="full"]) .caret-m,html:not([data-motion="full"]) .mega-card,html:not([data-motion="full"]) .mega-all,html:not([data-motion="full"]) nav.links a.nav-cta{transition:none!important} }
  html[data-motion="reduce"] .hd-surface,html[data-motion="reduce"] .hd-edge,html[data-motion="reduce"] .mega,html[data-motion="reduce"] nav.links a,html[data-motion="reduce"] .theme-btn,html[data-motion="reduce"] body::before,html[data-motion="reduce"] .caret,html[data-motion="reduce"] .floats,html[data-motion="reduce"] .menu-btn span,html[data-motion="reduce"] .caret-m,html[data-motion="reduce"] .mega-card,html[data-motion="reduce"] .mega-all,html[data-motion="reduce"] nav.links a.nav-cta{transition:none!important}
  .os-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
  .os-login{color:var(--on-dark);border-color:var(--on-dark)}.os-login:hover{background:var(--on-dark);color:var(--dark)}
  /* kö-formuläret på omnidrift-os.html (uppdrag 19) */
  .os-queue{max-width:640px}
  .os-queue h2{margin-bottom:12px}.os-queue>p{color:var(--ink-soft);margin-bottom:28px}
  /* teasersidan omnidrift-os.html (uppdrag 20): inledning med karta, vad den gör, just nu */
  .os-intro-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:56px;align-items:center}
  .os-intro-tx h2{font-size:2.125rem;margin-bottom:18px}.os-intro-tx p{font-size:1.125rem;color:var(--ink-soft);margin-bottom:14px}
  .os-karta{margin:0;padding:18px}.hv-art.os-karta svg{max-height:none}
  .os-dash{fill:none;stroke:var(--sig-stroke);stroke-width:2;stroke-dasharray:5 7;stroke-linecap:round}
  .os-lbl text{fill:var(--on-dark);font-size:1.1875rem;font-weight:600}
  .os-sys{fill:var(--sig-fill);stroke:var(--sig-tech);stroke-width:2.4}.os-sys-n{fill:var(--sig-tech);opacity:.55}
  .os-rikt{fill:var(--on-dark)}
  .os-gor{background:var(--bg-soft)}
  /* fem kort: tre på första raden, andra raden centrerad (uppdrag 21) */
  .os-lista{list-style:none;margin:0;padding:0;grid-template-columns:repeat(6,1fr)}
  .os-lista .card{grid-column:span 2}.os-lista .card:nth-child(4){grid-column:2/span 2}
  .os-nu .os-queue>p{margin-bottom:14px}.os-nu .os-queue>p:last-of-type{margin-bottom:28px}
  @media(max-width:860px){.os-intro-grid{grid-template-columns:minmax(0,1fr);gap:32px}.os-intro-tx h2{font-size:1.75rem}
    .os-lista{grid-template-columns:1fr}.os-lista .card,.os-lista .card:nth-child(4){grid-column:auto}}
  .field.choice{border:0;padding:0;margin:0 0 18px;gap:10px}
  .field.choice legend{font-size:0.875rem;font-weight:600;color:var(--ink);margin-bottom:8px;padding:0}
  .field.choice label{display:flex;align-items:center;gap:10px;font-weight:400;font-size:0.9688rem;cursor:pointer}
  .field.choice input{accent-color:var(--accent);width:18px;height:18px;margin:0}

  /* ── Juridiskt (uppdrag 11 del A) ── */
  .doc-list{list-style:none;margin:0 0 28px;padding:0;display:grid;gap:12px;max-width:820px}
  .doc-list a{display:grid;grid-template-columns:1fr auto;gap:4px 18px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);transition:border-color .18s}
  .doc-list a:hover,.doc-list a:focus-visible{border-color:var(--accent)}
  .doc-list strong{font-family:'Poppins',sans-serif;font-weight:600;font-size:1.0625rem;color:var(--ink)}
  .doc-list span{grid-column:1;font-size:0.9062rem;color:var(--ink-soft)}
  .doc-list em{grid-column:2;grid-row:1 / span 2;align-self:center;font-style:normal;font-size:0.8125rem;color:var(--ink-soft);white-space:nowrap}
  @media(max-width:640px){.doc-list a{grid-template-columns:1fr}.doc-list em{grid-column:1;grid-row:auto}}
  .doc-placeholder{font-size:1rem;color:var(--ink);background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
  .doc-versions{margin-top:34px;padding-top:6px;border-top:1px solid var(--line)}
  .doc-versions code{font-size:0.8438rem}
  .doc-lang,.doc-back{font-size:0.9062rem;color:var(--ink-soft);margin-top:18px}
  .doc-lang a,.doc-back a{color:var(--accent);text-decoration:underline}

  /* ── Berättelser i topparna (uppdrag 09 P2 och uppdrag 10): spridda delar -> sammanhang -> utfall.
     Vilan är slutbilden och syns direkt, utan JS och vid minskad rörelse. Rörelsen spelas en gång (cirka 6 s).
     Genereras av scripts/generera-berattelser.py. Bara transform, opacity och stroke-dashoffset animeras. ── */
  .subhero.dp-hero{flex-direction:column;align-items:stretch;justify-content:flex-end}
  .dp-story{position:relative;z-index:3;width:100%;max-width:1120px;margin:96px auto 0;padding:0 24px}
  .dp{display:block;width:100%;height:auto;overflow:visible}
  .dp-tall{display:none}
  @media(max-width:760px){.dp-wide{display:none}.dp-tall{display:block;max-width:420px;margin:0 auto}.dp-story{margin-top:84px;padding:0 18px}}
  .dp-hero .wrap{padding-top:18px;width:100%}
  .dp-hero .glow span:nth-child(3){display:none}
  .dp-hero .glow span{opacity:.2}
  .dp-line{fill:none;stroke:var(--sig-stroke-strong);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .dp-thin{stroke:var(--sig-stroke);stroke-width:1.5}
  .dp-card{fill:var(--sig-fill)}
  .dp-slab{fill:var(--sig-fill);stroke:var(--sig-stroke-strong)}
  .dp-plate-top{stroke:var(--sig-tech);filter:drop-shadow(0 0 6px var(--sig-tech))}
  .dp-tech{fill:var(--sig-tech)}.dp-people{fill:var(--sig-people)}.dp-process{fill:var(--sig-process)}
  .dp-trend{fill:none;stroke:var(--sig-tech);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
  .dp-src{opacity:.78}
  .dp-out{opacity:.85}
  .dp-draw{fill:none;stroke:var(--sig-stroke);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
  .dp-branch{stroke:var(--sig-stroke-strong);stroke-width:2}
  .dp-check{fill:none;stroke:var(--sig-result);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
  .dp-gearring,.dp-gearteeth{fill:none;stroke:var(--sig-process);stroke-width:5;stroke-linecap:round}
  .dp-gearring{stroke-width:3}
  .dp-arrowline{fill:none;stroke:var(--sig-process);stroke-width:3;stroke-linecap:round}
  .dp-bar,.dp-gear,.dp-person,.dp-plate{transform-box:fill-box}
  .dp-bar{transform-origin:50% 100%}.dp-gear{transform-origin:50% 50%}.dp-person{transform-origin:50% 100%}

  /* uppspelning: armed = startläget visas (pausad), play = spela en gång */
  .dp-story.armed .dp *{animation-play-state:paused}
  .dp-story.play .dp *{animation-play-state:running}
  .dp-story.play.paused .dp *{animation-play-state:paused}
  .dp-story.armed .dp-src{animation:dpSrc .9s cubic-bezier(.22,1,.36,1) both}
  .dp-story.armed .dp-s2{animation-delay:.08s}.dp-story.armed .dp-s3{animation-delay:.16s}.dp-story.armed .dp-s4{animation-delay:.24s}.dp-story.armed .dp-s5{animation-delay:.32s}
  .dp-story.armed .dp-link{animation:dpDraw 1.3s cubic-bezier(.33,0,.2,1) both}
  .dp-story.armed .dp-l1{animation-delay:.6s}.dp-story.armed .dp-l2{animation-delay:.72s}.dp-story.armed .dp-l3{animation-delay:.84s}.dp-story.armed .dp-l4{animation-delay:.96s}.dp-story.armed .dp-l5{animation-delay:1.08s}
  .dp-story.armed .dp-plate{animation:dpRise .8s cubic-bezier(.22,1,.36,1) both}
  .dp-story.armed .dp-plate1{animation-delay:1.9s}.dp-story.armed .dp-plate2{animation-delay:2.1s}.dp-story.armed .dp-plate3{animation-delay:2.3s}
  .dp-story.armed .dp-branch{animation:dpDraw 1s cubic-bezier(.33,0,.2,1) 3s both}
  .dp-story.armed .dp-out{animation:dpLight .8s ease 3.9s both}
  .dp-story.armed .dp-bar{animation:dpGrow .7s cubic-bezier(.22,1,.36,1) both}
  .dp-story.armed .dp-bar1{animation-delay:4.3s}.dp-story.armed .dp-bar2{animation-delay:4.42s}.dp-story.armed .dp-bar3{animation-delay:4.54s}.dp-story.armed .dp-bar4{animation-delay:4.66s}
  .dp-story.armed .dp-person{animation:dpPop .7s cubic-bezier(.22,1,.36,1) 4.7s both}
  .dp-story.armed .dp-check{animation:dpDraw .6s ease-out 5.3s both}
  .dp-story.armed .dp-gear{animation:dpTurn 1.8s cubic-bezier(.22,1,.36,1) 4.1s both}
  .dp-story.armed .dp-arrow{animation:dpSlide .7s cubic-bezier(.22,1,.36,1) 5.2s both}
  /* Struktur och arkitektur: roadmapens linje ritas fram, milstolparna fylls när linjen når dem och flaggan tänds sist */
  .dp-road{stroke-dasharray:1;stroke-dashoffset:0}
  .dp-ms{transform-box:fill-box;transform-origin:50% 50%}
  .dp-story.armed .dp-road{animation:dpDraw 1.3s linear 4s both}
  .dp-story.armed .dp-ms{animation:dpFill .45s cubic-bezier(.22,1,.36,1) both}
  .dp-story.armed .dp-ms1{animation-delay:4s}.dp-story.armed .dp-ms2{animation-delay:4.48s}.dp-story.armed .dp-ms3{animation-delay:4.96s}
  .dp-story.armed .dp-flag{animation:dpFlag .7s ease-out 5.4s both}
  @keyframes dpSrc{from{opacity:.4;transform:translateY(6px)}to{opacity:.78;transform:none}}
  @keyframes dpDraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes dpRise{from{opacity:.4;transform:translateY(14px)}to{opacity:1;transform:none}}
  @keyframes dpLight{from{opacity:.4}to{opacity:.85}}
  @keyframes dpGrow{from{transform:scaleY(.15)}to{transform:none}}
  @keyframes dpPop{from{opacity:.4;transform:scale(.7)}to{opacity:1;transform:none}}
  @keyframes dpTurn{from{transform:rotate(-120deg)}to{transform:none}}
  @keyframes dpSlide{from{opacity:.4;transform:translateX(-12px)}to{opacity:1;transform:none}}
  @keyframes dpFill{from{opacity:0;transform:scale(.2)}to{opacity:1;transform:none}}
  @keyframes dpFlag{from{opacity:.25}to{opacity:1}}
  .dp-result{fill:var(--sig-result)}
  .dp-node-soft{fill:var(--sig-stroke)}
  /* Så arbetar vi: stationerna tänds i tur och ordning */
  .dp-story.armed .dp-seq .dp-s1{animation-delay:0s}.dp-story.armed .dp-seq .dp-s2{animation-delay:.9s}.dp-story.armed .dp-seq .dp-s3{animation-delay:1.8s}.dp-story.armed .dp-seq .dp-s4{animation-delay:2.7s}
  .dp-story.armed .dp-seq .dp-l1{animation-delay:.45s}.dp-story.armed .dp-seq .dp-l2{animation-delay:1.35s}.dp-story.armed .dp-seq .dp-l3{animation-delay:2.25s}
  .dp-story.armed .dp-seq .dp-branch{animation-delay:3.2s}

  .dp-gearbody{fill:var(--sig-fill);stroke:var(--sig-process);stroke-width:2.6;stroke-linejoin:round}
  .dp-sticky{fill:var(--sig-fill);stroke:var(--sig-process);stroke-width:1.8;stroke-linejoin:round}
  .dp-sticky-fold{fill:var(--sig-process)}
  .dp-front{stroke:var(--dark);stroke-width:3;paint-order:stroke}
  .dp-plate-proc{stroke:var(--sig-process);filter:drop-shadow(0 0 6px var(--sig-process))}

  /* ── Om oss: den godkända grunden (uppdrag 15) ── */
  .about-prose > *{max-width:760px}
  .about-prose h2{font-size:2rem;margin-bottom:18px}
  .about-prose p{font-size:1.0625rem;line-height:1.7;color:var(--ink-soft);margin-bottom:16px;max-width:68ch}
  .about-prose a:not(.btn):not(.link-arrow){color:var(--accent);text-decoration:underline;text-underline-offset:3px}
  .about-quote{margin:30px 0 4px;padding:26px 28px;border-left:3px solid var(--accent);background:var(--bg-soft);border-radius:0 var(--radius) var(--radius) 0}
  section.method .about-quote{background:var(--surface)}
  .about-quote blockquote{margin:0}
  .about-quote blockquote p{font-size:1.125rem;line-height:1.7;color:var(--ink);margin:0;max-width:none}
  .about-quote figcaption{margin-top:16px;font-size:0.9375rem;color:var(--ink-soft)}
  .about-quote figcaption strong{color:var(--ink);font-weight:600}
  .promises{list-style:none;counter-reset:lofte;margin:8px 0 0;padding:0;display:grid;gap:14px}
  .promises li{counter-increment:lofte;position:relative;padding:16px 20px 16px 64px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);font-size:1.0625rem;line-height:1.6;color:var(--ink)}
  .promises li::before{content:counter(lofte);position:absolute;left:20px;top:14px;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-family:'Poppins',sans-serif;font-weight:600;font-size:0.9375rem;display:flex;align-items:center;justify-content:center}
  @media(max-width:600px){.about-prose h2{font-size:1.6875rem}.about-quote{padding:20px}.promises li{padding:14px 16px 14px 56px}.promises li::before{left:14px}}

  /* ── Överstrukna ord: påhittade namn och slitna ord stryks över ett i taget och ersätts av det de betyder ──
     Spelas en gång när avsnittet syns (.in från app.js). Bara transform och opacity. Utan JS och vid minskad rörelse visas slutläget. */
  .rn{max-width:560px;margin:28px 0 0;padding:26px 28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
  .rn-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:max-content 1fr;align-items:baseline;gap:14px 28px;font-size:1.1875rem;line-height:1.35}
  .rn-list li{display:contents}
  .rn-old{position:relative;justify-self:start;text-decoration:none;color:var(--ink-soft);font-family:'Poppins',sans-serif;font-weight:500}
  .rn-line{position:absolute;left:-4px;right:-4px;top:calc(50% - 1px);height:2px;border-radius:2px;opacity:.8;background:var(--ink-soft);transform-origin:0 50%;transform:rotate(-1.5deg)}
  .rn-new{text-decoration:none;color:var(--ink);font-family:'Poppins',sans-serif;font-weight:600}
  .js .rn:not(.in) .rn-line{transform:rotate(-1.5deg) scaleX(0)}
  .js .rn:not(.in) .rn-new{opacity:0;transform:translateX(-8px)}
  .js .rn .rn-line{transition:transform .7s cubic-bezier(.4,0,.2,1) calc(.6s + var(--i) * 1.4s)}
  .js .rn .rn-new{transition:opacity .7s ease-out calc(1.25s + var(--i) * 1.4s),transform .7s cubic-bezier(.2,.8,.2,1) calc(1.25s + var(--i) * 1.4s)}
  .js .rn.reveal{opacity:1;transform:none}
  @media(max-width:600px){.rn{padding:20px}.rn-list{grid-template-columns:1fr;gap:2px;font-size:1.0625rem}.rn-new{margin-bottom:12px}.rn-list li:last-child .rn-old{margin-bottom:0}}
  @media(prefers-reduced-motion:reduce){
    html.js:not([data-motion="full"]) .rn:not(.in) .rn-line{transform:rotate(-1.5deg)}html.js:not([data-motion="full"]) .rn:not(.in) .rn-new{opacity:1;transform:none}
    html.js:not([data-motion="full"]) .rn .rn-line,html.js:not([data-motion="full"]) .rn .rn-new{transition:none}
  }
  html.js[data-motion="reduce"] .rn:not(.in) .rn-line{transform:rotate(-1.5deg)}html.js[data-motion="reduce"] .rn:not(.in) .rn-new{opacity:1;transform:none}
    html.js[data-motion="reduce"] .rn .rn-line,html.js[data-motion="reduce"] .rn .rn-new{transition:none}

  /* ── Så hänger områdena ihop på tjanster.html (uppdrag 15): utgångsläget, vägen, resultatet ── */
  .hv-art{background:var(--dark);border-radius:10px;margin:-8px -6px 20px;padding:10px}
  .hv-art svg{display:block;width:100%;height:auto;max-height:170px}
  .hv-o{fill:var(--sig-fill);stroke:var(--sig-stroke-strong);stroke-width:2.2;stroke-linejoin:round}
  .hv-l{fill:none;stroke:var(--sig-stroke-strong);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
  .hv-n{fill:var(--sig-stroke-faint)}
  .hv-link{fill:none;stroke:var(--sig-stroke);stroke-width:2;stroke-linejoin:round}
  .hv-check{fill:none;stroke:var(--dark);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
  .hv-ok{fill:var(--sig-result)}
  .hv-spark{fill:var(--dark)}
  .helhet-steg{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);align-items:start;gap:32px}
  .helhet-steg > li{position:relative}
  /* ordningen i tre steg: pil mellan korten i dator (uppdrag 16) */
  .helhet-steg > li:not(:last-child)::after{content:"";position:absolute;right:-21px;top:118px;width:10px;height:10px;border-top:2px solid var(--ink-soft);border-right:2px solid var(--ink-soft);opacity:.55;transform:rotate(45deg)}
  .steg-nr{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-right:9px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:0.75rem;letter-spacing:0;vertical-align:1px}
  .helhet-steg > li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px 26px}
  .helhet-steg .label{font-size:0.8125rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
  .helhet-steg p{font-size:1rem;line-height:1.65;color:var(--ink-soft)}
  .helhet-omr{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px}
  .helhet-omr a{display:flex;align-items:center;gap:10px;font-weight:600;font-size:0.9375rem;color:var(--ink)}
  .helhet-omr a:hover{color:var(--accent)}
  .helhet{--ik-people:var(--sig-people-ljus);--ik-tech:var(--sig-tech-ljus);--ik-process:var(--sig-process-ljus);--ik-result:var(--sig-result-ljus)}
  html[data-theme="dark"] .helhet{--ik-people:var(--sig-people);--ik-tech:var(--sig-tech);--ik-process:var(--sig-process);--ik-result:var(--sig-result)}
  .helhet .hv-art{--ik-people:var(--sig-people);--ik-tech:var(--sig-tech);--ik-process:var(--sig-process);--ik-result:var(--sig-result)}
  .helhet-omr .mega-viz{width:22px;height:22px}.helhet-omr .mega-viz svg{width:20px;height:20px}
  .helhet-mer{margin-top:26px}
  .helhet-klyfta{max-width:720px;margin:-18px 0 44px}
  .helhet-klyfta p{font-size:1.125rem}
  .helhet-klyfta .kalla{font-size:0.8125rem;color:var(--ink-soft);margin-top:10px}
  .helhet-klyfta .kalla a{text-decoration:underline;text-underline-offset:2px}
  .helhet-klyfta .kalla a:hover{color:var(--accent)}
  @media(max-width:860px){.helhet-steg{grid-template-columns:1fr;gap:24px}.helhet-steg > li::after{display:none}}

  /* MUREN:START Bildserien "Muren och trappan" på Om oss (uppdrag 22). Genereras av scripts/generera-muren.py. */
  .muren .sec-head h2{margin-bottom:0}   /* samma luft under rubriken som i övriga avsnitt (uppdrag 26) */
  .muren-rad{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
  .muren-rad figure{margin:0}
  .muren-bild{background:var(--dark);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin:0 0 12px}
  .muren-bild svg{display:block;width:100%;height:auto}
  .muren-rad figcaption{display:flex;gap:10px;font-size:0.9375rem;color:var(--ink-soft);line-height:1.55}
  .muren-rad figcaption span{font-family:'Poppins',sans-serif;font-weight:600;color:var(--accent)}
  @media(max-width:1100px){.muren-rad{grid-template-columns:1fr 1fr;gap:26px}}
  @media(max-width:640px){.muren-rad{grid-template-columns:1fr}}
  .muren-bild .mark{stroke:var(--sig-stroke-strong);stroke-width:2.5}
  .muren-bild .fg .kropp,.muren-bild .fg .huvud{stroke-width:3.5}
  .muren-bild .fg .arm{fill:none;stroke-width:9;stroke-linecap:round}
  .muren-bild .fg-vd .hand,.muren-bild .fg-medarb .hand{fill:var(--sig-people)}.muren-bild .fg-konsult .hand{fill:var(--on-dark-soft)}.muren-bild .fg-omni .hand{fill:var(--sig-tech)}
  .muren-bild .fg-vd .kropp,.muren-bild .fg-vd .huvud{fill:var(--sig-people)}.muren-bild .fg-vd .arm{stroke:var(--sig-people)}
  .muren-bild .fg-medarb .kropp,.muren-bild .fg-medarb .huvud{fill:var(--dark);stroke:var(--sig-people)}.muren-bild .fg-medarb .arm{stroke:var(--sig-people)}
  .muren-bild .fg-konsult .kropp,.muren-bild .fg-konsult .huvud{fill:var(--on-dark-soft);stroke:var(--dark)}.muren-bild .fg-konsult .arm{stroke:var(--on-dark-soft)}
  .muren-bild .fg-omni .kropp,.muren-bild .fg-omni .huvud{fill:var(--sig-tech)}.muren-bild .fg-omni .arm{stroke:var(--sig-tech)}
  .muren-bild .sten,.muren-bild .tackskift{fill:var(--on-dark);fill-opacity:.12;stroke:var(--sig-stroke-strong);stroke-width:2.5}
  .muren-bild .tsten{fill:var(--on-dark);fill-opacity:.86;stroke:var(--dark);stroke-width:2.5}
  .muren-bild .glod-0{stop-color:var(--on-dark);stop-opacity:.34}.muren-bild .glod-m{stop-color:var(--on-dark);stop-opacity:.17}.muren-bild .glod-n{stop-color:var(--on-dark);stop-opacity:.05}.muren-bild .glod-1{stop-color:var(--on-dark);stop-opacity:0}
  .muren-bild .planka{fill:var(--on-dark);stroke:var(--dark);stroke-width:2}
  .muren-bild .halo{fill:var(--on-dark);opacity:.14}.muren-bild .sol{fill:var(--on-dark)}
  .muren-bild .stralar{stroke:var(--on-dark);stroke-width:3.5;stroke-linecap:round}
  .muren-bild .kulle1{fill:var(--sig-result);opacity:.6}.muren-bild .kulle2{fill:var(--sig-result);opacity:.36}.muren-bild .kulle3{fill:var(--sig-result);opacity:.18}
  .muren-bild .stig{fill:none;stroke:var(--on-dark);stroke-width:5;stroke-linecap:round;opacity:.75}
  .muren-bild .stam{stroke:var(--sig-result);stroke-width:3;stroke-linecap:round}.muren-bild .krona{fill:var(--sig-result)}
  .muren-bild .fagel{fill:none;stroke:var(--on-dark);stroke-width:2.5;stroke-linecap:round;opacity:.8}
  .muren-bild .skarm,.muren-bild .telefon{fill:var(--dark);stroke:var(--sig-tech);stroke-width:2.5}
  .muren-bild .skarm-fot,.muren-bild .prat,.muren-bild .vibb{fill:none;stroke:var(--sig-tech);stroke-width:2.5;stroke-linecap:round}
  .muren-bild .bubbla{fill:var(--dark);stroke:var(--sig-stroke-strong);stroke-width:2}
  .muren-bild .lapp{fill:var(--dark);stroke:var(--sig-stroke-strong);stroke-width:2}.muren-bild .lapp-rad{stroke:var(--sig-stroke);stroke-width:2;stroke-linecap:round}
  .muren-bild .parm{fill:var(--dark);stroke:var(--on-dark-soft);stroke-width:2}.muren-bild .parm-rygg{stroke:var(--on-dark-soft);stroke-width:3;stroke-linecap:round}
  .muren-bild .slackare,.muren-bild .slackare-topp{fill:var(--sig-process)}.muren-bild .slang{fill:none;stroke:var(--sig-process);stroke-width:3;stroke-linecap:round}
  .muren-bild .svett{fill:var(--sig-tech)}
  .muren-bild .fart,.muren-bild .vink,.muren-bild .fall,.muren-bild .skum,.muren-bild .vingel{fill:none;stroke:var(--on-dark-soft);stroke-width:3;stroke-linecap:round}
  /* MUREN:SLUT */

  /* Ersätter style=-attribut, så att CSP klarar sig utan 'unsafe-inline' (uppdrag 39). !important ger samma företräde som inline-stilen hade. */
  .c-ik-tech{--c:var(--ik-tech)!important}.c-ik-result{--c:var(--ik-result)!important}.c-ik-process{--c:var(--ik-process)!important}.c-ik-people{--c:var(--ik-people)!important}
  .fw-700{font-weight:700!important}.fw-400{font-weight:400!important}
  .mt-8{margin-top:8px!important}.mt-16{margin-top:16px!important}.mt-18{margin-top:18px!important}.mt-34{margin-top:34px!important}.mt-40{margin-top:40px!important}
  .lank-ljusbla{color:#9FC0F2!important}.epost-lank{color:var(--accent)!important;font-size:1rem!important}.sw-5{stroke-width:5!important}
  .stroke-o1{stroke:var(--o1)!important}.stroke-o2{stroke:var(--o2)!important}.stroke-o3{stroke:var(--o3)!important}.stroke-o4{stroke:var(--o4)!important}
  .stop-o1{stop-color:var(--o1)!important}.stop-o2{stop-color:var(--o2)!important}.stop-o3{stop-color:var(--o3)!important}.stop-o4{stop-color:var(--o4)!important}
  .dot-o1{fill:var(--o1)!important;animation-delay:.55s!important}.dot-o2{fill:var(--o2)!important;animation-delay:1.15s!important}.dot-o3{fill:var(--o3)!important;animation-delay:1.8s!important}.dot-o4{fill:var(--o4)!important;animation-delay:2.45s!important}
  .i-0{--i:0!important}.i-1{--i:1!important}.i-2{--i:2!important}.i-3{--i:3!important}.i-4{--i:4!important}.i-5{--i:5!important}

  /* Inställningar för tillgänglighet (uppdrag 58). Knappen i sidhuvudet och dialogen som app.js bygger. */
  .a11y-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:none;border:0;cursor:pointer;color:var(--hd);transition:color .2s cubic-bezier(.2,.8,.2,1)}
  .a11y-btn[hidden]{display:none}
  @media(max-width:374px){.nav-right{gap:4px}.sprakval summary{padding:0 4px}.a11y-btn,.theme-btn{width:30px}.menu-btn{width:36px;padding:6px;margin-right:-6px}}   /* sidhuvudet ryms i 320 px, klickytorna minst 30 px och menystrecken i linje med innehållet (uppdrag 103) */
  .a11y-dlg{width:min(27rem,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto;margin:auto;padding:1.5rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);box-shadow:0 24px 60px rgba(14,15,22,.28)}
  .a11y-dlg::backdrop{background:rgba(14,15,22,.5)}
  .a11y-dlg :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  .a11y-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
  .a11y-top h2{margin:0;font-family:'Poppins',system-ui,sans-serif;font-weight:600;font-size:1.25rem;line-height:1.3}
  .a11y-x{flex:none;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin:-.5rem -.5rem 0 0;padding:0;border:0;border-radius:50%;background:none;color:var(--ink);cursor:pointer}
  .a11y-x:hover{background:var(--bg-soft)}
  .a11y-grp{min-width:0;margin:0 0 1.25rem;padding:0;border:0}
  .a11y-lbl{display:block;margin-bottom:.5rem;padding:0;font-weight:600;font-size:.9375rem}
  .a11y-fs{display:flex;align-items:center;gap:.5rem}
  .a11y-fs input{flex:1 1 auto;min-width:0;min-height:2.75rem;margin:0;accent-color:var(--accent)}
  .a11y-step{flex:none;min-width:2.75rem;height:2.75rem;padding:0 .5rem;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font-weight:600;font-size:.875rem;cursor:pointer}
  .a11y-step-stor{font-size:1.125rem}
  .a11y-step:hover,.a11y-seg label:hover span{border-color:var(--accent)}
  .a11y-rad{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}
  .a11y-varde{flex:none;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:.9375rem}
  .a11y-seg{display:flex;flex-wrap:wrap;gap:.5rem}
  .a11y-seg label{position:relative;display:flex}
  .a11y-seg input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
  .a11y-seg span{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 1rem;border:1px solid var(--line);border-radius:999px;font-size:.9375rem}
  .a11y-seg input:checked+span{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft);font-weight:600}
  .a11y-seg input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
  .a11y-chk{display:flex;align-items:center;gap:.75rem;min-height:2.75rem;font-size:.9375rem;cursor:pointer}
  .a11y-chk input{flex:none;width:1.25rem;height:1.25rem;margin:0;accent-color:var(--accent)}
  .a11y-fot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}
  .a11y-fot p{flex:1 1 12rem;margin:0;font-size:.8125rem;color:var(--ink-soft)}
  .a11y-reset{min-height:2.75rem;padding:0 1.25rem;border:1px solid var(--accent);border-radius:999px;background:none;color:var(--accent);font-weight:600;font-size:.9375rem;cursor:pointer}
  .a11y-reset:hover{background:var(--accent-soft)}
  /* Större rad- och ordavstånd enligt WCAG 1.4.12 (textavstånd) */
  html[data-spacing] body :not(svg):not(svg *):not(header *){line-height:1.5!important;letter-spacing:.12em!important;word-spacing:.16em!important}
  html[data-spacing] body p:not(:last-child){margin-bottom:2em}
  html[data-underline] a:not(.nav-cta):not(.btn):not([class*="float"]){text-decoration:underline!important;text-underline-offset:.18em}
  /* Förstorad text (style="font-size" på <html>): långa ord bryts hellre än att sidan rullar i sidled (WCAG 1.4.10) */
  html[style*="font-size"] body{overflow-wrap:break-word;hyphens:auto}
