:root{
  --paper:#F2F2F2;
  --panel:#E8E8EA;
  --ink:#191923;
  --ink-60:rgba(25,25,35,.62);
  --ink-15:rgba(25,25,35,.16);
  --dusk:#373741;
  --gray-light:#D2D2D4;
  --green:#50F09B;
  --green-hover:#3BDC86;
  --green-deep:#0E9755;
  --radius:4px;
  --maxw:1180px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
body{
  font-family:'Archivo',sans-serif;
  font-variation-settings:'wdth' 100;
  background:var(--paper);
  color:var(--ink);
  font-size:17px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit}
.mono{font-family:'IBM Plex Mono',monospace}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* ---------- eyebrows & headings ---------- */
.eyebrow{
  font-family:'IBM Plex Mono',monospace;
  font-size:13px;letter-spacing:.12em;
  color:var(--dusk);
  display:flex;align-items:center;gap:10px;
  margin-bottom:18px;
}
.eyebrow::before{
  content:"";width:8px;height:8px;border-radius:50%;
  background:var(--dusk);flex:none;
}
h1,h2,h3{
  font-variation-settings:'wdth' 118;
  font-weight:640;
  letter-spacing:-.015em;
  line-height:1.08;
  text-wrap:balance;
}
h2{font-size:clamp(28px,3.6vw,42px);margin-bottom:16px}
h3{font-size:19px;font-variation-settings:'wdth' 112;line-height:1.25}
.lede{color:var(--ink-60);max-width:56ch}

/* ---------- statusremsa (signatur) ---------- */
.statusbar{
  background:var(--ink);color:var(--paper);
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;letter-spacing:.10em;
  display:flex;justify-content:space-between;gap:16px;
  padding:7px 24px;
}
.statusbar .dot{color:var(--gray-light)}
.statusbar span:last-child{opacity:.75}
@media(max-width:640px){.statusbar span:last-child{display:none}}

/* ---------- navigation ---------- */
header.nav{
  position:sticky;top:0;z-index:50;
  background:var(--paper);
  border-bottom:1.5px solid var(--ink);
}
.nav-inner{
  max-width:var(--maxw);margin:0 auto;padding:0 24px;
  display:flex;align-items:center;gap:28px;height:64px;
}
.wordmark{display:inline-flex;align-items:center;text-decoration:none}
.logo{
  display:block;height:32px;width:auto;
  --l-txt:var(--ink);--l-base:var(--ink);--l-bar:var(--green);
}
footer .logo{height:34px;--l-txt:var(--paper);--l-base:#828288}
.nav-links{display:flex;gap:24px;align-items:center;margin-left:auto}
.nav-links a{
  text-decoration:none;font-size:15px;font-weight:500;
  padding:4px 0;border-bottom:2px solid transparent;
}
.nav-links a:hover{border-bottom-color:var(--dusk)}
.nav-links a.btn,.nav-cta a.btn{padding:8px 14px;border-bottom:1.5px solid var(--ink)}
.nav-links a.btn:hover,.nav-cta a.btn:hover{border-bottom:1.5px solid var(--ink)}
.nav-cta{display:flex;gap:10px;align-items:center;margin-left:8px}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Archivo',sans-serif;font-weight:600;font-size:15px;
  padding:11px 20px;border-radius:var(--radius);
  border:1.5px solid var(--ink);cursor:pointer;text-decoration:none;
  transition:background .15s,color .15s;
  background:transparent;color:var(--ink);
}
.btn-primary{background:var(--green);color:var(--ink);border-color:var(--ink);font-weight:650}
.btn-primary:hover{background:var(--green-hover)}
.hero-actions .btn-primary,.form .btn-primary{padding:13px 24px;font-size:16px;box-shadow:4px 4px 0 rgba(25,25,35,.15)}
.btn-ghost:hover{background:var(--panel)}
.btn-small{padding:8px 14px;font-size:14px}
:focus-visible{outline:3px solid var(--dusk);outline-offset:2px}
.takeover :focus-visible,.usp :focus-visible,footer :focus-visible{outline-color:var(--gray-light)}

.nav-toggle{display:none}
.hamburger{display:none}
@media(max-width:960px){
  .nav-links{
    display:none;position:absolute;top:64px;left:0;right:0;
    background:var(--paper);border-bottom:1.5px solid var(--ink);
    flex-direction:column;align-items:flex-start;padding:20px 24px;gap:16px;
  }
  .nav-toggle:checked ~ .nav-links{display:flex}
  .hamburger{
    display:flex;flex-direction:column;gap:5px;margin-left:auto;
    cursor:pointer;padding:10px;
  }
  .hamburger span{width:22px;height:2px;background:var(--ink)}
  .nav-cta{margin-left:0}
  .nav-cta .btn-ghost{display:none}
}

/* ---------- hero ---------- */
.hero{padding:72px 0 64px;border-bottom:1.5px solid var(--ink)}
.hero-grid{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:56px;align-items:center;
}
.hero h1{font-size:clamp(40px,6vw,76px);font-weight:720;font-variation-settings:'wdth' 120;letter-spacing:-.025em;line-height:1.02;margin-bottom:26px}
.hero .lede{margin-bottom:30px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.microtext{font-size:14px;color:var(--ink-60);margin-bottom:22px}
.meta-chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;
  border:1px solid var(--ink-15);border-radius:var(--radius);
  padding:6px 10px;background:var(--panel);
}

/* instrumentpanel med nyckeltal */
.panel-card{
  border:1.5px solid var(--ink);border-radius:var(--radius);
  background:#fff;overflow:hidden;
  box-shadow:6px 6px 0 var(--panel);
}
.panel-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:10px 16px;border-bottom:1.5px solid var(--ink);
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.10em;
}
.panel-head .live{display:flex;align-items:center;gap:7px;color:var(--dusk)}
.panel-head .live::before{
  content:"";width:7px;height:7px;border-radius:50%;background:var(--green-deep);
  animation:pulse 2.4s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.stat{
  padding:20px 16px 18px;
  border-bottom:1px solid var(--ink-15);
}
.stat:last-child{border-bottom:none}
.stat-label{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.11em;color:var(--ink-60);margin-bottom:6px;
}
.stat-value{
  display:flex;align-items:baseline;gap:10px;
}
.stat-value strong{
  font-size:clamp(30px,3.2vw,40px);font-weight:700;
  font-variation-settings:'wdth' 118;letter-spacing:-.02em;line-height:1;
}
.stat-value span{font-size:14.5px;color:var(--ink-60)}
.stat-gauge{
  height:5px;background:var(--ink);border-radius:2.5px;
  margin-top:12px;position:relative;overflow:hidden;
}
.stat-gauge i{
  position:absolute;inset:0;right:auto;background:var(--green);border-radius:2.5px;
}
.stat-gauge i.g1{width:78%}.stat-gauge i.g2{width:64%}.stat-gauge i.g3{width:90%}

@media(max-width:860px){
  .hero{padding:48px 0}
  .hero-grid{grid-template-columns:1fr;gap:36px}
}

/* ---------- sektioner allmänt ---------- */
section{padding:76px 0}
.section-line{border-bottom:1.5px solid var(--ink)}
@media(max-width:640px){section{padding:56px 0}}

/* ---------- kundrad ---------- */
.clients{padding:36px 0;border-bottom:1.5px solid var(--ink);background:var(--panel)}
.clients .eyebrow{margin-bottom:16px}
.client-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  border:1px solid var(--ink-15);border-radius:var(--radius);
  background:var(--paper);overflow:hidden;
}
.client-grid div{
  font-family:'IBM Plex Mono',monospace;font-size:13.5px;letter-spacing:.06em;
  padding:16px 12px;text-align:center;color:var(--ink-60);
  border-right:1px solid var(--ink-15);border-bottom:1px solid var(--ink-15);
}
.client-grid div:nth-child(4n){border-right:none}
.client-grid div:nth-child(n+5){border-bottom:none}
.client-grid div{display:flex;align-items:center;justify-content:center}
.client-grid img{height:44px;width:auto;max-width:80%;
  filter:grayscale(1);opacity:.65;transition:filter .2s,opacity .2s}
.client-grid div:hover img{filter:none;opacity:1}
@media(max-width:640px){
  .client-grid{grid-template-columns:repeat(2,1fr)}
  .client-grid div:nth-child(4n){border-right:1px solid var(--ink-15)}
  .client-grid div:nth-child(2n){border-right:none}
  .client-grid div:nth-child(n+5){border-bottom:1px solid var(--ink-15)}
  .client-grid div:nth-child(n+7){border-bottom:none}
}

/* ---------- öppna system ---------- */
.usp-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:56px}
.principles{display:flex;flex-direction:column;border-top:1.5px solid var(--ink)}
.principle{
  display:grid;grid-template-columns:64px 1fr;gap:18px;
  padding:22px 0;border-bottom:1.5px solid var(--ink);align-items:start;
}
.principle .num{
  font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--dusk);
  border:1.5px solid var(--dusk);border-radius:var(--radius);
  width:46px;height:46px;display:flex;align-items:center;justify-content:center;
}
.principle p{font-size:18px;font-weight:500;line-height:1.4;padding-top:9px}
@media(max-width:860px){.usp-grid{grid-template-columns:1fr;gap:32px}}

/* USP kontrastvänd: dusk, stora numrerade principer */
.usp{background:var(--dusk);color:var(--paper)}
.usp .eyebrow{color:var(--gray-light)}
.usp .eyebrow::before{background:var(--gray-light)}
.usp .lede{color:rgba(242,242,242,.72)}
.usp .principles{border-top:1.5px solid rgba(242,242,242,.35)}
.usp .principle{grid-template-columns:110px 1fr;padding:26px 0;border-bottom:1.5px solid rgba(242,242,242,.35)}
.usp .principle .num{
  border:none;width:auto;height:auto;display:block;
  font-size:clamp(34px,4.6vw,52px);line-height:1;letter-spacing:0;
  color:var(--gray-light);
}
.usp .principle p{font-size:clamp(18px,2vw,21px);color:var(--paper);padding-top:6px}
@media(max-width:640px){.usp .principle{grid-template-columns:72px 1fr}}

/* ---------- tjänster ---------- */
.services{background:var(--panel)}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
.service-card{
  background:var(--paper);border:1.5px solid var(--ink);border-radius:var(--radius);
  padding:24px;display:flex;flex-direction:column;gap:14px;
  box-shadow:5px 5px 0 rgba(25,25,35,.08);
}
.service-card .num{
  font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--dusk);letter-spacing:.08em;
}
.tags{display:flex;flex-wrap:wrap;gap:7px}
.tags span{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.05em;
  border:1px solid var(--ink-15);border-radius:3px;padding:4px 8px;background:var(--panel);
}
.service-card p{font-size:15px;color:var(--ink-60)}
.specialist{
  margin-top:34px;padding-top:22px;border-top:1px solid var(--ink-15);
  display:flex;flex-wrap:wrap;gap:10px 22px;align-items:baseline;
}
.specialist .eyebrow{margin:0}
.specialist .eyebrow::before{display:none}
.specialist p{font-size:14.5px;color:var(--ink-60);flex:1;min-width:280px}
.arrow-link{
  font-weight:600;font-size:15px;text-decoration:none;
  border-bottom:2px solid var(--dusk);padding-bottom:2px;white-space:nowrap;
}
.arrow-link:hover{color:var(--dusk)}
@media(max-width:860px){.service-grid{grid-template-columns:1fr}}

/* ---------- övertagande (mörk sektion) ---------- */
.takeover{background:var(--ink);color:var(--paper)}
.takeover .eyebrow{color:var(--gray-light)}
.takeover .eyebrow::before{background:var(--gray-light)}
.takeover .lede{color:rgba(242,242,242,.65)}
.steps{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:48px;
  counter-reset:steg;position:relative;
}
.step{
  padding:26px 22px 26px 0;position:relative;
  border-top:1px solid rgba(242,242,242,.25);
}
.step::before{
  content:"";position:absolute;top:-6px;left:0;
  width:11px;height:11px;border-radius:50%;
  background:var(--green);border:2px solid var(--ink);
}
.step .num{
  font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.10em;
  color:var(--gray-light);display:block;margin-bottom:10px;
}
.step h3{margin-bottom:8px;color:var(--paper)}
.step p{font-size:15px;color:rgba(242,242,242,.7)}
@media(max-width:860px){
  .steps{grid-template-columns:1fr}
  .step{border-top:none;border-left:1px solid rgba(242,242,242,.25);padding:0 0 30px 24px}
  .step::before{top:0;left:-6px}
}

/* ---------- kundcase ---------- */
.case-tag{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.10em;
  color:var(--ink-60);border:1px dashed var(--ink-15);border-radius:3px;
  padding:5px 10px;display:inline-block;margin-bottom:20px;
}
.case-card{
  border:1.5px dashed var(--ink-15);border-radius:var(--radius);
  padding:28px;display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:32px;
  background:#fff;
}
.case-card .ph{
  background:var(--panel);border-radius:var(--radius);
  min-height:200px;display:flex;align-items:center;justify-content:center;
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.1em;color:var(--ink-60);
}
.case-fields{display:flex;flex-direction:column;gap:14px}
.case-fields .row{border-bottom:1px solid var(--ink-15);padding-bottom:12px}
.case-fields .k{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.10em;
  color:var(--dusk);display:block;margin-bottom:3px;
}
.case-fields .v{font-size:14.5px;color:var(--ink-60)}
@media(max-width:860px){.case-card{grid-template-columns:1fr}}

/* ---------- om propella ---------- */
.about{background:var(--panel)}
.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}
blockquote{
  border-left:4px solid var(--dusk);padding:6px 0 6px 22px;
  font-size:clamp(20px,2.4vw,26px);font-weight:560;
  font-variation-settings:'wdth' 110;line-height:1.35;
  margin-bottom:16px;
}
.attribution{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.11em;color:var(--ink-60);
}
@media(max-width:860px){.about-grid{grid-template-columns:1fr;gap:32px}}

/* ---------- jobb ---------- */
.jobs-list{border-top:1.5px solid var(--ink);margin-top:36px}
.job-row{
  display:grid;grid-template-columns:1fr auto auto;gap:20px;align-items:center;
  padding:18px 4px;border-bottom:1.5px solid var(--ink);
  text-decoration:none;transition:background .15s;
}
.job-row:hover{background:var(--panel)}
.job-row strong{font-weight:600;font-size:17px}
.job-row .meta{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--ink-60);letter-spacing:.06em}
.job-row .go{color:var(--dusk);font-weight:700}
.jobs-more{margin-top:26px}
@media(max-width:640px){
  .job-row{grid-template-columns:1fr auto}
  .job-row .meta{grid-column:1;font-size:12px}
  .job-row .go{grid-row:1;grid-column:2}
}

/* ---------- kontakt ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:48px;margin-top:12px}
.person-card{
  border:1.5px solid var(--ink);border-radius:var(--radius);background:#fff;
  overflow:hidden;box-shadow:6px 6px 0 var(--panel);max-width:400px;
}
.person-photo{
  background:var(--panel);aspect-ratio:5/4;
  display:flex;align-items:center;justify-content:center;
  border-bottom:1.5px solid var(--ink);
}
.person-info{padding:18px 20px}
.person-info strong{display:block;font-size:18px;margin-bottom:2px}
.person-info .role{font-size:14px;color:var(--ink-60);margin-bottom:12px}
.person-info a.tel{
  font-family:'IBM Plex Mono',monospace;font-size:16px;font-weight:500;
  text-decoration:none;border-bottom:2px solid var(--dusk);
}
.person-info .promise{font-size:14px;color:var(--ink-60);margin-top:12px}
.form{display:flex;flex-direction:column;gap:18px}
.field label{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.11em;
  color:var(--dusk);display:block;margin-bottom:7px;
}
.field input,.field textarea{
  width:100%;font-family:'Archivo',sans-serif;font-size:16px;
  padding:13px 14px;border:1.5px solid var(--ink);border-radius:var(--radius);
  background:#fff;color:var(--ink);
}
.field textarea{min-height:110px;resize:vertical}
.field input:focus,.field textarea:focus{outline:3px solid var(--dusk);outline-offset:1px}
.form .btn{align-self:flex-start}
.contact-direct{
  display:flex;flex-direction:column;align-items:flex-start;gap:18px;
  border:1.5px solid var(--ink);border-radius:var(--radius);
  background:#fff;padding:24px;
}
.contact-direct .btn-primary{padding:13px 24px;font-size:16px}
.contact-direct a.tel{
  font-family:'IBM Plex Mono',monospace;font-size:16px;font-weight:500;
  text-decoration:none;border-bottom:2px solid var(--dusk);
}
.contact-direct p{font-size:14.5px;color:var(--ink-60);max-width:46ch}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr}}

/* ---------- serviceanmälan ---------- */
.service-report{
  background:var(--panel);border-top:1.5px solid var(--ink);
  padding:30px 0;
}
.service-report .inner{
  display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
}
.service-report p{font-size:15px;color:var(--ink-60);display:flex;align-items:center;gap:12px}
.service-report p::before{
  content:"";width:8px;height:8px;border-radius:2px;background:var(--dusk);flex:none;
}

/* ---------- footer ---------- */
footer{background:var(--ink);color:var(--paper);padding:56px 0 28px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.3fr;gap:40px;margin-bottom:44px}
.footer-desc{font-size:15px;color:rgba(242,242,242,.6);max-width:34ch;margin-top:12px}
.footer-col h4{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.11em;
  font-weight:500;color:var(--gray-light);margin-bottom:14px;
}
.footer-col a,.footer-col span{
  display:block;font-size:14.5px;color:rgba(242,242,242,.8);
  text-decoration:none;margin-bottom:9px;
}
.footer-col a:hover{color:var(--paper);text-decoration:underline}
.legal{
  border-top:1px solid rgba(242,242,242,.2);padding-top:20px;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;
  color:rgba(242,242,242,.5);
}
.legal a{color:inherit}
.legal-entities{
  margin-top:14px;font-family:'IBM Plex Mono',monospace;
  font-size:11.5px;letter-spacing:.05em;line-height:1.7;
  color:rgba(242,242,242,.42);
}
@media(max-width:860px){.footer-grid{grid-template-columns:1fr;gap:28px}}

/* ---------- undersida tjänster ---------- */
/* Undersidan /tjanster/ — endast tillägg, inga befintliga regler berörda. */
.page-head{padding:68px 0 56px}
.page-head h1{
  font-size:clamp(38px,5.2vw,62px);font-weight:720;
  font-variation-settings:'wdth' 120;letter-spacing:-.025em;line-height:1.03;
  margin-bottom:22px;
}
.tj-area-alt{background:var(--panel)}
.tj-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px}
.tj-head{display:flex;flex-direction:column;gap:12px}
.tj-head .num{
  font-family:'IBM Plex Mono',monospace;
  font-size:clamp(34px,4.6vw,52px);line-height:1;letter-spacing:0;
  color:var(--dusk);
}
.tj-body .lede{max-width:60ch}
.tj-included{
  font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.10em;
  color:var(--dusk);margin-top:26px;padding-top:18px;
  border-top:1px solid var(--ink-15);
}
.tj-list{list-style:none;margin-top:14px;display:flex;flex-direction:column;gap:11px}
.tj-list li{
  position:relative;padding-left:24px;
  font-size:15.5px;color:var(--ink-60);line-height:1.5;
}
.tj-list li::before{
  content:"";position:absolute;left:0;top:.6em;
  width:8px;height:8px;border-radius:2px;background:var(--dusk);
}
.tj-specialist{padding:40px 0;background:var(--panel)}
.tj-specialist .specialist{margin-top:0;padding-top:0;border-top:none}
.tj-cta{padding:64px 0}
.tj-cta-card{
  border:1.5px solid var(--ink);border-radius:var(--radius);background:#fff;
  box-shadow:6px 6px 0 var(--panel);
  padding:28px;display:flex;align-items:center;justify-content:space-between;
  gap:32px;flex-wrap:wrap;
}
.tj-cta-card p{
  font-size:clamp(18px,2vw,22px);font-weight:500;line-height:1.4;
  max-width:52ch;text-wrap:pretty;
}
.tj-cta-card .btn-primary{padding:13px 24px;font-size:16px;flex:none}
@media(max-width:860px){
  .tj-grid{grid-template-columns:1fr;gap:26px}
  .tj-head{flex-direction:row;align-items:baseline;gap:16px}
}
@media(max-width:640px){
  .page-head{padding:48px 0 40px}
  .tj-cta{padding:48px 0}
  .tj-cta-card{padding:22px}
}

/* ---------- undersida karriär ---------- */
/* Undersidan /karriar/ — endast tillägg, inga befintliga regler berörda. */
.ka-area-alt{background:var(--panel)}
.ka-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px}
.ka-head h2{margin-bottom:0}
.ka-head .lede{margin-top:16px;max-width:34ch}
.ka-list{list-style:none;display:flex;flex-direction:column;gap:18px}
.ka-list li{
  position:relative;padding-left:24px;
  font-size:15.5px;color:var(--ink-60);line-height:1.55;
}
.ka-list li::before{
  content:"";position:absolute;left:0;top:.6em;
  width:8px;height:8px;border-radius:2px;background:var(--dusk);
}
.ka-list strong{color:var(--ink);font-weight:640}
.ka-roles li{font-size:16px}
.ka-roles strong{font-variation-settings:'wdth' 112}
.ka-apply{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.ka-apply p{font-size:16px;color:var(--ink-60);max-width:58ch}
.ka-apply .btn-primary{
  margin-top:8px;padding:13px 24px;font-size:16px;
  font-family:'IBM Plex Mono',monospace;font-weight:500;letter-spacing:.02em;
}
@media(max-width:860px){
  .ka-grid{grid-template-columns:1fr;gap:26px}
  .ka-head .lede{max-width:56ch}
}

/* ---------- footerbadges ---------- */
/* Medlemskaps- och partnermärken i footern. Endast tillägg. */
.footer-badges{margin-bottom:36px}
.footer-badges h4{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.11em;
  font-weight:500;color:var(--gray-light);margin-bottom:18px;
}
.badge-row{display:flex;align-items:center;gap:32px;flex-wrap:wrap}
/* Certifieringsmärken visas i original — ingen gråskala, ingen nedtoning.
   Höjden är den fasta storleken; bredden följer varje märkes egen balans.
   Filerna är 156 px höga (3x) för skärpa på retina. */
.badge-row img{height:52px;width:auto;display:block}

/* ---------- porträtt ---------- */
/* Porträttet fyller person-kortets bildyta. Källbilden är 900x720 (5:4),
   samma förhållande som .person-photo, så cover beskär inte i praktiken —
   den skyddar mot att en ersättningsbild med annat format skevar. */
.person-photo img{width:100%;height:100%;object-fit:cover;display:block}

/* ---------- kontaktkort ---------- */
/* "Vad händer sen?" i .contact-direct. Rubriknivån h4 saknar egen stil i
   basen (h1,h2,h3-regeln omfattar den inte), så typografin sätts explicit —
   personkortets namnrubrik i mindre grad. Hårlinjen ovanför skiljer
   uppföljningen från kontaktvägarna och motiverar kortets 18px flex-gap
   just där; negativ margin-bottom drar i stället rubriken närmare sitt
   eget stycke, som den hör till. width:100% behövs eftersom kortet är
   align-items:flex-start — utan den spänner linjen bara över texten. */
.contact-direct h4{
  width:100%;padding-top:18px;border-top:1px solid var(--ink-15);
  font-size:15.5px;font-weight:640;font-variation-settings:'wdth' 112;
  line-height:1.25;letter-spacing:-.005em;color:var(--ink);
  margin-bottom:-8px;
}
