@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('./fonts/inter-var-latin.woff2') format('woff2'); }
:root {
    --type-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font: var(--type-family);
    --sans: var(--type-family);
    --type-hero: clamp(3.8rem, 6.24vw, 6.25rem);
    --type-page: clamp(1.88rem, 4.4vw, 4.2rem);
    --type-section: clamp(1.65rem, 3.04vw, 2.7rem);
    --type-subsection: clamp(1.05rem, 1.6vw, 1.4rem);
    --type-card: 1.125rem;
    --type-finder-title: 1.5rem;
    --type-body: 1rem;
    --type-lead: .875rem;
    --type-label: .875rem;
    --type-caption: .8125rem;
    --type-control: .8125rem;
    --type-header: .8125rem;
    --type-eyebrow: .75rem;
  }
  @media (max-width: 767px) {
    :root {
      --type-hero: clamp(3.2rem, 12vw, 4.5rem);
      --type-page: clamp(1.88rem, 4.4vw, 4.2rem);
      --type-section: clamp(1.65rem, 6.16vw, 2.3rem);
      --type-subsection: 1.05rem;
    }
  }
  html { font-size: 100%; }
  body {
    font-family: var(--type-family);
    font-size: var(--type-body);
    font-weight: 400;
    font-style: normal;
    line-height: 1.65;
    letter-spacing: normal;
    font-synthesis: none;
  }
  button, input, select, textarea { font: inherit; }
body h1 {
    font-size: var(--type-page);
    font-weight: 400;
    line-height: 1.12;
    letter-spacing: -.045em;
  }
body h2 {
    font-size: var(--type-section);
    font-weight: 400;
    line-height: 1.14;
    letter-spacing: -.045em;
  }
  body h3 {
    font-size: var(--type-subsection);
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: -.045em;
  }
body p { font-size: var(--type-body); font-weight: 400; line-height: 1.65; letter-spacing: normal; }
body :is(h4, h5, h6) { font-size: var(--type-body); font-weight: 400; line-height: 1.5; letter-spacing: normal; }
body :is(strong, b) { font-weight: 400; }
body :is(em, i) { font-style: italic; }
  body :is(.opening__title, .footer__statement, .footer__statement-line) em {
    font-family: var(--font-accent, Georgia, serif);
    font-style: italic;
    font-weight: 400;
    font-size: inherit;
    line-height: inherit;
    letter-spacing: -.045em;
  }
  body :is(.opening__accent, .footer__statement-line em) {
    font-family: var(--font-accent, Georgia, serif);
    font-style: italic;
    font-weight: 400;
  }
body :is(button, .btn, [role="button"], summary, .tab, .pill, .filter, .nav__link, .storecard__cta, .storecard__directions, .storecard__links a, .rating__btn) {
    font-size: var(--type-control);
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: normal;
  }
body :is(input, select, textarea) { font-size: var(--type-body); font-weight: 400; line-height: 1.5; letter-spacing: normal; }
body :is(.hero__lede, .opening__lede, .document-lede, .lede, .subhead, .opener__sub, .opener__lede, .why__sub, .reviews__lede, .cta__sub) {
    font-size: var(--type-lead);
    font-weight: 400;
    line-height: 1.65;
  }
  body :is(.card h2, .card h3, .panel h2, .hero__card-title, .finder__device-name, .topic-card__name, .rail__title, .faultcard h3, .warranty-panel h2, .document-sidebar h2, .storecard__name, .pgroup__model, .heading--sm, .why__item-title, .artcard__title, .booking-section__head h2, .store-result h2, .booking-confirmation article h2, .before-visit h2, .store-result__top h2, .booking-review-row h2, .booking-store-list h2) {
    font-size: var(--type-card);
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: normal;
  }
body .locator__title {
    font-size: var(--type-finder-title);
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -.015em;
  }
body .store-locator-intro > h1 {
    font-size: clamp(2rem, 3.125vw, 2.5rem);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -.025em;
  }
body :is(.accordion summary, .acc__item summary, .acc__item summary h3, .document-toc-mobile summary, .fault-row, .model-row, .brand-card__name, .repair-option__name) {
    font-size: var(--type-body);
    font-weight: 400;
    line-height: 1.5;
  }
  body :is(.eyebrow, .hero__eyebrow, .opening__eyebrow, .opener__eyebrow, .reviews__eyebrow, .adm__eyebrow, .brands__label, .rating__label, .reviews__trust, .document-nav__label, .advice-topics__title) {
    font-size: var(--type-eyebrow);
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: .08em;
  }
body :is(small, figcaption, .small, .meta, .document-meta, .chip, .crumbs, .footer__copy, .field__hint, .field__error, .booking-field-error, .cat__price-updated) {
    font-size: var(--type-caption);
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: normal;
  }
body :is(.document-sidebar, .document-toc a, .document-toc-mobile a, .policy-nav a, .document-back, .footer__blurb, .footer__cta-lead, .footer__links, .footer__legal, .footer__bar, .review__who, .review__when, .review__source, .storecard__addr, .storecard__status, .booking-check, .fault-note, .brand-card__hint, .repair-summary, .adm__table) {
    font-size: var(--type-label);
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: normal;
  }
body :is(.footer__heading, .footer__head) { font-size: var(--type-label); font-weight: 400; line-height: 1.5; letter-spacing: .04em; }
body :is(.footer__statement-line, .display-l:not(h1), .display-m:not(h1)) { font-size: var(--type-section); font-weight: 400; line-height: 1.3; letter-spacing: -.045em; }
body :is(.logo, .logo__name, .logo__sub, .brand__word) { font-size: 1.375rem; font-weight: 400; line-height: 1.2; letter-spacing: -.025em; }
body :is(.price, .prow__price, .fault-row__price, .repair-option__price) { font-size: var(--type-body); font-weight: 400; line-height: 1.5; }
  body .pill-nav a { font-size: var(--type-control); font-weight: 400; line-height: 1.4; }
body .pill-nav a > span { font-size: var(--type-caption); font-weight: 400; line-height: 1.5; }
body :is(.rating__score, .adm__stat > strong, .price--lg) { font-size: var(--type-section); font-weight: 400; line-height: 1.3; }
body h1.opening__title { font-size: var(--type-hero); line-height: 1.02; letter-spacing: -.065em; }
body :is(.prose, .document-paper) h2 { font-size: var(--type-subsection); line-height: 1.35; }
  body :is(.prose, .document-paper) :is(p, li, blockquote) { font-size: var(--type-body); line-height: 1.65; }
body :is(.why__item-body, .artcard__dek, .review__text, .rail__body) { font-size: var(--type-body); font-weight: 400; line-height: 1.65; }
body :is(.document-sidebar p, .document-help, .footer__note, .why__item-note, .rating__source, .rating__count) { font-size: var(--type-label); font-weight: 400; line-height: 1.65; letter-spacing: normal; }
body .booking-section__head h2 > span { font-size: var(--type-caption); font-weight: 400; }
body :is(.booking-step-heading > div, .booking-section__answer, .store-result p) { font-size: var(--type-body); font-weight: 400; line-height: 1.65; }
body :is(.booking-list-label, .booking-progress, .booking-progress li, .booking-progress-mobile, .device-choice small, .model-row small, .repair-summary p, .mobile-repair-summary, .booking-confirmation article p) { font-size: var(--type-label); line-height: 1.5; letter-spacing: normal; }
body :is(.repair-summary__price, .review-price) { font-size: var(--type-body); }
body :is(.repair-summary__price strong, .repair-summary__price b, .review-price b) { font-size: var(--type-subsection); font-weight: 400; line-height: 1.3; }
body .rating__score > span { font-size: 1.25rem; font-weight: 400; }
body .footer :is(p, li, a, address) { font-size: var(--type-label); font-weight: 400; font-style: normal; line-height: 1.65; letter-spacing: normal; }
body .footer :is(h2, h3) { font-size: var(--type-label); font-weight: 400; line-height: 1.5; letter-spacing: .04em; }
body .footer .footer__statement-line { font-size: var(--type-section); font-weight: 400; line-height: 1.3; letter-spacing: -.045em; }
body .footer .logo { font-size: 1.375rem; font-weight: 400; line-height: 1.2; }
  body .footer .btn { font-size: var(--type-control); font-weight: 400; line-height: 1.4; }
body :is(.adm__table td, .adm__table th, .adm__cell-value, .adm__intro, .adm__muted, .adm__nav, .cat__fields label) { font-size: var(--type-label); line-height: 1.5; }
body :is(.branch-hours h2, .store-locator-results__head h2) { font-size: var(--type-subsection); line-height: 1.35; }

/* Header is slightly more compact; footer links retain the body-sized scale. */
body :is(.nav__link, .header__phone, .help-menu a, .menu a, .header .btn, .header button) {
  font-size: var(--type-header);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: normal;
}
body .footer :is(.footer__links a, .footer__legal a, .footer__contacts a, .footer__shop) {
  font-size: var(--type-control);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: normal;
}
body :is(label, .field__label) { font-size: var(--type-label); font-weight: 400; line-height: 1.4; }
body :is(.prow__repair, .prow__detail, .prow__book) { font-size: var(--type-body); line-height: 1.5; }
body :is(.reviews__note, .pgroup__from, .pgroup__brand) { font-size: var(--type-caption); line-height: 1.5; }
body .storecard__rating { font-size: var(--type-caption); line-height: 1.5; }
body .storecard__rating-score { font-size: var(--type-body); font-weight: 400; }
body address { font-style: normal; }
body .repair-summary b { font-size: var(--type-body); font-weight: 400; line-height: 1.5; }
body .repair-summary__price--description strong { font-size: var(--type-body); font-weight: 400; line-height: 1.5; }
body .booking-store-list h3 { font-size: var(--type-card); font-weight: 600; line-height: 1.35; letter-spacing: normal; }
body :is(.booking-primary, .booking-secondary, .booking-text-link, .wp-button) { font-size: var(--type-control); font-weight: 400; line-height: 1.4; }
body .review-booking h2 { font-size: var(--type-card); font-weight: 600; line-height: 1.35; letter-spacing: normal; }
body .review-booking p { font-size: var(--type-caption); }
body .storecard__addr { font-size: var(--type-body); font-weight: 400; line-height: 1.65; }
body :is(.btn, .booking-primary, .booking-secondary, .rating__btn, .fault-row, .model-row) :is(b, strong) { font-weight: inherit; }
