/*
Theme Name: Eimoe
Theme URI: https://www.eimoe.com
Author: Eigil Moe
Author URI: https://www.eimoe.com
Description: Skreddersydd tema for Eimoe AS. Håndkodet fra bunn.
Version: 1.0.0
Requires PHP: 7.4
Text Domain: eimoe
*/

@font-face{
font-family:'Liszt FY';
src:url('assets/fonts/LisztFY-Lt.woff2') format('woff2');
font-weight:300;
font-style:normal;
font-display:swap;
}
@font-face{
font-family:'Liszt FY';
src:url('assets/fonts/LisztFY-Bk.woff2') format('woff2');
font-weight:400;
font-style:normal;
font-display:swap;
}
@font-face{
font-family:'Liszt FY';
src:url('assets/fonts/LisztFY-Rg.woff2') format('woff2');
font-weight:500;
font-style:normal;
font-display:swap;
}
@font-face{
font-family:'Liszt FY';
src:url('assets/fonts/LisztFY-Bd.woff2') format('woff2');
font-weight:700;
font-style:normal;
font-display:swap;
}

:root{
--ink:#16181D;
--ink-dyp:#0F1218;
--snow:#F7F8FA;
--slate:#5B6470;
--mist:#AAB2BD;
--accent:#2B5FE3;
--accent-dark:#2653C8;
--accent-lys:#5C84F0;
--accent-tekst:var(--accent);
--feil:#A83232;
--feil-kant:#D64545;
--font:'Liszt FY',system-ui,sans-serif;
--max:1320px;
--gutter:32px;
--radius:2px;
--space-1:8px;
--space-2:16px;
--space-3:24px;
--space-4:32px;
--space-5:48px;
--space-6:64px;
--space-7:96px;
--space-8:128px;
--space-9:160px;
--seksjon:var(--space-8);
--ease:cubic-bezier(0.16,1,0.3,1);
--dur-fast:0.2s;
--dur-medium:0.35s;
--dur-bilde:0.6s;
--dur-base:0.7s;
--dur-lang:0.9s;
--stagger:90ms;
--dur-treg:0.45s;
--dur-puls:2.2s;
--dur-glod:6s;
--dur-sveip:9s;
--dur-prikk:3.6s;
--stripe-topp:64.7%;
--stripe-start:40%;
--ease-farge:ease;
--ease-puls:ease-in-out;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font);font-weight:400;font-size:18px;line-height:1.6;color:var(--ink);background:var(--snow);-webkit-font-smoothing:antialiased;overflow-x:hidden}
.container{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
h1,h2,h3{font-family:var(--font)}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
[id]{scroll-margin-top:96px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.hero :focus-visible,.page-hero :focus-visible,.process :focus-visible,.site-footer :focus-visible,.mobile-menu :focus-visible{outline-color:var(--accent-lys)}
.hopp-til{position:absolute;left:-9999px;z-index:100;background:var(--accent);color:#fff;padding:12px 20px;font-weight:700;font-size:14px;border-radius:var(--radius)}
.hopp-til:focus{left:16px;top:16px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font);font-weight:700;font-size:14px;letter-spacing:0.03em;line-height:1;padding:16px 24px;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;transform:translate(var(--mx,0px),calc(var(--my,0px) + var(--loft,0px)));transition:background-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}
.btn-primary{background:var(--accent);color:var(--snow)}
.btn-primary:hover{background:var(--accent-dark);--loft:-1px}
.btn[disabled]{opacity:0.7;cursor:default;transform:none}
.eyebrow{font-family:var(--font);font-weight:700;font-size:14px;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent-tekst);margin-bottom:var(--space-3)}
.section{padding:var(--seksjon) 0}
.section-title{font-size:clamp(32px,4vw,48px);font-weight:300;line-height:1.15;letter-spacing:-0.01em;text-wrap:balance}
.section-lead{margin-top:var(--space-2);font-size:20px;color:var(--slate);max-width:560px}
.mask{overflow:hidden;padding-bottom:0.08em;margin-bottom:-0.08em}
.mask-inner{display:block}
.lenke-strek{background-image:linear-gradient(var(--accent-tekst),var(--accent-tekst));background-size:0% 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size var(--dur-fast) var(--ease);padding-bottom:2px}
.lenke-strek:hover,.lenke-strek:focus-visible{background-size:100% 1px}
.pil-lenke .arrow{display:inline-block;transition:transform var(--dur-fast) var(--ease)}
.pil-lenke:hover .arrow,.pil-lenke:focus-visible .arrow{transform:translateX(4px)}
.har-js [data-reveal]:not(.mask),.har-js [data-reveal-gruppe]>*:not(.mask){opacity:0;transform:translateY(24px);transition:opacity var(--dur-base) var(--ease),transform var(--dur-base) var(--ease);transition-delay:calc(var(--i,0)*var(--stagger))}
.har-js [data-reveal].is-inne:not(.mask),.har-js [data-reveal-gruppe].is-inne>*:not(.mask){opacity:1;transform:none}
.har-js [data-reveal].mask .mask-inner,.har-js [data-reveal-gruppe]>.mask .mask-inner{transform:translateY(115%);transition:transform var(--dur-lang) var(--ease);transition-delay:calc(var(--i,0)*var(--stagger))}
.har-js [data-reveal].mask.is-inne .mask-inner,.har-js [data-reveal-gruppe].is-inne>.mask .mask-inner{transform:none}
.har-js [data-reveal].strek{transform:scaleX(0);transform-origin:left center}
.har-js [data-reveal].strek.is-inne{transform:none}
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;transition:background-color var(--dur-medium) var(--ease-farge),box-shadow var(--dur-medium) var(--ease-farge),transform var(--dur-treg) var(--ease)}
html:not(.har-js) .site-header{position:absolute}
.site-header.is-hidden{transform:translateY(-100%)}
.header-inner{max-width:var(--max);margin:0 auto;padding:0 var(--gutter);height:88px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}
.logo{display:inline-flex;align-items:center}
.logo svg{height:22px;width:auto;display:block;color:var(--snow);transition:color var(--dur-medium) var(--ease-farge)}
.logo .logo-accent{fill:var(--accent)}
.site-nav .meny{display:flex;align-items:center;gap:36px;list-style:none}
.site-nav .menu-item{position:relative}
.site-nav .menu-item>a{font-size:16px;font-weight:500;color:var(--snow);transition:color var(--dur-fast) var(--ease-farge);padding:6px 0;background-image:linear-gradient(var(--accent),var(--accent));background-size:0% 2px;background-position:0 100%;background-repeat:no-repeat}
.site-nav .menu-item>a:hover{color:var(--accent-lys)}
.site-nav .current-menu-item>a,.site-nav .current-menu-ancestor>a{background-size:100% 2px}
.site-header.is-scrolled{background:var(--snow);box-shadow:0 1px 0 rgba(170,178,189,0.4)}
.site-header.is-scrolled .logo svg{color:var(--ink)}
.site-header.is-scrolled .site-nav .menu-item>a{color:var(--ink)}
.site-header.is-scrolled .site-nav .menu-item>a:hover{color:var(--accent)}
.site-nav .menu-item-has-children>a::after{content:"";display:inline-block;margin-left:8px;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform var(--dur-fast) var(--ease-farge)}
.site-nav .menu-item-has-children.er-aapen>a::after{transform:rotate(225deg) translateY(-2px)}
.site-nav .sub-menu{position:absolute;top:100%;left:-16px;min-width:220px;background:#fff;border:1px solid var(--mist);border-radius:var(--radius);padding:12px 0;list-style:none;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity var(--dur-fast) var(--ease-farge),transform var(--dur-fast) var(--ease-farge),visibility var(--dur-fast);z-index:60}
.site-nav .sub-menu::before{content:"";position:absolute;top:-16px;left:0;right:0;height:16px}
.site-nav .menu-item-has-children:hover>.sub-menu,.site-nav .menu-item-has-children:focus-within>.sub-menu,.site-nav .menu-item-has-children.er-aapen>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.site-nav .sub-menu .menu-item{display:block}
.site-nav .sub-menu a{display:block;padding:10px 20px;font-size:16px;font-weight:500;color:var(--ink);transition:color var(--dur-fast) var(--ease-farge),background-color var(--dur-fast) var(--ease-farge)}
.site-nav .sub-menu .current-menu-item>a{background-image:none;color:var(--accent)}
.site-nav .sub-menu a:hover{color:var(--accent);background:var(--snow)}
.header-cta{flex-shrink:0}
.menu-toggle{display:none;flex-direction:column;justify-content:center;gap:7px;padding:10px 6px;position:relative;z-index:70}
.menu-toggle span{display:block;width:26px;height:2px;background:var(--snow);transition:transform var(--dur-medium) var(--ease-farge),background-color var(--dur-medium) var(--ease-farge)}
.site-header.is-scrolled .menu-toggle span{background:var(--ink)}
body.menu-open .menu-toggle span{background:var(--snow)}
body.menu-open .menu-toggle span:first-child{transform:translateY(4.5px) rotate(45deg)}
body.menu-open .menu-toggle span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;background:var(--ink);z-index:45;display:flex;flex-direction:column;justify-content:center;padding:120px var(--gutter) var(--space-5);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity var(--dur-medium) var(--ease-farge),transform var(--dur-medium) var(--ease-farge),visibility var(--dur-medium)}
body.menu-open .mobile-menu{opacity:1;visibility:visible;transform:none}
body.menu-open{overflow:hidden}
body.menu-open .site-header{background:transparent;box-shadow:none}
body.menu-open .site-header .logo svg{color:var(--snow)}
html:not(.har-js) .mobile-menu:target{opacity:1;visibility:visible;transform:none}
.meny-lukk{position:absolute;top:28px;right:var(--gutter);color:var(--mist);font-size:14px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase}
.har-js .meny-lukk{display:none}
.mobile-nav .meny{list-style:none;display:flex;flex-direction:column;gap:4px}
.mobile-nav .meny>.menu-item>a{font-family:var(--font);font-weight:300;font-size:32px;line-height:1.2;color:var(--snow);display:block;padding:10px 0}
.mobile-nav .meny>.menu-item>a:hover{color:var(--accent-lys)}
.mobile-nav .sub-menu{list-style:none;margin:2px 0 14px 18px;display:flex;flex-direction:column;gap:2px}
.mobile-nav .sub-menu a{display:block;font-size:18px;color:var(--mist);padding:6px 0}
.mobile-nav .sub-menu a:hover{color:var(--snow)}
.mobile-menu>.btn{margin-top:var(--space-5);align-self:flex-start}
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;background:var(--ink-dyp);color:var(--snow)}
.hero-bg{position:absolute;inset:0;overflow:hidden}
.hero-bg img{width:100%;height:100%;object-fit:cover}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,18,24,0.5) 0%,rgba(15,18,24,0) 55%)}
.hero-stripe{position:absolute;left:var(--stripe-start);right:0;top:var(--stripe-topp);height:0;z-index:1;pointer-events:none}
.stripe-glod{position:absolute;left:0;right:0;top:-12px;height:24px;border-radius:50%;background:linear-gradient(90deg,rgba(43,95,227,0) 0%,rgba(43,95,227,0.32) 30%,rgba(92,132,240,0.42) 65%,rgba(43,95,227,0.2) 100%);filter:blur(9px);animation:stripeGlod var(--dur-glod) var(--ease-puls) infinite}
.stripe-sveip{position:absolute;top:-1.5px;left:0;height:3px;width:170px;border-radius:2px;background:linear-gradient(90deg,rgba(190,212,255,0) 0%,rgba(210,225,255,0.95) 50%,rgba(190,212,255,0) 100%);filter:blur(1px);opacity:0;animation:stripeSveip var(--dur-sveip) var(--ease-puls) infinite}
@keyframes stripeGlod{0%,100%{opacity:0.45}50%{opacity:1}}
@keyframes stripeSveip{0%,60%{opacity:0;transform:translateX(0)}64%{opacity:1}82%{opacity:1;transform:translateX(48vw)}88%,100%{opacity:0;transform:translateX(54vw)}}
.hero-content{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:120px var(--gutter);width:100%}
.hero-title{font-size:clamp(46px,7.5vw,96px);font-weight:300;line-height:1.05;letter-spacing:-0.01em;color:var(--snow);text-wrap:balance}
.hero-lead{margin-top:var(--space-4);max-width:520px;font-size:20px;color:var(--mist)}
.hero-cta{margin-top:var(--space-5)}
.scroll-hint{position:absolute;left:50%;bottom:36px;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:12px;font-family:var(--font);font-size:11px;font-weight:700;letter-spacing:0.22em;text-transform:uppercase;color:var(--mist)}
.scroll-hint-line{width:1px;height:44px;background:var(--mist);animation:hint var(--dur-puls) var(--ease-puls) infinite}
@keyframes hint{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.page-hero{background:var(--ink);padding:208px 0 var(--space-7);color:var(--snow);position:relative}
.page-hero .container{position:relative;z-index:2}
.hero-visual{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.hero-visual svg{position:absolute;right:-40px;bottom:-60px;width:520px;height:auto;opacity:0.3}
.hero-visual::before{content:"";position:absolute;right:60px;top:20%;width:420px;height:420px;background:radial-gradient(circle,rgba(43,95,227,0.16) 0%,rgba(43,95,227,0) 70%)}
.hero-foto{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.hero-foto img{width:100%;height:100%;object-fit:cover;opacity:0.5}
.hero-foto::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 10%,rgba(22,24,29,0.4) 58%,rgba(22,24,29,0.6) 100%)}
.page-hero.har-foto .hero-visual::before{display:none}
.page-hero.har-foto .hero-visual svg{opacity:0.42}
.page-title{font-size:clamp(40px,6vw,72px);font-weight:300;line-height:1.08;letter-spacing:-0.01em;color:var(--snow);text-wrap:balance}
.page-hero .hero-lead{margin-top:var(--space-3)}
.page-hero .eyebrow,.hero .eyebrow,.process .eyebrow{color:var(--accent-lys)}
.grid{margin-top:72px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{background:var(--ink);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column;min-height:380px;transition:transform var(--dur-medium) var(--ease)}
.card:hover{transform:translateY(-4px)}
.card-num{color:var(--accent-lys);font-weight:700;font-size:13px;letter-spacing:0.12em}
.card svg{height:118px;width:auto;max-width:82%;margin:30px auto 26px;display:block}
.card h3{color:var(--snow);font-size:21px;font-weight:700;line-height:1.3}
.card p{font-size:16px;line-height:1.55;color:var(--mist);flex:1;margin-top:10px}
.card-link{font-family:var(--font);font-weight:700;font-size:14px;color:var(--accent-lys);display:inline-flex;align-items:center;gap:6px;margin-top:18px}
.va-fyll{transform-box:fill-box;transform-origin:center;animation:vaPrikk var(--dur-prikk) var(--ease-puls) infinite;animation-delay:calc(var(--i,0)*-0.9s)}
.va-strek{animation:vaStrek var(--dur-prikk) var(--ease-puls) infinite;animation-delay:calc(var(--i,0)*-0.9s)}
@keyframes vaPrikk{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.18);opacity:0.6}}
@keyframes vaStrek{0%,100%{opacity:1}50%{opacity:0.5}}
@keyframes visualTegn{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.card:hover .va-strek,.service-row:hover .va-strek{stroke-dasharray:1;animation:visualTegn var(--dur-base) var(--ease),vaStrek var(--dur-prikk) var(--ease-puls) infinite}
.har-js [data-reveal] svg [stroke],.har-js [data-reveal-gruppe] svg [stroke]{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset var(--dur-lang) var(--ease);transition-delay:calc(var(--i,0)*var(--stagger) + var(--strek-i,0)*0.12s)}
.har-js [data-reveal].is-inne svg [stroke],.har-js [data-reveal-gruppe].is-inne svg [stroke]{stroke-dashoffset:0}
.har-js .hero-visual svg [stroke]{stroke-dasharray:1;stroke-dashoffset:1;animation:visualTegnInn 1.4s var(--ease) forwards;animation-delay:calc(0.3s + var(--strek-i,0)*0.12s)}
@keyframes visualTegnInn{to{stroke-dashoffset:0}}
svg [stroke]:nth-child(2){--strek-i:1}
svg [stroke]:nth-child(3){--strek-i:2}
svg [stroke]:nth-child(4){--strek-i:3}
svg [stroke]:nth-child(5){--strek-i:4}
svg [stroke]:nth-child(6){--strek-i:5}
svg [stroke]:nth-child(7){--strek-i:6}
svg [stroke]:nth-child(8){--strek-i:7}
svg [stroke]:nth-child(9){--strek-i:8}
.intro-lead{max-width:640px}
.service-rows{margin-top:var(--space-6);border-top:1px solid var(--mist)}
.service-row{display:flex;align-items:center;gap:40px;padding:40px 0;border-bottom:1px solid var(--mist)}
.service-row-num{font-family:var(--font);font-weight:700;font-size:14px;letter-spacing:0.08em;color:var(--accent);flex-shrink:0}
.service-row-thumb{width:180px;flex-shrink:0;border-radius:var(--radius);aspect-ratio:4/3;background:var(--ink);display:flex;align-items:center;justify-content:center}
.service-row-thumb svg{width:62%;height:auto}
.service-row-body h2{font-family:var(--font);font-size:clamp(24px,3vw,34px);font-weight:300;line-height:1.2;transition:color var(--dur-fast) var(--ease-farge)}
.service-row-body p{margin-top:8px;color:var(--slate);font-size:17px;max-width:640px}
.service-row-arrow{margin-left:auto;font-size:28px;color:var(--mist);transition:transform var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease-farge);flex-shrink:0}
.service-row:hover .service-row-body h2,.service-row:focus-visible .service-row-body h2{color:var(--accent)}
.service-row:hover .service-row-arrow,.service-row:focus-visible .service-row-arrow{transform:translateX(4px);color:var(--accent)}
.tekst-bilde{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--space-6);align-items:start}
.tekst-bilde-tekst{order:1}
.tekst-bilde-media{order:2;border-radius:var(--radius);overflow:hidden}
.tekst-bilde-media img{width:100%;height:auto}
.tekst-bilde.er-venstre{grid-template-columns:400px minmax(0,1fr)}
.tekst-bilde.er-venstre .tekst-bilde-media{order:1;aspect-ratio:4/5}
.tekst-bilde.er-venstre .tekst-bilde-media img{width:100%;height:100%;object-fit:cover}
.tekst-bilde.er-venstre .tekst-bilde-tekst{order:2}
.tekst-bilde-tekst p{margin-bottom:20px;font-size:18px}
.tekst-bilde-tekst p:last-child{margin-bottom:0}
.tekst-bilde.er-venstre .tekst-bilde-tekst p{font-size:19px}
.tekst-visual{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--space-6);align-items:start}
.tekst-visual .tekst-bilde-tekst{order:1}
.tekst-visual .visual-panel{order:2}
.visual-panel{background:var(--ink);border-radius:var(--radius);aspect-ratio:16/10;position:relative;display:flex;align-items:center;justify-content:center}
.visual-panel svg{width:62%;height:auto}
.panel-num{position:absolute;top:24px;right:28px;color:var(--accent-lys);font-weight:700;font-size:13px;letter-spacing:0.12em}
.kodelinjer{position:absolute;left:28px;bottom:24px;display:flex;flex-direction:column;gap:8px}
.kodelinjer span{display:block;height:2px;background:var(--mist);opacity:0.35;border-radius:1px}
.kodelinjer span:nth-child(1){width:74px}
.kodelinjer span:nth-child(2){width:112px;margin-left:16px}
.kodelinjer span:nth-child(3){width:58px;margin-left:16px;background:var(--accent-lys);opacity:1}
.faar-seksjon{padding-top:0}
.faar-typo{display:grid;grid-template-columns:1fr 1fr;gap:0 80px;margin-top:48px}
.faar-rad{display:flex;gap:28px;align-items:baseline;padding:22px 0}
.stor-num{font-size:clamp(40px,4vw,56px);font-weight:300;line-height:1;color:var(--accent);flex-shrink:0;min-width:76px}
.faar-rad p{font-size:19px}
.process{background:var(--ink);color:var(--snow)}
.process .section-title{color:var(--snow)}
.process-line{height:1px;background:rgba(170,178,189,0.3);margin-top:var(--space-6);position:relative;overflow:hidden}
.process-line::after{content:"";position:absolute;left:-90px;top:-1px;width:90px;height:3px;border-radius:2px;background:linear-gradient(90deg,rgba(92,132,240,0) 0%,rgba(92,132,240,0.85) 50%,rgba(92,132,240,0) 100%);filter:blur(1px);animation:prosessSveip var(--dur-sveip) var(--ease-puls) infinite;animation-delay:3s}
@keyframes prosessSveip{0%,55%{transform:translateX(0)}92%,100%{transform:translateX(calc(100vw + 180px))}}
.process-grid{margin-top:var(--space-6);display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5)}
.step-num{font-family:var(--font);font-weight:700;font-size:14px;letter-spacing:0.08em;color:var(--accent-lys)}
.step h3{margin-top:var(--space-2);font-size:22px;font-weight:700;color:var(--snow)}
.step p{margin-top:12px;font-size:17px;color:var(--mist)}
.cta-final{text-align:center;padding:var(--space-9) 0}
.cta-final .section-title{margin:0 auto;font-size:clamp(38px,5vw,64px)}
.cta-final .section-lead{margin:var(--space-3) auto 0}
.cta-final .btn{margin-top:var(--space-5)}
.contact{background:#fff;border-top:1px solid var(--mist)}
.kontakt-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:var(--space-6);align-items:start;margin-top:var(--space-5)}
.contact-form{max-width:560px;display:flex;flex-direction:column;gap:var(--space-3)}
.form-field label{display:block;font-weight:500;font-size:14px;margin-bottom:8px}
.form-field input,.form-field textarea{width:100%;padding:14px 16px;font-family:var(--font);font-size:18px;color:var(--ink);background:#fff;border:1px solid var(--mist);border-radius:var(--radius);transition:border-color var(--dur-fast) var(--ease-farge)}
.form-field input:focus,.form-field textarea:focus{outline:none;border:2px solid var(--accent);padding:13px 15px}
.form-field textarea{resize:vertical;min-height:140px}
.form-field.har-feil input,.form-field.har-feil textarea{border-color:var(--feil-kant)}
.felt-feil{margin-top:8px;font-size:15px;color:var(--feil)}
.har-js .felt-feil{animation:feltFeilInn var(--dur-medium) var(--ease)}
@keyframes feltFeilInn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.form-hp{position:absolute;left:-9999px;opacity:0;pointer-events:none}
.form-note{margin-bottom:var(--space-4);padding:16px 20px;border-radius:var(--radius);font-size:16px;max-width:560px}
.form-note a{color:var(--accent)}
.form-note-ok{background:rgba(43,95,227,0.08);border:1px solid var(--accent);color:var(--ink)}
.form-note-error{background:rgba(214,69,69,0.06);border:1px solid var(--feil-kant);color:var(--ink)}
.contact-info{margin-top:var(--space-5);display:flex;gap:var(--space-4);font-size:16px}
.contact-info a{color:var(--accent)}
.kontakt-aside{position:sticky;top:120px}
.support-kort{background:#fff;border:1px solid var(--mist);border-radius:var(--radius);padding:var(--space-4)}
.support-kort .eyebrow{margin-bottom:12px}
.support-kort p{font-size:17px;color:var(--slate);margin-bottom:var(--space-2)}
.support-lenke{font-family:var(--font);font-weight:700;font-size:16px;color:var(--accent)}
.prose{max-width:720px}
.prose h2{font-size:clamp(26px,3vw,34px);font-weight:300;line-height:1.2;margin:var(--space-5) 0 var(--space-2);text-wrap:balance}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:22px;font-weight:700;margin:var(--space-5) 0 12px}
.prose p{margin-bottom:20px}
.prose ul,.prose ol{margin:0 0 20px 22px}
.prose li{margin-bottom:8px}
.prose strong{font-weight:700}
.prose a{color:var(--accent)}
.site-footer{background:var(--ink);color:var(--snow);padding:var(--space-7) 0 var(--space-5)}
.site-footer{--accent-tekst:var(--accent-lys)}
.footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-5);flex-wrap:wrap}
.footer-brand .logo svg{height:20px;color:var(--snow)}
.footer-tag{margin-top:var(--space-2);font-size:16px;color:var(--mist)}
.footer-contact{font-size:16px;display:flex;flex-direction:column;gap:8px;text-align:right;align-items:flex-end}
.footer-contact a{color:var(--snow)}
.footer-firma{font-size:14px;color:var(--mist);line-height:1.8}
.footer-bottom{margin-top:72px;padding-top:var(--space-4);border-top:1px solid rgba(170,178,189,0.25);display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;font-size:14px;color:var(--mist)}
.footer-links .meny{display:flex;gap:var(--space-3);list-style:none}
.footer-links a{font-weight:500;transition:color var(--dur-fast) var(--ease-farge)}
.footer-links a:hover{color:var(--snow)}
.til-toppen{font-weight:500;color:var(--mist);transition:color var(--dur-fast) var(--ease-farge)}
.til-toppen:hover{color:var(--snow)}
@media(max-width:1080px){
.grid{grid-template-columns:repeat(2,1fr)}
.process-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
.tekst-bilde,.tekst-bilde.er-venstre{grid-template-columns:1fr;gap:40px}
.tekst-bilde.er-venstre .tekst-bilde-media{max-width:400px}
.tekst-visual{grid-template-columns:1fr;gap:40px}
.visual-panel{max-width:480px}
.faar-typo{grid-template-columns:1fr;gap:0}
.kontakt-grid{grid-template-columns:1fr;gap:var(--space-5)}
.kontakt-aside{position:static}
}
@media(max-width:720px){
:root{--seksjon:88px;--gutter:20px}
.header-inner{height:72px}
.site-nav{display:none}
.header-cta{display:none}
.menu-toggle{display:flex}
.hero-content{padding:100px var(--gutter)}
.page-hero{padding:160px 0 72px}
.grid{grid-template-columns:1fr}
.card{min-height:0}
.faar-grid{grid-template-columns:1fr}
.hero-visual svg{width:340px;right:-70px;bottom:-40px}
.hero-visual::before{width:280px;height:280px;right:0}
.process-grid{grid-template-columns:1fr;gap:40px}
.cta-final{padding:var(--space-8) 0}
.service-row{gap:20px;padding:32px 0}
.service-row-thumb{display:none}
.service-row-arrow{display:none}
.footer-contact{text-align:left;align-items:flex-start}
.scroll-hint{display:none}
}
@view-transition{navigation:auto}
::view-transition-old(root){animation-duration:0.2s}
::view-transition-new(root){animation-duration:0.3s}
@media(prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*,*::before,*::after{transition:none!important;animation:none!important}
.har-js [data-reveal]:not(.mask),.har-js [data-reveal-gruppe]>*:not(.mask){opacity:1;transform:none}
.har-js [data-reveal].mask .mask-inner,.har-js [data-reveal-gruppe]>.mask .mask-inner{transform:none}
.har-js [data-reveal].strek{transform:none}
.har-js [data-reveal] svg [stroke],.har-js [data-reveal-gruppe] svg [stroke],.har-js .hero-visual svg [stroke]{stroke-dasharray:none;stroke-dashoffset:0}
@view-transition{navigation:none}
}
