/* Canvas: Halvorsen Studio */
@layer custom {
:root {
  --cnvs-themecolor: #5B6B3F;
  --cnvs-themecolor-rgb: 91,107,63;
  --c-ground: #FFFFFF;
  --c-ground-2: #F6F6F3;
  --c-ink: #121412;
  --c-muted: #5E625C;
  --c-accent: var(--cnvs-themecolor);
  --c-line: #E3E4DE;
  --space-1: 4px; --space-2: 8px; --space-3: 16px; --space-4: 24px;
  --space-5: 40px; --space-6: 64px; --space-7: 96px; --space-8: 140px;
  --band: 140px; --band-compact: 80px; --gutter: 32px;
  --fs-display: clamp(3.5rem, 9vw, 8.5rem);
  --fs-h2: clamp(2rem, 4vw, 3.5rem);
  --fs-h3: 1.5rem;
  --fs-lead: 1.25rem;
  --fs-body: 1.0625rem;
  --fs-small: .9375rem;
  --fs-label: .875rem;
  --radius-s: 2px;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --cnvs-body-font: "Schibsted Grotesk", sans-serif;
  --cnvs-primary-font: "Schibsted Grotesk", sans-serif;
  --cnvs-secondary-font: "Bodoni Moda", serif;
}
@media (max-width: 767px) {
  :root { --band: 72px; --band-compact: 48px; --gutter: 16px; }
}

body { font-family: var(--cnvs-body-font); font-size: var(--fs-body); line-height: 1.65; color: var(--c-ink); background: var(--c-ground); }
h1, h2, h3 { font-family: var(--cnvs-secondary-font); font-weight: 400; color: var(--c-ink); text-wrap: balance; letter-spacing: -0.01em; }
h2 { font-size: var(--fs-h2); line-height: 1.05; margin: 0 0 var(--space-3); }
h3 { font-size: var(--fs-h3); line-height: 1.2; font-weight: 500; }
a { color: var(--c-ink); }
img { border-radius: var(--radius-s); }
:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 3px; }
.hs-flush { padding: 0; margin: 0; }
.hs-sub { font-size: var(--fs-small); color: var(--c-muted); margin: 0; }
.hs-lead { font-size: var(--fs-lead); line-height: 1.55; color: var(--c-muted); max-width: 52ch; margin: 0; }

:root { --fs-h1: clamp(2.5rem, 5vw, 4.5rem); }
.hs-reveal { position: relative; }
.hs-hero { padding-top: var(--space-5); }
.hs-display { font-size: clamp(3rem, 6.5vw, 6rem); margin-bottom: var(--space-4); }
.hs-hero-row { margin-bottom: var(--space-4); }
.hs-hero-img { max-height: calc(100svh - 200px); min-height: 280px; }
[data-cx="horizontal-scroll"] .cx-hs-pin { overflow-y: visible; }
[data-cx="horizontal-scroll"] .cx-hs-item img { max-height: 54vh; }
@media (min-width: 992px) { .hs-header .header-row.justify-content-between { justify-content: center !important; } }
@media (max-width: 575.98px) { #header .header-misc .button { display: none; } #logo { min-width: 0; } }
.hs-foot-line { font-family: var(--cnvs-secondary-font); font-size: clamp(2rem, 5vw, 4rem); line-height: 1.1; max-width: 18ch; }
.hs-header, .hs-header #header-wrap { background: var(--c-ground); }
.hs-header #logo { padding: var(--space-3) 0; }
.hs-header #header-wrap { border-top: 1px solid var(--c-line) !important; }
.hs-header .cnvs-menu-link { font-size: var(--fs-label); font-weight: 500; color: var(--c-ink); letter-spacing: .04em; }
.hs-header .cnvs-menu-link:hover { color: var(--c-accent); }
@media (max-width: 991px) {
  .hs-header #header-wrap { background: var(--c-ground); }
}

.hs-btn { background: var(--c-ink); color: #fff; border-radius: var(--radius-s); font-family: var(--cnvs-body-font); font-size: 1rem; font-weight: 600; padding: 0 var(--space-5); min-height: 48px; line-height: 48px; transition: background-color 160ms var(--ease-out), transform 160ms var(--ease-out); }
.hs-btn:hover { background: var(--c-accent); color: #fff; }
.hs-btn:active { transform: scale(0.97); }

.hs-hero { padding: var(--space-7) 0 var(--band); }
.hs-display { font-size: var(--fs-display); line-height: .95; font-weight: 400; margin: 0 0 var(--space-5); }
.hs-w { display: inline-block; animation: hs-rise 900ms var(--ease-out) both; animation-delay: calc(var(--i) * 90ms + 100ms); }
@keyframes hs-rise { from { opacity: 0; transform: translateY(.35em); } to { opacity: 1; transform: none; } }
.hs-hero-row { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--gutter); margin-bottom: var(--space-6); }
.hs-hero-img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
@media (max-width: 767px) {
  .hs-hero { padding-top: var(--space-5); }
  .hs-hero-row { flex-direction: column; align-items: flex-start; margin-bottom: var(--space-5); }
  .hs-hero-img { aspect-ratio: 4 / 3; }
}
@media (prefers-reduced-motion: reduce) { .hs-w { animation: none; } }

.hs-work { padding: var(--band) 0 0; border-top: 1px solid var(--c-line); }
.hs-head { margin-bottom: var(--space-6); }
.hs-work .cx-hs { padding-bottom: var(--band); }
[data-cx="horizontal-scroll"] .cx-hs-track { display: flex; gap: var(--gutter); overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 var(--gutter) var(--space-3); scrollbar-width: thin; }
[data-cx="horizontal-scroll"] .cx-hs-item { flex: 0 0 min(82vw, 560px); margin: 0; scroll-snap-align: start; }
[data-cx="horizontal-scroll"] .cx-hs-item img { display: block; width: 100%; height: auto; max-height: 62vh; aspect-ratio: 3 / 2; object-fit: cover; }
[data-cx="horizontal-scroll"] figcaption { margin-top: var(--space-3); font-size: var(--fs-small); color: var(--c-muted); display: flex; justify-content: space-between; gap: var(--space-3); }
[data-cx="horizontal-scroll"] figcaption strong { color: var(--c-ink); font-weight: 500; font-size: var(--fs-body); }
@supports (animation-timeline: view()) { @media (min-width: 992px) and (prefers-reduced-motion: no-preference) {
  [data-cx="horizontal-scroll"] { height: calc(var(--n, 6) * 55vh); view-timeline: --cx-hs block; }
  [data-cx="horizontal-scroll"] .cx-hs-pin { position: sticky; top: 0; height: 100vh; overflow: clip; display: flex; align-items: center; container-type: inline-size; }
  [data-cx="horizontal-scroll"] .cx-hs-track { overflow: visible; width: max-content; padding-bottom: 0; animation: cx-hs linear both; animation-timeline: --cx-hs; animation-range: contain 0% contain 100%; }
  [data-cx="horizontal-scroll"] .cx-hs-item { flex-basis: min(44vw, 640px); }
  @keyframes cx-hs { to { transform: translateX(calc(-100% + 100cqw)); } }
} }

.hs-index { padding: var(--band) 0; background: var(--c-ground-2); }
.hs-index .hs-sub { margin-bottom: var(--space-6); }
[data-cx="hover-reveal"] { position: relative; container-type: inline-size; }
[data-cx="hover-reveal"] .cx-reveal-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--c-line); }
[data-cx="hover-reveal"] a { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: var(--space-4); align-items: center; padding-block: var(--space-4); border-bottom: 1px solid var(--c-line); color: var(--c-ink); text-decoration: none; }
[data-cx="hover-reveal"] img { width: 64px; height: auto; aspect-ratio: 1; object-fit: cover; }
[data-cx="hover-reveal"] .cx-reveal-name { font-family: var(--cnvs-secondary-font); font-size: var(--fs-h2); line-height: 1.1; transition: color 200ms, transform 300ms; }
[data-cx="hover-reveal"] .cx-reveal-meta { font-size: var(--fs-small); color: var(--c-muted); }
@media (min-width: 992px) {
  [data-cx="hover-reveal"] { min-height: calc(34cqw * 1.25); }
  [data-cx="hover-reveal"] .cx-reveal-list { width: 62%; }
  [data-cx="hover-reveal"] a { grid-template-columns: minmax(0, 1fr) auto; }
  [data-cx="hover-reveal"] img { position: absolute; top: 0; right: 0; width: 32%; height: auto; aspect-ratio: 4 / 5; opacity: 0; transform: scale(.97); transition: opacity 350ms, transform 500ms var(--ease-out); pointer-events: none; }
  [data-cx="hover-reveal"] li:is(:hover, :focus-within) img, [data-cx="hover-reveal"]:not(:has(li:hover, li:focus-within)) li:first-child img { opacity: 1; transform: none; }
  [data-cx="hover-reveal"] li:is(:hover, :focus-within) .cx-reveal-name { color: var(--c-accent); transform: translateX(var(--space-2)); }
}

.hs-process { padding: var(--band) 0 var(--band-compact); }
[data-cx="sticky-steps"] .cx-step { display: grid; gap: var(--space-5); padding-block: var(--space-6); }
[data-cx="sticky-steps"] .cx-step-n { font-size: var(--fs-label); font-weight: 600; letter-spacing: .06em; color: var(--c-accent); margin: 0 0 var(--space-3); }
[data-cx="sticky-steps"] .cx-step-text p:last-child { color: var(--c-muted); }
[data-cx="sticky-steps"] .cx-step-media { margin: 0; }
[data-cx="sticky-steps"] .cx-step-media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
@media (min-width: 992px) {
  .hs-process .cx-steps { margin-top: var(--space-6); }
  [data-cx="sticky-steps"] .cx-step { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: var(--space-7); min-height: 120vh; align-items: start; padding-block: 0; }
  [data-cx="sticky-steps"] .cx-step-text { padding-block: 45vh 20vh; max-width: 40ch; }
  [data-cx="sticky-steps"] .cx-step-media { position: sticky; top: 120px; }
  [data-cx="sticky-steps"] .cx-step-media img { max-height: 75vh; }
}
@supports (animation-timeline: view()) { @media (min-width: 992px) and (prefers-reduced-motion: no-preference) {
  [data-cx="sticky-steps"] .cx-step-text { animation: cx-step-in linear both; animation-timeline: view(); animation-range: entry 20% cover 45%; }
  @keyframes cx-step-in { from { opacity: .15; transform: translateY(var(--space-5)); } to { opacity: 1; transform: none; } }
} }

.hs-statement { padding: var(--band) 0; }
.hs-statement .container { position: relative; }
.hs-statement-text { font-family: var(--cnvs-secondary-font); font-size: var(--fs-h2); line-height: 1.25; margin: 0; padding-top: var(--space-5); text-wrap: balance; position: relative; }
.hs-statement-text::before { content: ""; position: absolute; top: 0; left: 0; width: 64px; height: 2px; background: var(--c-accent); }
.hs-muted { color: var(--c-muted); }
@media (min-width: 992px) {
  .hs-statement-text { margin-left: 8.333%; max-width: 83.333%; }
  .hs-statement-text::before { left: 0; }
}
@media (max-width: 767px) { .hs-statement-text { font-size: var(--fs-h3); } }

.hs-team { padding: var(--band) 0; background: var(--c-ground-2); }
.hs-team h2 { margin-bottom: var(--space-6); }
.hs-team-row { align-items: start; }
[data-cx="popover-cards"] { display: grid; gap: var(--gutter); grid-template-columns: repeat(2, minmax(0, 1fr)); }
[data-cx="popover-cards"] .cx-pop-card { all: unset; box-sizing: border-box; display: grid; gap: var(--space-1); cursor: pointer; text-align: left; align-content: start; }
[data-cx="popover-cards"] .cx-pop-card img { width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; margin-bottom: var(--space-3); transition: transform 300ms var(--ease-out); }
@media (hover: hover) and (pointer: fine) { [data-cx="popover-cards"] .cx-pop-card:hover img { transform: translateY(-4px); } }
[data-cx="popover-cards"] .cx-pop-card:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 4px; }
[data-cx="popover-cards"] .cx-pop-name { font-size: var(--fs-body); font-weight: 500; color: var(--c-ink); }
[data-cx="popover-cards"] .cx-pop-role { font-size: var(--fs-small); color: var(--c-muted); }
[data-cx="popover-cards"] .cx-pop { width: min(420px, calc(100vw - 2 * var(--gutter))); max-height: 85vh; margin: auto; padding: var(--space-6) var(--space-5) var(--space-5); border: 1px solid var(--c-line); border-radius: var(--radius-s); background: var(--c-ground); color: var(--c-ink); opacity: 0; transform: translateY(12px); transition: opacity 250ms, transform 250ms, overlay 250ms allow-discrete, display 250ms allow-discrete; }
[data-cx="popover-cards"] .cx-pop:popover-open { opacity: 1; transform: none; }
@starting-style { [data-cx="popover-cards"] .cx-pop:popover-open { opacity: 0; transform: translateY(12px); } }
[data-cx="popover-cards"] .cx-pop::backdrop { background: rgba(18,20,18,.4); }
[data-cx="popover-cards"] .cx-pop h3 { margin: 0 0 var(--space-3); }
[data-cx="popover-cards"] .cx-pop p { margin: 0; color: var(--c-muted); }
[data-cx="popover-cards"] .cx-pop-close { all: unset; position: absolute; top: var(--space-3); right: var(--space-3); width: 44px; height: 44px; display: grid; place-items: center; cursor: pointer; font-size: 1.5rem; }
[data-cx="popover-cards"] .cx-pop-close:focus-visible { outline: 2px solid var(--c-accent); }
@media (min-width: 992px) {
  [data-cx="popover-cards"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  [data-cx="popover-cards"] .cx-pop-card:nth-of-type(even) { margin-top: var(--space-6); }
}

.hs-contact { padding: var(--band) 0; border-top: 1px solid var(--c-line); }
.hs-contact .hs-lead { margin-bottom: var(--space-5); }
.hs-details { font-size: var(--fs-body); line-height: 1.8; margin: 0; }
.hs-contact label { font-size: var(--fs-label); font-weight: 600; color: var(--c-ink); margin-bottom: var(--space-2); }
.hs-contact .form-control:where(:not(.form-select)) { height: 52px; padding: var(--space-3); border: 1px solid var(--c-line); border-radius: var(--radius-s); font-size: var(--fs-body); background: var(--c-ground); color: var(--c-ink); box-shadow: none; }
.hs-contact textarea.form-control:where(:not(.form-select)) { height: auto; }
.hs-contact .form-control:where(:not(.form-select)):focus { border-color: var(--c-accent); outline: 2px solid var(--c-accent); outline-offset: 0; }
.hs-contact .cnvs-form-group { margin-bottom: var(--space-3); }

.hs-footer { --cnvs-footer-bg: var(--c-ink); }
#footer.hs-footer .footer-widgets-wrap { display: flex; flex-direction: column; align-items: center; text-align: center; padding: var(--band-compact) 0 var(--space-6); }
.hs-footer .footer-logo { margin-bottom: var(--space-4); }
.hs-foot-line { font-size: var(--fs-lead); color: #fff; margin: 0 0 var(--space-5); }
.hs-foot-links { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-3) var(--space-5); list-style: none; margin: 0; padding: 0; }
#footer .footer-widgets-wrap a { color: rgba(255,255,255,.8); font-size: var(--fs-small); text-decoration: none; }
#footer .footer-widgets-wrap a:hover { color: #fff; }
#footer #copyrights { background: transparent; border-top: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.75); font-size: var(--fs-small); text-align: center; }
#footer #copyrights a { color: #fff; text-decoration: underline; }

.hs-hero { padding: var(--band-compact) 0 var(--band); }
.hs-display { font-size: clamp(3rem, 7vw, 6.5rem); }
.hs-hero-row { margin-bottom: var(--space-5); }
.hs-hero-img { padding: var(--space-3); background: var(--c-ground-2); aspect-ratio: 21 / 9; max-height: 52vh; }
@media (max-width: 767px) { .hs-hero-img { aspect-ratio: 4 / 3; } }
@supports (animation-timeline: view()) { @media (prefers-reduced-motion: no-preference) {
  .hs-display { animation: hs-drift linear both; animation-timeline: view(); animation-range: exit 0% exit 90%; }
  @keyframes hs-drift { to { opacity: .2; transform: translateY(calc(var(--space-6) * -1)); } }
} }
.hs-work { padding: var(--band) 0; }
.hs-work .cx-hs { padding-bottom: 0; }
.hs-process { padding: var(--band) 0; }
@supports (animation-timeline: view()) { @media (min-width: 992px) and (prefers-reduced-motion: no-preference) {
  [data-cx="horizontal-scroll"] .cx-hs-track { padding-inline: var(--gutter); box-sizing: content-box; }
} }
@media (max-width: 991.98px) {
  #header { position: relative; }
  #header-wrap { border-top: 0 !important; }
  #header-wrap .header-row { min-height: 0; }
  #header-wrap .primary-menu-trigger { position: absolute; top: var(--space-3); right: var(--gutter); z-index: 5; }
  #header #logo { min-width: 0; }
}
.hs-foot-big { font-family: var(--cnvs-secondary-font); font-size: clamp(2.25rem, 6vw, 5rem); line-height: 1.05; color: #fff; margin: 0 0 var(--space-5); text-wrap: balance; }
.hs-foot-cta { margin-bottom: var(--space-6); }
#footer .footer-widgets-wrap a.hs-btn { background: #fff; color: var(--c-ink); }
#footer .footer-widgets-wrap a.hs-btn:hover { background: var(--c-accent); color: #fff; }
.hs-foot-details { color: rgba(255,255,255,.8); font-size: var(--fs-body); margin: 0 0 var(--space-5); }

:where(img[width][height]){height:auto}

:is(.content-wrap,.section):has([data-cx]){overflow-x:clip;overflow-y:visible}

.content-wrap {
  padding-top: 0;
  padding-bottom: 0;
}

.section {
  margin-top: 0;
  margin-bottom: 0;
}
#copyrights a:not(.button) { text-decoration: underline !important; text-underline-offset: 0.2em; }
}
