/* MAQ LAB typography system v1
   Display: Space Grotesk / Text: Inter / Technical labels: IBM Plex Mono */
:root {
  --ml-type-display: var(--ml-display, "Space Grotesk", sans-serif);
  --ml-type-body: var(--ml-body, Inter, sans-serif);
  --ml-type-mono: var(--ml-mono, "IBM Plex Mono", monospace);
  --ml-type-hero: clamp(64px, 6.2vw, 92px);
  --ml-type-hero-home: clamp(60px, 5vw, 80px);
  --ml-type-cover: clamp(72px, 8vw, 116px);
  --ml-type-section: clamp(48px, 4.8vw, 68px);
  --ml-type-section-home: clamp(46px, 4vw, 56px);
  --ml-type-subhead: clamp(28px, 2.7vw, 38px);
  --ml-type-body-lg: clamp(18px, 1.35vw, 20px);
  --ml-type-body-copy: 16px;
  --ml-type-label: 11px;
  --ml-type-action: 13px;
}

.ml-site,
.maqlab-elementor-home-page {
  font-family: var(--ml-type-body);
  font-weight: 400;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.ml-site h1,
.ml-site h2,
.ml-site h3,
.ml-site h4,
.maqlab-elementor-home-page h1,
.maqlab-elementor-home-page h2,
.maqlab-elementor-home-page h3,
.maqlab-elementor-home-page h4 {
  font-family: var(--ml-type-display);
  font-weight: 600;
}

.ml-site p,
.ml-site li,
.ml-site input,
.ml-site textarea,
.ml-site select,
.maqlab-elementor-home-page p,
.maqlab-elementor-home-page li {
  font-family: var(--ml-type-body);
}

/* Technical language: one size, weight and rhythm across every page. */
.ml-site .ml-eyebrow,
.ml-site .ml-kicker,
.ml-site .ml-step-label,
.ml-site .ml-section-label,
.ml-site .ml-card-label,
.ml-site .ml-overline,
.maqlab-elementor-home-page .mhs-eyebrow,
.maqlab-elementor-home-page .maq-tech-label .elementor-heading-title {
  font-family: var(--ml-type-mono) !important;
  font-size: var(--ml-type-label) !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase !important;
}

/* Standard page covers. */
.ml-site .ml-experience-hero h1,
.ml-site .ml-rental-head h1,
.ml-site .mp-hero h1,
.ml-site .mt-hero h1,
.ml-site .mla-hero h1,
.ml-site .ml-contact h1 {
  font-family: var(--ml-type-display) !important;
  font-size: var(--ml-type-hero) !important;
  font-weight: 600 !important;
  line-height: .9 !important;
  letter-spacing: -.06em !important;
}

.maqlab-elementor-home-page .maq-home-hero-title h1 {
  font-size: var(--ml-type-hero-home) !important;
  font-weight: 600 !important;
  line-height: .94 !important;
  letter-spacing: -.055em !important;
}

.ml-experience-hero__copy > p,
.ml-rental-head > p,
.mp-hero__copy > p,
.mt-hero__copy > p,
.mla-hero__copy > p,
.ml-contact > div > p,
.maqlab-elementor-home-page .maq-home-hero-copy p {
  font-family: var(--ml-type-body) !important;
  font-size: var(--ml-type-body-lg) !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  letter-spacing: 0 !important;
}

/* Home: one repeated section hierarchy. */
.maqlab-elementor-home-page .maq-home-manifesto h2,
.maqlab-elementor-home-page .maq-home-verbs h2,
.maqlab-elementor-home-page .maq-home-personalization h2,
.maqlab-elementor-home-page .maq-home-commercial h2,
.maqlab-elementor-home-page .maq-home-platforms h2,
.maqlab-elementor-home-page .ml-knowledge-home h2,
.maqlab-elementor-home-page .maq-home-final-cta h2,
.maqlab-elementor-home-page .mhs-opening h2 {
  font-family: var(--ml-type-display) !important;
  font-size: var(--ml-type-section-home) !important;
  font-weight: 600 !important;
  line-height: 1.02 !important;
  letter-spacing: -.045em !important;
}

/* Native pages: headings with the same editorial level share the same scale. */
.ml-site .ml-catalog__header h2,
.ml-site .mp-section-head h2,
.ml-site .mp-platforms h2,
.ml-site .mt-section-head h2,
.ml-site .mla-intro h2,
.ml-site .mla-process h2,
.ml-site .mla-capabilities h2,
.ml-site .mla-formats h2,
.ml-site .mla-statement h2,
.ml-site .ml-knowledge-index > header h2 {
  font-size: var(--ml-type-section) !important;
  font-weight: 600 !important;
  line-height: .96 !important;
  letter-spacing: -.055em !important;
}

/* Editorial covers keep their intended display scale. */
.ml-site .ml-ed-hero h1,
.ml-site .ml-energy-hero h1 {
  font-size: var(--ml-type-cover) !important;
  font-weight: 600 !important;
  line-height: .84 !important;
  letter-spacing: -.065em !important;
}

/* The energy cover shares the display voice without overwhelming its live graph. */
.ml-site .ml-energy-hero h1 {
  font-size: clamp(64px, 6.4vw, 116px) !important;
  line-height: .88 !important;
  letter-spacing: -.06em !important;
}

@media (max-width: 680px) {
  .ml-site .ml-energy-hero h1 { font-size: 56px !important; }
}

.ml-site .ml-knowledge-hub-hero h1 {
  font-size: clamp(68px, 8vw, 112px) !important;
  font-weight: 600 !important;
  line-height: .8 !important;
  letter-spacing: -.07em !important;
}

/* Repeated actions use one compact, confident voice. */
.ml-site .ml-btn,
.ml-site .ml-text-link,
.ml-site .mhs-experience-link,
.ml-site .ml-search-submit,
.ml-site .ml-knowledge-search-submit,
.maqlab-elementor-home-page .maq-native-button .elementor-button-text {
  font-family: var(--ml-type-body) !important;
  font-size: var(--ml-type-action) !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
}

/* WordPress must not add a second title above native MAQ LAB pages. */
.page-id-14 .entry-title,
.page-id-15 .entry-title,
.page-id-16 .entry-title,
.page-id-17 .entry-title,
.page-id-18 .entry-title {
  display: none !important;
}

@media (max-width: 680px) {
  :root {
    --ml-type-hero: 50px;
    --ml-type-hero-home: 48px;
    --ml-type-cover: 56px;
    --ml-type-section: 42px;
    --ml-type-section-home: 40px;
    --ml-type-body-lg: 17px;
    --ml-type-label: 10px;
    --ml-type-action: 12px;
  }

  .ml-site .ml-knowledge-hub-hero h1 {
    font-size: 58px !important;
  }
}

/* Cursor grammar: exploration, reading, action and live-input regions. */
.maq-cursor-follower {
  --maq-cursor-size: 18px;
  position: fixed;
  z-index: 999999;
  left: 0;
  top: 0;
  width: var(--maq-cursor-size);
  height: var(--maq-cursor-size);
  margin: 0;
  opacity: 0;
  pointer-events: none;
  mix-blend-mode: difference;
  will-change: transform, opacity;
  transition: width .32s cubic-bezier(.16,1,.3,1),height .32s cubic-bezier(.16,1,.3,1),opacity .18s;
}
.maq-cursor-follower.is-visible { opacity: .78; }
.maq-cursor-follower > i {
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  width: 100%;
  height: 100%;
  font-style: normal;
  will-change: transform, width, height;
}
.maq-cursor-follower > i > b {
  display: block;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  border: 1px solid #fff;
  border-radius: 50%;
  background: transparent;
  clip-path: polygon(0 0,100% 0,100% 100%,0 100%);
  transform: scale(1);
  transition: border-radius .32s cubic-bezier(.16,1,.3,1),border-color .2s,background-color .2s,clip-path .32s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1);
}
.maq-cursor-follower.is-reading { --maq-cursor-size: 10px; opacity: .64; }
.maq-cursor-follower.is-action { --maq-cursor-size: 28px; opacity: .88; }
.maq-cursor-follower.is-action > i > b { border-radius: 3px; }
.maq-cursor-follower.is-live { --maq-cursor-size: 24px; opacity: .76; }
.maq-cursor-follower.is-live > i > b {
  border-color: transparent;
  border-radius: 0;
  background: #fff;
  clip-path: polygon(50% 0,100% 100%,0 100%);
}
.maq-cursor-follower.is-pressed > i > b { transform: scale(.55); }
@media (hover:none), (pointer:coarse) {
  .maq-cursor-follower { display: none !important; }
}
@media (prefers-reduced-motion:reduce) {
  .maq-cursor-follower { display: none !important; }
}
