/* Snekkerfreddi AS
   Runde 27: lyst og rent. Hvitt er hovedfargen, med svart (#0a0a0a) og grønt (petrol #0a655a og mint #effefa) som de andre
   fargene. Den blå fargen er tatt helt bort. Oppsettet bygger fortsatt på estatemanagement.no: Inter (systemskriften som reserve)
   med vanlig vekt, tall i monospace, rette hjørner, knapper med tykk strek og tekstlenker med liten pil. Innhold i 1280 px. */

:root{
  --black:#0a0a0a;
  --teal:#0a655a;
  --mint:#effefa;
  --mint-2:#eefefa;
  --white:#fff;
  --grey:#5c5c5c;
  --line:rgba(10,10,10,.14);
  --font:Inter,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --gutter:clamp(20px,5.56vw,80px);
  --maxw:1280px;
  --header-h:72px;
  --sec:clamp(64px,7.8vw,112px);
  --ease:cubic-bezier(.2,.7,.1,1);
  /* farge på tekst, streker og knapper (fg) og bakgrunn (bg) i hver flate */
  --fg:var(--black);
  --bg:var(--white);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-padding-top:calc(var(--header-h) + 16px)}
/* Bunnfeltet står alltid nederst, også på korte sider som «Takk» */
body{margin:0;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;background:var(--white);color:var(--black);font-family:var(--font);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
main{flex:1 0 auto;background:var(--white)}
img,video,svg{display:block;max-width:100%}
img,video{height:auto}
a{color:inherit;text-decoration:none}
button,select,input,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4,p,blockquote,figure,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
h1,h2,h3{font-weight:400;overflow-wrap:break-word;text-wrap:balance}
p{text-wrap:pretty}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}
::selection{background:var(--teal);color:#fff}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--black);color:#fff;padding:10px 16px}
.skip:focus{top:12px}
.hp{position:absolute;left:-9999px}
@media (min-width:701px){.only-m{display:none!important}}
@media (max-width:700px){.only-d{display:none!important}}

/* Oppsett */
.wrap{width:100%;max-width:calc(var(--maxw) + var(--gutter) * 2);margin-inline:auto;padding-inline:var(--gutter)}
.wrap--article{max-width:calc(768px + var(--gutter) * 2)}
.section{padding-block:var(--sec);background:var(--bg);color:var(--fg)}
.section--first{padding-top:0}
/* Seksjonene slutter ofte på en brøkdel av en piksel. En skygge på 1 px i egen farge hindrer en tynn lys strek mellom to like flater. */
main > section{box-shadow:0 1px 0 var(--bg)}
main > .section--dark + .section--dark,main > .section--mint + .section--mint{padding-top:0}
.section--dark{--fg:var(--white);--bg:var(--black)}
.section--mint{--fg:var(--teal);--bg:var(--mint)}
.shead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px 48px;margin-bottom:clamp(40px,6vw,88px)}
.split2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px 80px;align-items:start}
.split2 .lead,.split2 > div > p{max-width:576px}
.split2 .btns{margin-top:32px}
.split2--intro{margin-bottom:clamp(48px,6vw,80px)}
.split2--intro p + p{margin-top:24px}

/* Typografi: faste trinn for mobil, nettbrett og PC */
.h1{font-size:2.25rem;line-height:1.2}
.h2{font-size:2rem;line-height:1.2}
.h2--sm{font-size:1.75rem}
@media (min-width:768px){.h1{font-size:3rem}.h2{font-size:2.5rem}.h2--sm{font-size:2.25rem}}
@media (min-width:1024px){.h1{font-size:3.5rem}.h2{font-size:3rem}.h2--sm{font-size:2.5rem}}
.h2--strong{font-weight:500}
.h3{font-size:1.5rem;line-height:1.4;font-weight:500}
.lead{font-size:1.125rem;line-height:1.5}
.inline{text-decoration:underline;text-underline-offset:3px}
a[href^="tel:"]{white-space:nowrap}

/* Knapp med tykk strek og rette hjørner. Den viktigste knappen på hver flate er fylt (btn--solid). */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:12px 24px;border:3px solid var(--fg);background:transparent;color:var(--fg);font-size:16px;line-height:24px;font-weight:400;white-space:nowrap;cursor:pointer;transition:background .2s,color .2s}
.btn--solid{background:var(--fg);color:var(--bg)}
@media (hover:hover){.btn:hover{background:var(--fg);color:var(--bg)}.btn--solid:hover{background:transparent;color:var(--fg)}}
.btns{display:flex;flex-wrap:wrap;align-items:center;gap:16px 32px}
.btns--center{justify-content:center}
/* Tekstlenke med liten pil */
.lnk{position:relative;display:inline-flex;align-items:center;gap:8px;color:inherit;font-size:16px;line-height:24px;white-space:nowrap;cursor:pointer}
.lnk svg{width:15px;height:15px;flex:none;transition:transform .3s var(--ease)}
.lnk::before{content:"";position:absolute;inset:-12px -6px}
@media (hover:hover){.lnk:hover{text-decoration:underline;text-underline-offset:4px}.lnk:hover svg{transform:translateX(3px)}}
.lnk--m{display:none}
button.inline{padding-block:9px;margin-block:-9px}
.tag{display:inline-flex;align-items:center;padding:4px 8px;background:var(--teal);color:var(--white);font-size:14px;line-height:21px;font-weight:600;white-space:nowrap}
.tags{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.stars{display:inline-flex;gap:2px;color:inherit}
.stars svg{width:18px;height:18px}

/* ---------- Menylinje ---------- */
/* Hvit, med logo til venstre, fire lenker i midten og menyknappen til høyre */
.header{position:sticky;top:0;z-index:100;padding-top:env(safe-area-inset-top);background:var(--white);color:var(--black);border-bottom:1px solid var(--line);transition:transform .4s var(--ease)}
.header.is-hidden{transform:translateY(calc(-100% - 2px))}
.header:has(:focus-visible){transform:none}
@supports not selector(:has(*)){.header:focus-within{transform:none}}
.header__bar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px;height:var(--header-h)}
.brand{justify-self:start;display:flex;align-items:center;gap:10px;min-height:44px;font-size:17px;font-weight:500;letter-spacing:.01em}
.brand__mark{width:32px;height:32px;flex:none}
.nav{display:flex;align-items:center;gap:clamp(24px,2.6vw,44px)}
.nav__link{position:relative;padding:10px 0;font-size:16px}
.nav__link::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav__link[aria-current="page"]::after{transform:scaleX(1)}
@media (hover:hover){.nav__link:hover::after{transform:scaleX(1)}}
.burger{justify-self:end;display:grid;place-items:center;width:44px;height:44px;margin-right:-8px}
.burger__lines{position:relative;width:24px;height:16px}
.burger__lines span{position:absolute;left:0;right:0;height:2px;background:currentColor;transition:transform .35s var(--ease),opacity .2s,top .35s var(--ease)}
.burger__lines span:nth-child(1){top:0}
.burger__lines span:nth-child(2){top:7px}
.burger__lines span:nth-child(3){top:14px}
.burger[aria-expanded="true"] .burger__lines span:nth-child(1){top:7px;transform:rotate(45deg)}
.burger[aria-expanded="true"] .burger__lines span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] .burger__lines span:nth-child(3){top:7px;transform:rotate(-45deg)}
/* Menyen: hvit over hele skjermen med store lenker og tjenestene under */
.menu{position:fixed;inset:0;z-index:90;background:var(--white);color:var(--black);padding:calc(var(--header-h) + env(safe-area-inset-top) + 32px) 0 calc(32px + env(safe-area-inset-bottom));overflow-y:auto;opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility .3s}
.menu.is-open{opacity:1;visibility:visible}
.menu__inner{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:40px 80px;align-items:start}
.menu__main nav{display:grid}
.menu__link{display:block;padding-block:4px;font-size:clamp(2rem,3.4vw,3rem);line-height:1.25}
.menu__link[aria-current="page"]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px}
@media (hover:hover){.menu__link:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px}}
.menu__label{font-weight:600;margin-bottom:8px;color:var(--teal)}
.menu__sub{display:grid}
.menu__sub a{display:block;padding-block:9px;font-size:1.125rem}
@media (hover:hover){.menu__sub a:hover{text-decoration:underline;text-underline-offset:4px}}
body.menu-open{overflow:hidden}
body.menu-open .header{transform:none;border-bottom-color:transparent}
body.menu-open .nav{visibility:hidden}
.menu__cta{margin-top:36px}

/* ---------- Forsiden ---------- */
/* Toppen: stor overskrift til venstre, kort tekst, knapp og omtale til høyre, og ett rolig, stort bilde under */
.front{padding-block:clamp(40px,6vw,88px) clamp(56px,7vw,96px)}
.front__top{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px 80px;align-items:end}
.front__title{max-width:760px}
.front__side .lead{max-width:480px}
.front__side .btns{margin-top:28px}
.front__proof{display:flex;flex-wrap:wrap;align-items:center;gap:6px 24px;margin-top:24px;font-size:14px;color:var(--grey)}
.front__proof > span{display:inline-flex;align-items:center;gap:8px}
.front__proof .stars{color:var(--teal)}
.front__proof .stars svg{width:15px;height:15px}
.front__img{margin-top:clamp(40px,5vw,64px);aspect-ratio:2/1;overflow:hidden;background:#eee}
.front__img img{width:100%;height:100%;object-fit:cover;object-position:50% 5%}

/* Innholdskort: bilde i 3:2, merkelapp, tittel og utdrag */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:64px 32px}
.card{display:flex;flex-direction:column;align-items:flex-start;color:var(--fg)}
.card__img{display:block;width:100%;aspect-ratio:3/2;overflow:hidden;background:rgba(127,127,127,.15)}
.card__img img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%);transition:transform .8s var(--ease)}
.card .tag{margin-top:24px}
.card__title{margin-top:16px;font-size:1.5rem;line-height:1.4;font-weight:500;text-wrap:balance}
.card__text{margin-top:8px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.card--svc .card__title{margin-top:24px}
@media (hover:hover){.card:hover .card__img img{transform:scale(1.03)}.card:hover .card__title{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}}
/* «Vil du bli neste prosjekt?» fyller siste plass i prosjektrutenettet */
.card__next{display:flex;flex-direction:column;justify-content:flex-end;gap:12px;width:100%;aspect-ratio:3/2;padding:clamp(24px,2.6vw,36px);background:var(--teal);color:var(--mint-2)}
.card__nexttitle{font-size:1.5rem;line-height:1.3;font-weight:500;color:#fff}
.card__next .lnk{margin-top:8px;color:#fff}
@media (hover:hover){.card--next:hover .card__next .lnk{text-decoration:underline;text-underline-offset:4px}.card--next:hover .card__next .lnk svg{transform:translateX(3px)}}

/* Samarbeid og omtale */
.logos{padding-block:80px 96px;background:var(--white)}
.logos__title{font-size:1.125rem;line-height:1.2;font-weight:500;text-align:center}
.logos__row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:32px clamp(40px,6vw,96px);margin-top:56px}
.logos__item{font-size:17px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#1c1c1c;opacity:.85}
.logos__item--img{display:inline-flex;align-items:center;min-height:44px}
.logos__item--img img{height:34px;width:auto;filter:brightness(0)}
@media (min-width:701px) and (max-width:1219px){.logos__row{max-width:640px;margin-inline:auto}}

/* Tall og bilder i rutenett. Hver rute har overskrift, ikon, tall og forklaring. */
.mosaic{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(280px,auto);gap:32px}
.mosaic > :nth-child(1){grid-column:1;grid-row:1/3}
.mosaic > :nth-child(2){grid-column:2;grid-row:1}
.mosaic > :nth-child(3){grid-column:3;grid-row:1}
.mosaic > :nth-child(4){grid-column:2;grid-row:2}
.mosaic > :nth-child(5){grid-column:3;grid-row:2}
.mosaic__img{position:relative;overflow:hidden;background:#eee}
.mosaic__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.stat{display:flex;flex-direction:column;gap:20px;padding:28px 32px 32px;background:var(--teal);color:var(--mint-2)}
.stat--mint{background:var(--mint);color:var(--teal)}
.stat--black{background:var(--black);color:#fff}
.stat__top{display:flex;justify-content:space-between;align-items:center;gap:16px}
.stat__label{font-size:1.125rem;line-height:1.4;font-weight:500}
.stat__top > svg{width:28px;height:28px;flex:none;opacity:.9}
.stat__bottom{margin-top:auto}
.stat__num{display:block;padding-bottom:12px;border-bottom:1px solid currentColor;font-size:clamp(2.75rem,4.4vw,4rem);line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.stat__text{display:block;margin-top:12px;font-size:15px;line-height:1.5}
.stat__quote{margin-top:8px}
.stat__quote p{font-size:clamp(1.125rem,1.5vw,1.3rem);line-height:1.5;color:#fff}
.stat__who{font-size:14px;opacity:.85}

/* Anmeldelser i tre kolonner */
.tms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 48px}
.tm{display:flex;flex-direction:column;gap:20px;margin:0;color:var(--fg)}
.tm .stars svg{width:20px;height:20px}
.tm blockquote p{font-size:1.125rem;line-height:1.55}
.tm figcaption b{display:block;font-weight:600}
.tm figcaption span{display:block;font-size:15px;line-height:1.5}

/* «La oss finne en løsning sammen»: bilder som overlapper */
.collage{position:relative;aspect-ratio:1280/811;margin-top:clamp(48px,6.6vw,96px)}
.collage figure{position:absolute;overflow:hidden;background:#eee}
.collage img{width:100%;height:100%;object-fit:cover}
.collage__big{left:10%;top:0;width:80%;aspect-ratio:3/2}
.collage__right{right:0;top:10%;width:30%;aspect-ratio:1/1}
.collage__left{left:0;bottom:0;width:30%;aspect-ratio:2/3}
.collage__right img{object-position:50% 30%}

/* Den store tjenestelisten. Et bilde kommer frem til høyre, og de andre navnene tones ned. */
.biglist{border-top:1px solid var(--line)}
.biglist li{position:relative}
.biglist__item{display:block;padding:22px 0;border-bottom:1px solid var(--line);color:var(--black);transition:border-color .3s}
.biglist__name{display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:clamp(1.6rem,3.2vw,2.75rem);line-height:1.2;transition:opacity .3s}
.biglist__name svg{width:26px;height:26px;flex:none}
.biglist__img{position:absolute;right:clamp(56px,8vw,120px);top:50%;z-index:2;width:clamp(220px,22vw,300px);aspect-ratio:4/3;overflow:hidden;opacity:0;transform:translateY(-50%) scale(.94);pointer-events:none;transition:opacity .25s,transform .35s var(--ease)}
.biglist__img img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
@media (hover:hover){
  .biglist:hover .biglist__item:not(:hover) .biglist__name{opacity:.25}
  .biglist__item:hover .biglist__img{opacity:1;transform:translateY(-50%) scale(1)}
}

/* Stor setning med bilde under */
.statement{padding-top:0}
.statement__text{display:grid;font-size:clamp(2.6rem,6.7vw,6rem);line-height:1.2;font-weight:500;color:var(--fg)}
.statement__text span:last-child{justify-self:end}
.statement__img{margin:clamp(48px,6.6vw,96px) auto 0;width:min(100%,1100px);aspect-ratio:16/9;overflow:hidden}
.statement__img img{width:100%;height:100%;object-fit:cover}

/* «Din totalentreprenør i Bergen»: fire steg side om side. Det åpne steget er petrol, de andre står som smale faner. */
.acc{display:flex;min-height:540px;border:1px solid rgba(238,254,250,.35)}
.acc__panel{display:flex;border-left:1px solid rgba(238,254,250,.35);color:var(--mint-2)}
.acc__panel:first-child{border-left:0}
.acc__panel.is-open{flex:1;background:var(--teal)}
.acc__tab{flex:none;width:88px;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:28px 0;color:inherit;text-align:center}
.acc__num{font-size:1.25rem;line-height:1.4;font-variant-numeric:tabular-nums}
.acc__label{writing-mode:vertical-rl;transform:rotate(180deg);font-size:1.25rem;line-height:1.4;font-weight:500}
.acc__tab > svg{display:none;width:22px;height:22px;flex:none}
.acc__body{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;padding:32px 32px 32px 0}
.acc__body[hidden]{display:none}
.acc__text{display:flex;flex-direction:column;align-items:flex-start;padding-top:2px}
.acc__kicker{font-size:14px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mint-2)}
.acc__text h3{margin-top:12px;font-size:clamp(1.75rem,2.8vw,2.5rem);line-height:1.2;font-weight:500;color:#fff}
.acc__text > p:not(.acc__kicker){margin-top:20px;max-width:460px;font-size:1.125rem;line-height:1.5;color:#fff}
.acc__points{display:grid;gap:12px;margin-top:28px}
.acc__points li{display:flex;align-items:flex-start;gap:12px;color:#fff}
.acc__points svg{flex:none;width:20px;height:20px;margin-top:2px;color:var(--mint-2)}
.acc__text .btns{margin-top:auto;padding-top:32px}
.acc__panel{scroll-margin-top:calc(var(--header-h) + 8px)}
.acc__img{position:relative;min-height:360px;overflow:hidden;background:rgba(255,255,255,.08)}
.acc__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%}
@media (hover:hover){.acc__panel:not(.is-open) .acc__tab:hover{background:rgba(238,254,250,.07)}}

/* Avslutning: sentrert overskrift, tekst og knapp. Hvit på forsiden (med kort skjema på mobil), mintgrønn med svart knapp på undersidene. */
.cta__head{display:flex;flex-direction:column;align-items:center;text-align:center}
.cta__head h2{max-width:768px}
.cta__head p{margin-top:24px;max-width:640px;font-size:1.125rem}
.cta__head .btns{margin-top:32px}
.cta.section--mint .btn{--fg:var(--black);--bg:var(--white)}
.cta__form{width:100%;max-width:520px;margin:28px auto 0;text-align:left}
.form--quick{margin-top:0}
.form--quick textarea{min-height:110px}
.cta__or{margin-top:20px;text-align:center}
.cta__or a{text-decoration:underline;text-underline-offset:3px}

/* ---------- Undersider ---------- */
.intro{padding-block:clamp(56px,7vw,104px) clamp(40px,5vw,72px)}
.intro .h1{max-width:640px}
.intro__more{margin-top:24px}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:24px;font-size:14px;color:var(--grey)}
.crumbs a{padding:12px 0;margin-block:-6px}
@media (hover:hover){.crumbs a:hover{color:#000;text-decoration:underline}}
/* Mintgrønt bånd øverst på tjenestesidene */
.mintband{padding-block:clamp(40px,5vw,64px);--fg:var(--teal);--bg:var(--mint);background:var(--bg);color:var(--fg)}
.mintband__title{font-size:clamp(1.5rem,2.5vw,2.25rem);line-height:1.2;color:var(--teal)}
.mintband p + p{font-size:1.125rem}
.svhead{padding-block:clamp(56px,6.6vw,96px) clamp(40px,5vw,72px);text-align:center}
.svhead--top{padding-top:clamp(56px,7vw,104px)}
.svhead .crumbs{justify-content:center}
.svhead .h1{max-width:900px;margin-inline:auto}
.svhead > .wrap > p{max-width:768px;margin:20px auto 0;font-size:1.125rem}
.svhead .tags{margin-top:24px}
.svhead .btns{margin-top:28px}
.svimg__fig{aspect-ratio:16/9;overflow:hidden;background:#eee}
.svimg__fig img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
.article__block{margin-top:clamp(40px,5vw,64px)}
.article__block--first{margin-top:0}
.article__block > .h3{margin-bottom:20px}
.article__quote{padding:28px 0 4px 28px;border-left:3px solid var(--teal)}
.article__quote .stars{color:var(--teal)}
.checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 32px}
.checks li{display:flex;align-items:flex-start;gap:12px;line-height:1.5}
.checks svg{flex:none;width:20px;height:20px;margin-top:2px;color:var(--teal)}
.subs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.sub{display:flex;flex-direction:column;gap:12px}
.sub__img{aspect-ratio:3/2;overflow:hidden;background:#eee}
.sub__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.sub__title{display:inline-flex;align-items:center;gap:8px;font-size:1.25rem}
.sub__title svg{width:16px;height:16px}
@media (hover:hover){.sub:hover .sub__img img{transform:scale(1.03)}.sub:hover .sub__title{text-decoration:underline;text-underline-offset:4px}}
.cards--grid{row-gap:72px}

/* Bildegalleri, før og etter */
.sqgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.sqgrid > *{grid-column:span 2}
.sqgrid > :last-child:nth-child(3n+1){grid-column:1/-1;aspect-ratio:3/1}
.sqgrid > :nth-last-child(2):nth-child(3n+1),.sqgrid > :last-child:nth-child(3n+2){grid-column:span 3;aspect-ratio:3/2}
.sqgrid .gallery__item{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;background:#eee;cursor:zoom-in}
.sqgrid .gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
@media (hover:hover){.sqgrid .gallery__item:hover img{transform:scale(1.03)}}
.proj.is-open .sqgrid .gallery__item{display:block}
.ba{display:grid;gap:16px}
.ba__pair{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.ba .gallery__item{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;background:#eee;cursor:zoom-in}
.ba .gallery__item img{width:100%;height:100%;object-fit:cover}
.proj.is-open .ba .ba__pair{display:grid}
@media (min-width:701px){.sqgrid .is-d-extra,.ba .ba__pair.is-d-extra{display:none}}
.proj__links{display:flex;flex-wrap:wrap;align-items:center;gap:12px 32px;margin-top:24px}
.proj__links .credit{margin:0 0 0 auto}
.credit{font-size:14px;color:var(--grey)}

/* Om oss */
.team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.member{display:flex;flex-direction:column;align-items:flex-start;color:var(--teal)}
.member__img{width:100%;aspect-ratio:4/5;overflow:hidden;background:#dfeee9}
.member__img img{width:100%;height:100%;object-fit:cover;object-position:50% 15%}
.member h3{margin-top:20px;font-size:1.25rem;line-height:1.4;font-weight:500}
.member p{font-size:14px}
.member .lnk{margin-top:8px;font-size:14px}
.quote{margin-top:clamp(48px,6vw,80px);max-width:768px}
.quote p{font-size:clamp(1.25rem,1.8vw,1.5rem);line-height:1.5}
.quote footer{margin-top:12px;font-size:14px}
.split__img{aspect-ratio:3/2;overflow:hidden;background:#222}
.split__img img{width:100%;height:100%;object-fit:cover}
.split__img--tall{margin-top:40px;aspect-ratio:4/5;max-width:440px}
.section--dark .lead{margin-top:24px;color:var(--white)}
.section--dark .split2--intro .lead{margin-top:0}
.section .split2 .h2 + .lead{margin-top:24px}
.press{margin-top:40px;border-top:1px solid rgba(255,255,255,.4)}
.press a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.4)}
.press b{font-weight:500}
.press small{display:block;margin-top:2px;font-size:14px;opacity:.8}
.press svg{width:15px;height:15px}
@media (hover:hover){.press a:hover b{text-decoration:underline;text-underline-offset:3px}}
.formbox{padding:clamp(24px,3.4vw,48px);background:var(--mint);color:var(--black);--fg:var(--black);--bg:var(--mint)}

/* Kontakt: lys side med skjemaet i et mintgrønt felt og Freddi med kontaktlinjene ved siden av */
.kontakt{padding-block:clamp(48px,6vw,88px) var(--sec)}
.kontakt__head{max-width:780px}
.kontakt__head .lead{margin-top:20px;max-width:600px}
.kontakt__quick{margin-top:28px}
.kontakt__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:48px 80px;align-items:start;margin-top:clamp(40px,5vw,64px)}
.formcard{padding:clamp(24px,3.4vw,48px);background:var(--mint);color:var(--black);--fg:var(--black);--bg:var(--mint)}
.formcard .h3{font-size:1.75rem;font-weight:500}
.formcard > p{margin-top:12px;max-width:560px}
.kontakt__aside{position:sticky;top:calc(var(--header-h) + 24px)}
.kontakt__img{aspect-ratio:1/1;overflow:hidden;background:#eee}
.kontakt__img img{width:100%;height:100%;object-fit:cover;object-position:50% 18%}
.kontakt__who{margin-top:20px}
.kontakt__who h2{font-size:1.375rem;line-height:1.3;font-weight:500}
.kontakt__who p{margin-top:2px;color:var(--grey)}
.clist{margin-top:20px;border-top:1px solid var(--line)}
.clist li{display:flex;align-items:flex-start;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.clist svg{flex:none;width:22px;height:22px;margin-top:2px;color:var(--teal)}
.clist b{display:block;font-size:14px;font-weight:600;color:var(--grey)}
.clist span{display:block;font-size:1.0625rem}
.clist span a{display:inline-block;padding-block:10px;margin-block:-10px}
@media (hover:hover){.clist span a:hover{text-decoration:underline;text-underline-offset:3px}}

/* Skjema */
.form{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:32px}
.field{display:grid;gap:8px;min-width:0}
fieldset.field{border:0;padding:0;margin:0}
.field--full{grid-column:1/-1}
.field > label,.field > legend{padding:0;font-weight:600}
.field > label span,.field > legend span{font-weight:400}
.field input,.field select,.field textarea{width:100%;min-height:54px;padding:13px 16px;border:1px solid rgba(10,10,10,.3);border-radius:0;background:var(--white);color:var(--black);font-size:16px;appearance:none;-webkit-appearance:none;transition:border-color .2s,box-shadow .2s}
.field textarea{min-height:160px;resize:vertical}
.field select{padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%230a0a0a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:18px}
.field input:-webkit-autofill{-webkit-box-shadow:0 0 0 100px #fff inset;box-shadow:0 0 0 100px #fff inset;-webkit-text-fill-color:var(--black);caret-color:var(--black)}
.field input:-webkit-autofill:focus{box-shadow:0 0 0 100px #fff inset,0 0 0 3px rgba(10,101,90,.3)}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--black);box-shadow:0 0 0 3px rgba(10,101,90,.3)}
.opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.opts label{position:relative}
.field .opts input{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;opacity:0;cursor:pointer}
.opts span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid currentColor;background:var(--white);font-size:15px;cursor:pointer;transition:background .2s,color .2s}
.opts input:checked + span{background:var(--black);border-color:var(--black);color:#fff}
.opts input:focus-visible + span{outline:2px solid currentColor;outline-offset:2px}
.consent{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;font-size:14px}
.consent input{width:20px;height:20px;margin-top:1px;accent-color:var(--black);flex:none}
.consent a{text-decoration:underline}
.form .btn{justify-self:start}
.field input[type="file"]{min-height:0;padding:10px 12px;cursor:pointer}
.field input[type="file"]::file-selector-button{margin-right:12px;padding:8px 14px;border:0;background:var(--black);color:#fff;font:inherit;font-size:14px;cursor:pointer}

/* Lysboks */
.lb{position:fixed;inset:0;z-index:300;margin:0;padding:0;width:100%;height:100%;max-width:none;max-height:none;border:0;background:#0a0a0a;color:#fff;display:none;align-items:center;justify-content:center;--fg:var(--mint-2);--bg:var(--black)}
.lb[open]{display:flex}
.lb::backdrop{background:transparent}
.lb__inner{display:grid;grid-template-columns:auto minmax(0,330px);gap:32px;align-items:center;padding:20px}
.lb__media{height:min(84svh,780px);aspect-ratio:9/16;overflow:hidden;background:#000}
.lb__media video{width:100%;height:100%;object-fit:cover}
.lb__info h2{font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.2}
.lb__info p{margin-top:12px;color:rgba(255,255,255,.75)}
.lb__info .btns{margin-top:24px}
.lb__close{position:fixed;top:18px;right:18px;width:48px;height:48px;display:grid;place-items:center;border:2px solid rgba(255,255,255,.6)}
.lb__close svg{width:18px;height:18px}
.lb--img .lb__inner{grid-template-columns:1fr}
.lb--img .lb__media{height:auto;aspect-ratio:auto;background:transparent;display:flex;justify-content:center}
.lb--img .lb__media img{max-height:86svh;width:auto}
.lb__nav{position:fixed;top:50%;width:52px;height:52px;margin-top:-26px;display:grid;place-items:center;border:2px solid rgba(255,255,255,.6)}
.lb__nav svg{width:18px;height:18px}
.lb__prev{left:16px}.lb__next{right:16px}
.lb__count{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);font-size:13px;color:rgba(255,255,255,.7)}
@media (hover:hover){.lb__close:hover,.lb__nav:hover{background:rgba(255,255,255,.12)}}

/* «Hva kan vi hjelpe deg med?» nede i hjørnet, med bildet av Freddi. Samme uttrykk som resten av siden: rette hjørner, knapp med
   tykk svart strek og lister med tynne streker og liten pil. Bare på PC, og skjult over toppen, skjemaer og bunnfeltet. */
.helper{position:fixed;right:24px;bottom:24px;z-index:80;display:flex;flex-direction:column;align-items:flex-end;gap:12px;transition:opacity .25s,transform .3s var(--ease),visibility 0s}
.helper__btn{display:flex;align-items:center;gap:12px;min-height:54px;padding:4px 20px 4px 4px;background:var(--white);color:var(--black);border:3px solid var(--black);font-size:16px;line-height:24px;box-shadow:0 10px 30px rgba(10,10,10,.12);transition:background .2s,color .2s}
.helper__btn img{width:40px;height:40px;object-fit:cover}
.helper__btn[aria-expanded="true"]{background:var(--black);color:var(--white)}
.helper__panel{width:320px;padding:24px;background:var(--white);color:var(--black);border:1px solid var(--line);box-shadow:0 24px 60px rgba(10,10,10,.14)}
.helper__panel[hidden]{display:none}
.helper__title{font-size:1.25rem;line-height:1.3;font-weight:500}
.helper__call{width:100%;margin-top:18px}
.helper__list{margin-top:12px}
.helper__list a{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:52px;border-bottom:1px solid var(--line)}
.helper__list svg{width:15px;height:15px;flex:none;transition:transform .3s var(--ease)}
@media (hover:hover){.helper__btn:hover{background:var(--black);color:var(--white)}.helper__list a:hover span{text-decoration:underline;text-underline-offset:4px}.helper__list a:hover svg{transform:translateX(3px)}}
.helper.is-away{opacity:0;visibility:hidden;transform:translateY(12px);pointer-events:none;transition:opacity .25s,transform .3s var(--ease),visibility 0s .3s}
body.menu-open .helper{display:none}
@media (max-width:1100px){.helper{display:none}}

/* Fast rad nederst på mobil og nettbrett: «Ring» og «Få uforpliktende tilbud» (runde 29) */
.mbar{display:none}
@media (max-width:900px){
  .mbar{position:fixed;left:0;right:0;bottom:0;z-index:85;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));background:var(--white);border-top:1px solid var(--line);box-shadow:0 -10px 30px rgba(10,10,10,.08);transition:transform .3s var(--ease),visibility 0s}
  .mbar .btn{min-height:50px;padding:10px 18px}
  .mbar .btn svg{width:18px;height:18px;flex:none}
  .mbar.is-away{transform:translateY(calc(100% + 2px));visibility:hidden;transition:transform .3s var(--ease),visibility 0s .3s}
  body.menu-open .mbar{display:none}
}
@media (max-width:359px){.mbar .btn{padding:10px 12px;font-size:15px}}

/* Diverse */
.prose h2{font-size:1.5rem;font-weight:500;margin-top:40px}
.prose p{margin-top:12px}
.prose a{text-decoration:underline}

/* ---------- Bunnfelt ---------- */
.footer{background:var(--black);color:var(--white);font-size:14px;line-height:1.5}
.footer__cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 32px;padding-block:clamp(56px,6.6vw,96px) 64px}
.footer h2{margin-bottom:20px;font-size:16px;font-weight:600}
.footer li + li{margin-top:16px}
.footer li a{display:inline-block;padding-block:10px;margin-block:-10px}
@media (hover:hover){.footer li a:hover{text-decoration:underline;text-underline-offset:3px}}
.footer__bottom{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px 32px;padding-block:32px calc(40px + env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.35)}
.footer__bottom > :last-child{justify-self:end;text-align:right}
.footer__brand{display:flex;align-items:center;gap:10px;min-height:44px;font-size:16px;font-weight:500}
.footer__mark{width:30px;height:30px}

/* ---------- Nettbrett ---------- */
@media (max-width:1100px){
  .menu__inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .menu__main{grid-column:1/-1}
  .kontakt__grid{grid-template-columns:minmax(0,1fr) minmax(0,320px);gap:48px}
  .acc{flex-direction:column;min-height:0}
  .acc__panel{flex-direction:column;border-left:0;border-top:1px solid rgba(238,254,250,.35)}
  .acc__panel:first-child{border-top:0}
  .acc__tab{width:100%;flex-direction:row;justify-content:flex-start;gap:20px;min-height:64px;padding:18px 24px;text-align:left}
  .acc__label{writing-mode:horizontal-tb;transform:none}
  .acc__tab > svg{display:block;margin-left:auto}
  .acc__tab[aria-expanded="true"] > svg{transform:rotate(180deg)}
  .acc__body{gap:32px;padding:4px 24px 28px}
  .acc__kicker,.acc__text h3{display:none}
  .acc__text > p:not(.acc__kicker){margin-top:0}
  .acc__img{min-height:0;aspect-ratio:4/5}
}
@media (max-width:900px){
  .nav{display:none}
  .header__bar{display:flex;justify-content:space-between}
  .split2{grid-template-columns:1fr;gap:24px}
  .front__top{grid-template-columns:1fr;gap:24px}
  .team{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tms{grid-template-columns:1fr;gap:40px}
  .mosaic{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(240px,auto)}
  .mosaic > :nth-child(n){grid-column:auto;grid-row:auto}
  .mosaic > :nth-child(1){grid-row:span 2}
  .kontakt__grid{grid-template-columns:1fr}
  .kontakt__aside{position:static;display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:8px 32px;align-items:start}
  .kontakt__img{grid-row:span 2}
  .kontakt__who{margin-top:0}
  .clist{margin-top:0}
}
/* Kortene står tre i bredden helt ned til mobil, så ingen rad blir stående med ett kort alene */
@media (min-width:701px) and (max-width:900px){
  .cards{gap:40px 16px}
  .card__title{font-size:1.125rem}
  .card .tag{margin-top:16px;font-size:13px}
  .card__text{display:block;-webkit-line-clamp:none;font-size:15px}
  .footer__cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .card__nexttitle{font-size:1.125rem}
  .card__next{padding:16px}
  .card__next > span:nth-child(2){display:none}
}

/* ---------- Mobil ---------- */
@media (max-width:700px){
  :root{--header-h:64px}
  .h3{font-size:1.25rem}
  .shead{flex-direction:column;align-items:flex-start;gap:20px}
  .btns{flex-direction:column;align-items:flex-start;gap:20px}
  .front .btns,.cta__head .btns,.kontakt__quick,.svhead .btns,.acc__text .btns,.menu__cta{align-items:stretch;width:100%}
  .front .btns .lnk,.cta__head .btns .lnk,.kontakt__quick .lnk,.svhead .btns .lnk,.acc__text .btns .lnk,.menu__cta .lnk{align-self:center}
  .brand{font-size:16px}
  .menu__inner{grid-template-columns:1fr;gap:32px}
  .menu__link{font-size:2rem}

  .front{padding-top:32px}
  .front__img{aspect-ratio:4/3;margin-top:36px}
  .front__img img{object-position:50% 50%}

  .cards{grid-template-columns:1fr;gap:56px}
  .card .tag{margin-top:20px}
  .card__title{margin-top:12px;font-size:1.25rem}
  .card--svc .card__title{margin-top:20px}
  .logos{padding-block:56px}
  .logos__row{gap:20px 32px;margin-top:32px}
  .logos__item{font-size:13px}
  .logos__item--img img{height:26px}
  /* Tallene som kompakte rader: tall til venstre, overskrift og forklaring til høyre */
  .mosaic{grid-template-columns:1fr;grid-auto-rows:auto;gap:10px}
  .mosaic > :nth-child(1){grid-row:auto}
  .mosaic__img,.stat__quote,.stat__who{display:none}
  .stat{display:grid;grid-template-columns:5.2rem minmax(0,1fr);grid-template-areas:"num top" "num text";column-gap:18px;row-gap:4px;align-items:center;padding:18px 20px}
  .stat__top{grid-area:top}
  .stat__top > svg{display:none}
  .stat__label{font-size:1rem;font-weight:600}
  .stat__bottom{display:contents}
  .stat__num{grid-area:num;padding:0;border:0;font-size:2.4rem;line-height:1}
  .stat__text{grid-area:text;margin-top:0;font-size:14px;line-height:1.45}
  .stat .stars svg{width:15px;height:15px}
  .collage{margin-top:40px}
  .biglist__item{padding:16px 0}
  .biglist__name{font-size:1.5rem}
  .biglist__name svg{width:20px;height:20px}
  .biglist__img{display:none}
  .statement__text span:last-child{justify-self:start}
  .acc__tab{padding:16px 20px}
  .acc__body{grid-template-columns:1fr;gap:24px;padding:0 20px 24px}
  .acc__img{aspect-ratio:4/3}
  .checks,.subs{grid-template-columns:1fr}
  .article__quote{padding-left:20px}
  .team{gap:24px 16px}
  .member h3{font-size:1.06rem}
  .kontakt__aside{grid-template-columns:1fr}
  .kontakt__img{grid-row:auto;max-width:none;aspect-ratio:4/3}
  .kontakt__who{margin-top:16px}
  .clist{margin-top:16px}
  .formcard{margin-inline:calc(var(--gutter) * -1);padding:28px var(--gutter)}
  .form{grid-template-columns:1fr;gap:20px}
  .form .btn{justify-self:stretch}
  /* Kontaktskjemaet: det som må fylles ut først, e-post og sted til slutt */
  .form .field--opt{order:2}
  .form .consent{order:3}
  .form > .btn{order:4}
  .sqgrid{gap:4px}
  .sqgrid .is-m-extra,.ba .ba__pair.is-m-extra{display:none}
  .proj.is-open .sqgrid .gallery__item{display:block}
  .proj.is-open .ba .ba__pair{display:grid}
  .lnk--m{display:inline-flex}
  .lnk--d{display:none}
  .proj--lead .sqgrid > :last-child:nth-child(3n+1),.proj--lead .sqgrid > :nth-last-child(2):nth-child(3n+1){grid-column:span 2;aspect-ratio:1/1}
  .proj--lead .sqgrid > .gallery__item:first-child,.proj--lead .sqgrid > :last-child:nth-child(3n+2){grid-column:1/-1;aspect-ratio:3/2}
  .proj--lead .sqgrid > :nth-last-child(2):nth-child(3n+2),.proj--lead .sqgrid > :last-child:nth-child(3n){grid-column:span 3;aspect-ratio:3/2}
  .proj__links .credit{margin-left:0;width:100%}
  .svimg__fig{aspect-ratio:4/3}
  .lb__inner{grid-template-columns:1fr;gap:16px;padding:64px 16px 16px;max-height:100svh;overflow:auto}
  .lb__media{height:min(64svh,620px);margin-inline:auto}
  .lb__info{text-align:center}.lb__info .btns{justify-content:center;align-items:center}
  .lb__nav{top:auto;bottom:12px;margin:0}
  .footer__cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 20px}
  .footer li + li{margin-top:23px}
  .footer li a{padding-block:11.5px;margin-block:-11.5px}
  .footer__cols > div:first-child,.footer__cols > div:nth-child(4){grid-column:1/-1}
  .footer__bottom{grid-template-columns:1fr;gap:6px}
  .footer__bottom > :last-child{justify-self:start;text-align:left}
  /* Prosjekter, tjenester og anmeldelser som en rad man sveiper i, med neste kort synlig i kanten */
  .rail-m{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:84%;gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);scroll-padding-inline:var(--gutter);scrollbar-width:none}
  .rail-m::-webkit-scrollbar{display:none}
  .rail-m > *{scroll-snap-align:start}
  .rail-m .card__text{-webkit-line-clamp:3}
  .tms.rail-m{gap:24px}
}
@media (max-height:520px) and (orientation:landscape){
  .front{padding-top:24px}
  .front__img{aspect-ratio:3/1}
  .acc__img{aspect-ratio:21/9}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
