/* LABMODUL local prototype typography system v1.0
   Scope: visual consistency only. All HTML-rendered text uses Century Gothic.
   Icon fonts and the original hero video file remain untouched. */
:root {
  --lm-font-heading: "Century Gothic", CenturyGothic, AppleGothic, Arial, sans-serif;
  --lm-font-body: "Century Gothic", CenturyGothic, AppleGothic, Arial, sans-serif;
  --lm-type-body: 16px;
  --lm-type-small: 14px;
  --lm-type-label: 12px;
  --lm-type-button: 13px;
  --lm-leading-body: 1.65;
  --lm-leading-heading: 1.14;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  font-family: var(--lm-font-body) !important;
  font-size: var(--lm-type-body);
  line-height: var(--lm-leading-body);
  font-synthesis: none;
}

/* Global text lock. Explicit selectors avoid overriding Font Awesome and other icon fonts. */
body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body p,
body a,
body button,
body input,
body textarea,
body select,
body option,
body label,
body li,
body time,
body small,
body strong,
body em,
body .rs-layer,
body .rev-btn,
body .elementor-widget-text-editor,
body .trp-language-wrap > a {
  font-family: var(--lm-font-body) !important;
}

/* Main navigation and mobile navigation */
body .main-navigation ul > li > a,
body .mobile_mainmenu li > a,
body .mmenu-wrapper li > a {
  font-family: var(--lm-font-heading) !important;
  font-size: var(--lm-type-small) !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  letter-spacing: .02em !important;
}

/* Content hierarchy */
body .elementor h1,
body .page-header h1,
body .entry-title {
  font-family: var(--lm-font-heading) !important;
  font-size: clamp(46px, 5.5vw, 72px) !important;
  font-weight: 400 !important;
  line-height: 1.08 !important;
  letter-spacing: -.02em !important;
}

body .elementor h2,
body .page-header h2,
body .lm-functional-contact h2,
body #site-footer h2 {
  font-family: var(--lm-font-heading) !important;
  font-size: clamp(38px, 4vw, 48px) !important;
  font-weight: 400 !important;
  line-height: var(--lm-leading-heading) !important;
  letter-spacing: -.015em !important;
}

body .elementor h3,
body .lm-functional-contact h3,
body #site-footer h3 {
  font-family: var(--lm-font-heading) !important;
  font-size: clamp(24px, 2.2vw, 28px) !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  letter-spacing: -.005em !important;
}

body .elementor h4,
body .lm-functional-contact h4,
body #site-footer h4 {
  font-family: var(--lm-font-heading) !important;
  font-size: 21px !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
}

body .elementor-widget-text-editor,
body .elementor-widget-text-editor p,
body .elementor-widget-text-editor li,
body .lm-functional-contact p,
body #site-footer p,
body #site-footer li {
  font-family: var(--lm-font-body) !important;
  font-size: var(--lm-type-body) !important;
  font-weight: 400 !important;
  line-height: var(--lm-leading-body) !important;
  letter-spacing: 0 !important;
}

/* Labels, metadata and compact support text */
body .ot-heading__sub,
body .lm-contact-eyebrow,
body .lm-contact-number,
body .post-box .post-cat,
body .post-box .entry-meta,
body #site-footer .lm-footer-kicker {
  font-family: var(--lm-font-body) !important;
  font-size: var(--lm-type-label) !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
}

/* Buttons and text links */
body .octf-btn:not(.rev-btn),
body .btn-details,
body .lm-contact-link,
body .lm-contact-direct a {
  font-family: var(--lm-font-heading) !important;
  font-size: var(--lm-type-button) !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  letter-spacing: .04em !important;
}

@media (max-width: 767px) {
  body .elementor h1,
  body .page-header h1,
  body .entry-title {
    font-size: clamp(40px, 12vw, 54px) !important;
  }

  body .elementor h2,
  body .page-header h2,
  body .lm-functional-contact h2,
  body #site-footer h2 {
    font-size: clamp(34px, 9vw, 42px) !important;
  }

  body .elementor h3,
  body .lm-functional-contact h3,
  body #site-footer h3 {
    font-size: 24px !important;
  }
}
/* Original image-category composition with Century Gothic text. */
body .cate-item_content h2 {
  font-family: var(--lm-font-heading) !important;
  font-size: 42px !important;
  font-weight: 300 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
}

body .cate-item_content .number-stroke {
  font-family: var(--lm-font-heading) !important;
  font-size: 150px !important;
  font-weight: 300 !important;
}
/* lm-unified-type-scale-v1 — approved professional rhythm */
:root {
  --lm-type-body: 16px;
  --lm-type-small: 14px;
  --lm-type-label: 12px;
  --lm-type-button: 13px;
  --lm-type-display: clamp(42px, 4.6vw, 66px);
  --lm-type-h2: clamp(32px, 3.2vw, 46px);
  --lm-type-h3: clamp(23px, 2vw, 30px);
  --lm-leading-body: 1.65;
  --lm-leading-heading: 1.12;
}
body h1,
body h2,
body h3 { text-wrap: balance; }
body p,
body li { text-wrap: pretty; }
body .elementor h1,
body .page-header h1,
body .entry-title {
  font-size: var(--lm-type-display) !important;
  line-height: 1.08 !important;
  letter-spacing: -.025em !important;
}
body .elementor h2,
body .page-header h2,
body .lm-functional-contact h2,
body #site-footer h2 {
  font-size: var(--lm-type-h2) !important;
  line-height: var(--lm-leading-heading) !important;
  letter-spacing: -.018em !important;
}
body .elementor h3,
body .lm-functional-contact h3,
body #site-footer h3 {
  font-size: var(--lm-type-h3) !important;
  line-height: 1.2 !important;
  letter-spacing: -.008em !important;
}
body .elementor-widget-text-editor,
body .elementor-widget-text-editor p,
body .elementor-widget-text-editor li,
body .lm-functional-contact p,
body #site-footer p,
body #site-footer li {
  font-size: var(--lm-type-body) !important;
  line-height: var(--lm-leading-body) !important;
}
@media (max-width: 767px) {
  :root {
    --lm-type-display: clamp(36px, 10vw, 48px);
    --lm-type-h2: clamp(30px, 8vw, 39px);
    --lm-type-h3: 23px;
  }
}