/* Shared font, size, weight, and text-color tokens for the whole website. */
@font-face {
  font-family: "Inter";
  src: url("../fonts/Inter-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("../fonts/Inter-Medium.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("../fonts/Inter-SemiBold.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("../fonts/Inter-Bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("../fonts/Inter-ExtraBold.woff2") format("woff2");
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("../fonts/Inter-Black.woff2") format("woff2");
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}

:root {
  --font-app: Inter, "Helvetica Neue", Arial, sans-serif;

  --atx-title-xl: 56px;
  --atx-title-lg: 34px;
  --atx-title-md: 24px;
  --atx-title-sm: 18px;
  --atx-body: 15px;
  --atx-helper: 13px;
  --atx-micro: 11px;

  --atx-leading-title: 1.08;
  --atx-leading-body: 1.45;

  --atx-weight-title: 900;
  --atx-weight-strong: 800;
  --atx-weight-body: 500;

  --atx-text-main: var(--text-main);
  --atx-text-muted: var(--text-muted);
  --atx-text-soft: #7a8494;
}

/* Global font inheritance excludes Font Awesome icon classes. */
html,
body {
  font-family: var(--font-app);
  letter-spacing: 0;
}

body :where(h1, h2, h3, h4, p, a, button, label, input, select, textarea, small, strong, li):not([class^="fa"]):not([class*=" fa-"]) {
  font-family: inherit;
  letter-spacing: 0;
}

body :is(h1, .about-hero__title, .contact-hero h1, .privacy-hero h1, .home-hero h1) {
  color: var(--atx-text-main);
  font-size: var(--atx-title-xl);
  line-height: var(--atx-leading-title);
  font-weight: var(--atx-weight-title);
  letter-spacing: 0;
}

body :is(h2, .section-heading h2, .operations-heading h2, .home-how h2, .home-proof h2, .booking-step-panel h2) {
  color: var(--atx-text-main);
  font-size: var(--atx-title-lg);
  line-height: 1.12;
  font-weight: var(--atx-weight-title);
  letter-spacing: 0;
}

body .mobile-booking-copy h2 {
  color: #111111;
  font-size: 20px;
  line-height: 1.08;
  font-weight: 900;
}

/* Services page text hierarchy. */
body .services-hero-card-copy h2 {
  margin-bottom: clamp(7px, 0.55vw, 12px);
  color: #ffffff;
  font-size: clamp(14px, 0.92vw, 19px);
  line-height: 1.05;
  font-weight: 900;
  text-transform: uppercase;
}

body .services-hero-card-copy p {
  color: rgba(255, 255, 255, 0.9);
  font-size: clamp(12px, 0.78vw, 16px);
  line-height: 1.5;
  font-weight: 400;
}

body .services-scope-content h2 {
  color: #070707;
  font-size: clamp(32px, 2.45vw, 48px);
  line-height: 1.08;
  font-weight: 900;
}

body .services-scope-intro {
  color: #4a4a4a;
  font-size: clamp(15px, 1.02vw, 21px);
  line-height: 1.42;
  font-weight: 400;
}

body .services-scope-item__copy h3 {
  margin-bottom: 4px;
  color: #080808;
  font-size: clamp(14px, 0.86vw, 18px);
  line-height: 1.12;
  font-weight: 900;
}

body .services-scope-item__copy p {
  color: #4c4c4c;
  font-size: clamp(11px, 0.72vw, 14px);
  line-height: 1.28;
  font-weight: 400;
}

body .services-scope-note p {
  color: #343434;
  font-size: clamp(13px, 0.92vw, 18px);
  line-height: 1.42;
  font-weight: 400;
}

body .services-scope-list {
  gap: 12px 14px;
}

body .services-scope-item {
  min-height: 82px;
  padding: 12px 14px;
  grid-template-columns: 54px 1fr;
  gap: 12px;
}

@media (min-width: 761px) {
  body .services-scope-content {
    top: 4.4%;
    width: 47%;
  }

  body .services-scope-content h2 {
    max-width: 650px;
    font-size: clamp(29px, 2.08vw, 40px);
  }

  body .services-scope-intro {
    max-width: 570px;
    margin-top: 10px;
    font-size: clamp(13.5px, 0.86vw, 16.5px);
  }

  body .services-scope-list {
    margin-top: 16px;
    gap: 10px 12px;
  }

  body .services-scope-item {
    min-height: 68px;
    padding: 9px 12px;
    border-radius: 16px;
    grid-template-columns: 46px 1fr;
    gap: 10px;
  }

  body .services-scope-item__icon {
    width: 40px;
    height: 40px;
    font-size: 16px;
  }

  body .services-scope-item__copy h3 {
    font-size: clamp(12.5px, 0.7vw, 15px);
    line-height: 1.08;
  }

  body .services-scope-item__copy p {
    font-size: clamp(10px, 0.6vw, 12px);
    line-height: 1.2;
  }

  body .services-scope-note {
    bottom: 4.2%;
    min-height: 9.6%;
    padding-inline: 26px;
    grid-template-columns: 68px minmax(0, 1fr);
    align-items: center;
    justify-content: start;
    justify-items: start;
  }

  body .services-scope-note__icon {
    width: 50px;
    height: 50px;
    font-size: 25px;
  }

  body .services-scope-note p {
    max-width: 920px;
    font-size: clamp(12.5px, 0.82vw, 16px);
    line-height: 1.35;
  }
}

/* Shared headings, body copy, labels, buttons, and helper text. */
body :is(h3, .policy-subheading, .desktop-review-title h3, .details-title-row h3) {
  color: var(--atx-text-main);
  font-size: var(--atx-title-sm);
  line-height: 1.2;
  font-weight: var(--atx-weight-title);
  letter-spacing: 0;
}

body :where(p, li, input, select, textarea) {
  font-size: var(--atx-body);
  line-height: var(--atx-leading-body);
  font-weight: var(--atx-weight-body);
}

body :is(.home-subtitle, .about-hero__text, .contact-hero__intro, .section-heading p, .home-how-subtitle) {
  color: var(--atx-text-muted);
  font-size: var(--atx-body);
  line-height: var(--atx-leading-body);
  font-weight: var(--atx-weight-body);
}

body .home-hero .home-subtitle {
  color: #333333;
  font-size: 20px;
  line-height: 1.35;
  font-weight: 500;
}

body :is(label, button, .button, .btn, .about-hero__cta, .contact-hero__cta) {
  font-size: var(--atx-helper);
  line-height: 1.2;
  font-weight: var(--atx-weight-strong);
  letter-spacing: 0;
}

body :is(small, .privacy-eyebrow, #stepKicker) {
  color: var(--atx-text-soft);
  font-size: var(--atx-helper);
  line-height: 1.25;
  font-weight: var(--atx-weight-strong);
  letter-spacing: 0;
}

/* One branded eyebrow treatment for the audited public-page heroes. */
body .site-hero-eyebrow {
  color: var(--brand-red);
  font-size: clamp(13px, 0.9vw, 18px);
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0;
}

/* Home trust bar and shared footer headings. */
body .home-trust-bar .trust-item h2 {
  margin-bottom: 7px;
  color: #111111;
  font-size: clamp(12px, 0.86vw, 16px);
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
}

body .home-trust-bar .trust-item p {
  max-width: 220px;
  color: #333333;
  font-size: clamp(10.5px, 0.72vw, 14px);
  line-height: 1.3;
  font-weight: 500;
}

body .site-footer .footer-col h3 {
  margin: 0 0 17px;
  color: #ffffff;
  font-size: 14px;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
}

/* About page typography overrides preserve its compact visual layout. */
body .about-hero__eyebrow {
  color: var(--brand-red);
  font-size: clamp(13px, 0.88vw, 19px);
  line-height: 1;
}

body .about-hero__title {
  color: var(--brand-black);
  font-size: clamp(42px, 3.3vw, 72px);
  line-height: 0.97;
}

body .about-hero__text {
  color: #111111;
  font-size: clamp(14px, 0.9vw, 19px);
  line-height: 1.52;
  font-weight: 500;
}

body .about-hero__cta {
  font-size: clamp(13px, 0.88vw, 18px);
  line-height: 1;
}

body .about-hero__trust,
body .about-hero__trust span {
  color: #4d4d4d;
  font-size: clamp(12px, 0.75vw, 16px);
  line-height: 1.3;
  font-weight: 500;
}

body .about-glass-card h2 {
  color: #151515;
  font-size: clamp(12px, 0.72vw, 16px);
  line-height: 1.22;
}

body .about-flow-step,
body .about-flow-step span {
  font-size: clamp(9px, 0.56vw, 12px);
  line-height: 1.2;
  font-weight: 800;
}

body .about-diagnostic-status span {
  font-size: clamp(10px, 0.62vw, 13px);
  line-height: 1.2;
  font-weight: 700;
}

body .about-diagnostic-status strong,
body .about-diagnostic-status strong b {
  font-size: clamp(25px, 1.75vw, 38px);
  line-height: 0.95;
  font-weight: 900;
}

body .about-diagnostic-status em {
  font-size: clamp(11px, 0.7vw, 15px);
  line-height: 1;
  font-weight: 900;
}

/* Mobile type scale and page-specific compact overrides. */
@media (max-width: 760px) {
  :root {
    --atx-title-xl: 34px;
    --atx-title-lg: 26px;
    --atx-title-md: 22px;
    --atx-title-sm: 18px;
    --atx-body: 15px;
    --atx-helper: 13px;
    --atx-micro: 11px;
  }

  body .services-hero-card-copy h2 {
    margin-bottom: 5px;
    font-size: 13px;
    line-height: 1.05;
  }

  body .services-hero-card-copy p {
    color: rgba(255, 255, 255, 0.72);
    font-size: 11.5px;
    line-height: 1.18;
  }

  body .services-scope-content h2 {
    font-size: 32px;
    line-height: 1.08;
  }

  body .services-scope-intro {
    font-size: 16px;
    line-height: 1.45;
  }

  body .services-scope-item__copy h3 {
    font-size: 14px;
    line-height: 1.12;
  }

  body .services-scope-item__copy p {
    font-size: 11.5px;
    line-height: 1.3;
  }

  body .services-scope-note p {
    font-size: 14px;
    line-height: 1.45;
  }

  body .services-scope-list {
    margin-top: 230px;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  body .services-scope-item {
    min-height: 74px;
    padding: 11px 12px;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 10px;
  }

  body .about-hero__eyebrow {
    font-size: 10px;
  }

  body .about-hero__title {
    font-size: 25px;
    line-height: 1.02;
  }

  body .about-hero__text {
    font-size: 11px;
    line-height: 1.4;
  }

  body .about-hero__cta {
    font-size: 13px;
  }

  body .about-hero__trust,
  body .about-hero__trust span {
    font-size: 7.6px;
    line-height: 1;
  }

  body .about-glass-card h2 {
    font-size: 7px;
  }

  body .about-flow-step,
  body .about-flow-step span {
    font-size: 8.5px;
  }

  body .about-diagnostic-status span {
    font-size: 7px;
  }

  body .about-diagnostic-status strong,
  body .about-diagnostic-status strong b {
    font-size: 16px;
  }

  body .about-diagnostic-status em {
    font-size: 8px;
  }
}
