/*
Theme Name: AMR Labs Divi Child
Theme URI: https://amrlabs.com/
Description: AMR Labs child theme for Divi with centralized typography, colors, spacing, and component styles.
Author: AMR Labs
Template: Divi
Version: 0.1.1
Text Domain: amr-divi-child
*/

:root {
  --amr-color-ink: #0a0a0b;
  --amr-color-dark: #252a2d;
  --amr-color-blue: #039fd2;
  --amr-color-blue-hover: #0379a2;
  --amr-color-cyan: #23eeff;
  --amr-color-paper: #f7f9fa;
  --amr-color-surface: #ffffff;
  --amr-color-muted: #4d585e;
  --amr-color-border: #e4e9ec;
  --amr-color-on-dark: #d8e1e6;
  --amr-color-nav-bg: #eeeeee;

  --amr-font-heading: "Archivo", Arial, sans-serif;
  --amr-font-body: "IBM Plex Sans", Arial, sans-serif;
  --amr-font-mono: "IBM Plex Mono", monospace;

  --amr-width-site: 1240px;
  --amr-width-text: 760px;
  --amr-radius-sm: 4px;
  --amr-radius-md: 8px;
  --amr-shadow-card: 0 10px 30px rgba(10, 30, 40, 0.06);

  --amr-type-h1: 60px;
  --amr-type-h2: 42px;
  --amr-type-h3: 28px;
  --amr-type-h4: 22px;
  --amr-type-lede: 20px;
  --amr-type-body: 16px;
  --amr-type-small: 13px;
  --amr-type-caption: 12px;

  --amr-leading-tight: 1.04;
  --amr-leading-title: 0.98;
  --amr-leading-body: 1.72;
  --amr-leading-lede: 1.55;
}

body,
body #page-container,
body #page-container .et_pb_module,
body #page-container .et_pb_text_inner,
body #page-container .et_pb_text_inner p,
body #page-container .et_pb_text_inner li,
body #page-container input,
body #page-container textarea,
body #page-container select,
body #page-container button {
  font-family: var(--amr-font-body) !important;
  color: var(--amr-color-ink);
  letter-spacing: 0 !important;
}

body #page-container .et-l--body p,
body #page-container .et-l--body li {
  font-size: var(--amr-type-body) !important;
  line-height: var(--amr-leading-body) !important;
  font-weight: 400 !important;
  text-transform: none !important;
}

body #page-container .et-l--body h1,
body #page-container .et-l--body h2,
body #page-container .et-l--body h3,
body #page-container .et-l--body h4,
body #page-container .et-l--body h5,
body #page-container .et-l--body h6,
body #page-container .et-l--body .et_pb_module_header {
  font-family: var(--amr-font-heading) !important;
  color: var(--amr-color-ink);
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

body #page-container .et-l--body h1 {
  font-size: var(--amr-type-h1) !important;
  line-height: var(--amr-leading-title) !important;
}

body #page-container .et-l--body h2 {
  font-size: var(--amr-type-h2) !important;
  line-height: var(--amr-leading-tight) !important;
}

body #page-container .et-l--body h3,
body #page-container .et-l--body .et_pb_module_header {
  font-size: var(--amr-type-h3) !important;
  line-height: 1.12 !important;
}

body #page-container .et-l--body h4 {
  font-size: var(--amr-type-h4) !important;
  line-height: 1.18 !important;
}

body #page-container .et-l--body a {
  color: var(--amr-color-blue);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

body #page-container .et-l--body a:hover,
body #page-container .et-l--body a:focus-visible {
  color: var(--amr-color-blue-hover);
}

body #page-container .et-l--body a:focus-visible,
body #page-container .et-l--body button:focus-visible,
body #page-container .et-l--body .et_pb_button:focus-visible {
  outline: 2px solid var(--amr-color-cyan);
  outline-offset: 3px;
}

body #page-container .et-l--body .et_pb_button,
body #page-container .et-l--body a.et_pb_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 13px 24px !important;
  border: 1px solid var(--amr-color-blue) !important;
  border-radius: var(--amr-radius-md) !important;
  background: var(--amr-color-blue) !important;
  color: #ffffff !important;
  font-family: var(--amr-font-body) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-decoration: none !important;
}

body #page-container .et-l--body .et_pb_button:hover,
body #page-container .et-l--body a.et_pb_button:hover,
body #page-container .et-l--body .et_pb_button:focus-visible,
body #page-container .et-l--body a.et_pb_button:focus-visible {
  background: var(--amr-color-blue-hover) !important;
  border-color: var(--amr-color-blue-hover) !important;
  color: #ffffff !important;
}

body .et-l--header .et_pb_section,
body #main-header,
body #top-header {
  background: var(--amr-color-nav-bg) !important;
}

body .et-l--header a,
body #top-menu a,
body .et_mobile_menu a {
  font-family: var(--amr-font-body) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--amr-color-ink) !important;
}

body .et-l--header a:hover,
body #top-menu a:hover,
body .et_mobile_menu a:hover,
body .et-l--header .current-menu-item > a {
  color: var(--amr-color-blue) !important;
  opacity: 1 !important;
}

.amr-section {
  background: var(--amr-color-surface) !important;
  color: var(--amr-color-ink);
}

.amr-section--paper {
  background: var(--amr-color-paper) !important;
}

.amr-section--dark {
  background: var(--amr-color-dark) !important;
  color: #ffffff;
}

.amr-section--dark h1,
.amr-section--dark h2,
.amr-section--dark h3,
.amr-section--dark h4,
.amr-section--dark .et_pb_module_header {
  color: #ffffff !important;
}

.amr-section--dark p,
.amr-section--dark li {
  color: var(--amr-color-on-dark) !important;
}

.amr-row,
body #page-container .amr-row.et_pb_row {
  width: calc(100% - 80px) !important;
  max-width: var(--amr-width-site) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.amr-text-measure,
.amr-body,
.amr-lede {
  max-width: var(--amr-width-text);
}

.amr-lede p,
p.amr-lede {
  font-size: var(--amr-type-lede) !important;
  line-height: var(--amr-leading-lede) !important;
  color: var(--amr-color-muted);
}

.amr-eyebrow,
.amr-kicker,
.amr-caption,
.amr-step-number,
.amr-chip,
.amr-badge {
  font-family: var(--amr-font-mono) !important;
  font-size: var(--amr-type-caption) !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase !important;
  color: var(--amr-color-blue) !important;
}

.amr-caption {
  color: var(--amr-color-muted) !important;
}

.amr-card {
  background: var(--amr-color-surface);
  border: 1px solid var(--amr-color-border);
  border-radius: var(--amr-radius-md);
  box-shadow: var(--amr-shadow-card);
}

.amr-chip,
.amr-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border: 1px solid var(--amr-color-border);
  border-radius: 999px;
  color: var(--amr-color-muted) !important;
  white-space: nowrap;
}

.amr-chip::before {
  content: "";
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 999px;
  background: var(--amr-color-blue);
}

.amr-step {
  display: grid !important;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 28px;
  padding: 28px 0;
  border-top: 1px solid var(--amr-color-border);
}

.amr-step:last-child {
  border-bottom: 1px solid var(--amr-color-border);
}

.amr-step-number {
  font-size: 30px !important;
  line-height: 1 !important;
  color: var(--amr-color-blue) !important;
}

.amr-logo-strip,
.amr-marquee {
  overflow: hidden;
  width: 100%;
}

.amr-marquee-track {
  display: flex;
  align-items: center;
  width: max-content;
  min-width: max-content;
  animation: amr-marquee 48s linear infinite;
  will-change: transform;
}

.amr-marquee-group {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 72px;
  padding-right: 72px;
}

.amr-logo-strip img {
  display: block;
  width: auto;
  max-width: none;
  height: 60px;
  max-height: 60px;
  object-fit: contain;
  filter: none;
  opacity: 1;
}

.amr-tile {
  position: relative;
  min-height: 330px;
  overflow: hidden;
  border-radius: var(--amr-radius-md);
  background-size: cover !important;
  background-position: center !important;
}

.amr-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(10, 10, 11, 0) 0%, rgba(10, 10, 11, 0) 42%, rgba(10, 10, 11, 0.88) 100%);
}

.amr-tile-content {
  position: relative;
  z-index: 2;
  display: flex !important;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 330px;
  padding: 30px;
}

.amr-tile-content h3,
.amr-tile-content .et_pb_module_header {
  color: #ffffff !important;
}

.amr-tile-content p {
  color: var(--amr-color-on-dark) !important;
}

@keyframes amr-marquee {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(-50%, 0, 0);
  }
}

@media (max-width: 980px) {
  :root {
    --amr-type-h1: 46px;
    --amr-type-h2: 38px;
    --amr-type-h3: 26px;
    --amr-type-lede: 18px;
  }

  .amr-row,
  body #page-container .amr-row.et_pb_row {
    width: calc(100% - 48px) !important;
  }
}

@media (max-width: 520px) {
  :root {
    --amr-type-h1: 40px;
    --amr-type-h2: 34px;
    --amr-type-h3: 24px;
    --amr-type-body: 16px;
  }

  .amr-row,
  body #page-container .amr-row.et_pb_row {
    width: calc(100% - 32px) !important;
  }

  .amr-step {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 18px;
  }

  body #page-container .et-l--body .et_pb_button,
  body #page-container .et-l--body a.et_pb_button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .amr-marquee-track {
    width: 100%;
    min-width: 0;
    flex-wrap: wrap;
    justify-content: center;
    transform: none;
    animation: none;
    gap: 14px;
  }

  .amr-marquee-group[aria-hidden="true"] {
    display: none;
  }
}

/* AMR C4 homepage compatibility: keep existing homepage labels visually unchanged. */
body #page-container .amr-c4-eyebrow .et_pb_text_inner p,
body #page-container .amr-c4-stat-label .et_pb_text_inner p,
body #page-container .amr-c4-tile-code .et_pb_text_inner p,
body #page-container .amr-c4-attribution .et_pb_text_inner p,
body #page-container .amr-c4-quote-mark .et_pb_text_inner p {
  font-family: var(--amr-font-mono) !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
}

body #page-container .amr-c4-eyebrow .et_pb_text_inner p {
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
}

body #page-container .amr-c4-stat-label .et_pb_text_inner p,
body #page-container .amr-c4-tile-code .et_pb_text_inner p,
body #page-container .amr-c4-attribution .et_pb_text_inner p {
  font-size: 11px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
}

/* AMR C4 exact homepage component preservation. */
body #page-container .amr-c4-stat-label .et_pb_text_inner p,
body #page-container .amr-c4-tile-code .et_pb_text_inner p {
  font-family: var(--amr-font-mono) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

body #page-container .amr-c4-attribution .et_pb_text_inner p {
  font-family: var(--amr-font-mono) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}

body #page-container .amr-c4-quote-mark .et_pb_text_inner p {
  font-family: var(--amr-font-heading) !important;
  font-size: 40px !important;
  font-weight: 700 !important;
  line-height: 0.5 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--amr-color-blue) !important;
}

/* AMR footer typography: keep footer styles controlled by the child theme variables. */
body #page-container .et-l--footer,
body #page-container .et-l--footer .et_pb_module,
body #page-container .et-l--footer .et_pb_text_inner,
body #page-container .et-l--footer .et_pb_text_inner p,
body #page-container .et-l--footer .et_pb_text_inner span,
body #page-container .et-l--footer a,
body #page-container .et-l--footer .et_pb_button {
  font-family: var(--amr-font-body) !important;
}

body #page-container .et-l--footer .et_pb_text_4_tb_footer .et_pb_text_inner p,
body #page-container .et-l--footer .et_pb_text_4_tb_footer .et_pb_text_inner span {
  font-family: var(--amr-font-mono) !important;
  font-size: 10px !important;
  line-height: 15px !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
}

/* AMR global header and related-link components. */
body #page-container .et-l--header {
  background: var(--amr-color-nav-bg) !important;
}

body #page-container .et-l--header .et_pb_section {
  border-bottom: 1px solid rgba(10, 10, 11, 0.06);
}

body #page-container .et-l--header .et_pb_row,
body #page-container .et-l--header .et_pb_menu,
body #page-container .et-l--header .et_pb_menu_inner_container,
body #page-container .et-l--header .et_pb_menu__wrap {
  align-items: center !important;
}

body #page-container .et-l--header .et_pb_row {
  min-height: 80px;
}

body #page-container .et-l--header .et_pb_menu__logo,
body #page-container .et-l--header .et_pb_menu__logo a,
body #page-container .et-l--header .et_pb_image_wrap {
  display: flex !important;
  align-items: center !important;
}

body #page-container .et-l--header img {
  display: block;
  width: auto !important;
  height: auto !important;
  max-height: 58px !important;
  object-fit: contain;
}

body #page-container .et-l--header .sub-menu,
body #page-container .et_mobile_menu {
  background: var(--amr-color-nav-bg) !important;
  border-top: 2px solid var(--amr-color-blue) !important;
}

body #page-container .et-l--footer,
body #page-container .et-l--footer .et_pb_module,
body #page-container .et-l--footer .et_pb_text_inner,
body #page-container .et-l--footer p,
body #page-container .et-l--footer li,
body #page-container .et-l--footer span {
  color: var(--amr-color-on-dark) !important;
}

body #page-container .et-l--footer h1,
body #page-container .et-l--footer h2,
body #page-container .et-l--footer h3,
body #page-container .et-l--footer h4,
body #page-container .et-l--footer h5,
body #page-container .et-l--footer h6 {
  color: #ffffff !important;
}

body #page-container .et-l--footer a:not(.et_pb_button),
body #page-container .et-l--footer li a {
  color: #ffffff !important;
}

body #page-container .et-l--footer img[alt="AMR Laboratories white logo"] {
  width: auto !important;
  max-width: 220px !important;
  height: auto !important;
}

body #page-container .amr-related-links {
  width: calc(100% - 80px);
  max-width: var(--amr-width-site);
  margin: 0 auto;
  padding: 52px 0;
  border-top: 1px solid var(--amr-color-border);
}

body #page-container .amr-related-links__label {
  margin: 0 0 16px;
  font-family: var(--amr-font-mono) !important;
  font-size: var(--amr-type-caption) !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--amr-color-blue) !important;
}

body #page-container .amr-related-links__list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

body #page-container .amr-related-links__list li {
  margin: 0 !important;
  padding: 0 !important;
  font-size: var(--amr-type-body) !important;
  line-height: 1.35 !important;
}

body #page-container .amr-related-links__list a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 9px 13px;
  border: 1px solid var(--amr-color-border);
  border-radius: var(--amr-radius-sm);
  background: #ffffff;
  color: var(--amr-color-ink) !important;
  font-family: var(--amr-font-body) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
}

body #page-container .amr-related-links__list a:hover,
body #page-container .amr-related-links__list a:focus-visible {
  border-color: var(--amr-color-blue);
  color: var(--amr-color-blue) !important;
}

@media (max-width: 980px) {
  body #page-container .amr-related-links {
    width: calc(100% - 48px);
  }
}

@media (max-width: 520px) {
  body #page-container .amr-related-links {
    width: calc(100% - 32px);
    padding: 40px 0;
  }

  body #page-container .amr-related-links__list {
    display: grid;
    grid-template-columns: 1fr;
  }
}

/* AMR global overflow guard for legacy Divi modules and oversized media. */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

body #page-container,
body .et-l,
body .et_builder_inner_content {
  max-width: 100%;
  overflow-x: hidden;
}

body #page-container .et-l--body img,
body #page-container .et-l--body video,
body #page-container .et-l--body iframe,
body #page-container .et-l--body canvas,
body #page-container .et-l--body svg {
  max-width: 100%;
}


@media (max-width: 980px) {
  body #page-container .et-l--header img {
    max-height: 52px !important;
  }
}

/* AMR compact mobile menu fix 2026-07-12 START */
@media (max-width: 980px) {
  body #page-container header.et-l.et-l--header,
  body #page-container .et-l--header,
  body #page-container .et-l--header .et_builder_inner_content,
  body #page-container .et-l--header .et_pb_section,
  body #page-container .et-l--header .et_pb_row,
  body #page-container .et-l--header .et_pb_column,
  body #page-container .et-l--header .et_pb_module,
  body #page-container .et-l--header .et_pb_menu,
  body #page-container .et-l--header .et_pb_menu_inner_container,
  body #page-container .et-l--header .et_pb_menu__wrap,
  body #page-container .et-l--header .et_mobile_nav_menu,
  body #page-container .et-l--header .mobile_nav,
  body.et-db #et-boc header.et-l.et-l--header,
  body.et-db #et-boc .et-l--header,
  body.et-db #et-boc .et-l--header .et_builder_inner_content,
  body.et-db #et-boc .et-l--header .et_pb_section,
  body.et-db #et-boc .et-l--header .et_pb_row,
  body.et-db #et-boc .et-l--header .et_pb_column,
  body.et-db #et-boc .et-l--header .et_pb_module,
  body.et-db #et-boc .et-l--header .et_pb_menu,
  body.et-db #et-boc .et-l--header .et_pb_menu_inner_container,
  body.et-db #et-boc .et-l--header .et_pb_menu__wrap,
  body.et-db #et-boc .et-l--header .et_mobile_nav_menu,
  body.et-db #et-boc .et-l--header .mobile_nav {
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    max-height: none !important;
  }

  body #page-container header.et-l.et-l--header,
  body #page-container .et-l--header,
  body #page-container .et-l--header .et_builder_inner_content,
  body #page-container .et-l--header .et_pb_section--with-menu,
  body #page-container .et-l--header .et_pb_row--with-menu,
  body #page-container .et-l--header .et_pb_menu,
  body.et-db #et-boc header.et-l.et-l--header,
  body.et-db #et-boc .et-l--header,
  body.et-db #et-boc .et-l--header .et_builder_inner_content,
  body.et-db #et-boc .et-l--header .et_pb_section--with-menu,
  body.et-db #et-boc .et-l--header .et_pb_row--with-menu,
  body.et-db #et-boc .et-l--header .et_pb_menu {
    position: relative !important;
    z-index: 999999 !important;
  }

  body #page-container .et-l--header .et_mobile_nav_menu .et_mobile_menu,
  body.et-db #et-boc .et-l--header .et_mobile_nav_menu .et_mobile_menu {
    position: fixed !important;
    top: 80px !important;
    left: 16px !important;
    right: 16px !important;
    width: auto !important;
    max-width: calc(100vw - 32px) !important;
    max-height: calc(100vh - 96px) !important;
    padding: 8px 0 !important;
    overflow-y: auto !important;
    z-index: 1000000 !important;
    background: #eeeeee !important;
    border-top: 2px solid #039fd2 !important;
    box-shadow: 0 18px 44px rgba(10, 10, 11, 0.18) !important;
  }

  body #page-container .et-l--header .et_mobile_menu li a,
  body.et-db #et-boc .et-l--header .et_mobile_menu li a {
    display: block !important;
    padding: 12px 18px !important;
    line-height: 1.25 !important;
    white-space: normal !important;
  }
}
/* AMR compact mobile menu fix 2026-07-12 END */
