/* Launch preparation: preserve the existing Hansen type pairing and palette. */
.premium-v2 .preview-ribbon { display:block!important; position:static!important; padding:0!important; border-bottom:0!important; }
.premium-v2 .preview-ribbon::after { content:none!important; }
.premium-v2 .preview-ribbon .shell { min-height:30px; padding-block:5px; }
.premium-v2 .preview-ribbon strong { font-size:.65rem; letter-spacing:.08em; }
.premium-v2 .preview-ribbon span { font-size:.7rem; }
.premium-v2 h1,.premium-v2 h2,.premium-v2 h3,.premium-v2 p,.premium-v2 li,.premium-v2 dd { text-wrap:pretty!important; }
.premium-v2 .home-hero h1 { max-width:none!important; font-size:clamp(2.1rem,4.5vw,4.25rem)!important; line-height:1.05!important; }
.premium-v2 .contact-band h2 { font-size:clamp(2rem,3.6vw,3.5rem)!important; line-height:1.06!important; letter-spacing:-.035em!important; }
.premium-v2 .contact-band h2::before,.premium-v2 .contact-band h2::after { content:none!important; display:none!important; }
.premium-v2 .contact-band h2 > span { display:block; }
body[data-hansen-route="kontakt"] .page-hero { padding-block:clamp(1.5rem,3vw,3rem)!important; }
body[data-hansen-route="kontakt"] .page-hero__grid { gap:1rem!important; align-items:center!important; }
body[data-hansen-route="kontakt"] .page-hero h1 { font-size:clamp(1.9rem,3.6vw,3.5rem)!important; max-width:18ch!important; }
body[data-hansen-route="kontakt"] .contact-page { padding-top:0!important; }
body[data-hansen-route="prosjekter"] .page-hero h1 { max-width:18ch!important; }
.premium-v2 .selfservice-panel__intro h3:focus { outline:0; }
@media(max-width:640px) {
  .premium-v2 .home-hero h1 { font-size:clamp(2rem,6.8vw,2.7rem)!important; }
  .premium-v2 .page-hero h1 { font-size:clamp(1.9rem,6.8vw,2.7rem)!important; }
  .premium-v2 .contact-band h2 { font-size:clamp(1.9rem,6.8vw,2.7rem)!important; }
  body[data-hansen-route="kontakt"] .page-hero .page-lead { font-size:.95rem!important; }
}

/* Visual review: title and explanation are separate rows, not competing columns. */
.premium-v2 .chooser-card {
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:auto auto;
  gap:.65rem;
}
.premium-v2 .chooser-card > strong,.premium-v2 .chooser-card > small { grid-column:1; }
.premium-v2 .selfservice-teaser h2 {
  max-width:none;
  font-size:clamp(1.9rem,3.1vw,2.75rem);
  line-height:1.08;
}
/* This is a portrait source. Preserve the full work activity and tool. */
.premium-v2 .story-grid figure { width:min(100%,420px)!important; aspect-ratio:auto!important; }
.premium-v2 .story-grid figure > img {
  width:100%!important;
  height:auto!important;
  max-height:none!important;
  aspect-ratio:3 / 4!important;
  object-fit:contain!important;
  object-position:center!important;
}

/* The visible img is the only photo layer: avoid duplicate fallback bands. */
body[data-hansen-route="prosjekter/kragenes"] .editorial-gallery figure {
  min-height:0!important;
  background-image:none!important;
}
body[data-hansen-route="prosjekter/kragenes"] .editorial-gallery figure > img {
  height:auto!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
}
.premium-v2 .service-row figure { min-height:0!important; background-image:none!important; }
/* Names must not force unequal tracks or break the page gutter. */
.premium-v2 .team-card { min-width:0; }
@media(max-width:360px) {
  .premium-v2 .team-grid { grid-template-columns:minmax(0,1fr); }
  .premium-v2 .team-card:nth-child(n+3) figure img { transform:none!important; }
}


/* Customer-supplied 16:9 architectural illustrations, explicitly not photos.
   Preserve the whole render and disclose its type wherever it is shown. */
.premium-v2 .project-card figure.illustration-media,
.premium-v2 .case-hero-media figure.illustration-media,
body[data-hansen-route="prosjekter/kragenes"] .editorial-gallery figure.illustration-media {
  position:relative!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:16 / 9!important;
  background-image:none!important;
  overflow:hidden;
}
.premium-v2 .project-card figure.illustration-media > img,
.premium-v2 .case-hero-media figure.illustration-media > img,
body[data-hansen-route="prosjekter/kragenes"] .editorial-gallery figure.illustration-media > img {
  display:block!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  max-width:none!important;
  aspect-ratio:16 / 9!important;
  object-fit:contain!important;
  transform:none!important;
}
.premium-v2 figure.illustration-media > .illustration-label {
  display:block!important;
  position:absolute!important;
  left:.6rem;
  bottom:.6rem;
  margin:0!important;
  padding:.35rem .6rem!important;
  color:#fff!important;
  background:#171b16!important;
  font:700 .75rem/1.2 Arial,sans-serif!important;
  letter-spacing:.025em;
}

.premium-v2 .chooser-result h3 { text-wrap:balance!important; }

/* Owner-selected high-resolution cabin photo. Desktop keeps its existing
   overlay. Phones/tablets now also place the text over one continuous image.
   The translucent text plane preserves contrast; the lower photo stays clear. */
@media (max-width: 820px) {
  .premium-v2 .home-hero__grid {
    display:grid!important;
    grid-template:1fr / 1fr!important;
    height:auto!important;
    min-height:620px!important;
  }
  .premium-v2 .home-hero__media {
    grid-area:1 / 1!important;
    order:initial!important;
    height:100%!important;
    min-height:0!important;
  }
  .premium-v2 .home-hero__media::after { display:none!important; }
  .premium-v2 .home-hero__media > img { max-height:none!important; object-position:58% 48%!important; }
  .premium-v2 .home-hero__copy {
    grid-area:1 / 1!important;
    order:initial!important;
    align-self:start!important;
    width:auto!important;
    margin:0!important;
    padding:3rem var(--pad) 280px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.9) calc(100% - 280px),rgba(255,255,255,0) calc(100% - 210px),rgba(255,255,255,0) 100%)!important;
  }
}
@media (max-width:560px) {
  .premium-v2 .home-hero__grid { min-height:680px!important; }
  .premium-v2 .home-hero__copy { padding-top:2.5rem!important; }
}

/* A compact service index beside a generous, motif-specific photograph. */
.premium-v2 .chooser-layout { grid-template-columns: minmax(240px, 1fr) minmax(0, 2fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; border: 0; background: transparent; }
.premium-v2 .chooser-grid { display: flex; flex-direction: column; background: transparent; border: 0; }
.premium-v2 .chooser-card { min-height: 0; padding: 1.25rem 0 1.25rem 1rem; border: 0; border-bottom: 1px solid var(--line); background: transparent; }
.premium-v2 .chooser-card:first-child { border-top: 1px solid var(--line); }
.premium-v2 .chooser-card small { line-height: 1.5; }
.premium-v2 .chooser-card:hover, .premium-v2 .chooser-card.is-active { background: transparent; }
.premium-v2 .chooser-card::after { left: 0; top: 1.3rem; bottom: auto; width: 3px; height: 0; transition: height 160ms ease; }
.premium-v2 .chooser-card:hover::after, .premium-v2 .chooser-card.is-active::after { width: 3px; height: 1.25rem; }
.premium-v2 .chooser-result { min-height: 0; padding: 0!important; border: 0; background: transparent; }
.premium-v2 .chooser-result__media { position: relative; inset: auto; width: 100%; height: auto; margin: 0 0 1.75rem; background: transparent; }
.premium-v2 .chooser-result__media::after { display: none; }
.premium-v2 .chooser-result__media > img, .premium-v2 .service-row figure > img { display: block!important; width: 100%!important; height: auto!important; min-height: 0!important; max-height: none!important; aspect-ratio: 3 / 2!important; object-fit: cover!important; object-position: 50% 55%!important; transform: none!important; }
.premium-v2 .service-row figure { height: auto!important; min-height: 0!important; aspect-ratio: auto!important; background: transparent!important; }
.premium-v2 .chooser-result[data-project-current="tilbygg"] .chooser-result__media { max-width: 480px; }
.premium-v2 .chooser-result[data-project-current="tilbygg"] { width: 100%; max-width: 480px; justify-self: center; }
.premium-v2 .chooser-result[data-project-current="tilbygg"] img, .premium-v2 #tilbygg.service-row figure > img { aspect-ratio: 4 / 5!important; object-position: 50% 0%!important; }
.premium-v2 #tilbygg.service-row figure { max-width: 480px; }
.premium-v2 .chooser-result[data-project-current="annet"] img, .premium-v2 #annet.service-row figure > img { object-fit: contain!important; object-position: 50% 50%!important; }
@media(max-width:800px) {
 .premium-v2 .chooser-layout { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
 .premium-v2 .chooser-card { padding-block: .9rem; }
 .premium-v2 .chooser-card::after { top: .95rem; }
 .premium-v2 .chooser-result[data-project-current="tilbygg"] .chooser-result__media { max-width: 100%; }
}

/* Reviewed portraits: one image layer, natural proportions, no hover zoom. */
.premium-v2 .team-grid { background:#fff; border:0; gap:1.5rem 1rem; }
.premium-v2 .team-card:nth-child(n) figure { background-image:none!important; }
.premium-v2 .team-card:nth-child(n) figure > img { transform:none!important; object-fit:cover!important; object-position:center center!important; filter:none!important; }

.service-intro { margin-bottom:3rem; }
.service-intro h2, .service-intro p { max-width:70ch; }
.service-intro p, .service-detail { margin-top:1rem; }

/* Keep the approved photographic scale on wide displays. The original 4:3
   image must not grow with the viewport inside a fixed-height panorama. */
@media (min-width:1441px) {
 .premium-v2 .home-hero .home-hero__grid { max-width:1920px; margin-inline:auto; height:692px!important; }
 .premium-v2 .home-hero__media { width:1440px; justify-self:end; background-color:#fff!important; }
 .premium-v2 .home-hero__copy { margin-left:max(var(--pad),calc((100% - var(--max)) / 2 + var(--pad))); }
 .premium-v2 .home-hero__media::before { content:""; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(270deg,#fff 0,rgba(255,255,255,0) 72px); }
}



/* Give the verified social profiles a clear, compact place in the footer.
   Plain links only: no embeds, tracking scripts or interruption to the page. */
.premium-v2 .footer-social {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem 2rem;
  padding-block:2rem;
}
.premium-v2 .footer-social::after {
  content:"";
  position:absolute;
  inset-inline:var(--pad);
  bottom:0;
  border-bottom:1px solid rgba(255,255,255,.2);
}
.premium-v2 .footer-social__intro {
  padding-left:1rem;
  border-left:3px solid var(--red);
}
.premium-v2 .footer-social__intro h2 {
  margin:0;
  color:#fff;
  font-family:inherit;
  font-size:1.3rem;
  font-weight:750;
  line-height:1.2;
  letter-spacing:-.02em;
}
.premium-v2 .footer-social__intro p {
  margin:.45rem 0 0;
  color:#cbd0c9;
  font-size:.875rem;
  line-height:1.4;
}
.premium-v2 .footer-social__links {
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
}
.premium-v2 .footer-social__links a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.65rem;
  min-width:138px;
  min-height:48px;
  padding:.75rem 1.1rem;
  border:1px solid #81877e;
  color:#fff;
  font-size:.875rem;
  font-weight:700;
  line-height:1.2;
  text-decoration:none;
  transition:background-color .16s ease,border-color .16s ease;
}
.premium-v2 .footer-social__links a:hover {
  background:#2a3027;
  border-color:#fff;
}
.premium-v2 .footer-social__links a:focus-visible {
  outline:3px solid #fff;
  outline-offset:4px;
}
.premium-v2 .footer-social__links svg {
  width:19px;
  height:19px;
  flex:none;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.premium-v2 .footer-social__links .footer-social__facebook svg {
  fill:currentColor;
  stroke:none;
}
.premium-v2 .footer-top { padding-block:2.75rem; }
@media(max-width:600px) {
  .premium-v2 .footer-social { align-items:flex-start; flex-direction:column; gap:1.25rem; padding-block:1.75rem; }
  .premium-v2 .footer-social__links { width:100%; gap:.6rem; }
  .premium-v2 .footer-social__links a { flex:1 1 0; min-width:0; padding-inline:.65rem; }
}
@media(prefers-reduced-motion:reduce) {
  .premium-v2 .footer-social__links a { transition:none; }
}
