/*
 * MSAV sitewide typography + interaction polish.
 * Baseline typography intentionally uses zero-specificity :where() selectors
 * so page/section component styles can override it without !important wars.
 */
:root{
  --msav-copy-line:1.62;
  --msav-small-copy-line:1.5;
  --msav-display-line:.96;
  --msav-heading-line:1.08;
  --msav-body-tracking:.004em;
  --msav-heading-tracking:-.025em;
  --msav-label-tracking:.14em;
  --msav-label-weight:400;
}

html{
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

body{
  font-family:'Inter',sans-serif;
  font-size:16px;
  line-height:var(--msav-copy-line);
  letter-spacing:var(--msav-body-tracking);
}

/* Reading-copy baseline. Component classes are allowed to override this. */
:where(
  body:not(.error404) main,
  body:not(.error404) article,
  body:not(.error404) .entry-content,
  body:not(.error404) .msav-product-page,
  body:not(.error404) .msav-journal-single,
  body:not(.error404) .msav-journal-page,
  body:not(.error404) .msav-industry-page,
  body:not(.error404) .msav-project-page,
  body:not(.error404) .msav-service-page,
  body:not(.error404) .msav-solutions-page,
  body:not(.error404) .msav-planning-tools
) :where(p,li,dd,figcaption,blockquote){
  line-height:var(--msav-copy-line);
  letter-spacing:var(--msav-body-tracking);
  text-wrap:pretty;
}

:where(
  body:not(.error404) main,
  body:not(.error404) article,
  body:not(.error404) .entry-content,
  body:not(.error404) .msav-product-page,
  body:not(.error404) .msav-journal-single,
  body:not(.error404) .msav-journal-page,
  body:not(.error404) .msav-industry-page,
  body:not(.error404) .msav-project-page,
  body:not(.error404) .msav-service-page,
  body:not(.error404) .msav-solutions-page,
  body:not(.error404) .msav-planning-tools
) :where(p:not([class*='eyebrow']):not([class*='kicker']):not([class*='label']):not([class*='meta'])){
  font-weight:400;
}

:where(
  body:not(.error404) main,
  body:not(.error404) article,
  body:not(.error404) .entry-content,
  body:not(.error404) .msav-product-page,
  body:not(.error404) .msav-journal-single,
  body:not(.error404) .msav-journal-page,
  body:not(.error404) .msav-industry-page,
  body:not(.error404) .msav-project-page,
  body:not(.error404) .msav-service-page,
  body:not(.error404) .msav-solutions-page,
  body:not(.error404) .msav-planning-tools
) :where(p + p){
  margin-top:1em;
}

/* Homepage/static sections that sit outside a <main> wrapper. */
:where(body:not(.error404) > section) :where(p,li,dd,figcaption,blockquote){
  line-height:var(--msav-copy-line);
  letter-spacing:var(--msav-body-tracking);
  text-wrap:pretty;
}
:where(body:not(.error404) > section) :where(p:not([class*='eyebrow']):not([class*='kicker']):not([class*='label']):not([class*='meta'])){
  font-weight:400;
}
:where(body:not(.error404) > section) :where(p + p){
  margin-top:1em;
}
:where(body:not(.error404) > section) :where(h1,h2){
  line-height:var(--msav-display-line);
  letter-spacing:var(--msav-heading-tracking);
  text-wrap:balance;
}
:where(body:not(.error404) > section) :where(h3,h4){
  line-height:var(--msav-heading-line);
  letter-spacing:-.018em;
}

/* Headings — baseline only; component typography remains authoritative. */
:where(
  body:not(.error404) main,
  body:not(.error404) article,
  body:not(.error404) .entry-content,
  body:not(.error404) .msav-product-page,
  body:not(.error404) .msav-journal-single,
  body:not(.error404) .msav-journal-page,
  body:not(.error404) .msav-industry-page,
  body:not(.error404) .msav-project-page,
  body:not(.error404) .msav-service-page,
  body:not(.error404) .msav-solutions-page,
  body:not(.error404) .msav-planning-tools
) :where(h1,h2,h3,h4,h5,h6){
  font-family:'Inter',sans-serif;
  text-wrap:balance;
}

:where(
  body:not(.error404) main,
  body:not(.error404) article,
  body:not(.error404) .entry-content,
  body:not(.error404) .msav-product-page,
  body:not(.error404) .msav-journal-single,
  body:not(.error404) .msav-journal-page,
  body:not(.error404) .msav-industry-page,
  body:not(.error404) .msav-project-page,
  body:not(.error404) .msav-service-page,
  body:not(.error404) .msav-solutions-page,
  body:not(.error404) .msav-planning-tools
) :where(h1,h2){
  line-height:var(--msav-display-line);
  letter-spacing:var(--msav-heading-tracking);
}

:where(
  body:not(.error404) main,
  body:not(.error404) article,
  body:not(.error404) .entry-content,
  body:not(.error404) .msav-product-page,
  body:not(.error404) .msav-journal-single,
  body:not(.error404) .msav-journal-page,
  body:not(.error404) .msav-industry-page,
  body:not(.error404) .msav-project-page,
  body:not(.error404) .msav-service-page,
  body:not(.error404) .msav-solutions-page,
  body:not(.error404) .msav-planning-tools
) :where(h3,h4){
  line-height:var(--msav-heading-line);
  letter-spacing:-.018em;
}

:where(
  body:not(.error404) main,
  body:not(.error404) article,
  body:not(.error404) .entry-content,
  body:not(.error404) .msav-product-page,
  body:not(.error404) .msav-journal-single,
  body:not(.error404) .msav-journal-page,
  body:not(.error404) .msav-industry-page,
  body:not(.error404) .msav-project-page,
  body:not(.error404) .msav-service-page,
  body:not(.error404) .msav-solutions-page,
  body:not(.error404) .msav-planning-tools
) :where(h5,h6){
  line-height:1.14;
  letter-spacing:-.012em;
}

/* Preserve intentionally tighter flagship hero typography. */
:where(.hero-brand-line,.hero-title,.product-hero h1,.msav-404-title){
  text-wrap:balance;
}

/* Small supporting copy and metadata. */
:where(
  .meta,
  .metadata,
  [class*='meta-'],
  [class*='-meta'],
  .caption,
  figcaption,
  .helper-text,
  .form-note,
  .consent
){
  line-height:var(--msav-small-copy-line);
}

/* MSAV lime / technical labels: default treatment, not an override lock. */
:where(
  .hero-h1-service,
  .eyebrow,
  .kicker,
  [class*='eyebrow'],
  [class*='kicker'],
  .msav-services-side,
  .msav-services-heading,
  .msav-services-capabilities-label,
  .msav-orbit-eyebrow,
  .msav-portfolio-eyebrow,
  .msav-faq-eyebrow,
  .msav-footer-eyebrow,
  .msav-scroll-cue-label,
  .msav-signal-stage-copy > span,
  .product-fact > span,
  .hero-best-label
){
  font-family:'Fira Mono',monospace;
  font-weight:var(--msav-label-weight);
  line-height:1.45;
  letter-spacing:var(--msav-label-tracking);
  text-transform:uppercase;
}

/* Homepage-specific reading refinements. */
.hero-support{
  font-family:'Inter',sans-serif;
  font-weight:400;
  line-height:1.55;
  letter-spacing:0;
  text-transform:none;
}
.msav-services-section .msav-services-intro-copy{
  line-height:1.05;
}
@media (max-width:760px){
  .msav-services-section .msav-services-intro-copy{
    line-height:1.05;
  }
}

/* CTA typography baseline; each component can still choose a stronger weight. */
:where(
  a.btn,
  button.btn,
  a.button,
  button.button,
  a.cta-button,
  button.cta-button,
  a.hero-cta,
  button.hero-cta,
  .msav-author-button,
  .msav-global-nav__cta,
  input[type='submit'],
  a[class*='-button'],
  button[class*='-button'],
  a[class*='-btn'],
  button[class*='-btn'],
  a[class*='-cta'],
  button[class*='-cta'],
  .msav-about-cta a,
  .msav-whatsapp-cta-action
){
  font-weight:600;
  line-height:1.2;
  letter-spacing:.03em;
}

/* Button motion system. */
body :where(
  a.btn,
  button.btn,
  a.button,
  button.button,
  a.cta-button,
  button.cta-button,
  a.hero-cta,
  button.hero-cta,
  .msav-author-button,
  .msav-global-nav__cta,
  input[type='submit'],
  a[class*='-button'],
  button[class*='-button'],
  a[class*='-btn'],
  button[class*='-btn'],
  a[class*='-cta'],
  button[class*='-cta'],
  .msav-about-cta a,
  .msav-whatsapp-cta-action
){
  transform:translate3d(0,0,0);
  transition:
    transform var(--msav-motion-medium) var(--msav-motion-ease),
    box-shadow var(--msav-motion-medium) ease,
    filter var(--msav-motion-fast) ease,
    background-color var(--msav-motion-fast) ease,
    border-color var(--msav-motion-fast) ease,
    color var(--msav-motion-fast) ease!important;
  will-change:transform;
}

body :where(
  a.btn,
  button.btn,
  a.button,
  button.button,
  a.cta-button,
  button.cta-button,
  a.hero-cta,
  button.hero-cta,
  .msav-author-button,
  .msav-global-nav__cta,
  input[type='submit'],
  a[class*='-button'],
  button[class*='-button'],
  a[class*='-btn'],
  button[class*='-btn'],
  a[class*='-cta'],
  button[class*='-cta'],
  .msav-about-cta a,
  .msav-whatsapp-cta-action
):active{
  transform:scale(.98)!important;
  transition-duration:100ms!important;
}

body :where(
  a.btn,
  button.btn,
  a.button,
  button.button,
  a.cta-button,
  button.cta-button,
  a.hero-cta,
  button.hero-cta,
  .msav-author-button,
  .msav-global-nav__cta,
  input[type='submit'],
  a[class*='-button'],
  button[class*='-button'],
  a[class*='-btn'],
  button[class*='-btn'],
  a[class*='-cta'],
  button[class*='-cta'],
  .msav-about-cta a,
  .msav-whatsapp-cta-action
):focus-visible{
  outline:2px solid var(--msav-lime)!important;
  outline-offset:4px!important;
}

/* Arrow/icon movement remains independent from the button lift. */
body :where(
  a.btn,
  button.btn,
  a.button,
  button.button,
  a.cta-button,
  button.cta-button,
  a.hero-cta,
  button.hero-cta,
  .msav-author-button,
  .msav-global-nav__cta,
  a[class*='-button'],
  button[class*='-button'],
  a[class*='-btn'],
  button[class*='-btn'],
  a[class*='-cta'],
  button[class*='-cta'],
  .msav-about-cta a,
  .msav-whatsapp-cta-action
) :where(svg:last-child,i:last-child,.arrow,[class*='arrow'],[class*='icon']:last-child){
  transition:transform var(--msav-motion-medium) var(--msav-motion-ease)!important;
}

@media (hover:hover) and (pointer:fine){
  body :where(
    a.btn,
    button.btn,
    a.button,
    button.button,
    a.cta-button,
    button.cta-button,
    a.hero-cta,
    button.hero-cta,
    .msav-author-button,
    .msav-global-nav__cta,
    input[type='submit'],
    a[class*='-button'],
    button[class*='-button']
  ):hover{
    transform:translateY(-2px)!important;
    filter:brightness(1.035);
    box-shadow:0 10px 30px rgba(0,0,0,.28);
  }

  body :where(.btn-lime,.hero-cta,.msav-global-nav__cta):hover{
    box-shadow:0 10px 30px rgba(214,255,48,.18),0 0 0 1px rgba(214,255,48,.18);
  }

  body :where(.btn-red,.cta-button):hover{
    box-shadow:0 10px 30px rgba(213,31,49,.24);
  }

  body :where(
    a.btn,
    button.btn,
    a.button,
    button.button,
    a.cta-button,
    button.cta-button,
    a.hero-cta,
    button.hero-cta,
    .msav-author-button,
    .msav-global-nav__cta,
    a[class*='-button'],
    button[class*='-button']
  ):hover :where(svg:last-child,i:last-child,.arrow,[class*='arrow'],[class*='icon']:last-child){
    transform:translateX(5px)!important;
  }
}

/* Tablet/mobile: keep tactile press feedback, avoid hover-only motion. */
@media (hover:none), (pointer:coarse){
  body :where(
    a.btn,
    button.btn,
    a.button,
    button.button,
    a.cta-button,
    button.cta-button,
    a.hero-cta,
    button.hero-cta,
    .msav-author-button,
    .msav-global-nav__cta,
    input[type='submit'],
    a[class*='-button'],
    button[class*='-button']
  ){
    will-change:auto;
  }
}

@media (prefers-reduced-motion: reduce){
  body :where(
    a.btn,
    button.btn,
    a.button,
    button.button,
    a.cta-button,
    button.cta-button,
    a.hero-cta,
    button.hero-cta,
    .msav-author-button,
    .msav-global-nav__cta,
    input[type='submit'],
    a[class*='-button'],
    button[class*='-button']
  ),
  body :where(
    a.btn,
    button.btn,
    a.button,
    button.button,
    a.cta-button,
    button.cta-button,
    a.hero-cta,
    button.hero-cta,
    .msav-author-button,
    .msav-global-nav__cta,
    a[class*='-button'],
    button[class*='-button']
  ) *{
    transition:none!important;
    animation:none!important;
  }
}

/* v0.16.74 — Sitewide heading/title rhythm */
body :where(
  h1,h2,h3,h4,h5,h6,
  [role="heading"],
  [class*="title"],
  [class*="heading"],
  [class*="headline"]
){
  line-height:1!important;
  letter-spacing:-.04em!important;
}


/* v0.16.89 — Editorial heading accents + sitewide text selection */
.msav-accent-red{color:#dc1f2f!important;-webkit-text-fill-color:#dc1f2f!important;}
.msav-accent-lime{color:#d6ff30!important;-webkit-text-fill-color:#d6ff30!important;}
.msav-accent-white{color:#fff!important;-webkit-text-fill-color:#fff!important;}
#archive-title .msav-blog-insights{display:inline!important;margin-left:0!important;-webkit-text-stroke:0!important;}
::selection{background:#d6ff30;color:#101010;-webkit-text-fill-color:#101010;text-shadow:none;}
::-moz-selection{background:#d6ff30;color:#101010;text-shadow:none;}


/* v0.18.1 — MSAV square action buttons.
   Scope to text CTA/button surfaces. Preserve circular visual controls such
   as WhatsApp floating action, pagination dots and hamburger/arrow icons. */
body :is(
  a.btn, button.btn,
  a.button, button.button,
  a[class*='btn'], button[class*='btn'],
  a[class*='button'], button[class*='button'],
  a[class*='cta'], button[class*='cta'],
  a[role='button'],
  button[type='submit'], input[type='submit'],
  input[type='button'], input[type='reset'],
  .msav-managed-cta, .msav-global-nav__cta,
  .msav-whatsapp-cta-action
):not(.msav-whatsapp-fab):not(.msav-global-nav__mobile-toggle):not(.msav-global-nav__dropdown-toggle):not(.msav-global-nav__contact-shortcut) {
  border-radius: 0 !important;
}
/* The desktop Contact Us button has two-class !important rules upstream. */
body .msav-global-nav .msav-global-nav__menu--contact .msav-global-nav__cta,
body .msav-global-nav .msav-global-nav__menu--mobile .msav-global-nav__cta {
  border-radius: 0 !important;
}

/* v0.18.2: approved MSAV navigation Contact Us pills are the only exception
   to the site's square action-button preference. */
body .msav-global-nav .msav-global-nav__menu--contact .msav-global-nav__cta,
body .msav-global-nav .msav-global-nav__menu--mobile .msav-global-nav__cta {border-radius:999px!important}
