/* Labmodul unified design system v2.0 - local prototype only. */
:root {
  --lm-ds-font: "Century Gothic", CenturyGothic, AppleGothic, Arial, sans-serif;
  --lm-ds-ink: #24302e;
  --lm-ds-text: #596461;
  --lm-ds-muted: #7a8481;
  --lm-ds-orange: #f97828;
  --lm-ds-paper: #ffffff;
  --lm-ds-warm: #f4f0ea;
  --lm-ds-soft: #f7f8f6;
  --lm-ds-line: rgba(36, 48, 46, .14);
  --lm-ds-container: 1200px;
  --lm-ds-gutter: clamp(20px, 4.8vw, 64px);
  --lm-ds-space-1: 8px;
  --lm-ds-space-2: 12px;
  --lm-ds-space-3: 16px;
  --lm-ds-space-4: 24px;
  --lm-ds-space-5: 32px;
  --lm-ds-space-6: 48px;
  --lm-ds-space-7: 64px;
  --lm-ds-space-8: 80px;
  --lm-ds-space-9: 96px;
  --lm-ds-display: clamp(44px, 4.2vw, 64px);
  --lm-ds-h2: clamp(34px, 3.1vw, 46px);
  --lm-ds-h3: clamp(23px, 1.9vw, 28px);
  --lm-ds-body: 16px;
  --lm-ds-small: 14px;
  --lm-ds-label: 12px;
  --lm-ds-button: 14px;
  --lm-ds-leading-heading: 1.12;
  --lm-ds-leading-body: 1.65;
}
html { scroll-padding-top: 104px; }
body,
body button,
body input,
body select,
body textarea { font-family: var(--lm-ds-font) !important; }
body {
  color: var(--lm-ds-text);
  font-size: var(--lm-ds-body);
  line-height: var(--lm-ds-leading-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body h1,
body h2,
body h3,
body h4,
body p { margin-block-start: 0; }
body h1,
body .elementor h1,
body .page-header h1,
body .entry-title,
body.home .lm-value-proposition h1#lm-value-title {
  color: var(--lm-ds-ink) !important;
  font-family: var(--lm-ds-font) !important;
  font-size: var(--lm-ds-display) !important;
  font-weight: 400 !important;
  line-height: 1.07 !important;
  letter-spacing: -.03em !important;
  text-wrap: balance;
}
body h2,
body .elementor h2,
body .page-header h2,
body .lm-functional-contact h2,
body #site-footer h2 {
  color: var(--lm-ds-ink) !important;
  font-family: var(--lm-ds-font) !important;
  font-size: var(--lm-ds-h2) !important;
  font-weight: 400 !important;
  line-height: var(--lm-ds-leading-heading) !important;
  letter-spacing: -.022em !important;
  text-wrap: balance;
}
body h3,
body .elementor h3,
body .lm-functional-contact h3,
body #site-footer h3,
body.home .elementor-element-0d52666 .entry-title {
  color: var(--lm-ds-ink) !important;
  font-family: var(--lm-ds-font) !important;
  font-size: var(--lm-ds-h3) !important;
  font-weight: 400 !important;
  line-height: 1.22 !important;
  letter-spacing: -.012em !important;
  text-wrap: balance;
}
body p,
body li,
body .elementor-widget-text-editor,
body .elementor-widget-text-editor p,
body .lm-functional-contact p,
body #site-footer p {
  font-family: var(--lm-ds-font) !important;
  font-size: var(--lm-ds-body) !important;
  line-height: var(--lm-ds-leading-body) !important;
  letter-spacing: 0 !important;
  text-wrap: pretty;
}
body .elementor-widget-text-editor p,
body .lm-value-copy p,
body .lm-functional-contact p,
body .post-box .the-excerpt { max-width: 68ch; }
body .elementor-section.elementor-section-boxed > .elementor-container,
body .lm-value-inner,
body .lm-contact-inner,
body #site-footer .lm-footer-inner {
  width: min(100%, var(--lm-ds-container)) !important;
  max-width: var(--lm-ds-container) !important;
}
body .ot-heading .main-heading,
body .lm-reference-heading h2,
body .lm-contact-heading h2 { margin-bottom: 0 !important; }
body .ot-heading,
body .lm-reference-heading,
body .lm-contact-heading { margin-bottom: var(--lm-ds-space-6) !important; }
body .ot-heading__sub,
body .lm-value-kicker,
body .lm-contact-eyebrow,
body .lm-reference-eyebrow,
body #site-footer .lm-footer-kicker {
  font-family: var(--lm-ds-font) !important;
  font-size: var(--lm-ds-label) !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
}
body a.btn-details,
body button.lm-contact-link,
body a.lm-news-readmore,
body .lm-value-actions > .lm-v2-button {
  font-family: var(--lm-ds-font) !important;
  font-size: var(--lm-ds-button) !important;
  font-weight: 700 !important;
  letter-spacing: .035em !important;
}
body :is(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--lm-ds-orange) !important;
  outline-offset: 4px !important;
}
/* Consistent architectural section rhythm. */
body.home .lm-value-proposition { padding-block: var(--lm-ds-space-9) !important; }
body.home .elementor-element-74bd402.lm-references-section {
  padding-top: var(--lm-ds-space-8) !important;
  padding-bottom: var(--lm-ds-space-7) !important;
}
body.home .elementor-element-1dfb2f2.lm-services-section { padding-block: var(--lm-ds-space-9) !important; }
body.home .lm-functional-contact {
  padding-top: var(--lm-ds-space-9) !important;
  padding-bottom: var(--lm-ds-space-8) !important;
}
/* Approved Proposal B, adapted to the available content column. */
body.home .lm-value-actions {
  grid-template-columns: 1fr !important;
  gap: var(--lm-ds-space-2) !important;
  width: 100%;
}
body.home .lm-value-actions > .lm-v2-button {
  min-height: 74px !important;
  width: 100% !important;
  padding-inline: var(--lm-ds-space-4) !important;
  grid-template-columns: 28px minmax(0, 1fr) auto !important;
  gap: var(--lm-ds-space-3) !important;
  background: var(--lm-ds-warm) !important;
  border-left-color: var(--lm-ds-orange) !important;
}
body.home .lm-value-actions .lm-cta-label { white-space: normal; }
/* Uniform card interiors without changing the approved structures. */
body.home .lm-services-section .icon-box,
body.home .lm-functional-contact .lm-contact-card,
body.home .elementor-element-0d52666 .post-inner { border-color: var(--lm-ds-line) !important; }
body.home .lm-functional-contact .lm-contact-card {
  padding: var(--lm-ds-space-6) var(--lm-ds-space-5) var(--lm-ds-space-5) !important;
}
body.home .lm-functional-contact .lm-contact-card h3 { margin-bottom: var(--lm-ds-space-3) !important; }
body.home .elementor-element-0d52666 .inner-post {
  padding: var(--lm-ds-space-4) var(--lm-ds-space-4) var(--lm-ds-space-5) !important;
}
body.home .elementor-element-0d52666 .entry-title { margin-bottom: var(--lm-ds-space-2) !important; }
@media (max-width: 1024px) {
  :root {
    --lm-ds-gutter: clamp(20px, 4vw, 40px);
    --lm-ds-space-9: 80px;
  }
  body.home .lm-functional-contact .lm-contact-card {
    padding: var(--lm-ds-space-5) var(--lm-ds-space-4) !important;
  }
}
@media (max-width: 767px) {
  :root {
    --lm-ds-display: clamp(36px, 10vw, 48px);
    --lm-ds-h2: clamp(30px, 8vw, 39px);
    --lm-ds-h3: 23px;
    --lm-ds-body: 16px;
    --lm-ds-space-8: 64px;
    --lm-ds-space-9: 72px;
  }
  html { scroll-padding-top: 84px; }
  body .ot-heading,
  body .lm-reference-heading,
  body .lm-contact-heading { margin-bottom: var(--lm-ds-space-5) !important; }
  body.home .lm-value-actions > .lm-v2-button {
    min-height: 68px !important;
    padding-inline: 20px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
/* Accessible inline action surfaces. */
body.home .post-box .posted-on a,
body .lm-contact-person a,
body #site-footer .elementor-icon-list-item a {
  display: inline-flex !important;
  min-height: 40px;
  align-items: center;
}
body .lm-contact-person a {
  padding-block: 6px;
}
/* Service cards: readable dark hover state. */
body.home .lm-services-section .icon-box:hover :is(h3, h3 a, h5, h5 a, .content-box, .content-box p, .link-box, .link-box a.btn-details) {
  color: #ffffff !important;
}
body.home .lm-services-section .icon-box:hover .link-box a.btn-details::after {
  color: var(--lm-ds-orange) !important;
}
body.home .lm-services-section .icon-box :is(h3, h3 a, h5, h5 a, .content-box, .content-box p, .link-box a.btn-details) {
  transition: color .18s ease;
}
@media (prefers-reduced-motion: reduce) {
  body.home .lm-services-section .icon-box :is(h3, h3 a, h5, h5 a, .content-box, .content-box p, .link-box a.btn-details) {
    transition: none !important;
  }
}
/* lm-nordic-login-and-value-cards-v1 */
body a[href*="/member-login/"].octf-btn {
  position: relative !important; min-height: 44px !important; padding: 13px 18px 12px !important;
  color: #fff !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
  font-family: "Century Gothic", CenturyGothic, AppleGothic, sans-serif !important; font-size: 12px !important; font-weight: 700 !important;
  line-height: 1.2 !important; letter-spacing: .12em !important; text-transform: uppercase !important;
  transition: background-color .18s ease, color .18s ease !important;
}
body a[href*="/member-login/"].octf-btn::before { display: none !important; }
body a[href*="/member-login/"].octf-btn::after {
  content: "" !important; position: absolute !important; right: 18px !important; bottom: 7px !important; left: 18px !important;
  width: auto !important; height: 2px !important; background: var(--lm-ds-orange, #f97828) !important; border: 0 !important; transform: none !important;
}
body a[href*="/member-login/"].octf-btn:is(:hover, :focus-visible) { color: #fff !important; background: rgba(255, 255, 255, .10) !important; outline: none !important; }
body .lm-mobile-login > a { font-family: "Century Gothic", CenturyGothic, AppleGothic, sans-serif !important; font-weight: 700 !important; letter-spacing: .10em !important; }
body .lm-value-tags { counter-reset: lm-value-card; gap: 16px !important; border: 0 !important; }
body .lm-value-tag {
  counter-increment: lm-value-card; position: relative; min-height: 190px; overflow: hidden; padding: 66px 30px 30px !important;
  border: 1px solid var(--lm-ds-line, #d7dcda) !important; color: var(--lm-ds-text, #596460) !important;
  background-color: #fbfcfb;
  background-image: linear-gradient(rgba(35,48,45,.035) 1px,transparent 1px), linear-gradient(90deg,rgba(35,48,45,.035) 1px,transparent 1px), linear-gradient(135deg,transparent 64%,rgba(249,120,40,.055) 64%,rgba(249,120,40,.055) 64.35%,transparent 64.35%);
  background-size: 42px 42px, 42px 42px, 100% 100%; box-shadow: inset 3px 0 0 var(--lm-ds-orange, #f97828);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
body .lm-value-tag::before { content: "0" counter(lm-value-card); position: absolute; top: 24px; left: 30px; color: var(--lm-ds-orange, #f97828); font-family: "Century Gothic", CenturyGothic, AppleGothic, sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .16em; }
body .lm-value-tag::after { content: ""; position: absolute; top: 20px; right: 20px; width: 42px; height: 42px; border-top: 1px solid rgba(249,120,40,.72); border-right: 1px solid rgba(249,120,40,.72); }
body .lm-value-tag strong { display: block; margin-bottom: 10px !important; color: var(--lm-ds-ink, #24302e) !important; font-size: 18px !important; line-height: 1.35 !important; }
body .lm-value-tag:hover { border-color: rgba(36,48,46,.34) !important; box-shadow: inset 3px 0 0 var(--lm-ds-orange, #f97828), 0 16px 34px rgba(24,37,34,.08); transform: translateY(-3px); }
@media (max-width: 900px) { body .lm-value-tags { gap: 12px !important; } body .lm-value-tag { min-height: 170px; } }
@media (prefers-reduced-motion: reduce) { body .lm-value-tag, body a[href*="/member-login/"].octf-btn { transition: none !important; } }
/* lm-category-readable-text-v1: high contrast over the existing dark image tone. */
body.home .elementor-element-92eb555 .cate-item_content h2,
body.home .elementor-element-92eb555 .cate-item_content h2 a {
  color: #ffffff !important;
  font-weight: 500 !important;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .78), 0 1px 2px rgba(0, 0, 0, .9) !important;
}
body.home .elementor-element-92eb555 .cate-item:is(:hover, :focus-within) .cate-item_content h2,
body.home .elementor-element-92eb555 .cate-item:is(:hover, :focus-within) .cate-item_content h2 a {
  color: #ffffff !important;
}
body.home .elementor-element-92eb555 .number-stroke {
  color: rgba(255, 255, 255, .72) !important;
  -webkit-text-stroke-color: rgba(255, 255, 255, .72) !important;
}
/* Nordic VIDEO page - local prototype only */
body.page-id-5593 {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  background: #fff;
}

body.page-id-5593 .lm-video-original-hidden {
  display: none !important;
}

body.page-id-5593 .page-header {
  min-height: 500px;
  background-color: #f5f7f5 !important;
  background-position: right center !important;
  background-size: 58% auto !important;
  background-repeat: no-repeat !important;
}

body.page-id-5593 .page-header::before {
  background: linear-gradient(90deg,#f5f7f5 0%,#f5f7f5 42%,rgba(245,247,245,.9) 52%,rgba(245,247,245,.08) 82%);
}

body.page-id-5593 .page-header .dcell {
  vertical-align: middle;
}

body.page-id-5593 .page-header .container {
  max-width: 1500px;
  padding-inline: 64px;
  text-align: left;
}

body.page-id-5593 .page-title {
  max-width: 690px;
  margin: 0;
  padding-left: 30px;
  color: #27322f;
  border-left: 3px solid #f36f21;
  font-size: clamp(44px,4.6vw,72px);
}

body.page-id-5593 .breadcrumbs {
  justify-content: flex-start;
  padding-left: 33px;
  color: #5f6966;
}

body.page-id-5593 .breadcrumbs a {
  color: #27322f;
}

body.page-id-5593 .lm-video-library {
  position: relative;
  padding: 90px 0 112px;
  border-top: 1px solid #dfe4e1;
  background:
    linear-gradient(rgba(255,255,255,.965),rgba(255,255,255,.965)),
    url('/__labmodul_original_blueprint.jpg') center top / cover no-repeat;
}

body.page-id-5593 .lm-video-library-inner {
  width: min(1760px, calc(100% - 56px));
  margin: 0 auto;
}

body.page-id-5593 .lm-video-library-heading {
  margin: 0 0 54px;
}

body.page-id-5593 .lm-video-library-heading h2 {
  max-width: 780px;
  margin: 0;
  color: #27322f;
  font-size: clamp(40px,3.8vw,60px) !important;
  font-weight: 400 !important;
  line-height: 1.08 !important;
  letter-spacing: -.035em;
}

body.page-id-5593 .lm-video-library-heading h2::after {
  content: '';
  display: block;
  width: 92px;
  height: 2px;
  margin-top: 24px;
  background: #f36f21;
}

body.page-id-5593 .lm-video-library-layout {
  display: grid;
  grid-template-columns: minmax(240px,300px) minmax(0,1fr);
  gap: 38px;
  align-items: start;
}

body.page-id-5593 .lm-video-filters {
  position: sticky;
  top: 116px;
  display: flex;
  flex-direction: column;
  border-top: 1px solid #d8ddd9;
}

body.page-id-5593 .lm-video-filter {
  position: relative;
  width: 100%;
  padding: 16px 28px 16px 4px;
  border: 0;
  border-bottom: 1px solid #d8ddd9;
  color: #27322f;
  background: transparent;
  font-family: 'Century Gothic','CenturyGothic',Arial,sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .04em;
  text-align: left;
  text-transform: uppercase;
  cursor: pointer;
  transition: padding .2s ease, color .2s ease, border-color .2s ease;
}

body.page-id-5593 .lm-video-filter::after {
  content: '→';
  position: absolute;
  right: 6px;
  color: #f36f21;
  font-size: 17px;
  font-weight: 400;
}

body.page-id-5593 .lm-video-filter:hover,
body.page-id-5593 .lm-video-filter:focus-visible,
body.page-id-5593 .lm-video-filter[aria-pressed='true'] {
  padding-left: 16px;
  color: #f36f21;
  border-left: 2px solid #f36f21;
  outline: 0;
}

body.page-id-5593 .lm-video-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 18px;
  align-items: stretch;
}

body.page-id-5593 .lm-video-library-card {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #d8ddd9;
  background: #fff;
}

body.page-id-5593 .lm-video-library-card[hidden] {
  display: none !important;
}

body.page-id-5593 .lm-video-library-card::after {
  content: '';
  position: absolute;
  right: -1px;
  bottom: -1px;
  width: 84px;
  height: 2px;
  background: #f36f21;
}

body.page-id-5593 .lm-video-media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #eef1ef;
}

body.page-id-5593 .lm-video-media::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg,rgba(255,255,255,.025),rgba(29,42,38,.045));
}

body.page-id-5593 .lm-video-media video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  background: #eef1ef;
  filter: saturate(.72) contrast(1.06) brightness(1.035);
  transition: filter .35s ease;
}

body.page-id-5593 .lm-video-library-card:hover .lm-video-media video,
body.page-id-5593 .lm-video-library-card:focus-within .lm-video-media video {
  filter: saturate(.82) contrast(1.08) brightness(1.04);
}

body.page-id-5593 .lm-video-card-info {
  position: relative;
  flex: 1;
  min-height: 128px;
  padding: 18px 18px 22px;
  background: #fff;
}

body.page-id-5593 .lm-video-card-category {
  display: block;
  margin: 0 0 9px;
  color: #f36f21;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .12em;
  text-transform: uppercase;
}

body.page-id-5593 .lm-video-card-info h3 {
  margin: 0;
  color: #27322f;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: 0;
}

@media (max-width: 1180px) {
  body.page-id-5593 .lm-video-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

@media (max-width: 1024px) {
  body.page-id-5593 .page-header .container {
    padding-inline: 36px;
  }

  body.page-id-5593 .lm-video-library-layout {
    grid-template-columns: 1fr;
  }

  body.page-id-5593 .lm-video-filters {
    position: static;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0 18px;
  }

  body.page-id-5593 .lm-video-filter {
    width: auto;
  }
}

@media (max-width: 767px) {
  body.page-id-5593 .page-header {
    min-height: 410px !important;
    background-position: center !important;
    background-size: cover !important;
  }

  body.page-id-5593 .page-header::before {
    background: rgba(245,247,245,.88);
  }

  body.page-id-5593 .page-header .container {
    padding-inline: 22px;
  }

  body.page-id-5593 .lm-video-library {
    padding: 62px 0 80px;
  }

  body.page-id-5593 .lm-video-library-inner {
    width: calc(100% - 28px);
  }

  body.page-id-5593 .lm-video-library-heading {
    margin-bottom: 36px;
  }

  body.page-id-5593 .lm-video-grid {
    grid-template-columns: minmax(0,1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.page-id-5593 .lm-video-filter,
  body.page-id-5593 .lm-video-media video {
    transition: none;
  }
}