@layer nordic-base, nordic-authored, nordic-custom;

@layer nordic-base, nordic-authored, nordic-custom;

@layer nordic-base {
  .brand__fallback[data-astro-cid-fospvvjs] {
    min-width: 0;
    overflow-wrap: anywhere;
    font: 400 clamp(20px, 3vw, 30px)/1.1 var(--font-body);
  }

  .brand[data-astro-cid-fospvvjs] {
    --wordmark-width: 224px;
    display: flex;
    gap: 12px;
    align-items: center;
    flex: none;
  }

  .brand[data-astro-cid-fospvvjs]:has(.brand__fallback) {
    min-width: 0;
    flex: 0 auto;
  }

  .brand__symbol[data-astro-cid-fospvvjs] {
    width: calc(var(--wordmark-width) / 7);
    aspect-ratio: 2600.47 / 2550.87;
    height: auto;
    flex: none;
    object-fit: contain;
    transform: translateY(-6.5%);
  }

  .brand__wordmark[data-astro-cid-fospvvjs] {
    width: var(--wordmark-width);
    aspect-ratio: 1247.18 / 153.869;
    height: auto;
    flex: none;
  }

  .brand--large[data-astro-cid-fospvvjs] {
    --wordmark-width: 230px;
  }

  .brand__mask[data-astro-cid-fospvvjs] {
    display: block;
    background-color: currentColor;
    -webkit-mask: var(--brand-asset) center / contain no-repeat;
    mask: var(--brand-asset) center / contain no-repeat;
  }

  .site-header[data-theme="dark"] .brand__mask[data-astro-cid-fospvvjs] {
    -webkit-mask-image: var(--brand-light-asset, var(--brand-asset));
    mask-image: var(--brand-light-asset, var(--brand-asset));
  }

  @media (width <= 1100px) {
    .brand[data-astro-cid-fospvvjs]:not(.brand--large) {
      --wordmark-width: 195px;
    }
  }

  @media (width <= 800px) {
    .brand[data-astro-cid-fospvvjs]:not(.brand--large) {
      --wordmark-width: 180px;
      gap: 10px;
    }
  }

  @media (width <= 600px) {
    .brand[data-astro-cid-fospvvjs]:not(.brand--large) {
      --wordmark-width: 150px;
      gap: 8px;
    }

    .brand--large[data-astro-cid-fospvvjs] {
      --wordmark-width: 225px;
    }
  }

  @media (width <= 370px) {
    .brand--large[data-astro-cid-fospvvjs] {
      --wordmark-width: 210px;
    }
  }
}

@layer nordic-base{}
@layer nordic-base, nordic-authored, nordic-custom;
@layer nordic-base {/* Shared geometry, palette and glass for public and customer headers. */
.site-header {
  --nav-surface: var(--glass-light);
  --nav-panel: rgb(252 250 247 / 97%);
  --mega-surface: rgb(252 250 247 / 90%);
  --nav-glass-surface: var(--nav-surface);
  --nav-glass-transition: background-color 300ms ease;
  --navigation-glass-surface: var(--nav-glass-surface);
  --navigation-glass-transition: var(--nav-glass-transition), border-color 300ms ease;
  --nav-ink: var(--ink);
  --nav-logo: var(--primary);
  --nav-line: rgb(119 107 98 / 20%);
  --nav-button-background: var(--primary);
  --nav-button-ink: var(--cream);
  display: block; position: sticky; top: calc(-1 * var(--notice-height));
  isolation: isolate; z-index: 50; color: var(--nav-ink); transition: color 300ms ease;
}
.site-header[data-theme='dark'] {
  --nav-surface: var(--glass-taupe); --nav-panel: rgb(73 66 61 / 97%); --mega-surface: rgb(73 66 61 / 90%);
  --nav-ink: var(--cream); --nav-logo: var(--cream); --nav-line: rgb(247 243 239 / 20%);
  --nav-button-background: var(--cream); --nav-button-ink: var(--ink); --notice-icon-filter: brightness(0) invert(1);
}
.site-header::before { border-bottom: 1px solid var(--nav-line); }
.site-header[data-mega-open] { --nav-glass-surface: var(--mega-surface); }
.site-header__inner {
  min-height: var(--header); width: min(calc(100% - var(--gutter) * 2), var(--max));
  margin-inline: auto; display: flex; align-items: center; gap: 32px;
}
.site-header .brand { color: var(--nav-logo); transition: color 300ms ease; }
.site-header--account { position: fixed; inset: 0 0 auto; }
.site-header--account .site-header__inner { min-width: 0; gap: 16px; padding-block: 8px; }
.site-header--account .site-header__inner > :last-child { margin-left: auto; }
@media (max-width: 1200px) { .site-header__inner { gap: 24px; } }
@media (max-width: 600px) { .site-header__inner { width: calc(100% - 32px); gap: 8px; } }
@media (prefers-reduced-motion: reduce) { .site-header, .site-header .brand { transition: none; } }
}
@layer nordic-base, nordic-authored, nordic-custom;
@layer nordic-base {/* Visual popup primitives only; no campaigns, triggers or form behaviour. */
:root {
  --popup-shadow: 0 20px 70px rgb(73 66 61 / 20%);
  --popup-backdrop: rgb(73 66 61 / 34%);
  --popup-backdrop-blur: 6px;
}
/* Campaigns and cookie consent deliberately share the same surface. */
.popup-surface, #cc-main .cm, #cc-main .pm {
  border: 0; border-radius: var(--button-radius);
  background: var(--popup-background, var(--cream)); color: var(--ink);
  box-shadow: var(--popup-shadow);
}
.popup-surface {
  width: min(var(--popup-width, 560px), calc(100vw - var(--popup-gap, 48px)));
  max-width: none; max-height: calc(100vh - var(--popup-gap, 48px));
  max-height: calc(100dvh - var(--popup-gap, 48px));
  padding: 0; margin: auto;
  overflow: auto; scroll-padding-block: 64px 28px; overscroll-behavior: contain;
}
.popup-surface::backdrop, #cc-main .cm-wrapper::before, #cc-main .pm-overlay {
  background: var(--popup-backdrop);
  -webkit-backdrop-filter: blur(var(--popup-backdrop-blur));
  backdrop-filter: blur(var(--popup-backdrop-blur));
}
.popup-close, #cc-main .cm__btn--close, #cc-main .pm__close-btn {
  display: inline-grid; place-items: center; flex: none; width: 44px; height: 44px;
  border: 0; border-radius: var(--button-radius); color: var(--ink);
  background: transparent; transition: background-color 160ms ease;
}
.popup-close:focus-visible { box-shadow: inset 0 0 0 2px var(--primary); outline: none; }
/* Explicit centred variant remains centred at every breakpoint, including the
   visual viewport left by a software keyboard. Long forms scroll internally. */
.popup-surface--centered {
  --popup-width: 480px; --popup-gap: 32px; --popup-background: var(--paper);
  position: fixed; inset: auto;
  left: calc(var(--popup-viewport-left, 0px) + var(--popup-viewport-width, 100vw) / 2);
  top: calc(var(--popup-viewport-top, 0px) + var(--popup-viewport-height, 100dvh) / 2);
  width: min(var(--popup-width), calc(var(--popup-viewport-width, 100vw) - var(--popup-gap)));
  max-height: calc(var(--popup-viewport-height, 100dvh) - var(--popup-gap) - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  margin: 0; transform: translate(-50%, -50%); overflow: hidden;
}
.popup-surface--centered[open] { display: grid; grid-template-rows: auto minmax(0, 1fr); }
@media (hover: hover) and (pointer: fine) {
  .popup-close:hover, #cc-main .cm.cm--box.cm--wide .cm__btn--close:hover, #cc-main .pm__close-btn:hover { background: rgb(119 107 98 / 10%); }
}
@media (prefers-reduced-motion: reduce) { .popup-close { transition: none; } }
@media (forced-colors: active) { .popup-surface { outline: 1px solid CanvasText; } .popup-close:focus-visible { outline: 2px solid Highlight; } }
}
@layer nordic-base, nordic-authored, nordic-custom;@layer nordic-base {.account-dialog { padding:20px; }
.account-dialog .account-dialog-header { display:flex; align-items:flex-start; gap:12px; padding-bottom:20px; }
.account-dialog .account-dialog-header h2 { flex:1; min-width:0; margin:0; padding-top:6px; font:400 22px/28px var(--font-heading); overflow-wrap:anywhere; }
.account-dialog-header h2:focus { outline:none; }
.account-dialog .account-dialog-body { display:grid; gap:16px; overflow:auto; min-height:0; overscroll-behavior:contain; scroll-padding-block:8px; padding:4px; margin:-4px; overflow-wrap:anywhere; }
.account-dialog .account-dialog-body form { display:grid; gap:20px; }
@media(min-width:768px) { .account-dialog { padding:24px; } } }
