/* Storsveen Sag og Utsikt */

:root{
  --bg: #F5F3EE;
  --white: #FFFFFF;
  --ink: #161815;
  --ink-2: #545951;
  --ink-3: #8B8F87;
  --line: rgba(22,24,21,0.12);
  --dark: #141613;
  --dark-2: #1E211D;
  --line-d: rgba(255,255,255,0.14);
  --orange: #D9531E;
  --orange-2: #BF4512;
  --cream: #F4E9A6;
  --radius: 14px;
  --radius-sm: 10px;
  --wrap: 1240px;
  --gutter: 40px;
  --head-h: 76px;
  --sans: 'Instrument Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
@media (max-width:720px){ :root{ --gutter: 20px; --head-h: 66px; --radius: 12px; } }

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--head-h) + 20px); }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--sans); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img, video{ display:block; max-width:100%; height:auto; }
picture{ display:block; }
figure{ margin:0; }
a{ color:inherit; }
p{ margin:0; }
ul,ol{ margin:0; padding:0; list-style:none; }
button{ font:inherit; color:inherit; }
::selection{ background:var(--orange); color:#fff; }
:focus-visible{ outline:2px solid var(--orange); outline-offset:3px; }
h1,h2,h3,h4{ margin:0; font-weight:600; letter-spacing:-0.025em; line-height:1.08; }
h1{ font-size:clamp(42px, 5.6vw, 76px); letter-spacing:-0.035em; line-height:1.02; }
h2{ font-size:clamp(30px, 3.4vw, 46px); }
h3{ font-size:22px; letter-spacing:-0.015em; line-height:1.25; }

.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 var(--gutter); }
.muted{ color:var(--ink-2); }
.skip{ position:absolute; left:16px; top:-80px; z-index:100; background:var(--ink); color:#fff; padding:10px 16px; border-radius:var(--radius-sm); text-decoration:none; }
.skip:focus{ top:16px; }

/* Knapper */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px; height:52px; padding:0 24px;
  border-radius:var(--radius-sm); border:1.5px solid transparent; text-decoration:none; cursor:pointer;
  font-family:var(--sans); font-size:16px; font-weight:600; white-space:nowrap;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
}
.btn svg{ width:18px; height:18px; flex:none; }
.btn-primary{ background:var(--orange); color:#fff; }
.btn-primary:hover{ background:var(--orange-2); }
.btn-dark{ background:var(--ink); color:#fff; }
.btn-dark:hover{ background:#2b2e29; }
.btn-outline{ background:transparent; color:var(--ink); border-color:rgba(22,24,21,0.25); }
.btn-outline:hover{ border-color:var(--ink); }
.btn-light{ background:#fff; color:var(--ink); }
.btn-light:hover{ background:#eeece6; }
.btn-ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,0.4); }
.btn-ghost:hover{ border-color:#fff; }
.btn.sm{ height:44px; padding:0 18px; font-size:15px; }
.btns{ display:flex; flex-wrap:wrap; gap:10px; }
.text-link{ color:var(--ink); font-weight:600; text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:4px; }
.text-link:hover{ color:var(--orange-2); }

/* Header */
.site-head{
  position:fixed; top:0; left:0; right:0; z-index:60; height:var(--head-h);
  background:rgba(245,243,238,0.94); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid transparent; transition:border-color .2s ease, box-shadow .2s ease;
}
.site-head.scrolled{ border-color:var(--line); box-shadow:0 8px 24px -18px rgba(0,0,0,0.35); }
.nav{ max-width:var(--wrap); height:100%; margin:0 auto; padding:0 var(--gutter); display:flex; align-items:center; gap:28px; }
.brand{ display:flex; align-items:flex-start; gap:14px; text-decoration:none; color:var(--ink); align-self:flex-start; padding-top:10px; }
.brand-logo{
  width:128px; height:128px; flex:none; filter:drop-shadow(0 8px 16px rgba(22,24,21,0.22));
  transition:width .3s ease, height .3s ease;
}
.site-head.scrolled .brand-logo{ width:58px; height:58px; }
.site-head.scrolled .brand{ padding-top:9px; }
.brand-name{ font-weight:600; font-size:17px; letter-spacing:-0.01em; line-height:1.15; margin-top:18px; }
.menu{ display:flex; gap:4px; margin-left:auto; }
.menu a{ padding:8px 14px; border-radius:8px; text-decoration:none; color:var(--ink); font-size:15.5px; font-weight:500; }
.menu a:hover{ background:rgba(22,24,21,0.06); }
.menu a[aria-current="page"]{ color:var(--orange-2); }
.menu-btn{
  display:none; margin-left:auto; height:44px; padding:0 16px; border-radius:var(--radius-sm); border:1.5px solid rgba(22,24,21,0.2);
  background:transparent; font-weight:600; font-size:15px; cursor:pointer; align-items:center; gap:10px;
}
.menu-btn i{ display:block; width:16px; height:10px; border-top:2px solid currentColor; border-bottom:2px solid currentColor; }
@media (max-width:960px){
  .menu, .nav-call{ display:none; }
  .menu-btn{ display:inline-flex; }
}
@media (max-width:720px){
  .brand-logo{ width:92px; height:92px; }
  .site-head.scrolled .brand-logo{ width:48px; height:48px; }
  .brand{ padding-top:8px; gap:10px; }
  .brand-name{ font-size:15px; max-width:8.5em; margin-top:8px; }
}

.sheet{
  position:fixed; inset:0; z-index:80; background:var(--bg); padding:0 var(--gutter) 28px;
  display:flex; flex-direction:column; overflow-y:auto;
  opacity:0; visibility:hidden; transition:opacity .2s ease, visibility .2s;
}
.sheet.open{ opacity:1; visibility:visible; }
.sheet-top{ display:flex; justify-content:space-between; align-items:center; height:var(--head-h); }
.sheet-top .brand-logo{ width:48px; height:48px; }
.sheet-top .brand{ padding-top:0; align-self:center; align-items:center; }
.sheet-top .brand-name{ margin-top:0; }
.sheet nav{ display:flex; flex-direction:column; padding:28px 0; border-top:1px solid var(--line); }
.sheet nav a{ font-size:32px; font-weight:600; letter-spacing:-0.03em; color:var(--ink); text-decoration:none; padding:8px 0; }
.sheet nav a[aria-current="page"]{ color:var(--orange-2); }
.sheet-foot{ margin-top:auto; display:grid; gap:12px; }
.sheet-foot .btn{ width:100%; }
.sheet-foot p{ text-align:center; color:var(--ink-2); font-size:15px; }
.sheet .menu-btn{ display:inline-flex; margin-left:0; }
body.menu-open{ overflow:hidden; }

/* Forside: hero med bildecollage */
.hero{ padding:calc(var(--head-h) + 64px) 0 96px; }
.hero .wrap{ display:grid; grid-template-columns:5fr 7fr; gap:64px; align-items:center; }
.hero h1{ max-width:9em; }
.hero .lede{ font-size:21px; color:var(--ink-2); margin:22px 0 34px; max-width:24em; }
.hero-meta{ margin-top:32px; color:var(--ink-2); font-size:15px; display:flex; flex-wrap:wrap; gap:6px 18px; }
.hero-meta span{ display:inline-flex; align-items:center; gap:8px; }
.hero-meta span::before{ content:''; width:6px; height:6px; border-radius:50%; background:var(--orange); }
.collage{ display:grid; grid-template-columns:1.25fr 1fr; grid-template-rows:1fr 1fr; gap:14px; height:min(78vh, 720px); min-height:520px; }
.collage figure{ overflow:hidden; border-radius:var(--radius); background:#dcd8cf; }
.collage figure:first-child{ grid-row:span 2; }
.collage picture, .collage img{ width:100%; height:100%; }
.collage img{ object-fit:cover; }
@media (max-width:960px){
  .hero{ padding:calc(var(--head-h) + 56px) 0 64px; }
  .hero .wrap{ grid-template-columns:1fr; gap:40px; }
  .collage{ height:auto; min-height:0; grid-template-rows:auto auto; }
  .collage figure:first-child{ grid-row:auto; grid-column:span 2; }
  .collage picture{ height:auto; }
  .collage figure:first-child img{ height:auto; aspect-ratio:4/4.2; }
  .collage figure:not(:first-child) img{ height:auto; aspect-ratio:3/4; }
  .hero .lede{ font-size:19px; }
}
@media (max-width:720px){ .hero{ padding-top:calc(var(--head-h) + 40px); } }

/* Seksjoner */
.sec{ padding:110px 0; }
.sec.tight{ padding:80px 0; }
.sec.white{ background:var(--white); }
.sec-title{ display:flex; justify-content:space-between; align-items:end; gap:24px; flex-wrap:wrap; margin-bottom:40px; }
.sec-title p{ color:var(--ink-2); max-width:32em; }
@media (max-width:720px){ .sec{ padding:72px 0; } .sec.tight{ padding:56px 0; } .sec-title{ margin-bottom:28px; } }

/* Tjenester (forside) */
.svc4{ display:grid; grid-template-columns:repeat(4, 1fr); border-top:1px solid var(--line); }
.svc4 a{ display:flex; flex-direction:column; gap:10px; padding:28px 28px 30px 0; text-decoration:none; color:var(--ink); }
.svc4 a + a{ padding-left:28px; border-left:1px solid var(--line); }
.svc4 p{ color:var(--ink-2); font-size:16px; }
.svc4 .more{ margin-top:auto; padding-top:8px; font-weight:600; font-size:15px; color:var(--orange-2); }
.svc4 a:hover h3{ color:var(--orange-2); }
@media (max-width:960px){
  .svc4{ grid-template-columns:1fr 1fr; }
  .svc4 a:nth-child(3){ padding-left:0; border-left:0; }
  .svc4 a:nth-child(n+3){ border-top:1px solid var(--line); }
}
@media (max-width:560px){
  .svc4{ grid-template-columns:1fr; }
  .svc4 a, .svc4 a + a{ padding:22px 0; border-left:0; }
  .svc4 a + a{ border-top:1px solid var(--line); }
}

/* Video + om */
.about-video{ display:grid; grid-template-columns:5fr 6fr; gap:80px; align-items:center; }
.film{ position:relative; overflow:hidden; border-radius:var(--radius); background:#0d2a5c; width:100%; max-width:440px; aspect-ratio:9/16; justify-self:center; }
.film-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.film-toggle{
  position:absolute; right:14px; bottom:14px; z-index:2; width:44px; height:44px; border-radius:50%; border:0; cursor:pointer;
  background:rgba(255,255,255,0.92); color:var(--ink); display:grid; place-items:center;
}
.film-toggle svg{ width:16px; height:16px; }
.about-video p{ color:var(--ink-2); font-size:18px; margin-top:18px; max-width:30em; }
.checklist{ margin:28px 0 34px; border-top:1px solid var(--line); }
.checklist li{ display:flex; gap:14px; align-items:baseline; padding:14px 0; border-bottom:1px solid var(--line); font-weight:500; }
.checklist li::before{ content:''; flex:none; width:8px; height:8px; border-radius:50%; background:var(--orange); transform:translateY(-2px); }
@media (max-width:960px){ .about-video{ grid-template-columns:1fr; gap:44px; } .film{ max-width:400px; } }

/* Avisartikkel */
.press-card{ display:grid; grid-template-columns:minmax(0, 0.85fr) minmax(0, 1.15fr); background:var(--white); border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); }
.press-img{ background:#111; }
.press-img picture, .press-img img{ width:100%; height:100%; }
.press-img img{ aspect-ratio:1085/1400; object-fit:cover; }
.press-txt{ padding:56px; display:flex; flex-direction:column; justify-content:center; }
.press-src{ font-size:15px; color:var(--ink-2); font-weight:500; }
.press-src strong{ color:var(--ink); }
.press-txt blockquote{ margin:18px 0 0; font-size:clamp(30px, 3.4vw, 50px); font-weight:600; letter-spacing:-0.03em; line-height:1.08; }
.press-txt p{ color:var(--ink-2); font-size:18px; margin-top:20px; max-width:28em; }
.press-txt .btns{ margin-top:30px; }
@media (max-width:900px){
  .press-card{ grid-template-columns:1fr; }
  .press-txt{ padding:30px 22px 34px; }
}

/* Akutte oppdrag */
.akutt{ display:grid; grid-template-columns:1fr 1fr; background:var(--dark); color:#fff; border-radius:var(--radius); overflow:hidden; }
.akutt-img{ position:relative; min-height:540px; }
.akutt-img picture, .akutt-img img{ position:absolute; inset:0; width:100%; height:100%; }
.akutt-img img{ object-fit:cover; object-position:center 45%; }
.akutt-txt{ padding:64px 60px; align-self:center; }
.akutt-txt h2{ color:#fff; }
.akutt-txt p{ color:rgba(255,255,255,0.78); font-size:18px; margin:18px 0 32px; max-width:28em; }
@media (max-width:900px){ .akutt{ grid-template-columns:1fr; } .akutt-img{ min-height:0; aspect-ratio:4/3.6; } .akutt-txt{ padding:36px 24px 40px; } }

/* Tett på hus */
.trio{ display:grid; grid-template-columns:repeat(3, 1fr); gap:14px; }
.trio figure{ overflow:hidden; border-radius:var(--radius); }
.trio img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius); }
.trio figcaption{ padding:12px 2px 0; font-size:15px; color:var(--ink-2); }
@media (max-width:900px){
  .trio{ grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:78%; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; margin:0 calc(var(--gutter) * -1); padding:0 var(--gutter); scroll-padding-left:var(--gutter); }
  .trio::-webkit-scrollbar{ display:none; }
  .trio figure{ scroll-snap-align:start; }
}

/* Kontakt-blokk */
.cta{ display:grid; grid-template-columns:1.2fr 1fr; gap:64px; align-items:end; padding:64px; background:var(--orange); color:#fff; border-radius:var(--radius); }
.cta h2{ color:#fff; }
.cta p{ color:rgba(255,255,255,0.9); font-size:18px; margin-top:14px; max-width:28em; }
.cta .phone{ display:block; font-size:clamp(36px, 4vw, 56px); font-weight:600; letter-spacing:-0.03em; color:#fff; text-decoration:none; line-height:1; margin-bottom:22px; }
.cta .btn-light{ color:var(--orange-2); }
@media (max-width:900px){ .cta{ grid-template-columns:1fr; gap:28px; padding:36px 24px; } }

/* Footer */
.site-foot{ background:var(--dark); color:rgba(255,255,255,0.68); padding:88px 0 28px; margin-top:110px; }
.foot-grid{ display:grid; grid-template-columns:auto 1fr 1fr 1fr; gap:56px; align-items:start; }
.foot-logo{ width:200px; }
.site-foot h4{ color:#fff; font-size:15px; margin-bottom:14px; letter-spacing:0; }
.site-foot li{ margin-bottom:6px; font-size:15.5px; }
.site-foot a{ text-decoration:none; }
.site-foot a:hover{ color:#fff; }
.foot-phone{ display:inline-block; color:#fff; font-size:26px; font-weight:600; letter-spacing:-0.02em; margin-bottom:8px; }
.foot-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; border-top:1px solid var(--line-d); margin-top:64px; padding-top:22px; font-size:13.5px; color:rgba(255,255,255,0.45); }
@media (max-width:960px){ .foot-grid{ grid-template-columns:1fr 1fr; gap:40px; } .foot-logo{ width:160px; } }
@media (max-width:560px){ .foot-grid{ grid-template-columns:1fr; } .site-foot{ margin-top:72px; } }

/* Mobil ringeknapp */
.call-fab{ display:none; }
@media (max-width:720px){
  .call-fab{
    display:flex; position:fixed; z-index:55; left:12px; right:12px; bottom:calc(12px + env(safe-area-inset-bottom));
    height:54px; border-radius:var(--radius-sm); background:var(--orange); color:#fff; text-decoration:none;
    align-items:center; justify-content:center; gap:10px; font-weight:600; font-size:16px;
    box-shadow:0 12px 30px -12px rgba(217,83,30,0.7); transition:transform .3s ease, opacity .2s ease;
  }
  .call-fab svg{ width:18px; height:18px; }
  body{ padding-bottom:78px; }
  .has-hero .call-fab{ transform:translateY(130%); opacity:0; }
  .has-hero.show-fab .call-fab{ transform:none; opacity:1; }
}

/* Undersider */
.page-head{ padding:calc(var(--head-h) + 80px) 0 56px; }
.page-head p{ color:var(--ink-2); font-size:20px; max-width:32em; margin-top:18px; }
.page-head .btns{ margin-top:30px; }
@media (max-width:720px){ .page-head{ padding:calc(var(--head-h) + 56px) 0 36px; } .page-head p{ font-size:18px; } }

.svc-block{ display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; padding:56px 0; border-top:1px solid var(--line); }
.svc-block:nth-child(even) .media{ order:2; }
.svc-block .media{ overflow:hidden; border-radius:var(--radius); background:#dcd8cf; }
.svc-block .media img{ width:100%; aspect-ratio:4/4.4; object-fit:cover; }
.svc-block p{ color:var(--ink-2); font-size:18px; margin-top:18px; max-width:30em; }
.svc-block .btns{ margin-top:28px; }
@media (max-width:900px){ .svc-block{ grid-template-columns:1fr; gap:26px; padding:40px 0; } .svc-block:nth-child(even) .media{ order:0; } }

/* Før/etter */
.compare{ position:relative; width:100%; aspect-ratio:768 / 640; overflow:hidden; border-radius:var(--radius); touch-action:pan-y; background:#ccc; }
.compare picture{ position:absolute; inset:0; }
.compare img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; pointer-events:none; user-select:none; }
.compare-before{ clip-path:inset(0 calc(100% - var(--pos, 50%)) 0 0); }
.compare-handle{ position:absolute; top:0; bottom:0; left:var(--pos, 50%); width:0; z-index:2; pointer-events:none; }
.compare-handle::before{ content:''; position:absolute; top:0; bottom:0; left:-1px; width:2px; background:#fff; }
.compare-handle::after{ content:''; position:absolute; top:50%; left:50%; width:46px; height:46px; transform:translate(-50%,-50%); border-radius:50%; background:#fff; box-shadow:0 6px 18px rgba(0,0,0,0.3); }
.compare-grip{ position:absolute; top:50%; left:var(--pos, 50%); width:18px; height:12px; transform:translate(-50%,-50%); z-index:3; pointer-events:none; }
.compare-grip::before, .compare-grip::after{ content:''; position:absolute; top:50%; transform:translateY(-50%); border-top:6px solid transparent; border-bottom:6px solid transparent; }
.compare-grip::before{ left:0; border-right:7px solid var(--ink); }
.compare-grip::after{ right:0; border-left:7px solid var(--ink); }
.compare-range{ position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; z-index:4; -webkit-appearance:none; appearance:none; }
.compare:has(.compare-range:focus-visible){ outline:2px solid var(--orange); outline-offset:4px; }
.tag-ba{ position:absolute; top:12px; z-index:3; pointer-events:none; padding:5px 10px; border-radius:6px; background:rgba(255,255,255,0.92); color:var(--ink); font-size:13px; font-weight:600; }
.tag-ba.l{ left:12px; }
.tag-ba.r{ right:12px; }
.pair{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.pair figure{ position:relative; overflow:hidden; border-radius:var(--radius); }
.pair img{ width:100%; aspect-ratio:3/4; object-fit:cover; }
.ba-grid{ display:grid; grid-template-columns:1.15fr 1fr; gap:16px; align-items:start; }
.ba-cap{ margin-top:12px; color:var(--ink-2); font-size:15px; }
@media (max-width:900px){ .ba-grid{ grid-template-columns:1fr; gap:36px; } }

/* Galleri */
.masonry{ columns:3 300px; column-gap:14px; }
.m-item{ display:block; position:relative; margin:0 0 14px; break-inside:avoid; border-radius:var(--radius); overflow:hidden; background:#dcd8cf; }
.m-item img{ width:100%; height:auto; transition:opacity .2s ease; }
.m-item:hover img{ opacity:0.9; }
.lightbox{ width:100vw; height:100vh; max-width:none; max-height:none; margin:0; padding:0; border:0; background:rgba(12,14,12,0.96); color:#fff; }
.lightbox[open]{ display:grid; place-items:center; }
.lightbox::backdrop{ background:rgba(0,0,0,0.6); }
.lightbox figure{ max-width:min(92vw, 1100px); text-align:center; }
.lightbox img{ max-width:100%; max-height:84vh; width:auto; height:auto; margin:0 auto; border-radius:var(--radius-sm); }
.lightbox figcaption{ margin-top:14px; color:rgba(255,255,255,0.75); font-size:15px; }
.lb-btn{ position:absolute; z-index:2; width:48px; height:48px; border-radius:50%; cursor:pointer; border:1px solid rgba(255,255,255,0.25); background:rgba(255,255,255,0.06); color:#fff; display:grid; place-items:center; }
.lb-btn:hover{ background:var(--orange); border-color:var(--orange); }
.lb-btn svg{ width:18px; height:18px; }
.lb-close{ top:18px; right:18px; }
.lb-prev{ left:18px; top:50%; transform:translateY(-50%); }
.lb-next{ right:18px; top:50%; transform:translateY(-50%); }
@media (max-width:640px){ .lb-prev, .lb-next{ top:auto; bottom:20px; transform:none; } .lightbox img{ max-height:72vh; } }
body.lb-open{ overflow:hidden; }

/* Om oss */
.om-head{ display:grid; grid-template-columns:1.1fr 1fr; gap:72px; align-items:center; padding-top:calc(var(--head-h) + 72px); padding-bottom:40px; }
.om-head p{ color:var(--ink-2); font-size:19px; max-width:30em; margin-top:18px; }
.om-head .btns{ margin-top:30px; }
.om-logo{ width:100%; max-width:460px; justify-self:center; filter:drop-shadow(0 24px 40px rgba(91,47,26,0.22)); }
.facts{ border-top:1px solid var(--line); }
.facts li{ display:grid; grid-template-columns:220px 1fr; gap:24px; padding:18px 0; border-bottom:1px solid var(--line); }
.facts .k{ color:var(--ink-2); }
.facts .v{ font-weight:600; }
.areas{ font-size:clamp(22px, 2.4vw, 30px); line-height:1.45; letter-spacing:-0.015em; max-width:34em; }
@media (max-width:900px){
  .om-head{ grid-template-columns:1fr; gap:36px; padding-top:calc(var(--head-h) + 48px); }
  .om-logo{ max-width:280px; order:-1; }
  .facts li{ grid-template-columns:1fr; gap:2px; }
}

/* Kontakt */
.contact-grid{ display:grid; grid-template-columns:5fr 6fr; gap:80px; align-items:start; }
.big-phone{ display:inline-block; font-size:clamp(40px, 4.8vw, 64px); letter-spacing:-0.035em; font-weight:600; line-height:1; color:var(--ink); text-decoration:none; }
.big-phone:hover{ color:var(--orange-2); }
.c-lines{ margin-top:32px; border-top:1px solid var(--line); }
.c-lines li{ padding:16px 0; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.c-lines li span:first-child{ color:var(--ink-2); }
.c-lines a{ text-decoration:none; font-weight:600; }
.c-lines a:hover{ color:var(--orange-2); }
.form-card{ background:var(--white); border-radius:var(--radius); padding:40px; border:1px solid var(--line); }
.form-card h2{ font-size:28px; }
.form-card > p{ color:var(--ink-2); margin:8px 0 26px; font-size:16px; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; gap:44px; } .form-card{ padding:26px 20px; } }

.field{ margin-bottom:16px; }
.field > label, .field > .flabel, .pills legend{ display:block; font-size:14.5px; font-weight:600; margin-bottom:7px; }
.field .opt{ color:var(--ink-3); font-weight:400; }
.field input[type="text"], .field input[type="tel"], .field input[type="email"], .field textarea{
  width:100%; font-family:var(--sans); font-size:16px; color:var(--ink);
  background:var(--bg); border:1.5px solid transparent; border-radius:var(--radius-sm); padding:14px 15px;
  transition:border-color .2s ease, background .2s ease;
}
.field input:hover, .field textarea:hover{ border-color:var(--line); }
.field input:focus, .field textarea:focus{ outline:none; background:#fff; border-color:var(--orange); }
.field textarea{ min-height:120px; resize:vertical; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.pills{ display:flex; flex-wrap:wrap; gap:8px; border:0; margin:0; padding:0; }
.pills legend{ width:100%; padding:0; }
.pill input{ position:absolute; opacity:0; pointer-events:none; }
.pill span{ display:inline-block; padding:8px 14px; border-radius:8px; background:var(--bg); border:1.5px solid transparent; font-size:14.5px; cursor:pointer; user-select:none; }
.pill span:hover{ border-color:var(--line); }
.pill input:checked + span{ background:var(--ink); color:#fff; }
.pill input:focus-visible + span{ outline:2px solid var(--orange); outline-offset:2px; }
.file-drop{ display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:var(--radius-sm); border:1.5px dashed rgba(22,24,21,0.25); cursor:pointer; position:relative; }
.file-drop:hover{ border-color:var(--orange); }
.file-drop svg{ width:24px; height:24px; color:var(--orange); flex:none; }
.file-drop strong{ display:block; font-weight:600; font-size:15px; }
.file-drop small{ color:var(--ink-2); font-size:13.5px; }
.file-drop input{ position:absolute; opacity:0; width:1px; height:1px; }
.file-drop:focus-within{ outline:2px solid var(--orange); outline-offset:2px; }
.hp{ position:absolute; left:-9999px; }
.form-submit{ width:100%; margin-top:10px; }
.form-note{ font-size:14px; color:var(--ink-2); margin-top:14px; }
.form-note a{ color:var(--ink); }
.form-status{ display:none; margin-top:14px; padding:12px 16px; border-radius:var(--radius-sm); background:var(--cream); font-size:14.5px; }
.form-status.show{ display:block; }
@media (max-width:520px){ .field-row{ grid-template-columns:1fr; } }

.prose{ max-width:720px; }
.prose h2{ font-size:24px; margin:44px 0 10px; }
.prose h2:first-child{ margin-top:0; }
.prose p{ color:#30342e; }
.prose a{ color:var(--orange-2); }

/* Rolig inntoning */
.js .rv{ opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease; }
.js .rv.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .js .rv{ opacity:1; transform:none; transition:none; }
  *{ transition-duration:0.01ms !important; }
}
.mt-s{ margin-top:16px; } .mt-m{ margin-top:28px; } .mt-l{ margin-top:56px; }
