/* Nordpunkt IT — A5 clinical-soft, palett linne-indigo
   Kontrast mätt mot faktisk bakgrund. Lägsta uppmätta textpar: 5,09:1
   (--dovare #54596b på --yta #e6e1d5). Accenten #33417a klarar 7,39:1 som
   liten text på den mörkaste ytan och behöver ingen mörkad textvariant. */

:root{
  --linne:#f4f1ea;
  --yta:#e6e1d5;
  --kort:#fdfcf8;
  --blck:#20222c;
  --dov:#4a4e5e;
  --dovare:#54596b;
  --indigo:#33417a;
  --indigo-djup:#26305c;
  --lila:#c9cde6;
  --gron:#2f6446;
  --miss:#9d2f22;
  --linje:rgba(32,34,44,.15);
  --linje-svag:rgba(32,34,44,.09);
  --rund:18px;
}

*,*::before,*::after{box-sizing:border-box}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:96px;
}

body{
  margin:0;
  background:var(--linne);
  color:var(--blck);
  font-family:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:clamp(1rem,.97rem + .18vw,1.075rem);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}

img,svg{max-width:100%}
a{color:var(--indigo)}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}

h1,h2,h3,.klocka__siffror,.lofte__horisont,.lofte__tid,.niva__tal,
.overrad,.rytm dd,.varde dd,.rost__mark,.byte__tid,.marke__namn{
  font-family:"Bebas Neue","Barlow Condensed",Impact,sans-serif;
  font-weight:400;
  letter-spacing:.015em;
  line-height:1.02;
  overflow-wrap:break-word;
}

h1,h2,h3{margin:0 0 .4em}

:focus-visible{
  outline:3px solid var(--indigo);
  outline-offset:3px;
  border-radius:4px;
}

.omslag{
  width:100%;
  max-width:1180px;
  margin-inline:auto;
  padding-inline:clamp(18px,5vw,40px);
}

.hoppa{
  position:absolute;left:0;top:0;z-index:300;
  transform:translateY(-130%);
  background:var(--indigo);color:#fff;
  padding:14px 20px;border-radius:0 0 10px 0;
  font-weight:600;text-decoration:none;
}
.hoppa:focus{transform:none}

.overrad{
  font-size:.95rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--indigo);
  margin:0 0 .55em;
}

/* ---------- knappar ---------- */
.knapp{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:52px;padding:0 28px;
  border-radius:999px;border:1.6px solid transparent;
  font-family:inherit;font-size:1.02rem;font-weight:600;
  text-decoration:none;cursor:pointer;
  transition:background-color .25s ease,color .25s ease,border-color .25s ease;
}
.knapp--fyll{background:var(--indigo);color:#fff;border-color:var(--indigo)}
.knapp--fyll:hover{background:var(--indigo-djup);border-color:var(--indigo-djup)}
.knapp--kant{background:transparent;color:var(--indigo);border-color:var(--indigo)}
.knapp--kant:hover{background:var(--indigo);color:#fff}
.knapp--bred{width:100%}

/* ---------- header ---------- */
.topp{
  position:sticky;top:0;z-index:120;
  background:var(--linne);
  border-bottom:1px solid var(--linje);
}
.topp__inre{
  display:flex;align-items:center;justify-content:space-between;
  gap:18px;min-height:76px;
}

.marke{display:flex;align-items:center;gap:11px;min-height:44px;text-decoration:none;color:var(--blck)}
.marke__ring{
  width:26px;height:26px;border-radius:50%;
  border:2.6px solid var(--indigo);
  position:relative;flex:0 0 auto;
}
.marke__ring::after{
  content:"";position:absolute;left:50%;top:-9px;
  width:9px;height:9px;margin-left:-4.5px;
  border-radius:50%;background:var(--indigo);
}
.marke__ord{display:flex;flex-direction:column;line-height:1}
.marke__namn{font-size:1.62rem;text-transform:uppercase;color:var(--blck)}
.marke__under{font-size:.76rem;letter-spacing:.13em;text-transform:uppercase;color:var(--dovare);margin-top:3px}

.hamburgare{
  display:none;align-items:center;gap:9px;
  min-height:46px;min-width:46px;padding:0 12px;
  background:transparent;border:1.5px solid var(--linje);border-radius:10px;
  color:var(--blck);font-family:inherit;font-size:.95rem;font-weight:600;
  cursor:pointer;
}
.hamburgare__strek{
  display:block;width:19px;height:2px;background:var(--indigo);border-radius:2px;
  margin-right:-15px;position:relative;
}
.hamburgare__strek:nth-of-type(1){top:-6px}
.hamburgare__strek:nth-of-type(3){top:6px}
.hamburgare__ord{margin-left:14px}

.meny{display:flex;align-items:center;gap:26px}
.meny__lista{display:flex;align-items:center;gap:22px;list-style:none;margin:0;padding:0}
.meny__lista a{
  display:inline-flex;align-items:center;min-height:44px;
  color:var(--blck);text-decoration:none;font-weight:500;font-size:1rem;
  border-bottom:2px solid transparent;
}
.meny__lista a:hover{color:var(--indigo);border-bottom-color:var(--indigo)}
.meny__ring{
  display:inline-flex;align-items:center;min-height:46px;padding:0 18px;
  background:var(--indigo);color:#fff;border-radius:999px;
  text-decoration:none;font-weight:600;white-space:nowrap;
}
.meny__ring:hover{background:var(--indigo-djup)}

@media (max-width:899px){
  .hamburgare{display:inline-flex}
  .meny{
    position:absolute;top:100%;left:0;right:0;
    display:none;flex-direction:column;align-items:stretch;gap:0;
    background:var(--kort);
    border-bottom:1px solid var(--linje);
    box-shadow:0 20px 44px rgba(32,34,44,.16);
    padding:8px clamp(18px,5vw,40px) 22px;
  }
  html.meny-oppen .meny{display:flex}
  .meny__lista{flex-direction:column;align-items:stretch;gap:0}
  .meny__lista li{border-bottom:1px solid var(--linje-svag)}
  .meny__lista a{min-height:54px;width:100%;border-bottom:none;font-size:1.08rem}
  .meny__ring{margin-top:18px;justify-content:center;min-height:52px}
}

html.meny-oppen,html.meny-oppen body{overflow:hidden}

/* ---------- hero ---------- */
.hero{padding-block:clamp(46px,7vw,84px) clamp(56px,8vw,96px)}
.hero__inre{text-align:center;display:flex;flex-direction:column;align-items:center}
.hero__rubrik{
  font-size:clamp(3rem,10.5vw,6.6rem);
  text-transform:uppercase;
  max-width:14ch;
  margin:0 0 clamp(20px,4vw,34px);
}
.foremal{
  width:clamp(224px,46vw,368px);aspect-ratio:1/1;
  margin:0 0 clamp(16px,3vw,26px);overflow:hidden;
  -webkit-mask-image:radial-gradient(ellipse 50% 40% at 50% 52%,#000 72%,transparent 100%);
  mask-image:radial-gradient(ellipse 50% 40% at 50% 52%,#000 72%,transparent 100%);
}
.foremal__bild{
  width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.42);transform-origin:46% 53%;
}
}

.hero__ingress{
  max-width:56ch;font-size:1.14rem;color:var(--dov);
  margin:0 0 22px;
}
.hero__linje{
  display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;
  justify-content:center;
  font-size:.98rem;color:var(--dov);
  background:var(--yta);border-radius:999px;padding:10px 20px;
  margin:0 0 28px;
}
.prick{width:10px;height:10px;border-radius:50%;background:var(--gron);flex:0 0 auto}
.prick--jour{background:var(--indigo)}
.hero__knappar{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin:0}

/* ---------- avdelningsrubriker ---------- */
.avdrubrik{max-width:62ch;margin:0 0 clamp(32px,5vw,52px)}
.avdrubrik--mitt{margin-inline:auto;text-align:center}
.avdrubrik h2{
  font-size:clamp(2.3rem,6vw,3.9rem);
  text-transform:uppercase;
  margin:0 0 .28em;
}
.avdrubrik__text{color:var(--dov);font-size:1.08rem;margin:0}

/* ---------- SIGNATUR: svarslöftet ---------- */
.loftet{background:var(--yta);padding-block:clamp(58px,9vw,110px)}

.instrument{
  background:var(--kort);
  border:2px solid var(--indigo);
  border-radius:26px;
  padding:clamp(20px,4vw,38px);
}

.lagen{border:0;padding:0;margin:0 0 clamp(20px,3vw,28px);min-width:0}
.lagen__legend{
  padding:0;margin:0 0 14px;
  font-size:.95rem;letter-spacing:.16em;text-transform:uppercase;color:var(--dovare);
}
.lagen__rad{display:grid;gap:12px}
@media (min-width:720px){.lagen__rad{grid-template-columns:repeat(3,1fr)}}

.lage input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.lage label{
  display:flex;flex-direction:column;gap:4px;
  min-height:44px;height:100%;
  padding:16px 18px;
  background:var(--linne);
  border:1.6px solid var(--linje);
  border-radius:14px;
  cursor:pointer;
  transition:background-color .25s ease,border-color .25s ease,color .25s ease;
}
.lage__num{font-size:.82rem;letter-spacing:.17em;text-transform:uppercase;color:var(--indigo);font-weight:600}
.lage__namn{font-size:1.18rem;font-weight:600;color:var(--blck);line-height:1.25}
.lage__txt{font-size:.96rem;color:var(--dovare);line-height:1.45}
.lage label:hover{border-color:var(--indigo)}
.lage input:checked + label{background:var(--indigo);border-color:var(--indigo)}
.lage input:checked + label .lage__num{color:var(--lila)}
.lage input:checked + label .lage__namn{color:#fff}
.lage input:checked + label .lage__txt{color:var(--lila)}
.lage input:focus-visible + label{outline:3px solid var(--indigo);outline-offset:3px}

.klocka{
  background:var(--linne);
  border:1px solid var(--linje);
  border-radius:18px;
  padding:clamp(16px,3vw,26px);
}
.klocka__topp{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
  gap:8px 20px;padding-bottom:16px;
}
.klocka__lage{margin:0;font-size:1rem;color:var(--dov);max-width:44ch}
.klocka__nu{margin:0;display:flex;align-items:baseline;gap:10px}
.klocka__nu-ord{font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;color:var(--dovare)}
.klocka__siffror{
  font-size:clamp(2.1rem,6vw,3.1rem);
  color:var(--indigo);
  font-variant-numeric:tabular-nums;
  display:inline-block;min-width:4.6em;text-align:right;
}

.loften{list-style:none;margin:0;padding:0}
.lofte{
  display:grid;grid-template-columns:1fr auto;gap:2px 18px;
  padding:16px 0;border-top:1px solid var(--linje);
  align-items:baseline;
}
.lofte__horisont{
  grid-column:1;grid-row:1;margin:0;
  font-size:1.5rem;text-transform:uppercase;color:var(--indigo);
}
.lofte__tid{
  grid-column:2;grid-row:1;margin:0;text-align:right;
  font-size:clamp(1.5rem,4.4vw,2rem);color:var(--blck);white-space:nowrap;
}
.lofte__text{grid-column:1/-1;grid-row:2;margin:6px 0 0;color:var(--dov);font-size:1.02rem}
.lofte__dag{
  display:block;
  font-family:"Barlow",system-ui,sans-serif;
  font-size:.78rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  color:var(--dovare);margin-top:3px;
}
.lofte--utan .lofte__tid{
  font-family:"Barlow",system-ui,sans-serif;
  font-size:.88rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  color:var(--dovare);
}
@media (min-width:800px){
  .lofte{grid-template-columns:150px minmax(0,1fr) 168px;gap:0 26px;align-items:center}
  .lofte__horisont{grid-column:1;grid-row:1}
  .lofte__text{grid-column:2;grid-row:1;margin:0}
  .lofte__tid{grid-column:3;grid-row:1}
}
.klocka__fot{
  margin:16px 0 0;padding-top:16px;border-top:1px solid var(--linje);
  font-size:.98rem;color:var(--dovare);
}

.matning{
  display:grid;gap:clamp(28px,4vw,48px);
  margin-top:clamp(30px,5vw,52px);
}
@media (min-width:860px){.matning{grid-template-columns:1fr 1.15fr}}
.matning__rubrik{
  font-size:1.7rem;text-transform:uppercase;color:var(--blck);
  margin:0 0 14px;
}
.varden{margin:0 0 20px}
.varde{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
  gap:6px 16px;padding:12px 0;border-bottom:1px solid var(--linje);
}
.varde:first-child{border-top:1px solid var(--linje)}
.varde dt{color:var(--dov);font-size:1rem}
.varde dd{margin:0;font-size:1.85rem;color:var(--indigo);text-transform:uppercase}
.matning__slut{color:var(--dov);font-size:1rem;margin:0}

.missar{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.miss{
  background:var(--kort);border:1px solid var(--linje);
  border-left:4px solid var(--miss);
  border-radius:12px;padding:15px 18px;
}
.miss__topp{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 4px;align-items:baseline}
.miss__datum{font-weight:600;color:var(--blck)}
.miss__lage{font-size:.82rem;letter-spacing:.15em;text-transform:uppercase;color:var(--dovare)}
.miss__tal{margin:0 0 4px;color:var(--dov);font-size:1rem}
.miss__tal b{color:var(--blck);font-weight:600}
.miss__blev{color:var(--miss)}
.miss__ord{margin:0;color:var(--dovare);font-size:.98rem}

/* ---------- tjänster ---------- */
.tjanster{padding-block:clamp(58px,9vw,110px)}
.rutor{
  list-style:none;margin:0;padding:0;
  display:grid;gap:clamp(14px,2vw,20px);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,272px),1fr));
}
.ruta{
  background:var(--kort);border:1px solid var(--linje);
  border-radius:var(--rund);padding:clamp(20px,3vw,28px);
}
.ruta__ikon{
  display:inline-flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:50%;
  background:rgba(51,65,122,.1);color:var(--indigo);
  margin-bottom:16px;
}
.ruta__ikon svg{width:26px;height:26px}
.ruta h3{font-size:1.62rem;text-transform:uppercase;margin:0 0 .35em}
.ruta p{color:var(--dov);margin:0;font-size:1.02rem}

/* ---------- avtal ---------- */
.avtal{background:var(--yta);padding-block:clamp(58px,9vw,110px)}
.nivaer{
  list-style:none;margin:0 0 clamp(24px,3vw,34px);padding:0;
  display:grid;gap:clamp(14px,2vw,20px);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));
  align-items:start;
}
.niva{
  background:var(--kort);border:1px solid var(--linje);
  border-radius:var(--rund);padding:clamp(22px,3vw,30px);
  position:relative;
}
.niva--vald{border:2px solid var(--indigo);box-shadow:0 16px 40px rgba(51,65,122,.13)}
.niva__flagga{
  display:inline-block;margin:0 0 12px;
  background:var(--indigo);color:#fff;
  font-size:.82rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  padding:6px 14px;border-radius:999px;
}
.niva__namn{
  font-family:"Bebas Neue","Barlow Condensed",sans-serif;
  font-size:1.85rem;text-transform:uppercase;letter-spacing:.02em;
  margin:0 0 .1em;color:var(--blck);
}
.niva__pris{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin:0 0 12px}
.niva__tal{font-size:3.5rem;color:var(--indigo);line-height:.95}
.niva__enhet{font-size:.95rem;color:var(--dovare);max-width:15ch;line-height:1.35}
.niva__for{color:var(--blck);font-weight:500;margin:0 0 14px;font-size:1.02rem}
.niva__lista{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.niva__lista li{
  position:relative;padding-left:26px;color:var(--dov);font-size:1rem;line-height:1.45;
}
.niva__lista li::before{
  content:"";position:absolute;left:0;top:.42em;
  width:13px;height:8px;
  border-left:2.2px solid var(--indigo);border-bottom:2.2px solid var(--indigo);
  transform:rotate(-45deg);
}
.avtal__finstil{color:var(--dov);font-size:1rem;max-width:78ch;margin:0}

/* ---------- säkerhet ---------- */
.sakerhet{padding-block:clamp(58px,9vw,110px)}
.sakerhet__inre{display:grid;gap:clamp(28px,4vw,52px)}
@media (min-width:900px){.sakerhet__inre{grid-template-columns:1fr 1.05fr;align-items:start}}
.sakerhet__ord h2{font-size:clamp(2.2rem,5.4vw,3.5rem);text-transform:uppercase;margin:0 0 .3em}
.sakerhet__ord p{color:var(--dov)}
.sakerhet__ruta{
  background:var(--yta);border-radius:14px;padding:18px 20px;
  color:var(--blck)!important;font-size:1.02rem;margin-top:20px;
}
.rytm{
  margin:0;background:var(--kort);border:1px solid var(--linje);
  border-radius:var(--rund);padding:clamp(16px,3vw,26px);
}
.rytm__rad{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
  gap:4px 20px;padding:14px 0;border-bottom:1px solid var(--linje-svag);
}
.rytm__rad:last-child{border-bottom:0;padding-bottom:0}
.rytm__rad:first-child{padding-top:0}
.rytm dt{color:var(--blck);font-size:1.02rem;flex:1 1 220px}
.rytm dd{
  margin:0;font-size:1.42rem;text-transform:uppercase;color:var(--indigo);
  text-align:right;flex:0 1 auto;
}

/* ---------- onboarding ---------- */
.onboarding{background:var(--yta);padding-block:clamp(58px,9vw,110px)}
.byte{display:grid;gap:clamp(14px,2vw,22px)}
@media (min-width:860px){.byte{grid-template-columns:1.1fr 1fr;align-items:start}}
.byte__kol{border-radius:var(--rund);padding:clamp(22px,3vw,32px)}
.byte__kol--vi{background:var(--kort);border:1px solid var(--linje)}
.byte__kol--ni{background:var(--indigo);color:var(--linne)}
.byte__bild{
  width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:50% 40%;
  display:block;border-radius:12px;margin:0 0 22px;
}
.byte__rubrik{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;
  font-size:1.85rem;text-transform:uppercase;margin:0 0 18px;
}
.byte__kol--vi .byte__rubrik{color:var(--blck)}
.byte__kol--ni .byte__rubrik{color:#fff}
.byte__tid{
  font-size:.85rem;font-family:"Barlow",system-ui,sans-serif;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;
  padding:5px 12px;border-radius:999px;
}
.byte__kol--vi .byte__tid{background:rgba(51,65,122,.12);color:var(--indigo)}
.byte__kol--ni .byte__tid{background:rgba(255,255,255,.18);color:#fff}
.byte__lista{margin:0;padding:0 0 0 0;list-style:none;display:grid;gap:13px;counter-reset:none}
.byte__lista li{line-height:1.55;font-size:1.02rem}
.byte__kol--vi .byte__lista li{color:var(--dov)}
.byte__kol--vi .byte__lista b{color:var(--blck)}
.byte__kol--ni .byte__lista li{color:var(--lila)}
.byte__kol--ni .byte__lista b{color:#fff}
.byte__not{
  margin:20px 0 0;padding-top:16px;border-top:1px solid rgba(255,255,255,.25);
  color:var(--lila);font-size:.98rem;
}

/* ---------- omdömen ---------- */
.omdomen{padding-block:clamp(58px,9vw,110px)}
.rost-rad{display:grid;gap:clamp(14px,2vw,22px)}
@media (min-width:820px){.rost-rad{grid-template-columns:1fr 1fr}}
.rost{
  margin:0;background:var(--kort);border:1px solid var(--linje);
  border-radius:var(--rund);padding:clamp(22px,3vw,32px);
  display:flex;flex-direction:column;
}
.rost blockquote{margin:0 0 20px;padding:0}
.rost blockquote p{
  margin:0;font-size:clamp(1.08rem,1.9vw,1.22rem);line-height:1.55;color:var(--blck);
}
.rost__fot{display:flex;align-items:center;gap:14px;margin-top:auto}
.rost__mark{
  flex:0 0 auto;width:64px;height:64px;border-radius:50%;
  background:var(--indigo);color:#fff;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:1.35rem;letter-spacing:.05em;
}
.rost__mark img{
  width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.62);transform-origin:50% 27%;
}
.rost__mark--te img{transform:scale(1.42);transform-origin:50% 32%}
.rost__vem{display:flex;flex-direction:column;line-height:1.4}
.rost__vem b{color:var(--blck);font-weight:600}
.rost__vem span{color:var(--dovare);font-size:.98rem}
.rost__data{
  margin:16px 0 0;padding-top:14px;border-top:1px solid var(--linje);
  font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;color:var(--dovare);
}

/* ---------- kontakt ---------- */
.kontakt{background:var(--yta);padding-block:clamp(58px,9vw,110px)}
.kontakt__inre{display:grid;gap:clamp(28px,4vw,52px)}
@media (min-width:900px){.kontakt__inre{grid-template-columns:1fr 1fr;align-items:start}}
.kontakt__ord h2{font-size:clamp(2.2rem,5.4vw,3.5rem);text-transform:uppercase;margin:0 0 .3em}
.kontakt__ingress{color:var(--dov)}
.kontakt__bild{
  width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:50% 54%;
  display:block;border-radius:var(--rund);margin-top:28px;
}
.kontakt__lista{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:20px}
.kontakt__lista li{display:flex;flex-direction:column;gap:2px}
.kontakt__etikett{
  font-size:.82rem;letter-spacing:.17em;text-transform:uppercase;color:var(--dovare);
}
.kontakt__stor{
  font-family:"Bebas Neue","Barlow Condensed",sans-serif;
  font-size:clamp(2rem,5vw,2.7rem);letter-spacing:.02em;line-height:1.08;
  color:var(--indigo);text-decoration:none;
  display:inline-flex;align-items:center;min-height:44px;
}
.kontakt__stor:hover{color:var(--indigo-djup);text-decoration:underline}
.kontakt__mejl{
  font-size:1.14rem;font-weight:600;color:var(--indigo);
  display:inline-flex;align-items:center;min-height:44px;word-break:break-word;
}
a.kontakt__mejl{text-decoration:none}
a.kontakt__mejl:hover{text-decoration:underline}
.kontakt__under{color:var(--dov);font-size:.98rem}

.formular{
  background:var(--kort);border:1px solid var(--linje);
  border-radius:var(--rund);padding:clamp(22px,3vw,32px);
}
.formular__rubrik{font-size:1.7rem;text-transform:uppercase;margin:0 0 18px;color:var(--blck)}
.falt{display:flex;flex-direction:column;gap:3px;margin:0}
.falt label{
  font-size:.98rem;font-weight:600;color:var(--blck);
  padding:16px 0 3px;min-height:44px;
}
.falt input,.falt select,.falt textarea{
  width:100%;min-height:50px;padding:12px 14px;
  font-family:inherit;font-size:1rem;color:var(--blck);
  background:var(--linne);border:1.5px solid var(--linje);border-radius:11px;
}
.falt textarea{min-height:110px;resize:vertical;line-height:1.5}
.falt input:focus,.falt select:focus,.falt textarea:focus{
  outline:3px solid var(--indigo);outline-offset:2px;border-color:var(--indigo);
}
.formular__not{margin:14px 0 0;font-size:.96rem;color:var(--dovare)}

/* ---------- footer ---------- */
.fot{border-top:1px solid var(--linje);padding-block:clamp(38px,5vw,58px) 22px}
.fot__inre{display:grid;gap:26px}
@media (min-width:760px){.fot__inre{grid-template-columns:1.4fr 1fr 1fr}}
.fot__namn{
  font-family:"Bebas Neue","Barlow Condensed",sans-serif;
  font-size:1.7rem;text-transform:uppercase;letter-spacing:.02em;
  margin:0 0 .3em;color:var(--blck);
}
.fot__text{color:var(--dov);font-size:1rem;max-width:40ch}
.fot__etikett{
  font-size:.82rem;letter-spacing:.17em;text-transform:uppercase;color:var(--dovare);
  margin:0 0 .6em;
}
.fot__block p{margin:0 0 .35em}
.fot__block a{
  color:var(--indigo);text-decoration:none;
  display:inline-flex;align-items:center;min-height:44px;
}
.fot__block a:hover{text-decoration:underline}
.fot__slut{margin-top:26px;padding-top:18px;border-top:1px solid var(--linje-svag)}
.fot__demo{margin:0;font-size:.88rem;color:var(--dovare)}

/* ---------- modal (EGEN scroll-låsklass: modal-oppen) ---------- */
.modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px}
.modal[hidden]{display:none}
.modal__bak{position:absolute;inset:0;background:rgba(32,34,44,.6);border:0;padding:0}
.modal__ruta{
  position:relative;width:100%;max-width:520px;
  background:var(--kort);border-radius:22px;
  padding:clamp(24px,5vw,38px);
  box-shadow:0 30px 70px rgba(32,34,44,.32);
}
.modal__rubrik{font-size:2rem;text-transform:uppercase;margin:0 0 .3em;color:var(--blck)}
.modal__text{color:var(--dov);margin:0 0 22px}
html.modal-oppen,html.modal-oppen body{overflow:hidden}

/* ---------- motion ---------- */
.js .reveal{
  opacity:0;transform:translateY(18px);
  transition:opacity .8s ease,transform .8s ease;
}
.js .reveal.syns{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .js .reveal{opacity:1;transform:none}
}
