/* Shared Inter hierarchy follows the approved homepage hero.
   Bold display headings, semibold card titles, regular reading text,
   and Playfair italic only for existing editorial accents. */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('/assets/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);
    --font-display: var(--type-family);
    --font-ui: var(--type-family);
    --type-hero: clamp(3rem, 4.16vw, 4.125rem);
    --type-page: clamp(2rem, 3.2vw, 3rem);
    --type-section: clamp(1.625rem, 2.4vw, 2.125rem);
    --type-subsection: clamp(1.25rem, 1.6vw, 1.5rem);
    --type-card: 1.125rem;
    --type-finder-title: 1.5rem;
    --type-body: 1rem;
    --type-lead: 1.125rem;
    --type-label: .875rem;
    --type-caption: .875rem;
    --type-control: 1rem;
    --type-header: .9375rem;
    --type-eyebrow: .75rem;
  }
  @media (max-width: 767px) {
    :root {
      --type-hero: clamp(2.0625rem, 7.9vw, 3.375rem);
      --type-page: clamp(2rem, 5vw, 2.5rem);
      --type-section: clamp(1.625rem, 4vw, 1.875rem);
      --type-lead: 1rem;
      --type-subsection: 1.25rem;
    }
  }
  html { font-size: 100%; }
  body {
    font-family: var(--type-family);
    font-size: var(--type-body);
    font-weight: 400;
    font-style: normal;
    line-height: 1.6;
    letter-spacing: normal;
    font-synthesis: none;
  }
  button, input, select, textarea { font: inherit; }
body h1 {
    font-size: var(--type-page);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.03em;
  }
body h2 {
    font-size: var(--type-section);
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -.02em;
  }
  body h3 {
    font-size: var(--type-subsection);
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: -.02em;
  }
body p { font-size: var(--type-body); font-weight: 400; line-height: 1.6; letter-spacing: normal; }
body :is(h4, h5, h6) { font-size: var(--type-body); font-weight: 600; line-height: 1.5; letter-spacing: normal; }
body :is(strong, b) { font-weight: 600; }
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: 500;
    font-size: inherit;
    line-height: inherit;
    letter-spacing: -.03em;
  }
  body :is(.opening__accent, .footer__statement-line em) {
    font-family: var(--font-accent, Georgia, serif);
    font-style: italic;
    font-weight: 500;
  }
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: 600;
    line-height: 1.4;
    letter-spacing: normal;
  }
body :is(input, select, textarea) { font-size: max(1rem, 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.6;
  }
  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: -.025em;
  }
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: var(--type-page);
    font-weight: 700;
    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: 500;
    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: 600;
    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: 600; 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: 600; line-height: 1.3; letter-spacing: -.03em; }
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: 600; line-height: 1.5; }
  body .pill-nav a { font-size: var(--type-control); font-weight: 600; 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.6; }
body :is(.why__item-body, .artcard__dek, .review__text, .rail__body) { font-size: var(--type-body); font-weight: 400; line-height: 1.6; }
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.6; 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.6; }
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: 600; 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.6; letter-spacing: normal; }
body .footer :is(h2, h3) { font-size: var(--type-label); font-weight: 600; line-height: 1.5; letter-spacing: normal; }
body .footer .footer__statement-line { font-size: var(--type-section); font-weight: 600; line-height: 1.3; letter-spacing: -.03em; }
body .footer .logo { font-size: 1.375rem; font-weight: 400; line-height: 1.2; }
  body .footer .btn { font-size: var(--type-control); font-weight: 600; 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, .header .lang--header > summary) {
  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__legal button, .footer__contacts a, .footer__shop) {
  font-size: var(--type-label);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: normal;
}
body :is(label, .field__label) { font-size: var(--type-label); font-weight: 500; 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: 600; }
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: 600; line-height: 1.5; }
body .booking-store-list h3 { font-size: var(--type-card); font-weight: 600; line-height: 1.35; letter-spacing: -.025em; }
body :is(.booking-primary, .booking-secondary, .booking-text-link, .wp-button) { font-size: var(--type-control); font-weight: 600; line-height: 1.4; }
body .review-booking h2 { font-size: var(--type-card); font-weight: 600; line-height: 1.35; letter-spacing: -.025em; }
body .review-booking p { font-size: var(--type-caption); }
body .storecard__addr { font-size: var(--type-body); font-weight: 400; line-height: 1.6; }
body :is(.btn, .booking-primary, .booking-secondary, .rating__btn, .fault-row, .model-row) :is(b, strong) { font-weight: inherit; }

/* Shared rules also cover the denser transaction screens. */
body :is(h1, h2, h3) em { font-family: var(--font-accent, Georgia, serif); font-weight: 500; }
body .booking-shell .booking-step-heading h1 { font-size: var(--type-page); font-weight: 700; line-height: 1.12; letter-spacing: -.03em; }
body .booking-shell :is(.issue-panel h2, .appointment-visit h2, .appointment-summary h2, .contact-form-heading h2) { font-weight: 600; letter-spacing: -.025em; }
body :is(.device-choice__copy b, .model-row, .brand-card__name, .repair-option__name) { font-weight: 600; }
