/* Kunnskapsmedia Theme v2.0.71 - cross-site runtime guards. */
body.kk-theme-v2 .kk-ad-slot[data-kk-ad-state="empty"],
body.kk-theme-v2 .kk-after-menu-ad[data-kk-ad-state="empty"] {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}


/* Pending ad shells are collapsed until a visible creative is confirmed. This
   prevents provider wrappers with fixed 980x300 sizing from masking the first
   editorial module while still allowing synchronous creatives to render as
   `filled` immediately and asynchronous creatives to reopen via JS. */
body.kk-theme-v2 .kk-ad-slot[data-kk-ad-state="pending"],
body.kk-theme-v2 .kk-after-menu-ad[data-kk-ad-state="pending"] {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

body.kk-theme-v2 .kk-after-menu-ad[data-kk-ad-state="filled"],
body.kk-theme-v2 .kk-ad-slot[data-kk-ad-state="filled"] {
  visibility: visible !important;
  opacity: 1 !important;
}

/* Ad-provider CSS must never position the theme-owned wrapper over following
   content. Creative internals remain untouched. */
body.kk-theme-v2 .kk-after-menu-ad,
body.kk-theme-v2 .kk-ad-slot {
  position: relative !important;
  inset: auto !important;
  clear: both !important;
  float: none !important;
}

body.kk-theme-v2 [data-kk-frontpage-module="aktuelt"] {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  inset: auto !important;
  z-index: 2 !important;
  clear: both !important;
  float: none !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  color: var(--ink, #191919) !important;
  background: #fff !important;
}

body.kk-theme-v2 [data-kk-frontpage-module="aktuelt"] .kk-section__header,
body.kk-theme-v2 [data-kk-frontpage-module="aktuelt"] .kk-section-title,
body.kk-theme-v2 [data-kk-frontpage-module="aktuelt"] .kk-eyebrow,
body.kk-theme-v2 [data-kk-frontpage-module="aktuelt"] .kk-hero-grid,
body.kk-theme-v2 [data-kk-frontpage-module="aktuelt"] .kk-empty-state--articles {
  visibility: visible !important;
  opacity: 1 !important;
}

body.kk-theme-v2 [data-kk-frontpage-module="aktuelt"] .kk-section__header {
  display: flex !important;
  position: relative !important;
  z-index: 3 !important;
  color: var(--ink, #191919) !important;
}

body.kk-theme-v2 [data-kk-frontpage-module="aktuelt"] .kk-section-title {
  display: block !important;
  color: var(--ink, #191919) !important;
  -webkit-text-fill-color: var(--ink, #191919) !important;
}

body.kk-theme-v2 [data-kk-frontpage-module="aktuelt"] .kk-hero-grid {
  display: grid !important;
  position: relative !important;
  z-index: 3 !important;
  width: 100% !important;
  height: auto !important;
}

body.kk-theme-v2 [data-kk-frontpage-module="aktuelt"] .kk-hero-grid__main,
body.kk-theme-v2 [data-kk-frontpage-module="aktuelt"] .kk-hero-grid__side,
body.kk-theme-v2 [data-kk-frontpage-module="aktuelt"] .kk-article-card {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  height: auto !important;
}

body.kk-theme-v2 [data-kk-frontpage-module="aktuelt"] .kk-hero-grid__side {
  display: grid !important;
}

/* v2.0.66 — the front-page editorial module is structurally independent from
   every ad slot. Provider CSS may style its own boundary only; it must never
   reserve, hide, clip or position the Aktuelt module. */
body.kk-theme-v2 #kk-after-menu-ad-boundary {
  isolation: isolate !important;
  contain: layout paint !important;
  z-index: 0 !important;
}

body.kk-theme-v2 #kk-frontpage-aktuelt[data-kk-layout-independent="true"] {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  inset: auto !important;
  z-index: 1 !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  clip-path: none !important;
  transform: none !important;
  isolation: isolate !important;
  contain: layout !important;
}

body.kk-theme-v2 #kk-frontpage-aktuelt[hidden],
body.kk-theme-v2 #kk-frontpage-aktuelt[aria-hidden="true"] {
  display: block !important;
  visibility: visible !important;
}

/* v2.0.72 — configurable advertiser/employer logo HEIGHT.
   Desktop/tablet and mobile can now be tuned independently in Theme Options.
   The image always preserves its natural aspect ratio inside the requested
   height, and remains constrained by the available card/sidebar width. */
body.kk-theme-v2 .kk-job-card--listing .kk-job-card__top,
body.kk-theme-v2 .kk-job-card--taxonomy .kk-job-card__top,
body.kk-theme-v2 .kk-job-card--home .kk-job-card__top {
  min-height: var(--kk-job-logo-height-desktop, 80px) !important;
}

body.kk-theme-v2 .kk-job-card--listing .kk-job-card__logo,
body.kk-theme-v2 .kk-job-card--taxonomy .kk-job-card__logo,
body.kk-theme-v2 .kk-job-card--home .kk-job-card__logo {
  min-width: 0 !important;
  min-height: var(--kk-job-logo-height-desktop, 80px) !important;
  width: 100% !important;
  max-width: 100% !important;
  height: var(--kk-job-logo-height-desktop, 80px) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex: 1 1 auto !important;
}

body.kk-theme-v2 .kk-job-card--listing .kk-job-card__logo img,
body.kk-theme-v2 .kk-job-card--taxonomy .kk-job-card__logo img,
body.kk-theme-v2 .kk-job-card--home .kk-job-card__logo img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: left center !important;
}

body.kk-theme-v2 .kk-job-card--listing .kk-logo-fallback,
body.kk-theme-v2 .kk-job-card--taxonomy .kk-logo-fallback,
body.kk-theme-v2 .kk-job-card--home .kk-logo-fallback {
  width: var(--kk-job-logo-height-desktop, 80px) !important;
  height: var(--kk-job-logo-height-desktop, 80px) !important;
  min-width: var(--kk-job-logo-height-desktop, 80px) !important;
}

/* Individual job pages use the same advertiser-logo height contract. */
body.kk-theme-v2 .kk-employer-logo {
  width: 100% !important;
  max-width: 100% !important;
  min-height: var(--kk-job-logo-height-desktop, 80px) !important;
  height: var(--kk-job-logo-height-desktop, 80px) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
}
body.kk-theme-v2 .kk-employer-logo img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: left center !important;
}
body.kk-theme-v2 .kk-employer-logo .kk-logo-fallback {
  width: var(--kk-job-logo-height-desktop, 80px) !important;
  height: var(--kk-job-logo-height-desktop, 80px) !important;
  min-width: var(--kk-job-logo-height-desktop, 80px) !important;
}

@media (max-width: 767px) {
  body.kk-theme-v2 .kk-job-card--listing .kk-job-card__top,
  body.kk-theme-v2 .kk-job-card--taxonomy .kk-job-card__top,
  body.kk-theme-v2 .kk-job-card--home .kk-job-card__top {
    min-height: var(--kk-job-logo-height-mobile, 80px) !important;
  }
  body.kk-theme-v2 .kk-job-card--listing .kk-job-card__logo,
  body.kk-theme-v2 .kk-job-card--taxonomy .kk-job-card__logo,
  body.kk-theme-v2 .kk-job-card--home .kk-job-card__logo,
  body.kk-theme-v2 .kk-employer-logo {
    min-height: var(--kk-job-logo-height-mobile, 80px) !important;
    height: var(--kk-job-logo-height-mobile, 80px) !important;
  }
  body.kk-theme-v2 .kk-job-card--listing .kk-logo-fallback,
  body.kk-theme-v2 .kk-job-card--taxonomy .kk-logo-fallback,
  body.kk-theme-v2 .kk-job-card--home .kk-logo-fallback,
  body.kk-theme-v2 .kk-employer-logo .kk-logo-fallback {
    width: var(--kk-job-logo-height-mobile, 80px) !important;
    height: var(--kk-job-logo-height-mobile, 80px) !important;
    min-width: var(--kk-job-logo-height-mobile, 80px) !important;
  }
}


/* Job details use the same lead-image contract as articles. Legacy job CSS
   must not hide or shrink a featured image that is rendered above content. */
body.kk-theme-v2 .kk-job-detail-main > .kk-detail-image--featured {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: 100% !important;
  margin: 4px 0 24px !important;
  overflow: hidden !important;
  border-radius: 12px !important;
}
body.kk-theme-v2 .kk-job-detail-main > .kk-detail-image--featured img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
}

/* v2.0.70 — unified header-to-content spacing.
   One gap now belongs to <main> for every light/non-hero public view. Template
   sections and cards no longer own competing top padding, so archives,
   categories, pages, posts, job details, job search, search and 404 screens
   all begin at the same vertical position below the header divider. */
body.kk-theme-v2 main#content[data-kk-unified-content-spacing="1"] {
  box-sizing: border-box !important;
  display: block !important;
  position: relative !important;
  clear: both !important;
  background: var(--paper, #f6f5f2) !important;
  padding-top: var(--kk-unified-content-top-desktop, var(--kk-unified-content-top-space, 40px)) !important;
  margin-top: 0 !important;
}

body.kk-theme-v2 main#content[data-kk-unified-content-spacing="1"] > .kk-section--no-hero,
body.kk-theme-v2 main#content[data-kk-unified-content-spacing="1"] > .kk-section--archive-list.kk-section--no-hero,
body.kk-theme-v2 main#content[data-kk-unified-content-spacing="1"] > .kk-section--single-content.kk-section--no-hero,
body.kk-theme-v2 main#content[data-kk-unified-content-spacing="1"] > .kk-section--jobs-filter.kk-section--no-hero {
  padding-top: 0 !important;
  margin-top: 0 !important;
  transform: none !important;
}

body.kk-theme-v2 main#content[data-kk-unified-content-spacing="1"] [data-kk-content-top-boundary] {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* Jobs listing: heading and filter are separate normal-flow rows. This blocks
   inherited grid/flex/absolute rules from placing the H1 underneath the form. */
body.kk-theme-v2 main#content[data-kk-unified-content-spacing="1"] > [data-kk-canonical-jobs-header="1"] {
  display: block !important;
  position: relative !important;
  clear: both !important;
  width: 100% !important;
  padding: 0 0 18px !important;
  margin: 0 !important;
  overflow: visible !important;
}

body.kk-theme-v2 [data-kk-canonical-jobs-header="1"] > .kk-jobs-listing-heading-wrap,
body.kk-theme-v2 [data-kk-canonical-jobs-header="1"] > .kk-jobs-filter-wrap {
  display: block !important;
  position: static !important;
  float: none !important;
  clear: both !important;
  width: min(1180px, calc(100% - 56px)) !important;
  height: auto !important;
  min-height: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-top: 0 !important;
  transform: none !important;
  overflow: visible !important;
}

body.kk-theme-v2 [data-kk-canonical-jobs-header="1"] > .kk-jobs-listing-heading-wrap {
  margin-bottom: 18px !important;
}

body.kk-theme-v2 [data-kk-canonical-jobs-header="1"] .kk-jobs-listing-header,
body.kk-theme-v2 [data-kk-canonical-jobs-header="1"] .kk-jobs-filter-card,
body.kk-theme-v2 [data-kk-canonical-jobs-header="1"] .kk-job-search--listing {
  position: static !important;
  inset: auto !important;
  float: none !important;
  clear: both !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  transform: none !important;
  overflow: visible !important;
}

body.kk-theme-v2 [data-kk-canonical-jobs-header="1"] .kk-jobs-listing-header,
body.kk-theme-v2 [data-kk-canonical-jobs-header="1"] header.kk-jobs-listing-header {
  display: block !important;
  margin: 0 !important;
  padding: 0 0 14px !important;
  background: transparent !important;
  background-image: none !important;
  color: #191919 !important;
  box-shadow: none !important;
  border-bottom: 2px solid #191919 !important;
  z-index: auto !important;
}

body.kk-theme-v2 [data-kk-canonical-jobs-header="1"] .kk-jobs-filter-card {
  display: block !important;
  margin: 0 !important;
  z-index: auto !important;
}

body.kk-theme-v2 [data-kk-canonical-jobs-header="1"] .kk-job-search--listing {
  display: grid !important;
  margin: 0 !important;
}

body.kk-theme-v2 .kk-section--404 .kk-404-content {
  max-width: 880px !important;
  margin: 0 auto !important;
}

@media (max-width: 900px) {
  body.kk-theme-v2 main#content[data-kk-unified-content-spacing="1"] {
    padding-top: var(--kk-unified-content-top-mobile, var(--kk-content-top-space-mobile, 28px)) !important;
  }

  body.kk-theme-v2 [data-kk-canonical-jobs-header="1"] > .kk-jobs-listing-heading-wrap,
  body.kk-theme-v2 [data-kk-canonical-jobs-header="1"] > .kk-jobs-filter-wrap {
    width: min(100% - 32px, 1180px) !important;
  }
}

/* v2.0.71 — mobile jobs fixes.
   Legacy responsive.css applies a black background to every <header> element;
   the compact jobs heading is a content header and must remain transparent.
   Job detail source order is main article first and employer/contact sidebar
   second, so mobile must never reverse the sidebar above the advert/content. */
body.kk-theme-v2 [data-kk-canonical-jobs-header="1"] header.kk-jobs-listing-header,
body.kk-theme-v2 [data-kk-canonical-jobs-header="1"] .kk-jobs-listing-header {
  width: 100% !important;
  min-height: 0 !important;
  position: static !important;
  inset: auto !important;
  float: none !important;
  clear: both !important;
  background-color: transparent !important;
  background-image: none !important;
  color: #191919 !important;
}

@media (max-width: 992px) {
  body.kk-theme-v2 .kk-detail-layout {
    display: flex !important;
    flex-direction: column !important;
  }

  body.kk-theme-v2 .kk-detail-layout > .kk-job-detail-main {
    order: 1 !important;
  }

  body.kk-theme-v2 .kk-detail-layout > .kk-detail-sidebar {
    order: 2 !important;
  }
}


/* v2.0.78 — final editorial archive/card + imported-media guard.
   Loaded last so archive typography cannot be re-expanded by legacy/v2 layers. */
body.kk-theme-v2 .kk-section--archive-list .kk-article-card--archive h3 {
  font-size: 17px !important;
  line-height: 1.24 !important;
  padding-bottom: 8px !important;
}
body.kk-theme-v2 .kk-section--archive-list .kk-article-card--archive .kk-article-card__excerpt {
  margin: 0 !important;
  padding: 0 18px 18px !important;
  color: #5f6673 !important;
  font-size: 13.5px !important;
  line-height: 1.5 !important;
  font-weight: 500 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  overflow: hidden !important;
}
body.kk-theme-v2 .kk-content,
body.kk-theme-v2 .kk-content > * {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
body.kk-theme-v2 .kk-content img,
body.kk-theme-v2 .kk-content svg,
body.kk-theme-v2 .kk-content video,
body.kk-theme-v2 .kk-content iframe,
body.kk-theme-v2 .kk-content embed,
body.kk-theme-v2 .kk-content object,
body.kk-theme-v2 .kk-content figure,
body.kk-theme-v2 .kk-content .wp-caption,
body.kk-theme-v2 .kk-content .wp-block-image,
body.kk-theme-v2 .kk-content .wp-block-gallery {
  max-width: 100% !important;
  box-sizing: border-box !important;
}
body.kk-theme-v2 .kk-content img,
body.kk-theme-v2 .kk-content video,
body.kk-theme-v2 .kk-content figure img,
body.kk-theme-v2 .kk-content .wp-caption img {
  height: auto !important;
}
body.kk-theme-v2 .kk-content table,
body.kk-theme-v2 .kk-content pre {
  max-width: 100% !important;
  overflow-x: auto !important;
}
@media (max-width: 768px) {
  body.kk-theme-v2 .kk-content .alignleft,
  body.kk-theme-v2 .kk-content .alignright {
    float: none !important;
    display: block !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* v2.0.79 — archive first-slot hardening.
   Only rendered article cards are allowed to participate in the editorial grid.
   This prevents legacy/plugin pseudo/placeholder nodes from consuming grid slot 1. */
body.kk-theme-v2 .kk-section--archive-list .kk-article-grid[data-kk-clean-archive-grid="1"]::before,
body.kk-theme-v2 .kk-section--archive-list .kk-article-grid[data-kk-clean-archive-grid="1"]::after{
  content:none!important;
  display:none!important;
}
body.kk-theme-v2 .kk-section--archive-list .kk-article-grid[data-kk-clean-archive-grid="1"] > :not(.kk-article-card){
  display:none!important;
}
body.kk-theme-v2 .kk-section--archive-list .kk-article-grid[data-kk-clean-archive-grid="1"]{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-auto-flow:row dense!important;
  align-items:start!important;
  justify-items:stretch!important;
}
body.kk-theme-v2 .kk-section--archive-list .kk-article-grid[data-kk-clean-archive-grid="1"] > .kk-article-card{
  grid-column:auto!important;
  grid-row:auto!important;
  align-self:start!important;
  justify-self:stretch!important;
  margin:0!important;
  width:100%!important;
  max-width:none!important;
}
@media(max-width:700px){
  body.kk-theme-v2 .kk-section--archive-list .kk-article-grid[data-kk-clean-archive-grid="1"]{
    grid-template-columns:1fr!important;
  }
}
