/* ============================================================
   Svensk Fastighetsservice — “Omsorg” design system
   Mobile-first. Breakpoints: base <640px · ≥640 tablet · ≥1024 desktop
   [01] Tokens  [02] Base/reset  [03] Helpers  [04] Buttons
   [05] Reveal  [06] Header/nav  [07] Hero  [08] Mobile bottom bar
   ============================================================ */

/* ---------- [01] Tokens ---------- */
:root{
  --marin:#0C2545;
  --accent:#1F56E6;
  --accent-deep:#1B47C0;
  --ljus:#9DC1EE;
  --is:#E9F1FC;
  --porslin:#F7F9FD;
  --hairline:#D5DEEA;
  --hairline-ink:rgba(255,255,255,.16);
  --ink:#0C2545;
  --body:#3a4a66;
  --body-on-dark:#aebdd6;

  /* Brand fonts first, approved free stand-ins next, system last */
  --grotesk:"PP Neue Montreal","General Sans","Helvetica Neue",Arial,sans-serif;
  --display:"PP Neue Montreal","Cabinet Grotesk","General Sans",sans-serif;
  --serif:"PP Editorial New","Instrument Serif",Georgia,serif;

  --maxw:1320px;
  --gutter:clamp(20px,5vw,96px);
  --pad:clamp(64px,11vw,172px);
  --pad-sm:clamp(44px,7vw,104px);
  --nav-h:104px;          /* approx sticky header height (mobile) */
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* ---------- [02] Base / reset ---------- */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:100px;-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--porslin);color:var(--ink);
  font-family:var(--grotesk);font-size:17px;line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;}
::selection{background:var(--accent);color:#fff;}

/* WP admin bar offset for the fixed header */
body.admin-bar .nav{top:46px;}
@media (min-width:783px){body.admin-bar .nav{top:32px;}}

@media (min-width:1024px){
  body{font-size:19px;}
  html{scroll-padding-top:120px;}
  :root{--nav-h:120px;}
}

/* ---------- [03] Helpers ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter);}
.section{padding-block:var(--pad);position:relative;}
.section--sm{padding-block:var(--pad-sm);}
.dark{background:var(--marin);color:#eaf0fa;}
.dark h1,.dark h2,.dark h3{color:#fff;}
.tint{background:var(--is);}

.eyebrow{
  font-family:var(--grotesk);font-weight:600;font-size:.78rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--accent);
  display:flex;align-items:center;gap:.85em;margin:0 0 1.4rem;
}
.dark .eyebrow{color:var(--ljus);}

h1,h2,h3{font-weight:600;letter-spacing:-.02em;line-height:1.04;margin:0;text-wrap:balance;}
.serif{font-family:var(--serif);font-weight:400;letter-spacing:0;font-style:italic;}
.accent{color:var(--accent);}
.dot{color:var(--accent);}

.h-hero{font-size:clamp(44px,8.6vw,86px);line-height:.98;letter-spacing:-.035em;}
.h2{font-size:clamp(31px,4.6vw,68px);line-height:1.03;letter-spacing:-.025em;}
.h2-serif{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em;
  font-size:clamp(34px,5.4vw,82px);line-height:1.05;}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--grotesk);font-weight:600;font-size:1rem;letter-spacing:.005em;
  padding:1em 1.6em;border-radius:10px;border:1px solid transparent;
  cursor:pointer;white-space:nowrap;text-decoration:none;
  transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease);
}
.btn .arr{display:inline-block;transition:transform .2s var(--ease);}
.btn:hover .arr{transform:translateX(4px);}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
.btn--primary{background:var(--accent);color:#fff;box-shadow:0 2px 10px -4px rgba(31,86,230,.5);}
.btn--primary:hover{background:var(--accent-deep);transform:translateY(-2px);box-shadow:0 12px 26px -10px rgba(31,86,230,.62);}
.btn--ghost{background:transparent;border-color:var(--hairline);color:var(--ink);}
.btn--ghost:hover{background:var(--marin);border-color:var(--marin);color:#fff;transform:translateY(-2px);}
.btn--light{background:#fff;color:var(--marin);box-shadow:0 2px 10px -5px rgba(7,21,42,.4);}
.btn--light:hover{background:var(--is);transform:translateY(-2px);}
.btn--block{width:100%;}

/* ---------- [05] Reveal ---------- */
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(28px);
    transition:opacity .8s var(--ease),transform .8s var(--ease);}
  .reveal.in{opacity:1;transform:none;}
  .reveal[data-d="1"]{transition-delay:.09s;}
  .reveal[data-d="2"]{transition-delay:.18s;}
  .reveal[data-d="3"]{transition-delay:.27s;}
}

/* ============================================================
   [06] HEADER / NAV  (two-tier, collapses to hamburger)
   ============================================================ */
.nav{position:fixed;inset:0 0 auto 0;z-index:60;}

/* utility bar — always dark marine */
.nav__util{background:var(--marin);color:#cdd9ee;}
.nav__util-in{display:flex;align-items:center;justify-content:space-between;gap:.8rem 1.2rem;
  max-width:1480px;margin:0 auto;padding:.4rem var(--gutter);min-height:38px;flex-wrap:wrap;}
.nav__util-left{display:flex;align-items:center;gap:1rem 1.4rem;font-size:.8rem;font-weight:500;flex-wrap:wrap;}
.nav__util-left a{color:#cdd9ee;transition:color .25s;white-space:nowrap;}
.nav__util-left a:hover{color:#fff;}
.nav__email{display:none;}
.nav__reco{display:flex;justify-content:flex-end;min-width:0;}
.nav__reco iframe{width:380px;max-width:100%;height:27px;border:0;display:block;overflow:hidden;}

/* main bar */
.nav__main{transition:background .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease);
  border-bottom:1px solid transparent;}
.nav__main-in{display:flex;align-items:center;gap:1rem;max-width:1480px;margin:0 auto;
  padding:.7rem var(--gutter);}
.nav__brand{display:flex;flex-direction:column;line-height:.84;letter-spacing:.02em;color:#fff;
  transition:color .4s;margin-right:auto;}
.nav__brand b{font-family:var(--display);font-weight:800;font-size:1.3rem;letter-spacing:.01em;}
.nav__brand span{font-family:var(--grotesk);font-weight:600;font-size:.56rem;letter-spacing:.32em;
  text-transform:uppercase;margin-top:.34em;opacity:.92;}

/* burger */
.nav__burger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;
  width:46px;height:40px;padding:0 9px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);
  border-radius:9px;cursor:pointer;transition:background .25s,border-color .4s;}
.nav__burger span{display:block;height:2px;width:100%;background:#fff;border-radius:2px;
  transition:transform .3s var(--ease),opacity .2s var(--ease),background .4s;}
.nav.is-solid .nav__burger{background:rgba(12,37,69,.06);border-color:var(--hairline);}
.nav.is-solid .nav__burger span{background:var(--ink);}
.nav.is-open .nav__burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav.is-open .nav__burger span:nth-child(2){opacity:0;}
.nav.is-open .nav__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* collapsible menu panel (mobile) */
.nav__menu{position:absolute;top:100%;left:0;right:0;display:flex;flex-direction:column;gap:.2rem;
  background:rgba(247,249,253,.98);backdrop-filter:blur(14px);border-bottom:1px solid var(--hairline);
  box-shadow:0 24px 40px -24px rgba(12,37,69,.4);padding:.6rem var(--gutter) 1.1rem;
  transform:translateY(-8px);opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s;}
.nav.is-open .nav__menu{opacity:1;visibility:visible;transform:none;pointer-events:auto;}
.nav__links{display:flex;flex-direction:column;}
.nav__links a{font-weight:500;font-size:1.05rem;color:var(--ink);padding:.85rem .2rem;
  border-bottom:1px solid var(--hairline);transition:color .2s,padding-left .2s;}
.nav__links a:hover{color:var(--accent);padding-left:.5rem;}
.nav__cta{margin-top:.9rem;width:100%;}

/* scrolled state */
.nav.is-solid .nav__main{background:rgba(247,249,253,.93);backdrop-filter:blur(14px);
  border-bottom-color:var(--hairline);box-shadow:0 4px 24px -16px rgba(12,37,69,.4);}
.nav.is-solid .nav__brand{color:var(--ink);}

/* desktop nav (≥1024): inline links, no burger */
@media (min-width:1024px){
  .nav__util-in{flex-wrap:nowrap;padding-block:.42rem;min-height:40px;}
  .nav__util-left{font-size:.83rem;gap:1.5rem;}
  .nav__email{display:inline;}
  .nav__reco{flex:0 1 380px;}
  .nav__main-in{gap:2rem;padding-block:.8rem;}
  .nav__brand b{font-size:1.42rem;}
  .nav__brand span{font-size:.6rem;letter-spacing:.34em;}
  .nav__burger{display:none;}
  .nav__menu{position:static;flex-direction:row;align-items:center;gap:2.1rem;background:none;
    backdrop-filter:none;border:0;box-shadow:none;padding:0;transform:none;opacity:1;visibility:visible;
    pointer-events:auto;transition:none;}
  .nav__links{flex-direction:row;gap:2.1rem;}
  .nav__links a{font-size:.96rem;color:#fff;opacity:.92;padding:0;border:0;position:relative;}
  .nav__links a::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1.5px;
    background:var(--accent);transition:right .3s var(--ease);}
  .nav__links a:hover{padding-left:0;}
  .nav__links a:hover::after{right:0;}
  .nav.is-solid .nav__links a{color:var(--ink);}
  .nav__cta{margin:0 0 0 .4rem;width:auto;}
}

/* ============================================================
   [07] HERO
   ============================================================ */
.hero{position:relative;color:#fff;overflow:hidden;isolation:isolate;
  padding-top:calc(var(--nav-h) + 26px);padding-bottom:clamp(40px,8vw,72px);}
.hero__media{position:absolute;inset:0;z-index:-2;}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;}
.hero__scrim{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(12,37,69,.82) 0%,rgba(12,37,69,.62) 38%,rgba(12,37,69,.72) 100%);}
.hero__in{width:100%;max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter);
  display:flex;flex-direction:column;gap:1.5rem;}
.hero__eyebrow{color:#fff;letter-spacing:.2em;text-shadow:0 1px 12px rgba(7,21,42,.6);margin-bottom:.2rem;}
.hero__eyebrow::before{content:"";display:inline-block;width:26px;height:1.5px;background:var(--ljus);}
.hero h1{max-width:18ch;margin:0;}
.hero__hook{display:block;}
.hero__hook .l2{display:block;}
.hero__kw{display:block;font-family:var(--grotesk);font-weight:500;
  font-size:clamp(14px,3.6vw,18px);letter-spacing:0;line-height:1.4;color:#e7eefb;
  margin-top:.9rem;max-width:34ch;text-wrap:balance;}
.hero__sub{font-size:clamp(16px,4vw,20px);max-width:48ch;color:#fff;line-height:1.5;margin:0;
  text-shadow:0 1px 14px rgba(7,21,42,.55);}
.hero__cta{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;}
.hero__cta .btn--ghost{color:#fff;border-color:rgba(255,255,255,.6);}
.hero__cta .btn--ghost:hover{background:#fff;color:var(--marin);}
.hero__trust{display:flex;flex-wrap:wrap;gap:.5rem 1.3rem;
  font-size:.84rem;font-weight:500;color:#dbe6f7;align-items:center;}
.hero__trust span{display:inline-flex;align-items:center;gap:.5rem;}
.hero__trust span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--ljus);flex:0 0 auto;}

/* hero order (mobile): eyebrow → h1 → FORM → sub → ghost CTA → trust */
.hero__left{display:contents;}
.hero__eyebrow{order:1;}
.hero h1{order:2;}
.hero__formcard{order:3;}
.hero__sub{order:4;}
.hero__cta{order:5;}
.hero__trust{order:6;}

/* form card */
.hero__formcard{background:#fff;border-radius:16px;overflow:hidden;width:100%;
  box-shadow:0 30px 70px -34px rgba(7,21,42,.62);color:var(--ink);border-top:4px solid var(--accent);}
.hofo{position:relative;}
.hofo__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
  padding:1.1rem clamp(1.2rem,5vw,2.05rem) 0;}
.hofo__headl{display:flex;flex-direction:column;gap:.5rem;min-width:0;}
.hofo__stars{font-size:.84rem;font-weight:600;color:var(--ink);margin:0;}
.hofo__chip{align-self:flex-start;font-size:.7rem;font-weight:600;color:var(--accent);
  background:var(--is);border-radius:100px;padding:.4em .85em;display:inline-flex;align-items:center;gap:.45em;}
.hofo__chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);}
.hofo__offer{flex:0 0 auto;background:var(--accent);color:#fff;border-radius:11px;padding:.5rem .72rem;
  text-align:center;line-height:1.05;box-shadow:0 8px 20px -8px rgba(31,86,230,.6);}
.hofo__offer .o-eb{display:block;font-size:.52rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;opacity:.92;}
.hofo__offer .o-pct{display:block;font-family:var(--display);font-weight:800;font-size:1.42rem;letter-spacing:-.02em;margin:.05em 0;}
.hofo__offer .o-sub{display:block;font-size:.55rem;letter-spacing:.02em;opacity:.92;}
.hofo__body{padding:1rem clamp(1.2rem,5vw,2.05rem) clamp(1.2rem,5vw,2.05rem);}
.hofo__body h2{font-size:clamp(22px,5.6vw,29px);color:var(--ink);margin-bottom:.45rem;letter-spacing:-.02em;line-height:1.1;}
.hofo__sub{font-size:.95rem;color:var(--body);margin:0 0 1.3rem;line-height:1.45;}

.lform__row{display:grid;grid-template-columns:1fr;gap:0;}
.field{margin-bottom:.85rem;display:flex;flex-direction:column;gap:.35rem;}
.field label{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--body);}
.field input,.field select,.field textarea{font-family:var(--grotesk);font-size:1rem;color:var(--ink);
  background:var(--porslin);border:1px solid var(--hairline);border-radius:10px;padding:.9em 1em;outline:0;
  width:100%;transition:border-color .2s,background .2s,box-shadow .2s;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px rgba(31,86,230,.12);}
.field.invalid input,.field.invalid select{border-color:#d9534f;background:#fff5f5;}
.field__err{font-size:.8rem;color:#d9534f;font-weight:500;display:none;}
.field.invalid .field__err{display:block;}
.hofo__reassure{font-size:.82rem;color:var(--body);text-align:center;margin:.95rem 0 0;line-height:1.4;}
.hofo__err{display:none;margin:.7rem 0 0;font-size:.85rem;font-weight:600;color:#d9534f;text-align:center;}
.hofo__err.show{display:block;}
.hofo.sent .hofo__fields{display:none;}
.hofo__success{display:none;text-align:center;padding:1.6rem .5rem;}
.hofo.sent .hofo__success{display:block;}
.hofo__success .check{width:56px;height:56px;border-radius:50%;background:var(--is);display:flex;
  align-items:center;justify-content:center;margin:0 auto 1.1rem;}
.hofo__success .check svg{width:27px;height:27px;}
.hofo__success h3{font-size:1.4rem;margin-bottom:.5rem;}
.hofo__success p{color:var(--body);font-size:.95rem;max-width:30ch;margin:0 auto;}
.btn--loading{opacity:.75;pointer-events:none;}

/* hero — tablet (≥640): roomier, form keeps natural width */
@media (min-width:640px){
  .hero__in{gap:1.7rem;}
  .hero__formcard{max-width:482px;align-self:center;}
  .hero__trust{gap:.55rem 1.5rem;font-size:.86rem;}
  .lform__row{grid-template-columns:1fr 1fr;gap:.85rem;}
}

/* hero — desktop (≥1024): split, copy left + form right, no reordering */
@media (min-width:1024px){
  .hero{min-height:100svh;display:flex;align-items:center;
    padding-top:calc(var(--nav-h) + 30px);padding-bottom:clamp(56px,8vw,96px);}
  .hero__scrim{background:linear-gradient(90deg,rgba(12,37,69,.85) 0%,rgba(12,37,69,.6) 35%,rgba(12,37,69,.2) 60%,rgba(12,37,69,0) 100%);}
  .hero__media img{object-position:50% 50%;}
  .hero__in{display:grid;grid-template-columns:1.04fr .96fr;gap:clamp(2rem,5vw,5.5rem);align-items:center;}
  .hero__left{display:flex;flex-direction:column;gap:1.5rem;max-width:640px;}
  .hero__eyebrow,.hero h1,.hero__sub,.hero__cta,.hero__trust{order:0;}
  .hero h1{max-width:16ch;}
  .hero__kw{font-size:clamp(15px,1.35vw,20px);max-width:30ch;}
  .hero__sub{font-size:clamp(18px,1.55vw,23px);max-width:46ch;}
  .hero__formcard{order:0;justify-self:end;margin-top:24px;}
  .hero__trust{margin-top:.4rem;}
}

/* ============================================================
   [08] MOBILE BOTTOM BAR
   ============================================================ */
.mobar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:55;gap:1px;background:var(--hairline);
  box-shadow:0 -8px 24px -12px rgba(12,37,69,.3);}
.mobar a{flex:1;display:flex;align-items:center;justify-content:center;gap:.45em;padding:1em;
  font-weight:600;font-size:.94rem;background:#fff;color:var(--marin);}
.mobar a.boka{background:var(--accent);color:#fff;}
body{padding-bottom:58px;}
@media (min-width:1024px){.mobar{display:none;}body{padding-bottom:0;}}

/* ============================================================
   BATCH A — [shared shead/cta] marquee · manifesto · services · values · pris
   ============================================================ */
.shead{display:flex;flex-direction:column;gap:1rem;margin-bottom:clamp(2rem,5vw,4.4rem);}
.shead__title{max-width:18ch;}
.shead__aside{max-width:380px;color:var(--body);font-size:15px;font-weight:400;line-height:1.5;}
.shead__kicker{display:block;margin:0 0 .7rem;font-size:13px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);}
@media(min-width:768px){.shead{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:2rem;}.shead__aside{padding-bottom:.4rem;}}

.sectioncta{margin-top:clamp(2rem,5vw,3.8rem);display:flex;}
.sectioncta--center{justify-content:center;}

/* marquee */
.marquee{overflow:hidden;border-block:1px solid var(--hairline-ink);background:var(--marin);color:#fff;padding-block:1.05rem;
  -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;animation:sfs-scrollx 38s linear infinite;}
.marquee:hover .marquee__track{animation-play-state:paused;}
.marquee__track>span{display:inline-flex;align-items:center;font-size:clamp(15px,1.4vw,19px);font-weight:500;padding-inline:1.4rem;white-space:nowrap;}
.marquee__track>span::after{content:"\00b7";color:var(--ljus);margin-left:1.4rem;font-size:1.3em;line-height:0;}
@keyframes sfs-scrollx{to{transform:translateX(-50%);}}
@media(prefers-reduced-motion:reduce){.marquee__track{animation:none;}}

/* manifesto */
.manifesto h2{max-width:18ch;margin-bottom:1.5rem;}
.manifesto__grid{display:grid;grid-template-columns:1fr;gap:2.2rem;align-items:end;}
.manifesto__body{font-size:clamp(16px,1.25vw,20px);color:#cdd9ee;max-width:46ch;line-height:1.65;}
.statblock{border-top:1px solid var(--hairline-ink);padding-top:1.6rem;}
.statblock__num{font-family:var(--display);font-weight:800;font-size:clamp(108px,30vw,300px);line-height:.8;color:#fff;letter-spacing:-.04em;}
.statblock__num em{font-style:normal;color:var(--ljus);}
.statblock__lab{font-size:1rem;color:#cdd9ee;max-width:34ch;margin-top:1.1rem;line-height:1.5;}
.statblock__lab b{color:#fff;font-weight:600;}
@media(min-width:1024px){.manifesto__grid{grid-template-columns:1.15fr .85fr;gap:clamp(2.4rem,5vw,6rem);}.manifesto h2{margin-bottom:2rem;}}

/* services — mobile swipe carousel -> hairline grid */
.services{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;padding-bottom:.4rem;margin-inline:calc(var(--gutter)*-1);padding-inline:var(--gutter);}
.services::-webkit-scrollbar{display:none;}
.scard{flex:0 0 78%;scroll-snap-align:start;background:#fff;border:1px solid var(--hairline);border-radius:12px;
  overflow:hidden;display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .35s;}
.scard:hover{box-shadow:0 24px 50px -30px rgba(12,37,69,.3);}
.scard__img{aspect-ratio:4/3;overflow:hidden;background:var(--is);}
.scard__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.scard:hover .scard__img img{transform:scale(1.06);}
.scard__body{padding:1.3rem 1.25rem 1.6rem;display:flex;flex-direction:column;flex:1;}
.scard__no{font-size:.74rem;font-weight:600;letter-spacing:.18em;color:var(--accent);margin-bottom:.6rem;}
.scard h3{font-size:1.28rem;letter-spacing:-.02em;margin-bottom:.5rem;}
.scard p{font-size:.96rem;color:var(--body);line-height:1.55;margin:0 0 1.2rem;}
.scard__link{margin-top:auto;font-weight:600;font-size:.94rem;color:var(--accent);display:inline-flex;align-items:center;gap:.5em;transition:gap .3s;}
.scard:hover .scard__link{gap:.85em;}
@media(min-width:640px){
  .services{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline);
    overflow:visible;margin-inline:0;padding:0;border-radius:0;}
  .scard{border:0;border-radius:0;background:var(--porslin);}
  .scard:hover{box-shadow:none;background:#fff;}
}
@media(min-width:1024px){.services{grid-template-columns:repeat(5,1fr);}}

/* values */
.values{display:grid;grid-template-columns:1fr;gap:1.8rem;}
.vprop__no{font-family:var(--display);font-weight:800;font-size:2rem;color:var(--accent);line-height:1;margin-bottom:1rem;letter-spacing:-.02em;}
.vprop h3{font-size:1.28rem;letter-spacing:-.01em;margin-bottom:.7rem;line-height:1.12;}
.vprop p{font-size:.98rem;color:var(--body);line-height:1.58;margin:0;}
@media(min-width:640px){.values{grid-template-columns:1fr 1fr;column-gap:2.4rem;row-gap:2.4rem;}}
@media(min-width:1024px){.values{grid-template-columns:repeat(4,1fr);gap:0;}
  .vprop{padding:0 2rem;border-left:1px solid var(--hairline);}
  .vprop:first-child{padding-left:0;border-left:0;}
  .vprop:last-child{padding-right:0;}}

/* pris */
.pris__answer{font-size:clamp(19px,1.7vw,26px);line-height:1.5;color:var(--ink);max-width:48ch;margin:0 0 clamp(2rem,4vw,3.6rem);letter-spacing:-.01em;text-wrap:pretty;}
.pris__answer b{font-weight:600;color:var(--accent);}
.pris__grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--hairline);border:1px solid var(--hairline);}
.pris__col{background:var(--porslin);padding:clamp(1.6rem,2.4vw,2.2rem);display:flex;flex-direction:column;}
.pris__col h3{font-size:1.28rem;letter-spacing:-.01em;margin-bottom:1rem;line-height:1.15;}
.pris__col p{font-size:1rem;color:var(--body);line-height:1.55;margin:0;}
.pris__col--rot{background:var(--marin);}
.pris__col--rot h3{color:#fff;}
.pris__col--rot p{color:#cdd9ee;}
.pris__list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;}
.pris__list li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--hairline);}
.pris__list li:first-child{padding-top:0;}
.pris__list span{color:var(--ink);font-weight:500;}
.pris__list b{font-family:var(--display);font-weight:800;color:var(--accent);white-space:nowrap;letter-spacing:-.01em;}
.pris__note{font-size:.86rem !important;color:var(--body);margin-top:auto !important;}
@media(min-width:900px){.pris__grid{grid-template-columns:repeat(3,1fr);}}

/* ============================================================
   BATCH B — metoden · före/efter · taktyper · material · serviceavtal
   ============================================================ */
/* metoden */
.method__grid{display:grid;grid-template-columns:1fr;gap:2.4rem;}
.steps{display:flex;flex-direction:column;}
.step{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;padding:1.6rem 0;border-top:1px solid var(--hairline-ink);}
.step:last-child{border-bottom:1px solid var(--hairline-ink);}
.step__no{font-family:var(--display);font-weight:800;font-size:1.3rem;color:var(--ljus);letter-spacing:-.02em;padding-top:.1em;}
.step h3{font-size:1.3rem;color:#fff;margin-bottom:.5rem;letter-spacing:-.01em;}
.step p{font-size:.98rem;color:#cdd9ee;line-height:1.55;margin:0;}
.method__side{align-self:start;}
.method__media{border-radius:4px;overflow:hidden;}
.method__media img{width:100%;display:block;aspect-ratio:4/3;object-fit:cover;}
.method__facts{margin-top:1.8rem;display:flex;flex-direction:column;gap:1.2rem;}
.fact{border-left:2px solid var(--accent);padding-left:1.2rem;}
.fact b{display:block;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ljus);margin-bottom:.4rem;font-weight:600;}
.fact span{color:#dbe6f7;font-size:1rem;}
@media(min-width:1024px){
  .method__grid{grid-template-columns:1fr 1fr;gap:0 clamp(3rem,7vw,8rem);}
  .step{gap:1.6rem;padding:2.1rem 0;}
  .step h3{font-size:1.5rem;}
  .method__side{position:sticky;top:130px;}
  .method__facts{margin-top:2.4rem;}
}

/* before / after slider */
.ba{position:relative;aspect-ratio:16/11;border-radius:4px;overflow:hidden;user-select:none;cursor:ew-resize;
  background:#0b1c34;box-shadow:0 30px 80px -40px rgba(12,37,69,.5);touch-action:none;}
.ba:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;}
.ba__after{clip-path:inset(0 0 0 var(--pos,50%));}
.ba__handle{position:absolute;top:0;bottom:0;left:var(--pos,50%);width:2px;background:#fff;transform:translateX(-50%);
  box-shadow:0 0 0 1px rgba(12,37,69,.15);pointer-events:none;}
.ba__knob{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:50px;height:50px;border-radius:50%;
  background:#fff;display:flex;align-items:center;justify-content:center;gap:5px;box-shadow:0 8px 24px -6px rgba(12,37,69,.5);}
.ba__knob span{width:0;height:0;border-block:6px solid transparent;}
.ba__knob .l{border-right:8px solid var(--accent);}
.ba__knob .r{border-left:8px solid var(--accent);}
.ba__label{position:absolute;bottom:14px;font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;background:rgba(7,21,42,.6);backdrop-filter:blur(6px);padding:.5em .85em;border-radius:3px;pointer-events:none;}
.ba__label.before{left:14px;}
.ba__label.after{right:14px;}
.ba__cap{margin-top:1.1rem;font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--body);}
.ba-filter{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.4rem;}
.chip{font-size:.84rem;font-weight:500;color:var(--ink);border:1px solid var(--hairline);background:#fff;border-radius:100px;
  padding:.6em 1.1em;cursor:pointer;transition:.25s;font-family:var(--grotesk);}
.chip:hover{border-color:var(--accent);color:var(--accent);}
.chip.active{background:var(--marin);color:#fff;border-color:var(--marin);}

/* taktyper */
.types{display:grid;grid-template-columns:1fr;gap:1.4rem;}
.tcard{background:#fff;border:1px solid var(--hairline);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;transition:.4s var(--ease);}
.tcard:hover{transform:translateY(-4px);box-shadow:0 24px 50px -30px rgba(12,37,69,.32);}
.tcard__img{aspect-ratio:5/4;overflow:hidden;}
.tcard__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease);}
.tcard:hover .tcard__img img{transform:scale(1.05);}
.tcard__body{padding:1.5rem 1.5rem 1.8rem;}
.tcard h3{font-size:1.45rem;margin-bottom:.6rem;}
.tcard p{color:var(--body);font-size:.98rem;line-height:1.55;margin:0;}
@media(min-width:640px){.types{grid-template-columns:1fr 1fr;}}
@media(min-width:1024px){.types{grid-template-columns:repeat(3,1fr);gap:clamp(1.4rem,2.4vw,2.2rem);}}

/* material specs */
.specs{display:grid;grid-template-columns:1fr;gap:1px;background:var(--hairline);border:1px solid var(--hairline);}
.spec{background:var(--porslin);padding:1.8rem 1.6rem;min-height:150px;display:flex;flex-direction:column;gap:.7rem;transition:background .3s;}
.spec:hover{background:#fff;}
.spec p{margin:0;font-size:1.04rem;line-height:1.42;color:var(--ink);font-weight:500;}
.spec b{font-weight:600;color:var(--accent);}
@media(min-width:600px){.specs{grid-template-columns:1fr 1fr;}}
@media(min-width:1024px){.specs{grid-template-columns:repeat(3,1fr);}}

/* serviceavtal */
.serviceavtal{display:grid;grid-template-columns:1fr;gap:1.8rem;align-items:center;}
.serviceavtal__text h2{margin-bottom:1.2rem;}
.serviceavtal__text p{color:var(--body);font-size:1.04rem;line-height:1.6;max-width:46ch;margin:0;}
.serviceavtal__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
.serviceavtal__list li{padding:1rem 0 1rem 2rem;border-top:1px solid var(--hairline);position:relative;font-size:1.02rem;color:var(--ink);font-weight:500;}
.serviceavtal__list li:last-child{border-bottom:1px solid var(--hairline);}
.serviceavtal__list li::before{content:"";position:absolute;left:0;top:1.35rem;width:11px;height:11px;border:2px solid var(--accent);border-radius:50%;}
@media(min-width:880px){.serviceavtal{grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,5rem);}}

/* ============================================================
   BATCH C — hantverket · omdömen · FAQ · områden
   ============================================================ */
/* hantverket / about */
.craft{display:grid;grid-template-columns:1fr;}
.craft__media{overflow:hidden;}
.craft__media img{width:100%;height:100%;object-fit:cover;min-height:280px;}
.craft__text{background:var(--marin);color:#fff;padding:clamp(2.2rem,5vw,5rem);display:flex;flex-direction:column;justify-content:center;}
.craft__text h2{margin-bottom:1.5rem;max-width:16ch;color:#fff;}
.craft__text p{color:#cdd9ee;font-size:clamp(16px,1.2vw,19px);line-height:1.62;max-width:48ch;}
.craft__sign{margin-top:1.8rem;border-top:1px solid var(--hairline-ink);padding-top:1.3rem;font-size:.86rem;color:var(--ljus);letter-spacing:.04em;}
@media(min-width:900px){.craft{grid-template-columns:1fr 1fr;}.craft__media img{min-height:440px;}}

/* omdömen / reviews */
.rev__feat{max-width:900px;}
.rev__quote{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(24px,3.4vw,46px);line-height:1.18;letter-spacing:-.01em;color:var(--ink);max-width:24ch;margin:0 0 1.6rem;text-wrap:balance;}
.rev__by{display:flex;align-items:center;gap:.6rem 1rem;font-weight:600;flex-wrap:wrap;}
.rev__by .stars{color:var(--accent);letter-spacing:.1em;font-size:1.05rem;}
.rev__by .name{font-size:1rem;}
.rev__by .src{font-size:.86rem;color:var(--body);font-weight:500;}
.reco-embed{background:#fff;border:1px solid var(--hairline);border-radius:12px;padding:clamp(1rem,2vw,1.6rem);max-width:1000px;margin:clamp(1.6rem,3vw,2.4rem) auto 0;box-shadow:0 24px 54px -36px rgba(12,37,69,.22);}
.reco-embed iframe{width:100%;min-height:225px;}

/* FAQ */
.faq__layout{display:grid;grid-template-columns:1fr;gap:clamp(2rem,5vw,5rem);align-items:start;}
.faq{margin:0;}
.faq__item{border-top:1px solid var(--hairline);}
.faq__item:last-child{border-bottom:1px solid var(--hairline);}
.faq__q{width:100%;background:none;border:0;cursor:pointer;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.4rem 0;font-family:var(--grotesk);font-weight:600;font-size:clamp(17px,1.5vw,23px);color:var(--ink);letter-spacing:-.01em;}
.faq__q .ic{flex:0 0 auto;width:22px;height:22px;position:relative;}
.faq__q .ic::before,.faq__q .ic::after{content:"";position:absolute;background:var(--accent);transition:.35s var(--ease);}
.faq__q .ic::before{top:50%;left:0;right:0;height:2px;transform:translateY(-50%);}
.faq__q .ic::after{left:50%;top:0;bottom:0;width:2px;transform:translateX(-50%);}
.faq__item.open .ic::after{transform:translateX(-50%) scaleY(0);}
.faq__a{overflow:hidden;max-height:0;transition:max-height .4s var(--ease);}
.faq__a p{margin:0 0 1.4rem;color:var(--body);font-size:1.02rem;line-height:1.6;max-width:70ch;}
.faq-aside{display:flex;flex-direction:column;gap:1.4rem;}
.faq-aside__img{border-radius:4px;overflow:hidden;aspect-ratio:3/4;box-shadow:0 30px 70px -44px rgba(12,37,69,.5);}
.faq-aside__img img{width:100%;height:100%;object-fit:cover;}
.faq-contact{background:var(--marin);color:#fff;border-radius:4px;padding:1.6rem;}
.faq-contact h3{font-size:1.18rem;color:#fff;margin-bottom:1.1rem;line-height:1.2;max-width:18ch;}
.faq-contact .btn{margin-bottom:1rem;}
.faq-contact__tel{font-family:var(--display);font-weight:800;font-size:1.35rem;color:#fff;letter-spacing:-.01em;display:block;}
.faq-contact__tel small{display:block;font-family:var(--grotesk);font-weight:600;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ljus);margin-bottom:.3rem;}
@media(min-width:980px){.faq__layout{grid-template-columns:1.15fr .85fr;}.faq-aside{position:sticky;top:120px;}.faq__q{padding:1.7rem 0;}}

/* områden + map placeholder */
.areas__grid{display:grid;grid-template-columns:1fr;gap:2.2rem;align-items:center;}
.areas__text h2{margin-bottom:1.2rem;}
.areas__text p{color:var(--body);font-size:1.04rem;line-height:1.6;max-width:42ch;margin:0 0 1.6rem;}
.areapills{display:flex;flex-wrap:wrap;gap:.5rem;}
.areapill{font-size:.88rem;font-weight:500;color:var(--ink);background:#fff;border:1px solid var(--hairline);border-radius:100px;padding:.5em 1em;transition:.25s var(--ease);}
.areapill:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:translateY(-1px);}
.mapwrap{position:relative;aspect-ratio:4/3.1;background:var(--marin);border-radius:6px;overflow:hidden;box-shadow:0 40px 90px -46px rgba(12,37,69,.55);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.6rem;}
.mapwrap__grid{position:absolute;inset:0;opacity:.5;background-image:linear-gradient(rgba(157,193,238,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(157,193,238,.1) 1px,transparent 1px);background-size:40px 40px;}
.mapwrap__label{position:absolute;left:22px;top:18px;font-size:.7rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ljus);opacity:.85;}
.mapwrap__note{position:relative;color:var(--ljus);font-size:.9rem;font-weight:500;border:1px dashed rgba(157,193,238,.45);padding:.6em 1.1em;border-radius:100px;background:rgba(7,21,42,.25);}
@media(min-width:980px){.areas__grid{grid-template-columns:.92fr 1.08fr;gap:clamp(2.4rem,5vw,5.5rem);}}

/* ============================================================
   BATCH D — artiklar · instagram · kontakt · nyhetsbrev · footer
   ============================================================ */
/* artiklar carousel */
.arts__head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:clamp(1.8rem,4vw,3.4rem);flex-wrap:wrap;}
.arts__nav{display:flex;gap:.7rem;}
.arts__arrow{width:48px;height:48px;border-radius:50%;border:1px solid var(--hairline);background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;transition:background .2s var(--ease),color .2s,border-color .2s,transform .2s;}
.arts__arrow:hover{background:var(--marin);border-color:var(--marin);color:#fff;transform:translateY(-2px);}
.arts__arrow:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
.arts__arrow:disabled{opacity:.32;cursor:default;transform:none;background:#fff;color:var(--ink);border-color:var(--hairline);}
.arts__track{display:flex;gap:clamp(1.2rem,2vw,1.8rem);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:.5rem;scrollbar-width:none;}
.arts__track::-webkit-scrollbar{display:none;}
.acard{flex:0 0 82%;scroll-snap-align:start;background:#fff;border:1px solid var(--hairline);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s var(--ease),box-shadow .25s var(--ease);color:inherit;}
.acard:hover{transform:translateY(-5px);box-shadow:0 26px 54px -32px rgba(12,37,69,.34);}
.acard__img{aspect-ratio:16/10;overflow:hidden;background:var(--is);}
.acard__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.acard:hover .acard__img img{transform:scale(1.05);}
.acard__body{padding:1.3rem 1.3rem 1.5rem;display:flex;flex-direction:column;flex:1;}
.acard__tag{font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:.6rem;}
.acard h3{font-size:1.2rem;line-height:1.16;letter-spacing:-.01em;margin-bottom:.5rem;}
.acard p{font-size:.94rem;color:var(--body);line-height:1.5;margin:0 0 1.1rem;}
.acard__link{margin-top:auto;font-weight:600;font-size:.92rem;color:var(--accent);display:inline-flex;align-items:center;gap:.4em;}
.acard__link .arr{transition:transform .2s var(--ease);}
.acard:hover .acard__link .arr{transform:translateX(4px);}
@media(min-width:760px){.acard{flex-basis:calc((100% - clamp(1.2rem,2vw,1.8rem))/2);}}
@media(min-width:1080px){.acard{flex-basis:calc((100% - 2*clamp(1.2rem,2vw,1.8rem))/3);}}

/* instagram diagonal */
.ig__head{display:flex;flex-direction:column;gap:1.5rem;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;}
@media(min-width:760px){.ig__head{flex-direction:row;align-items:flex-end;}}
.igblock{overflow:hidden;padding-block:clamp(2rem,4vw,3.4rem);}
.igblock__rot{display:flex;flex-direction:column;gap:14px;width:108%;margin-left:-4%;transform:rotate(-3deg);transform-origin:center;}
.iglane{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);}
.iglane__track{display:flex;gap:14px;width:max-content;animation:sfs-scrollx 52s linear infinite;}
.iglane:hover .iglane__track{animation-play-state:paused;}
.iglane__track--rev{animation-direction:reverse;animation-duration:60s;}
.igimg{width:clamp(180px,40vw,320px);aspect-ratio:1;border-radius:3px;overflow:hidden;background:var(--is);}
.igimg img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.igimg:hover img{transform:scale(1.07);}
@media(prefers-reduced-motion:reduce){.iglane__track{animation:none;}}

/* kontakt */
.kontakt{position:relative;padding-block:clamp(56px,10vw,150px);display:flex;justify-content:center;align-items:center;overflow:hidden;isolation:isolate;}
.kontakt__media{position:absolute;inset:0;z-index:-2;}
.kontakt__media img{width:100%;height:100%;object-fit:cover;}
.kontakt__scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(7,21,42,.62),rgba(7,21,42,.5));}
.kontakt__wrap{width:100%;max-width:780px;padding-inline:var(--gutter);}
.kcard{background:#fff;border-radius:16px;padding:clamp(1.5rem,4vw,3.4rem);box-shadow:0 60px 130px -50px rgba(7,21,42,.7);border-top:4px solid var(--accent);}
.kcard__title{text-align:center;font-size:clamp(34px,5vw,66px);margin-bottom:.7rem;}
.kcard .eyebrow{margin-bottom:1.1rem;}
.kcard__sub{text-align:center;color:var(--body);font-size:1.02rem;line-height:1.55;max-width:46ch;margin:0 auto 1.8rem;}
.kcard__tabs{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1.8rem;}
.ktab{font-family:var(--grotesk);font-size:.9rem;font-weight:500;color:var(--ink);background:#fff;border:1px solid var(--hairline);border-radius:100px;padding:.55em 1.1em;cursor:pointer;transition:background .2s,color .2s,border-color .2s;}
.ktab:hover{border-color:var(--accent);color:var(--accent);}
.ktab.active{background:var(--marin);color:#fff;border-color:var(--marin);}
.kcard__grid{display:grid;grid-template-columns:1fr;gap:0 1.1rem;}
.field--full{grid-column:1/-1;}
.kconsent{grid-column:1/-1;display:flex;align-items:flex-start;gap:.65rem;flex-wrap:wrap;margin:.4rem 0 1.4rem;font-size:.94rem;color:var(--body);cursor:pointer;}
.kconsent input{width:20px;height:20px;accent-color:var(--accent);margin-top:.1em;flex:0 0 auto;}
.kconsent a{color:var(--accent);text-decoration:underline;}
.kconsent .field__err{flex-basis:100%;margin:0;display:none;}
.kconsent.invalid .field__err{display:block;}
.kcard__call{text-align:center;font-size:.96rem;color:var(--body);margin:1.2rem 0 0;}
.kcard__call a{font-weight:600;color:var(--ink);}
.kcard.sent .kcard__fields{display:none;}
.kcard__success{display:none;}
.kcard.sent .kcard__success{display:block;}
.lform__reassure{font-size:.84rem;color:var(--body);text-align:center;margin:1.1rem 0 0;display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;}
.lform__reassure span::after{content:"\00b7";margin-left:.5rem;color:var(--accent);}
.lform__reassure span:last-child::after{content:"";}
.lform__success{display:none;text-align:center;padding:2rem 1rem;}
.lform__success .check{width:64px;height:64px;border-radius:50%;background:var(--is);display:flex;align-items:center;justify-content:center;margin:0 auto 1.4rem;}
.lform__success .check svg{width:30px;height:30px;}
.lform__success h3{font-size:1.6rem;margin-bottom:.7rem;}
.lform__success p{color:var(--body);max-width:34ch;margin:0 auto;}
@media(min-width:620px){.kcard__grid{grid-template-columns:1fr 1fr;}}

/* nyhetsbrev */
.news{background:var(--accent);color:#fff;}
.news__in{max-width:var(--maxw);margin:0 auto;padding:clamp(2.4rem,5vw,4.2rem) var(--gutter);display:grid;grid-template-columns:1fr;gap:2rem;align-items:center;}
.news__title{color:#fff;font-size:clamp(26px,3.4vw,44px);margin-bottom:1rem;max-width:18ch;}
.news .dot{color:var(--marin);}
.news__sub{color:#e7eefb;font-size:1.02rem;line-height:1.55;max-width:48ch;margin:0 0 1.6rem;}
.news__row{display:flex;gap:.6rem;max-width:520px;flex-wrap:wrap;}
.news__row input{flex:1;min-width:200px;font-family:var(--grotesk);font-size:1rem;color:var(--ink);background:#fff;border:1px solid transparent;border-radius:10px;padding:.95em 1.1em;outline:0;transition:box-shadow .2s;}
.news__row input:focus{box-shadow:0 0 0 4px rgba(255,255,255,.4);}
.news__row .btn{flex:0 0 auto;}
.news__consent{font-size:.82rem;color:#dbe6f7;margin:1rem 0 0;}
.news__consent a{color:#fff;text-decoration:underline;}
.news__err{font-size:.86rem;color:#fff3d6;font-weight:600;margin:.7rem 0 0;display:none;}
.news__err.show{display:block;}
.news__ok{display:none;font-size:.96rem;font-weight:600;color:#fff;margin:.9rem 0 0;}
.news__form.sent .news__ok{display:block;}
.news__form.sent .news__row,.news__form.sent .news__consent{display:none;}
.news__media{border-radius:14px;overflow:hidden;aspect-ratio:16/11;box-shadow:0 30px 70px -40px rgba(7,21,42,.6);order:-1;}
.news__media img{width:100%;height:100%;object-fit:cover;}
@media(min-width:900px){.news__in{grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,5rem);}.news__media{order:0;}}

/* footer */
.footer{background:var(--marin);color:#cdd9ee;padding-block:clamp(3rem,6vw,6rem) 2.4rem;}
.footer__top{display:grid;grid-template-columns:1fr;gap:2.2rem;padding-bottom:2.6rem;border-bottom:1px solid var(--hairline-ink);}
.footer__brand b{font-family:var(--display);font-weight:800;font-size:1.6rem;color:#fff;display:block;letter-spacing:.01em;line-height:1;}
.footer__brand span{font-size:.6rem;letter-spacing:.34em;text-transform:uppercase;color:var(--ljus);}
.footer__brand p{margin:1.1rem 0 0;font-size:.94rem;max-width:30ch;line-height:1.5;}
.footer h4{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ljus);margin:0 0 1.1rem;font-weight:600;}
.footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem;}
.footer ul a{font-size:.96rem;opacity:.92;transition:opacity .25s,color .25s;}
.footer ul a:hover{color:#fff;}
.footer__bot{display:flex;flex-direction:column;gap:.8rem;justify-content:space-between;padding-top:1.8rem;font-size:.82rem;color:#8ea3c4;}
.footer__bot .meta{display:flex;gap:.5rem;flex-wrap:wrap;}
.footer__bot .meta span::after{content:"\00b7";margin-left:.5rem;}
.footer__bot .meta span:last-child::after{content:"";}
.footer__bot .meta a{color:#8ea3c4;}
.footer__bot .meta a:hover{color:#fff;}
@media(min-width:640px){.footer__top{grid-template-columns:1fr 1fr;}}
@media(min-width:900px){.footer__top{grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:2.6rem;}.footer__bot{flex-direction:row;flex-wrap:wrap;gap:1.4rem;}}

/* ============================================================
   NEW FOOTER (site-wide) — overrides Batch-D footer · mobile-first
   ============================================================ */
.footer{background:var(--marin);color:#cdd9ee;padding-block:0 2.4rem;}
.footer__cta{display:flex;flex-direction:column;align-items:flex-start;gap:1.4rem;padding-block:clamp(2.4rem,5vw,4rem);border-bottom:1px solid var(--hairline-ink);}
.footer__cta h2{font-size:clamp(24px,3vw,40px);color:#fff;letter-spacing:-.02em;max-width:16ch;margin:0;}
.footer__cta-right{display:flex;align-items:center;gap:clamp(1.2rem,3vw,2.6rem);flex-wrap:wrap;}
.footer__cta-tel{display:flex;flex-direction:column;}
.footer__cta-tel small{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ljus);margin-bottom:.35rem;font-weight:600;}
.footer__cta-tel a{font-family:var(--display);font-weight:800;font-size:clamp(22px,2.6vw,34px);color:#fff;letter-spacing:-.01em;transition:color .2s;}
.footer__cta-tel a:hover{color:var(--ljus);}
.footer__top{display:grid;grid-template-columns:1fr;gap:2rem;padding-block:clamp(2.4rem,5vw,3.6rem) 2.6rem;border-bottom:1px solid var(--hairline-ink);}
.footer__brand b{font-family:var(--display);font-weight:800;font-size:1.6rem;color:#fff;display:block;letter-spacing:.01em;line-height:1;}
.footer__brand span{font-size:.62rem;letter-spacing:.34em;text-transform:uppercase;color:var(--ljus);}
.footer__brand p{margin:1.1rem 0 0;font-size:.94rem;max-width:30ch;line-height:1.5;}
.footer__contact{margin-top:1.4rem;display:flex;flex-direction:column;gap:.5rem;}
.footer__contact a{font-size:.96rem;opacity:.92;transition:opacity .2s,color .2s;}
.footer__contact a:hover{color:#fff;}
.footer__contact .strong{font-weight:600;color:#fff;opacity:1;}
.footer__social{display:flex;gap:1.1rem;margin-top:.4rem;}
.footer h4{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ljus);margin:0 0 1.1rem;font-weight:600;}
.footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem;}
.footer ul a{font-size:.96rem;opacity:.92;transition:opacity .25s,color .25s;}
.footer ul a:hover{color:#fff;}
.footer__bot{display:flex;flex-direction:column;gap:.8rem;justify-content:space-between;padding-top:1.8rem;font-size:.82rem;color:#8ea3c4;}
.footer__bot .meta{display:flex;gap:.5rem;flex-wrap:wrap;}
.footer__bot .meta span::after{content:"\00b7";margin-left:.5rem;}
.footer__bot .meta span:last-child::after{content:"";}
.footer__bot .meta a{color:#8ea3c4;}
.footer__bot .meta a:hover{color:#fff;}
@media(min-width:640px){.footer__top{grid-template-columns:1fr 1fr;}}
@media(min-width:900px){.footer__top{grid-template-columns:1.5fr 1fr 1fr;}.footer__cta{flex-direction:row;align-items:center;justify-content:space-between;}}
@media(min-width:1100px){.footer__top{grid-template-columns:1.5fr 1fr 1.2fr 1fr 1fr;gap:2.6rem;}.footer__bot{flex-direction:row;flex-wrap:wrap;gap:1.4rem;}}

/* ============================================================
   CITY PAGE (ortssida) components · mobile-first
   ============================================================ */
.crumb{border-bottom:1px solid var(--hairline);background:var(--porslin);}
.crumb__in{max-width:var(--maxw);margin:0 auto;padding:1rem var(--gutter);font-size:.86rem;color:var(--body);display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;}
.crumb__in a{color:var(--body);transition:color .2s;}
.crumb__in a:hover{color:var(--accent);}
.crumb__in .sep{opacity:.5;}
.crumb__in .here{color:var(--ink);font-weight:600;}

.lokal__grid{display:grid;grid-template-columns:1fr;gap:2.2rem;align-items:start;}
.lokal__body p{font-size:1.04rem;line-height:1.65;color:var(--body);margin:0 0 1.1rem;max-width:54ch;}
.lokal__body p:first-of-type{font-size:1.14rem;color:var(--ink);}
.lokal__aside{background:var(--is);border-radius:12px;padding:clamp(1.6rem,2.6vw,2.2rem);}
.lokal__aside h3{font-size:1.04rem;letter-spacing:.01em;margin-bottom:1.1rem;}
.stadsdelar{display:flex;flex-wrap:wrap;gap:.5rem;}
.stadsdelar span{font-size:.88rem;font-weight:500;color:var(--ink);background:#fff;border:1px solid var(--hairline);border-radius:100px;padding:.5em 1em;}
.lokal__fact{margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid var(--hairline);font-size:.94rem;color:var(--body);line-height:1.5;}
.lokal__body .lokal__fact b{color:var(--ink);}
@media(min-width:880px){.lokal__grid{grid-template-columns:1.1fr .9fr;gap:clamp(2.4rem,5vw,5rem);}}

.svc-intro{font-size:clamp(17px,1.5vw,22px);line-height:1.55;color:var(--ink);max-width:60ch;margin:0 0 clamp(2rem,3.5vw,3rem);}
.svc-intro a{color:var(--accent);font-weight:600;text-decoration:none;border-bottom:1.5px solid transparent;transition:border-color .2s;}
.svc-intro a:hover{border-bottom-color:var(--accent);}

.cluster{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline);}
.cluster a{background:var(--porslin);padding:1.1rem 1.2rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem;font-weight:500;color:var(--ink);transition:background .2s,color .2s;}
.cluster a:hover{background:var(--marin);color:#fff;}
.cluster a .arr{color:var(--accent);transition:transform .2s,color .2s;}
.cluster a:hover .arr{color:#fff;transform:translateX(3px);}
@media(min-width:760px){.cluster{grid-template-columns:repeat(3,1fr);}}
@media(min-width:1080px){.cluster{grid-template-columns:repeat(5,1fr);}}

/* ===== City hero: reused homepage hero, city H1 = clean keyword line ===== */
.h-hero .l2{display:block;}
.hero h1.hero__kw{max-width:34ch;margin-top:1.1rem;margin-bottom:0;font-size:clamp(20px,2vw,30px);color:#fff;font-weight:600;}

/* ===== Områden-hubb ===== */
.omr-region{margin-bottom:clamp(2.6rem,4.5vw,4rem);}
.omr-region:last-child{margin-bottom:0;}
.omr-region__title{font-size:clamp(20px,2vw,27px);letter-spacing:-.01em;margin:0 0 1.3rem;display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap;}
.omr-region__count{font-size:.82rem;font-weight:500;color:var(--body);letter-spacing:.02em;}

.omr-cta{text-align:center;max-width:640px;margin:0 auto;}
.omr-cta h2{margin-bottom:.7rem;}
.omr-cta p{color:var(--body);font-size:1.06rem;margin:0 0 1.6rem;}

/* ===================================================================
 *  TAKTVÄTT-TJÄNSTESIDA (/tjanster/taktvatt/) — sektioner som saknade CSS
 * ================================================================= */
.svc-lead{font-size:clamp(18px,1.9vw,24px);line-height:1.5;color:var(--ink);max-width:54ch;margin:0 auto;text-align:center;}
.svc-lead--left{margin-left:0;margin-right:0;text-align:left;max-width:70ch;margin-bottom:clamp(2rem,3.5vw,2.6rem);}

.pris__factors{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem;}
.pris__factors li{position:relative;padding-left:1.5rem;color:var(--body);font-size:1rem;line-height:1.5;}
.pris__factors li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--accent);}

.fa-twoup{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:2.2rem;}
.fa-shot{position:relative;border-radius:6px;overflow:hidden;background:var(--marin);box-shadow:0 30px 70px -40px rgba(12,37,69,.5);}
.fa-shot img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
.fa-shot__label{position:absolute;left:1rem;bottom:1rem;font-family:var(--grotesk);font-weight:600;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(12,37,69,.72);padding:.4em .9em;border-radius:100px;}
@media(min-width:760px){.fa-twoup{grid-template-columns:1fr 1fr;gap:1.4rem;}}

.statrow{display:grid;grid-template-columns:1fr;gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:6px;overflow:hidden;}
.statrow>div{background:var(--porslin);padding:1.1rem 1.3rem;font-family:var(--display);font-weight:600;font-size:1.02rem;letter-spacing:-.01em;color:var(--ink);text-align:center;}
@media(min-width:760px){.statrow{grid-template-columns:repeat(3,1fr);}}

.upsell{display:grid;grid-template-columns:1fr;gap:1.4rem;}
.ucard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--hairline);border-radius:6px;overflow:hidden;transition:transform .25s var(--ease),box-shadow .25s var(--ease);}
.ucard:hover{transform:translateY(-3px);box-shadow:0 30px 60px -38px rgba(12,37,69,.42);}
.ucard__img{aspect-ratio:16/10;overflow:hidden;}
.ucard__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--ease);}
.ucard:hover .ucard__img img{transform:scale(1.04);}
.ucard__body{padding:clamp(1.4rem,2.4vw,2rem);display:flex;flex-direction:column;gap:.6rem;}
.ucard__body h3{font-size:1.28rem;letter-spacing:-.01em;line-height:1.15;margin:0;}
.ucard__body p{font-size:1rem;color:var(--body);line-height:1.55;margin:0;}
.ucard__link{margin-top:.4rem;font-weight:600;color:var(--accent);font-size:.96rem;display:inline-flex;align-items:center;gap:.4em;}
@media(min-width:760px){.upsell{grid-template-columns:1fr 1fr;gap:1.8rem;}}
/* ===================================================================
 *  TAKMÅLNING — färgväljare (color picker) + komponenter
 * ================================================================= */
.colorpicker{display:grid;grid-template-columns:1fr;gap:clamp(1.6rem,3vw,2.6rem);align-items:start;}
.cp-preview{position:relative;border-radius:8px;overflow:hidden;background:var(--marin);aspect-ratio:4/3;box-shadow:0 40px 90px -50px rgba(12,37,69,.6);isolation:isolate;}
.cp-preview img{width:100%;height:100%;object-fit:cover;display:block;}
.cp-tint{position:absolute;inset:0;background:var(--cp,#A6432E);pointer-events:none;opacity:0;}
@supports (mix-blend-mode:color){.cp-tint--color{mix-blend-mode:color;opacity:1;}.cp-tint--mult{mix-blend-mode:multiply;opacity:.42;}}
.cp-badge{position:absolute;left:1rem;bottom:1rem;display:inline-flex;align-items:center;gap:.6rem;background:rgba(12,37,69,.82);color:#fff;padding:.5em 1em;border-radius:100px;font-weight:600;font-size:.92rem;z-index:3;}
.cp-hex{font-family:var(--display);opacity:.82;font-size:.8rem;letter-spacing:.02em;}
.cp-caption{margin:.9rem 0 0;font-size:.86rem;color:var(--body);}
.cp-col{display:flex;flex-direction:column;gap:1.4rem;}
.cp-swatches{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;}
.cp-sw{display:flex;align-items:center;gap:.7rem;padding:.7rem .9rem;background:#fff;border:1.5px solid var(--hairline);border-radius:6px;font-family:var(--grotesk);font-weight:500;font-size:.95rem;color:var(--ink);cursor:pointer;transition:.2s var(--ease);text-align:left;}
.cp-sw:hover{border-color:var(--accent);transform:translateY(-1px);}
.cp-sw:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.cp-sw.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:rgba(31,86,230,.07);}
.cp-sw__dot{width:22px;height:22px;border-radius:50%;flex:0 0 auto;box-shadow:inset 0 0 0 1px rgba(0,0,0,.18);}
.cp-sw__lbl{line-height:1.1;}
.cp-cta{align-self:flex-start;}
@media(min-width:880px){.colorpicker{grid-template-columns:1.25fr 1fr;}}
.cp-preview--photo .cp-tint{opacity:0;}

/* Områden — Google My Maps embed (responsive, matchar kart-slotten) */
.omrade-karta{position:relative;width:100%;aspect-ratio:4/3;border-radius:6px;overflow:hidden;background:var(--marin);box-shadow:0 40px 90px -46px rgba(12,37,69,.55);}
#sfs-karta{position:absolute;inset:0;width:100%;height:100%;}

/* ===================================================================
 *  SERVICEAVTAL — checklist + pris-kort
 * ================================================================= */
.checklist{list-style:none;margin:0 0 1.6rem;padding:0;display:grid;grid-template-columns:1fr;gap:.85rem;max-width:64ch;}
.checklist li{display:flex;align-items:flex-start;gap:.8rem;font-size:1.05rem;line-height:1.5;color:var(--ink);}
.checklist li svg{flex:0 0 auto;width:22px;height:22px;margin-top:.12em;}
.checklist__note{font-family:var(--serif);font-style:italic;font-size:clamp(1.15rem,1.9vw,1.5rem);line-height:1.42;color:var(--ink);max-width:52ch;margin:2.2rem 0 0;padding-top:1.8rem;border-top:1px solid var(--hairline);}
@media(min-width:760px){.checklist{grid-template-columns:1fr 1fr;gap:1rem 2.4rem;max-width:none;}}

.pricecard{position:relative;max-width:520px;margin:0 auto;background:#fff;border:1px solid var(--hairline);border-radius:14px;padding:clamp(1.8rem,4vw,3rem);box-shadow:0 50px 100px -55px rgba(12,37,69,.5);text-align:center;}
.pricecard__badge{display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);background:var(--is);border-radius:100px;padding:.5em 1.1em;margin-bottom:1.4rem;}
.pricecard h3{font-size:1.18rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin:0 0 .9rem;}
.pricecard__old{font-size:1rem;color:var(--body);text-decoration:line-through;margin:0 0 .25rem;}
.pricecard__now{font-family:var(--display);font-weight:800;font-size:clamp(3rem,7vw,4.2rem);line-height:1;letter-spacing:-.03em;color:var(--accent);}
.pricecard__now span{display:block;font-family:var(--grotesk);font-weight:600;font-size:.95rem;letter-spacing:0;color:var(--body);margin-top:.5rem;}
.pricecard__save{margin:.75rem 0 0;font-weight:600;color:var(--ink);font-size:1rem;display:flex;align-items:center;justify-content:center;gap:.6rem;}
.pricecard__save .chip{font-size:.78rem;font-weight:700;color:#fff;background:var(--accent);border-radius:100px;padding:.28em .75em;letter-spacing:.02em;}
.pricecard__recap{list-style:none;margin:1.7rem 0;padding:1.7rem 0;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);display:grid;gap:.75rem;text-align:left;}
.pricecard__recap li{display:flex;align-items:flex-start;gap:.7rem;font-size:.98rem;color:var(--ink);line-height:1.4;}
.pricecard__recap li svg{flex:0 0 auto;width:20px;height:20px;margin-top:.1em;}
.pricecard__reassure{font-size:.9rem;color:var(--body);line-height:1.5;margin:0 0 1.5rem;}
.pricecard .btn--block{margin-bottom:.9rem;}
.pricecard__call{font-size:.92rem;color:var(--body);margin:0;}
.pricecard__call a{color:var(--accent);font-weight:600;}
/* Serviceavtal — "Vem kan teckna": text + bild (2-kol, centrerad) */
.sv-split{display:grid;grid-template-columns:1fr;gap:clamp(1.8rem,4vw,3.2rem);align-items:center;}
.sv-split__media{border-radius:12px;overflow:hidden;}
.sv-split__media img{width:100%;display:block;aspect-ratio:4/3;object-fit:cover;}
@media(min-width:880px){.sv-split{grid-template-columns:1fr 1fr;}}

/* ===================================================================
 *  MEGA-MENY (Tjänster + Områden) — desktop dropdown / mobil accordion.
 *  Rör ej util-baren/Reco. Toppnivålänkarna behåller .nav__links a-stilen.
 * ================================================================= */
.nav__main{position:relative;}
.nav__trigger{appearance:none;-webkit-appearance:none;background:none;border:0;font:inherit;cursor:pointer;
  color:inherit;display:inline-flex;align-items:center;gap:.42em;}
.nav__caret{width:.46em;height:.46em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg);margin-top:-.18em;transition:transform .3s var(--ease);opacity:.75;}
.nav__item--mega.is-open .nav__caret{transform:rotate(-135deg);margin-top:.06em;}

/* ---- MOBIL (default, i den fällbara .nav__menu) ---- */
.nav__item--mega{display:block;border-bottom:1px solid var(--hairline);}
.nav__trigger{width:100%;justify-content:space-between;font-weight:500;font-size:1.05rem;color:var(--ink);
  padding:.85rem .2rem;text-align:left;}
.mega{overflow:hidden;max-height:0;transition:max-height .4s var(--ease);}
.nav__item--mega.is-open > .mega{max-height:1700px;}
.mega__inner{padding:.35rem 0 1.1rem;}
.mega__cards{display:grid;grid-template-columns:1fr;gap:.5rem;grid-auto-rows:1fr;}
.nav__links .mega a{color:var(--ink);border:0;}
.nav__links .mega a::after{display:none;}
.nav__links .mega__card{display:flex;align-items:center;gap:.8rem;padding:.55rem;border-radius:10px;
  background:#fff;border:1px solid var(--hairline);transition:background-color .14s var(--ease);}
.nav__links .mega__card:hover,.nav__links .mega__card:focus-visible{background:rgba(31,86,230,.07);}
.mega__card-img{flex:0 0 auto;width:48px;height:48px;border-radius:8px;overflow:hidden;background:var(--is);}
.mega__card-img img{width:100%;height:100%;object-fit:cover;display:block;}
.mega__card-tx{display:flex;flex-direction:column;gap:.12rem;min-width:0;}
.mega__card-t{font-weight:600;font-size:.98rem;color:var(--ink);line-height:1.2;}
.mega__card-d{font-size:.83rem;color:var(--body);line-height:1.35;}
.mega__side{margin-top:1rem;padding:1.1rem 1.2rem;border-radius:12px;background:var(--marin);color:#fff;}
.mega__side h3{color:#fff;font-size:1.06rem;margin:0 0 .5rem;letter-spacing:-.01em;}
.mega__side p{color:#cdd9ee;font-size:.9rem;line-height:1.45;margin:0 0 1rem;}
.nav__links .mega a.mega__side-cta{color:#fff;width:100%;justify-content:center;padding:1rem 1.4rem;font-size:1.02rem;font-weight:600;}
.mega__cols{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.4rem;}
.mega__col-h{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:700;margin:0 0 .55rem;}
.mega__col-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.05rem;}
.nav__links .mega__col-list a{display:block;font-size:.92rem;font-weight:500;color:var(--ink);padding:.3rem 0;}
.nav__links .mega__col-list a:hover{color:var(--accent);padding-left:.25rem;}
.mega__foot{margin-top:1rem;}
.nav__links .mega__alllink{display:inline-flex;align-items:center;gap:.4em;font-weight:600;color:var(--accent);}
.nav__links .mega__alllink:hover{padding-left:.25rem;}

@media(max-width:1023.98px){
  .nav.is-open .nav__menu{max-height:calc(100dvh - 96px);overflow-y:auto;-webkit-overflow-scrolling:touch;}
}

/* ---- DESKTOP (≥1024) ---- */
@media(min-width:1024px){
  .nav__item--mega{display:flex;align-items:center;border:0;position:static;}
  .nav__trigger{width:auto;padding:0;font-size:.96rem;font-weight:500;color:#fff;opacity:.92;position:relative;}
  .nav.is-solid .nav__trigger{color:var(--ink);}
  .nav__trigger::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1.5px;
    background:var(--accent);transition:right .3s var(--ease);}
  .nav__item--mega:hover .nav__trigger::after,.nav__item--mega.is-open .nav__trigger::after{right:0;}
  .nav__caret{opacity:.7;}

  .mega{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(-8px);
    width:min(var(--maxw), calc(100vw - 2 * var(--gutter)));max-height:none;overflow:visible;
    background:#fff;border:1px solid var(--hairline);border-radius:16px;
    box-shadow:0 44px 90px -38px rgba(12,37,69,.42);
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .26s var(--ease),transform .26s var(--ease),visibility .26s;z-index:60;}
  .mega::before{content:"";position:absolute;left:0;right:0;top:-16px;height:18px;}
  .nav__item--mega.is-open > .mega{opacity:1;visibility:visible;pointer-events:auto;
    transform:translateX(-50%) translateY(0);}
  .mega__inner{padding:clamp(1.5rem,2.4vw,2.3rem);}
  .mega__inner--svc{display:grid;grid-template-columns:1.75fr 1fr;gap:clamp(1.4rem,2.4vw,2.4rem);align-items:stretch;}
  .mega__cards{grid-template-columns:1fr 1fr;gap:.7rem;grid-auto-rows:1fr;}
  .mega__side{margin-top:0;display:flex;flex-direction:column;justify-content:center;}
  .mega--areas .mega__inner{display:block;}
  .mega__cols{grid-template-columns:repeat(3,1fr);gap:1.4rem 2rem;}
  .mega__col:first-child .mega__col-list{display:grid;grid-template-columns:1fr 1fr;gap:.05rem 1rem;}
  .mega__foot{margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid var(--hairline);}
}
/* ===================================================================
 *  KONTAKTSIDA (/kontakt/) — pagehead, kontakt-grid, cinfo, team
 * ================================================================= */
.pagehead{padding-top:calc(var(--nav-h) + clamp(1.8rem,5vw,3.2rem));padding-bottom:clamp(.6rem,2vw,1.4rem);}
.pagehead h1{font-family:var(--display);font-weight:800;letter-spacing:-.02em;line-height:1.02;font-size:clamp(2.6rem,6vw,4.6rem);margin:.4rem 0 1rem;color:var(--ink);}
.pagehead__sub{color:var(--body);font-size:clamp(1.05rem,1.6vw,1.22rem);line-height:1.55;max-width:52ch;margin:0;}
.contactgrid{display:grid;grid-template-columns:1fr;gap:clamp(2rem,4vw,3.4rem);align-items:start;}
@media(min-width:900px){.contactgrid{grid-template-columns:.85fr 1.15fr;gap:clamp(2.4rem,4vw,4rem);}}
.cinfo__intro{font-size:1.06rem;line-height:1.6;color:var(--ink);max-width:42ch;margin:0 0 2rem;}
.cinfo__block{padding:1.3rem 0;border-top:1px solid var(--hairline);}
.cinfo__block:first-of-type{border-top:0;padding-top:0;}
.cinfo__block h3{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:700;margin:0 0 .7rem;}
.cinfo__block p{color:var(--ink);font-size:1.02rem;line-height:1.55;margin:0;}
.cinfo__list{display:flex;flex-direction:column;gap:.5rem;}
.cinfo__list a{color:var(--ink);font-weight:500;display:flex;align-items:baseline;gap:.7rem;transition:color .2s;}
.cinfo__list a:hover{color:var(--accent);}
.cinfo__list .lbl{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--body);font-weight:600;min-width:5.4em;}
.cinfo__map{display:inline-flex;align-items:center;gap:.4em;margin-top:1rem;font-weight:600;color:var(--accent);}
.cinfo__map:hover{gap:.7em;}
.cinfo__social{display:flex;gap:.7rem;}
.cinfo__social a{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--hairline);border-radius:10px;color:var(--ink);transition:.2s var(--ease);}
.cinfo__social a:hover{background:var(--accent);border-color:var(--accent);color:#fff;}
.cinfo__social svg{width:20px;height:20px;}
.contactgrid .kcard__title{font-size:clamp(26px,3vw,40px);}
.team{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(.9rem,2vw,1.4rem);}
.tmember{display:flex;flex-direction:column;border-radius:10px;overflow:hidden;background:#16345A;}
.tmember__photo{background:#fff;aspect-ratio:4/5;overflow:hidden;}
.tmember__photo img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}
.tmember__body{flex:1;background:#16345A;color:#fff;padding:.95rem 1.05rem 1.15rem;display:flex;flex-direction:column;gap:.18rem;}
.tmember__body b{font-size:1.02rem;font-weight:600;letter-spacing:-.01em;line-height:1.2;}
.tmember__body .role{color:#aebdd6;font-size:.86rem;line-height:1.3;}
.tmember__body .mail{color:#fff;font-size:.85rem;text-decoration:underline;text-underline-offset:2px;margin-top:.35rem;word-break:break-word;}
@media(min-width:600px){.team{grid-template-columns:repeat(3,1fr);}}
@media(min-width:1024px){.team{grid-template-columns:repeat(4,1fr);}}
.tmember__photo img{filter:grayscale(100%);}

/* Kontaktsida: ta bort skugga på stora formuläret (endast /kontakt/) + vit team-intro */
body.sfs-kontakt .kcard{box-shadow:none;}
#team .shead__aside{color:#fff;}

/* BRF mega-intro + kort-grid */
.mega__intro{font-size:.9rem;color:var(--body);line-height:1.4;margin:0 0 1.1rem;}
.mega--brf .mega__cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));}

/* Kunskap: kompakt dropdown (enkel lista, ej full mega) */
.mega--mini .mega__inner{padding:.5rem;}
.mega__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
.mega__list a{display:block;padding:.62rem .8rem;border-radius:9px;font-weight:500;color:var(--ink);}
.mega__list a:hover{background:var(--porslin);}
@media(min-width:1024px){
  .nav__item--mega.nav__item--mini{position:relative;}
  .mega--mini{left:0;transform:translateY(-8px);width:auto;min-width:236px;max-width:300px;border-radius:14px;}
  .nav__item--mega.is-open > .mega--mini{transform:translateY(0);}
}

/* Steps på ljus bakgrund (BRF-takmålning) */
.steps--light .step{border-top-color:var(--hairline);}
.steps--light .step:last-child{border-bottom-color:var(--hairline);}
.steps--light .step__no{color:var(--accent);}
.steps--light .step h3{color:var(--ink);}
.steps--light .step p{color:var(--body);}

/* Salt vs sand-jämförelse (BRF-halkbekämpning) */
.compare2{display:grid;grid-template-columns:1fr;gap:clamp(1rem,2.5vw,1.6rem);}
@media(min-width:760px){.compare2{grid-template-columns:1fr 1fr;}}
.compare2__col{background:var(--porslin);border:1px solid var(--hairline);border-radius:14px;padding:clamp(1.5rem,3vw,2.2rem);}
.compare2__col .lab{font:600 .72rem/1 var(--grotesk);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 .8rem;}
.compare2__col h3{font-size:1.6rem;margin:0 0 .7rem;color:var(--ink);letter-spacing:-.01em;}
.compare2__col p{font-size:1rem;color:var(--body);line-height:1.6;margin:0;}
.compare2__note{margin-top:1.4rem;color:var(--body);font-size:.98rem;}

/* ===== Om oss-sidan ===== */
.recobadge{background:var(--marin);}
.recobadge__in{max-width:var(--maxw);margin:0 auto;padding:.9rem var(--gutter);}
.filosofi__grid{display:grid;grid-template-columns:1fr;gap:clamp(1.8rem,4vw,3.4rem);align-items:center;}
@media(min-width:880px){.filosofi__grid{grid-template-columns:1fr 1fr;}}
.filosofi__media{border-radius:16px;overflow:hidden;aspect-ratio:4/3;background:var(--is);}
.filosofi__media img{width:100%;height:100%;object-fit:cover;display:block;}
.stats{display:grid;grid-template-columns:1fr;gap:clamp(1rem,2.5vw,1.6rem);}
@media(min-width:560px){.stats{grid-template-columns:1fr 1fr;}}
@media(min-width:960px){.stats{grid-template-columns:repeat(4,1fr);}}
.stat{background:#fff;border:1px solid var(--hairline);border-radius:14px;padding:clamp(1.4rem,2.5vw,1.9rem);text-align:center;}
.stat__num{font-family:var(--display);font-weight:800;font-size:clamp(2rem,4vw,2.6rem);color:var(--accent);letter-spacing:-.02em;line-height:1;margin-bottom:.5rem;}
.stat__lab{font-size:.95rem;color:var(--body);line-height:1.4;}
.videobox{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:16/9;background:var(--marin);}
.videobox img,.videobox video{width:100%;height:100%;object-fit:cover;display:block;}
.videobox--live{aspect-ratio:auto;}
.videobox__play{position:absolute;inset:0;margin:auto;width:84px;height:84px;border-radius:50%;border:0;cursor:pointer;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;transition:transform .2s var(--ease),background .2s;}
.videobox__play:hover{transform:scale(1.06);background:#fff;}
.videobox__play span{display:block;width:0;height:0;margin-left:5px;border-style:solid;border-width:13px 0 13px 22px;border-color:transparent transparent transparent var(--accent);}
.partners{display:grid;grid-template-columns:1fr;gap:clamp(1rem,2.5vw,1.4rem);}
@media(min-width:680px){.partners{grid-template-columns:repeat(3,1fr);}}
.partner{display:flex;align-items:center;justify-content:center;min-height:120px;background:#fff;border:1px solid var(--hairline);border-radius:14px;padding:1.6rem;text-align:center;color:var(--ink);text-decoration:none;transition:border-color .2s,box-shadow .2s;}
.partner:hover{border-color:var(--accent);box-shadow:0 18px 40px -28px rgba(12,37,69,.4);}
.partner span{display:flex;flex-direction:column;gap:.35rem;font-family:var(--display);font-weight:700;font-size:1.15rem;letter-spacing:-.01em;}
.partner small{font:500 .78rem/1 var(--grotesk);letter-spacing:.04em;text-transform:uppercase;color:var(--accent);}
.teamphoto{border-radius:16px;overflow:hidden;margin-bottom:clamp(1.6rem,3vw,2.4rem);aspect-ratio:21/9;background:var(--is);}
.teamphoto img{width:100%;height:100%;object-fit:cover;display:block;}

/* Partner-loggor (Om oss) – enhetlig, contain, ej utsträckta */
.partner picture{display:flex;align-items:center;justify-content:center;width:100%;}
.partner__logo{max-height:48px;max-width:100%;width:auto;height:auto;object-fit:contain;display:block;}

/* Kontakt mobil-overflow – root cause: team-griden (långt enskilt ord i roll, t.ex. "Marknadsföringschef", expanderar repeat(2,1fr)-spår förbi viewporten). Fix: låt spåren förbli lika (min-width:0) + bryt långa ord. Plus robusthet för formkolumnen + skyddsnät (clip, påverkar ej desktop/andra sidor). */
.team .tmember{min-width:0;}
.tmember__body b,.tmember__body .role{overflow-wrap:anywhere;}
body.sfs-kontakt .contactgrid,body.sfs-kontakt .contactgrid>*{min-width:0;}
body.sfs-kontakt .kcard{max-width:100%;}
body.sfs-kontakt #sfs-content{overflow-x:clip;}

/* Antialg: kundbox (befintlig kund) + säsongslista */
.kundbox{margin-top:clamp(1.6rem,3vw,2.4rem);background:var(--marin);color:#fff;border-radius:14px;padding:clamp(1.5rem,3vw,2.2rem);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.1rem 2rem;}
.kundbox__txt{flex:1 1 300px;min-width:0;}
.kundbox__txt h3{font-size:1.2rem;color:#fff;margin:0 0 .5rem;}
.kundbox__txt p{font-size:1rem;color:#cdd9ee;line-height:1.55;margin:0;}
.kundbox__price{flex:0 0 auto;font-family:var(--display);font-weight:800;font-size:clamp(1.8rem,3.5vw,2.4rem);color:#fff;line-height:1.1;display:flex;flex-direction:column;}
.kundbox__sub{font-family:var(--grotesk);font-size:.9rem;font-weight:600;color:var(--body-on-dark);margin-top:.2rem;}
.season{list-style:none;margin:clamp(1.4rem,3vw,2rem) 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:.7rem;}
@media(min-width:640px){.season{grid-template-columns:1fr 1fr;}}
.season li{display:flex;align-items:flex-start;gap:.7rem;font-size:1rem;color:var(--body);line-height:1.45;background:#fff;border:1px solid var(--hairline);border-radius:10px;padding:.85rem 1rem;}
.season li b{flex:0 0 auto;font-weight:800;}
.season li.yes b{color:#1a9e5f;}
.season li.no b{color:#c0392b;}

/* Nockbandsbyte: tecken-checklista */
.signs{list-style:none;margin:clamp(1.4rem,3vw,2rem) 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:.85rem;}
@media(min-width:760px){.signs{grid-template-columns:1fr 1fr;gap:.9rem 2rem;}}
.signs li{display:flex;align-items:flex-start;gap:.75rem;font-size:1.02rem;color:var(--body);line-height:1.5;}
.signs li svg{flex:0 0 auto;width:22px;height:22px;margin-top:.12em;}

/* ============================================================
   SFS Artiklar-system (hub / single / kategori)
   ============================================================ */
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* Redaktionell hero (marinblå band) */
.arthero{background:var(--marin);color:#fff;padding-block:clamp(3rem,7vw,5.5rem);}
body.sfs-artiklar-hub .arthero{padding-top:calc(var(--nav-h) + clamp(2rem,5vw,3rem));}
.arthero--sm{padding-block:clamp(2.2rem,4vw,3.4rem);}
.arthero__in{max-width:760px;}
.arthero .eyebrow,.arthero__eyebrow{color:#E8B96A;}
.arthero__title{font-family:var(--display);font-weight:800;font-size:clamp(2.3rem,6vw,4rem);line-height:1.03;letter-spacing:-.02em;color:#fff;margin:.5rem 0 .9rem;}
.arthero--sm .arthero__title{font-size:clamp(1.9rem,4.5vw,3rem);}
.arthero__sub{font-size:clamp(1.05rem,2vw,1.22rem);color:#cdd9ee;line-height:1.55;max-width:58ch;margin:0;}
.artsearch{margin-top:1.8rem;display:flex;gap:.6rem;max-width:480px;}
.artsearch input{flex:1;min-width:0;font:inherit;font-size:1rem;padding:.8em 1.1em;border-radius:10px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;}
.artsearch input::placeholder{color:rgba(255,255,255,.6);}
.artsearch input:focus{outline:0;border-color:#E8B96A;background:rgba(255,255,255,.14);}
.artsearch button{flex:0 0 auto;font:inherit;font-weight:600;border:0;border-radius:10px;padding:.8em 1.3em;background:var(--accent);color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:.4em;}

/* Single/listning: brödsmulan är första elementet – röj fast nav */
body.sfs-artikel .crumb__in,body.sfs-artikel-listing .crumb__in{padding-top:calc(var(--nav-h) + 1rem);}

/* Utvald artikel */
.featured{display:grid;grid-template-columns:1fr;background:#fff;border:1px solid var(--hairline);border-radius:18px;overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:0 30px 70px -50px rgba(12,37,69,.5);transition:box-shadow .25s var(--ease),transform .25s var(--ease);margin-bottom:clamp(2rem,4vw,3rem);}
.featured:hover{box-shadow:0 46px 92px -45px rgba(12,37,69,.55);}
@media(min-width:860px){.featured{grid-template-columns:1.15fr 1fr;align-items:stretch;}}
.featured__media{position:relative;overflow:hidden;background:var(--is);aspect-ratio:16/10;}
.featured__media img{width:100%;height:100%;object-fit:cover;display:block;}
@media(min-width:860px){.featured__media{aspect-ratio:auto;}}
.featured__badge{position:absolute;top:1rem;left:1rem;background:#E8B96A;color:var(--marin);font:700 .7rem/1 var(--grotesk);letter-spacing:.08em;text-transform:uppercase;padding:.45em .8em;border-radius:100px;}
.featured__body{padding:clamp(1.6rem,3.5vw,2.8rem);display:flex;flex-direction:column;align-items:flex-start;gap:.7rem;}
.featured__tag{font:600 .74rem/1 var(--grotesk);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);}
.featured__title{font-family:var(--display);font-weight:800;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.1;letter-spacing:-.01em;color:var(--ink);}
.featured__excerpt{color:var(--body);line-height:1.6;font-size:1.02rem;}
.featured__meta{display:flex;gap:.5rem;font-size:.86rem;color:var(--body);}
.featured__link{font-weight:600;color:var(--accent);display:inline-flex;align-items:center;gap:.4em;margin-top:.3rem;}
.featured:hover .featured__link .arr{transform:translateX(3px);}

/* Kategorifilter */
.catfilter{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:clamp(1.8rem,4vw,2.6rem);}
.catpill{font:500 .92rem/1 var(--grotesk);color:var(--ink);background:#fff;border:1px solid var(--hairline);border-radius:100px;padding:.6em 1.05em;text-decoration:none;transition:.2s var(--ease);}
.catpill:hover{border-color:var(--accent);color:var(--accent);}
.catpill.is-active{background:var(--marin);color:#fff;border-color:var(--marin);}

/* Artikelraster + kort */
.artikelgrid{display:grid;grid-template-columns:1fr;gap:clamp(1.4rem,3vw,2rem);}
@media(min-width:600px){.artikelgrid{grid-template-columns:1fr 1fr;}}
@media(min-width:980px){.artikelgrid{grid-template-columns:repeat(3,1fr);}}
.akort{display:flex;flex-direction:column;background:#fff;border:1px solid var(--hairline);border-radius:14px;overflow:hidden;transition:box-shadow .25s var(--ease),transform .25s var(--ease);}
.akort:hover{box-shadow:0 30px 60px -42px rgba(12,37,69,.5);transform:translateY(-3px);}
.akort__media{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--is);}
.akort__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease);}
.akort:hover .akort__media img{transform:scale(1.05);}
.akort__body{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:1.3rem 1.4rem 1.5rem;flex:1;}
.akort__cat{font:600 .72rem/1 var(--grotesk);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);text-decoration:none;}
.akort__title{font-family:var(--display);font-weight:700;font-size:1.18rem;line-height:1.25;letter-spacing:-.01em;margin:0;}
.akort__title a{color:var(--ink);text-decoration:none;}
.akort__title a:hover{color:var(--accent);}
.akort__excerpt{color:var(--body);font-size:.95rem;line-height:1.55;margin:0;}
.akort__meta{display:flex;gap:.45rem;font-size:.81rem;color:var(--body);margin-top:.1rem;}
.akort__link{margin-top:auto;padding-top:.6rem;font-weight:600;font-size:.92rem;color:var(--accent);display:inline-flex;align-items:center;gap:.4em;}
.akort:hover .akort__link .arr{transform:translateX(3px);}
.artikel-empty{grid-column:1/-1;color:var(--body);font-size:1.05rem;}
.artikel-empty a{color:var(--accent);font-weight:600;}

/* Paginering */
.pagination{margin-top:clamp(2rem,4vw,3rem);}
.pagination,.pagination .nav-links{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;align-items:center;}
.page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:2.6em;padding:.55em .9em;border-radius:9px;border:1px solid var(--hairline);background:#fff;color:var(--ink);text-decoration:none;font-weight:500;transition:.2s;}
.page-numbers:hover{border-color:var(--accent);color:var(--accent);}
.page-numbers.current{background:var(--marin);color:#fff;border-color:var(--marin);}
.page-numbers.dots{border:0;background:none;}

/* Ämnen / topic clusters */
.topicclusters{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;}
@media(min-width:760px){.topicclusters{grid-template-columns:repeat(4,1fr);}}
.topic{display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:#fff;border:1px solid var(--hairline);border-radius:12px;padding:1.05rem 1.25rem;font-family:var(--display);font-weight:700;font-size:1.02rem;color:var(--ink);text-decoration:none;transition:.2s var(--ease);}
.topic:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px);}

/* CTA-band */
.artcta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.4rem 2rem;background:var(--marin);color:#fff;border-radius:18px;padding:clamp(1.8rem,4vw,3rem);}
.artcta__txt{flex:1 1 320px;min-width:0;}
.artcta__txt h2{font-family:var(--display);font-weight:800;font-size:clamp(1.5rem,3vw,2.1rem);color:#fff;margin:0 0 .5rem;}
.artcta__txt p{color:#cdd9ee;line-height:1.55;margin:0;}
.artcta__actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem;}
.artcta__tel{color:#fff;font-weight:700;font-size:1.05rem;text-decoration:none;}
.artcta__tel:hover{color:#E8B96A;}

/* ===== Single artikel ===== */
.artikel-hero{padding-block:clamp(2rem,4vw,3rem) 0;}
.artikel-hero__in{max-width:760px;}
.artikel-hero__cat{font:600 .76rem/1 var(--grotesk);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);text-decoration:none;}
.artikel-hero__title{font-family:var(--display);font-weight:800;font-size:clamp(2rem,5vw,3.1rem);line-height:1.07;letter-spacing:-.02em;color:var(--ink);margin:.7rem 0 1rem;}
.artikel-hero__meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.92rem;color:var(--body);}
.artikel-hero__img{margin-top:clamp(1.6rem,3vw,2.4rem);border-radius:16px;overflow:hidden;aspect-ratio:16/8;background:var(--is);}
.artikel-hero__img img{width:100%;height:100%;object-fit:cover;display:block;}
.artikel-layout{display:grid;grid-template-columns:1fr;gap:clamp(1.8rem,4vw,3.4rem);padding-block:clamp(2rem,4vw,3rem);}
@media(min-width:1000px){.artikel-layout{grid-template-columns:230px minmax(0,720px);justify-content:center;align-items:start;}}
.toc{font-size:.94rem;}
@media(min-width:1000px){.toc{position:sticky;top:calc(var(--nav-h) + 1.5rem);}}
.toc__title{font:700 .76rem/1 var(--grotesk);letter-spacing:.1em;text-transform:uppercase;color:var(--body);margin:0 0 .8rem;}
.toc ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem;border-left:2px solid var(--hairline);}
.toc a{color:var(--body);text-decoration:none;display:block;padding:.15rem 0 .15rem 1rem;margin-left:-2px;border-left:2px solid transparent;line-height:1.4;transition:.2s;}
.toc a:hover{color:var(--accent);border-left-color:var(--accent);}

/* Prosa */
.article-prose{max-width:720px;font-size:1.08rem;line-height:1.75;color:var(--ink);}
.article-prose>*:first-child{margin-top:0;}
.article-prose p{margin:0 0 1.3rem;}
.article-prose .article-lead{font-size:1.2rem;line-height:1.65;font-weight:500;}
.article-prose h2{font-family:var(--display);font-weight:800;font-size:clamp(1.5rem,3vw,2rem);line-height:1.15;letter-spacing:-.01em;color:var(--ink);margin:2.6rem 0 1rem;scroll-margin-top:calc(var(--nav-h) + 1rem);}
.article-prose h3{font-family:var(--display);font-weight:700;font-size:1.25rem;color:var(--ink);margin:2rem 0 .8rem;}
.article-prose ul,.article-prose ol{margin:0 0 1.4rem;padding-left:1.3rem;}
.article-prose li{margin:.4rem 0;line-height:1.65;}
.article-prose a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;}
.article-prose a:hover{text-decoration:none;}
.article-prose blockquote{margin:1.8rem 0;padding:.4rem 0 .4rem 1.4rem;border-left:4px solid var(--accent);font-family:var(--serif);font-size:1.3rem;line-height:1.5;font-style:italic;color:var(--ink);}
.article-prose figure,.article-prose .article-figure{margin:1.8rem 0;}
.article-prose figure img,.article-prose .article-figure img{width:100%;height:auto;display:block;border-radius:12px;}
.article-prose figcaption{margin-top:.6rem;font-size:.88rem;color:var(--body);text-align:center;}
.article-prose table{width:100%;border-collapse:collapse;margin:1.8rem 0;font-size:.98rem;}
.article-prose th,.article-prose td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--hairline);vertical-align:top;}
.article-prose thead th{background:var(--porslin);font-weight:700;color:var(--ink);}
.article-prose .callout{margin:1.8rem 0;background:var(--is);border:1px solid var(--hairline);border-left:4px solid var(--accent);border-radius:10px;padding:1.2rem 1.4rem;}
.article-prose .callout p{margin:0;color:var(--ink);}

/* Inline-CTA */
.inline-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.6rem;background:var(--marin);color:#fff;border-radius:14px;padding:1.5rem 1.7rem;margin:2.4rem 0;}
.inline-cta__tx{flex:1 1 260px;min-width:0;}
.inline-cta__tx strong{display:block;font-family:var(--display);font-size:1.2rem;margin-bottom:.3rem;color:#fff;}
.inline-cta__tx p{margin:0;color:#cdd9ee;font-size:.98rem;line-height:1.5;}
.inline-cta .btn{flex:0 0 auto;}

/* FAQ + författarbox */
.artikel-faq{margin-top:2.8rem;}
.artikel-faq>h2{font-family:var(--display);font-weight:800;font-size:clamp(1.5rem,3vw,2rem);color:var(--ink);margin:0 0 1.2rem;}
.authorbox{display:flex;gap:1rem;align-items:flex-start;margin-top:2.8rem;padding:1.4rem 1.5rem;background:var(--porslin);border:1px solid var(--hairline);border-radius:14px;}
.authorbox__logo{flex:0 0 auto;width:54px;height:54px;border-radius:12px;background:var(--marin);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:.95rem;letter-spacing:.04em;}
.authorbox__tx b{color:var(--ink);font-size:1.05rem;}
.authorbox__tx p{margin:.3rem 0 0;color:var(--body);font-size:.96rem;line-height:1.55;}
.authorbox__tx a{color:var(--accent);font-weight:600;text-decoration:none;}
/* ============================================================
   SFS Boka besiktning — 2-step intake wizard (pills + steps)
   ============================================================ */
.wiz__prog{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.1rem 0 1.45rem;}
.wiz__prog > span:first-child{font-size:.78rem;font-weight:600;letter-spacing:.03em;color:var(--body);}
.wiz__prog .bar{flex:1;max-width:150px;height:6px;border-radius:99px;background:var(--is);overflow:hidden;}
.wiz__prog .bar i{display:block;height:100%;width:50%;background:var(--accent);border-radius:99px;transition:width .35s var(--ease);}
.wiz__step{display:none;}
.wiz__step.active{display:block;}
@media (prefers-reduced-motion:no-preference){.wiz__step.active{animation:sfsWizIn .35s var(--ease);}}
@keyframes sfsWizIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.wiz__q{margin-bottom:1.15rem;}
.wiz__q > label{display:block;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--body);margin-bottom:.5rem;}
.opt-hint{text-transform:none;letter-spacing:0;font-weight:500;color:var(--body);opacity:.72;}
.pills{display:flex;flex-wrap:wrap;gap:.5rem;}
.pill{appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;font-family:var(--grotesk);font-size:.92rem;line-height:1.2;font-weight:500;color:var(--ink);background:var(--porslin);border:1px solid var(--hairline);border-radius:99px;padding:.55em .95em;cursor:pointer;user-select:none;text-align:left;transition:background-color .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease);}
.pill:hover{border-color:var(--accent);}
.pill:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.pill[aria-pressed="true"],.pill.sel{background:var(--accent);border-color:var(--accent);color:#fff;}
.wiz__nav{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:.5rem;}
.wiz__nav .btn{flex:1 1 auto;justify-content:center;}
.wiz__back{order:-1;appearance:none;background:none;border:0;font-family:var(--grotesk);font-size:.95rem;font-weight:600;color:var(--body);cursor:pointer;padding:.6em .4em;}
.wiz__back:hover{color:var(--accent);}
.wiz__brfnote{display:none;margin:.1rem 0 1rem;font-size:.85rem;line-height:1.45;color:var(--ink);background:var(--is);border:1px solid var(--hairline);border-radius:10px;padding:.75em .9em;}
.hofo--wiz.is-brf .wiz__brfnote{display:block;}
/* ============================================================
   SFS Vanliga frågor (/vanliga-fragor/) — FAQ-sida
   ============================================================ */
.vf-hero{background:var(--marin);color:#fff;padding:calc(var(--nav-h) + clamp(2.2rem,6vw,4rem)) 0 clamp(2.2rem,6vw,3.6rem);}
.vf-hero__in{max-width:880px;margin:0 auto;padding:0 var(--gutter);}
.vf-hero .eyebrow{color:#E8B96A;}
.vf-hero h1{font-family:var(--display);font-weight:800;font-size:clamp(30px,5.6vw,52px);letter-spacing:-.02em;line-height:1.05;margin:.55rem 0 .8rem;color:#fff;}
.vf-hero__sub{color:var(--body-on-dark);font-size:clamp(16px,1.6vw,19px);max-width:56ch;line-height:1.55;}
.vf-search{position:relative;max-width:560px;margin-top:1.7rem;}
.vf-search input{width:100%;font-family:var(--grotesk);font-size:1.05rem;color:var(--ink);background:#fff;border:1px solid var(--hairline);border-radius:12px;padding:.95em 1em .95em 3rem;outline:none;transition:border-color .15s,box-shadow .15s;}
.vf-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(31,86,230,.18);}
.vf-search__ic{position:absolute;left:1.05rem;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--body);opacity:.55;pointer-events:none;}
.vf-nav{background:rgba(255,255,255,.94);backdrop-filter:saturate(1.3) blur(8px);border-bottom:1px solid var(--hairline);}
.vf-nav__in{max-width:var(--maxw);margin:0 auto;padding:.75rem var(--gutter);display:flex;gap:.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.vf-nav__in::-webkit-scrollbar{display:none;}
.vf-nav a{font-family:var(--grotesk);font-size:.9rem;font-weight:600;color:var(--ink);background:var(--porslin);border:1px solid var(--hairline);border-radius:99px;padding:.5em .95em;text-decoration:none;white-space:nowrap;transition:background-color .15s var(--ease),color .15s var(--ease),border-color .15s var(--ease);}
.vf-nav a:hover{border-color:var(--accent);}
.vf-nav a.is-active{background:var(--accent);border-color:var(--accent);color:#fff;}
.vf-cat{scroll-margin-top:calc(var(--nav-h) + 22px);margin-bottom:clamp(2.4rem,5vw,3.8rem);}
.vf-cat__head{display:flex;align-items:baseline;gap:.7rem;margin-bottom:.3rem;padding-bottom:.4rem;}
.vf-cat__head h2{font-family:var(--display);font-weight:800;font-size:clamp(22px,3vw,30px);color:var(--ink);letter-spacing:-.02em;}
.vf-cat__count{font-size:.82rem;font-weight:600;color:var(--body);opacity:.7;}
.vf-cat.is-hidden{display:none;}
.faq__item.is-hidden{display:none;}
.vf-noresults{display:none;text-align:center;color:var(--body);padding:2.4rem 0;font-size:1.05rem;}
.vf-noresults.show{display:block;}
.vf-cta{background:var(--marin);border-radius:18px;padding:clamp(2rem,4.5vw,3.2rem);text-align:center;color:#fff;}
.vf-cta h2{font-family:var(--display);font-weight:800;font-size:clamp(22px,3.2vw,32px);margin-bottom:.6rem;color:#fff;}
.vf-cta p{color:var(--body-on-dark);max-width:50ch;margin:0 auto 1.7rem;line-height:1.55;}
.vf-cta__row{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;align-items:center;}
.vf-cta__tel{color:#fff;font-weight:600;text-decoration:none;}
.vf-cta__tel:hover{color:#E8B96A;}
/* vf-nav: ej sticky */
/* ============================================================
   Mobil overflow-fix — artikelsida (single) + hub/listning
   Rotorsak: bred tabell (eller långt ord) blåste ut 1fr-grid-
   spalten på mobil (.artikel-layout har minmax(0,..) bara ≥ 1000px).
   ============================================================ */
/* Grid-celler måste kunna krympa – annars tvingar bred tabell/långt ord 1fr-track:en bredare än skärmen */
.artikel-layout > *{min-width:0;}
.artikelgrid > *,.topicclusters > *{min-width:0;}
/* Långa ord/sammansättningar/URL:er bryts i brödtext och rubriker */
.article-prose{overflow-wrap:break-word;}
.artikel-hero__title,.article-prose h2,.article-prose h3{overflow-wrap:break-word;}
/* Media håller sig inom spalten */
.article-prose img,.article-prose iframe,.article-prose video,.article-prose embed{max-width:100%;height:auto;}
/* Breda tabeller scrollar i SIN EGEN box på smala skärmar – inte hela sidan */
@media (max-width:760px){
  .article-prose table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
}
.article-prose pre{max-width:100%;overflow-x:auto;}
/* Defensivt skyddsnät (samma mönster som kontaktsidan; clip bryter inte sticky TOC/ankarlänkar) */
body.sfs-artikel #sfs-content,body.sfs-artiklar-hub #sfs-content,body.sfs-artikel-listing #sfs-content{overflow-x:clip;}
/* Om oss – riktig video: responsiv, behåller egen aspekt, ingen crop/overflow */
.videobox--live video{height:auto;max-width:100%;object-fit:contain;}

/* ============================================================
 *  REFERENSER (kundcase) — hub + single
 * ============================================================ */
.ba-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:clamp(1.2rem,2.4vw,2rem);margin-top:clamp(1.4rem,3vw,2.2rem);}
.ba-item{display:flex;flex-direction:column;}
.ba-item .ba{aspect-ratio:4/3;}
.ba-item__cap{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:.9rem;font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--body);}
.ba-item__cap a{color:var(--accent);text-decoration:none;white-space:nowrap;}
.ba-item__cap a .arr{transition:transform .3s;display:inline-block;}
.ba-item__cap a:hover .arr{transform:translateX(4px);}

.casefilter{display:flex;gap:.5rem;flex-wrap:wrap;margin:clamp(1.2rem,2.6vw,1.8rem) 0 clamp(1.6rem,3vw,2.2rem);}

.casegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:clamp(1.4rem,2.6vw,2.2rem);}
.case{display:flex;flex-direction:column;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--hairline);border-radius:12px;overflow:hidden;transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s,border-color .45s;}
.case:hover{transform:translateY(-4px);box-shadow:0 44px 90px -55px rgba(12,37,69,.55);border-color:transparent;}
.case__img{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--marin);}
.case__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.case:hover .case__img img{transform:scale(1.03);}
.case__badge{position:absolute;left:12px;top:12px;z-index:2;font-size:.6rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#0C2545;background:var(--gold,#E8B96A);padding:.42em .8em;border-radius:100px;}
.case__body{padding:1.25rem 1.35rem 1.45rem;display:flex;flex-direction:column;gap:.7rem;flex:1;}
.case__tags{display:flex;gap:.45rem;flex-wrap:wrap;}
.case__tag{font-size:.68rem;font-weight:600;letter-spacing:.03em;color:var(--accent);background:rgba(31,86,230,.09);padding:.4em .75em;border-radius:100px;}
.case__tag--ort{color:var(--body);background:var(--is,#f3f4f6);}
.case__body h3{font-family:var(--display);font-size:1.14rem;line-height:1.3;letter-spacing:-.01em;color:var(--ink);margin:0;}
.case__excerpt{font-size:.9rem;line-height:1.5;color:var(--body);margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.case__link{margin-top:auto;font-size:.8rem;font-weight:600;color:var(--accent);display:inline-flex;align-items:center;gap:.4em;}
.case__link .arr{transition:transform .3s;display:inline-block;}
.case:hover .case__link .arr{transform:translateX(4px);}
.case.hide{display:none;}
.casegrid__empty{grid-column:1/-1;padding:clamp(2rem,5vw,3.4rem);text-align:center;color:var(--body);border:1px dashed var(--hairline);border-radius:14px;background:var(--is,#f3f4f6);}
.casegrid__empty a{color:var(--accent);}

.story{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.4rem,2.6vw,2.2rem);margin-top:clamp(1.4rem,3vw,2rem);}
.story__block h3{display:flex;align-items:baseline;gap:.6rem;font-family:var(--display);font-size:1.22rem;line-height:1.2;color:var(--ink);margin:0 0 .7rem;}
.story__block h3 .n{font-family:var(--grotesk);font-size:.78rem;font-weight:700;letter-spacing:.1em;color:var(--accent);}
.story__block p{font-size:1rem;line-height:1.65;color:var(--body);margin:0;}

.projektgrid{display:grid;grid-template-columns:1fr;gap:clamp(1.6rem,3vw,2.4rem);align-items:start;}
.specs-card{background:var(--marin);color:#fff;border-radius:16px;padding:clamp(1.6rem,2.6vw,2.2rem);}
.specs-card dl{margin:0;}
.specs-card dl>div{display:flex;justify-content:space-between;gap:1rem;padding:.9rem 0;border-bottom:1px solid rgba(255,255,255,.13);}
.specs-card dl>div:first-child{padding-top:0;}
.specs-card dl>div:last-child{border-bottom:0;padding-bottom:0;}
.specs-card dt{font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.6);}
.specs-card dd{margin:0;font-weight:600;text-align:right;color:#fff;}

.bagallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(1rem,2vw,1.4rem);margin-top:clamp(1.4rem,3vw,2rem);}

@media(min-width:860px){.projektgrid{grid-template-columns:1.05fr .95fr;}}
@media(max-width:820px){.story{grid-template-columns:1fr;}}
/* ============ REFERENS: framade bilder + tydligare brödsmulor ============ */
.sfs-referens-hub .ba,
.sfs-referens-single .ba,
.sfs-referens-single .fa-shot{border-radius:14px;border:1px solid var(--hairline);}
.sfs-referens-single .crumb__in{font-size:14px;padding-top:1.15rem;padding-bottom:1.15rem;}
.sfs-referens-single .crumb__in a{color:var(--ink);font-weight:500;}
.sfs-referens-single .crumb__in a:hover{color:var(--accent);}
.sfs-referens-single .crumb__in .sep{color:var(--body);opacity:.6;}
.sfs-referens-single .crumb__in .here{color:var(--ink);font-weight:700;}

/* ===== Header top-level nav — hover = Perfekt blå text, no underline line (desktop ≥1024) ===== */
@media (min-width:1024px){
  .nav__links a::after,
  .nav__trigger::after{ display:none !important; }
  .nav__top{ transition:color .25s var(--ease); }
  .nav__top:hover,
  .nav__top:focus-visible,
  .nav.is-solid .nav__top:hover,
  .nav.is-solid .nav__top:focus-visible,
  .nav__item--mega:hover > .nav__trigger,
  .nav__item--mega.is-open > .nav__trigger,
  .nav.is-solid .nav__item--mega:hover > .nav__trigger,
  .nav.is-solid .nav__item--mega.is-open > .nav__trigger{ color:var(--accent); }
}

/* ===== Headroom — smart-sticky header (hide on scroll down / reveal on scroll up) ===== */
.nav{ transition:transform .35s ease, box-shadow .3s ease, background-color .3s ease; will-change:transform; }
.nav.header-hidden{ transform:translateY(-100%); }
.nav.header-scrolled{ box-shadow:0 2px 16px rgba(12,37,69,.08); }
@media (prefers-reduced-motion:reduce){ .nav{ transition:none; } .nav.header-hidden{ transform:none; } }

/* ============ PRISER (pris-sida) ============ */
.pricetable{width:100%;border-collapse:collapse;margin:0 0 1rem;font-size:1.02rem;}
.pricetable th{text-align:left;font-size:.74rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--body);padding:0 0 .8rem;border-bottom:2px solid var(--hairline);}
.pricetable td{padding:.95rem 0;border-bottom:1px solid var(--hairline);vertical-align:baseline;}
.pricetable tr:last-child td{border-bottom:0;}
.pricetable .svc{font-weight:600;color:var(--ink);}
.pricetable .price{text-align:right;font-weight:600;color:var(--accent);white-space:nowrap;}
.pricetable .price.q{color:var(--body);font-weight:500;font-size:.9rem;white-space:normal;}
.pricenote{font-size:.92rem;color:var(--body);line-height:1.6;margin:0;}
.pricefactors{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(1rem,2.2vw,1.6rem);margin-top:clamp(1.2rem,2.6vw,2rem);}
.fitem{background:#fff;border:1px solid var(--hairline);border-radius:12px;padding:1.2rem 1.3rem;display:flex;flex-direction:column;gap:.4rem;}
.fitem b{font-family:var(--display);font-size:1.05rem;color:var(--ink);}
.fitem span{font-size:.95rem;line-height:1.55;color:var(--body);}
.priceex{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(1rem,2.2vw,1.6rem);margin-top:clamp(1.2rem,2.6vw,1.8rem);}
.priceex__card{background:var(--marin);color:#fff;border-radius:16px;padding:clamp(1.4rem,2.4vw,1.9rem);}
.priceex__card .lab{font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.6);margin:0 0 .6rem;}
.priceex__card .amt{font-family:var(--display);font-size:clamp(1.4rem,3vw,1.9rem);font-weight:600;line-height:1.2;}
.priceex__card .amt span{display:block;font-family:var(--grotesk);font-size:.8rem;font-weight:500;letter-spacing:.04em;color:var(--ljus);margin-top:.3rem;}
.faq-aside__img{border-radius:12px;overflow:hidden;margin-bottom:1rem;}
.faq-aside__img img{width:100%;height:100%;object-fit:cover;display:block;}

/* ===== PRISER PAGE COLOR/SPACING TWEAKS ===== */
#priser .lead strong:nth-of-type(2),
#priser .lead strong:nth-of-type(3){color:#1F56E6;}
.pricefactors .fitem b{color:#1F56E6;}
.priceex + .pricenote{margin-top:1.25rem;}
.priceex__card .lab{color:#1F56E6;}

/* ===== FOOTER ADDRESS ===== */
.footer .module-text p{margin:0;}
.footer .module-text .small{font-size:.96rem;line-height:1.5;}
.footer .module-text p.small:not(.map){opacity:.92;}
.footer .module-text .map{margin-top:.15rem;}

/* ===== LOGO — state-based header (white over hero / blue when solid) + footer ===== */
.nav__brand{position:relative;}
.nav__logo{display:block;height:clamp(28px,3.4vw,36px);width:auto;transition:opacity .4s var(--ease);}
.nav__logo--blue{position:absolute;top:0;left:0;opacity:0;}
.nav.is-solid .nav__logo--white{opacity:0;}
.nav.is-solid .nav__logo--blue{opacity:1;}
.footer__logo{display:block;height:40px;width:auto;margin-bottom:.2rem;}
