/*
 * Drive.ma semantic typography system.
 *
 * IBM Plex Sans is the single public type family. Four deliberately selected
 * weights cover reading, controls and editorial hierarchy without layout shift.
 */

@font-face { font-display: swap; font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400; src: url("../fonts/ibm-plex-sans-400.woff2") format("woff2"); }
@font-face { font-display: swap; font-family: "IBM Plex Sans"; font-style: normal; font-weight: 500; src: url("../fonts/ibm-plex-sans-500.woff2") format("woff2"); }
@font-face { font-display: swap; font-family: "IBM Plex Sans"; font-style: normal; font-weight: 600; src: url("../fonts/ibm-plex-sans-600.woff2") format("woff2"); }
@font-face { font-display: swap; font-family: "IBM Plex Sans"; font-style: normal; font-weight: 700; src: url("../fonts/ibm-plex-sans-700.woff2") format("woff2"); }
/* The matching Arabic family is self-hosted; limit it to Arabic codepoints so
 * Latin car names retain the same IBM Plex Sans face used on French pages. */
@font-face { font-display: swap; font-family: "IBM Plex Sans Arabic"; font-style: normal; font-weight: 400; src: url("../fonts/ibm-plex-sans-arabic-400.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-display: swap; font-family: "IBM Plex Sans Arabic"; font-style: normal; font-weight: 500; src: url("../fonts/ibm-plex-sans-arabic-500.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-display: swap; font-family: "IBM Plex Sans Arabic"; font-style: normal; font-weight: 600; src: url("../fonts/ibm-plex-sans-arabic-600.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-display: swap; font-family: "IBM Plex Sans Arabic"; font-style: normal; font-weight: 700; src: url("../fonts/ibm-plex-sans-arabic-700.woff2") format("woff2"); unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF; }

body.drive-ma-site,
.editor-styles-wrapper {
  /* Fallbacks keep this layer useful when the inline PHP tokens are absent. */
  --drive-font-family: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
  --drive-font-family-ui: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
  --drive-font-family-display: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
  --drive-font-family-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --drive-type-legal: 0.75rem;
  --drive-type-caption: 0.8125rem;
  --drive-type-meta: 0.8125rem;
  --drive-type-sm: 0.875rem;
  --drive-type-body: 1rem;
  --drive-type-lead: clamp(1.25rem, 1.1rem + .5vw, 1.5rem);
  --drive-type-h6: 1rem;
  --drive-type-h5: 1.125rem;
  --drive-type-h4: 1.25rem;
  --drive-type-h3: clamp(1.25rem, 1.1rem + .5vw, 1.5rem);
  --drive-type-h2: clamp(1.5rem, 1.2rem + 1vw, 2rem);
  --drive-type-h1: clamp(2rem, 1.4rem + 2vw, 3rem);
  --drive-type-display: clamp(2.25rem, 1.5rem + 2.5vw, 3rem);
  --drive-leading-tight: 1.2;
  --drive-leading-heading: 1.25;
  --drive-leading-body: 1.5;
  --drive-leading-compact: 1.45;
  --drive-tracking-display: -0.025em;
  --drive-tracking-heading: -0.015em;
  --drive-tracking-compact: 0;
  --drive-measure-title: 100%;
  --drive-measure-lead: 62ch;
  --drive-measure-body: 70ch;
  --drive-measure-compact: 48ch;
  font-family: var(--drive-font-family);
  font-size: var(--drive-type-body);
  line-height: var(--drive-leading-body);
  text-rendering: optimizeLegibility;
}

body.drive-ma-site .site :where(h1, h2, h3, h4, h5, h6),
.editor-styles-wrapper :where(h1, h2, h3, h4, h5, h6) {
  border-inline-start: 0 !important;
  border-left: 0 !important;
  color: var(--drive-ui-heading, var(--drive-color-heading, #111827));
  font-family: var(--drive-font-family-display);
  font-style: normal;
  font-weight: 600;
  hyphens: manual;
  margin-block: 1.5em 0.55em;
  max-inline-size: var(--drive-measure-title) !important;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

body.drive-ma-site .site h1,
.editor-styles-wrapper h1 {
  font-size: var(--drive-type-h1) !important;
  letter-spacing: var(--drive-tracking-display);
  line-height: var(--drive-leading-tight);
  margin-block-start: 0;
}

body.drive-ma-site .site h2,
.editor-styles-wrapper h2 {
  font-size: var(--drive-type-h2) !important;
  letter-spacing: var(--drive-tracking-heading);
  line-height: 1.2;
}

body.drive-ma-site .site h3,
.editor-styles-wrapper h3 {
  font-size: var(--drive-type-h3) !important;
  letter-spacing: var(--drive-tracking-heading);
  line-height: 1.333;
}

body.drive-ma-site .site h4,
.editor-styles-wrapper h4 {
  font-size: var(--drive-type-h4) !important;
  letter-spacing: var(--drive-tracking-heading);
  line-height: 1.4;
}

body.drive-ma-site .site h5,
.editor-styles-wrapper h5 {
  font-size: var(--drive-type-h5) !important;
  letter-spacing: var(--drive-tracking-compact);
  line-height: 1.333;
}

body.drive-ma-site .site h6,
.editor-styles-wrapper h6 {
  font-size: var(--drive-type-h6) !important;
  letter-spacing: 0;
  line-height: 1.5;
}

body.drive-ma-site .site :where(.drive-type-display, .drive-display-title),
.editor-styles-wrapper :where(.drive-type-display, .drive-display-title) {
  font-size: var(--drive-type-display) !important;
  letter-spacing: var(--drive-tracking-display);
  line-height: 1.2;
  max-inline-size: 20ch;
}

body.drive-ma-site .site :where(.drive-type-lead, .drive-media-lead, .is-style-lead),
.editor-styles-wrapper :where(.drive-type-lead, .drive-media-lead, .is-style-lead) {
  font-size: var(--drive-type-lead);
  font-weight: 400;
  line-height: 1.333;
  max-inline-size: var(--drive-measure-lead);
  text-wrap: pretty;
}

body.drive-ma-site .site :where(p, li, dd),
.editor-styles-wrapper :where(p, li, dd) {
  overflow-wrap: break-word;
  text-wrap: pretty;
}

body.drive-ma-site .site :where(
  .entry-content,
  .drive-entry-content,
  .drive-editable-region,
  .drive-media-article__content,
  .drive-legal-page__content
) > :where(p, ul, ol, dl, blockquote),
.editor-styles-wrapper > :where(p, ul, ol, dl, blockquote) {
  max-inline-size: var(--drive-measure-body);
}

body.drive-ma-site .site :where(
  .entry-content,
  .drive-entry-content,
  .drive-editable-region,
  .drive-media-article__content,
  .drive-legal-page__content
) > :where(p, ul, ol, dl, blockquote) + :where(p, ul, ol, dl, blockquote),
.editor-styles-wrapper > :where(p, ul, ol, dl, blockquote) + :where(p, ul, ol, dl, blockquote) {
  margin-block-start: 1.15em;
}

body.drive-ma-site .site :where(ul, ol),
.editor-styles-wrapper :where(ul, ol) {
  padding-inline-start: 1.35em;
}

body.drive-ma-site .site :where(li + li),
.editor-styles-wrapper :where(li + li) {
  margin-block-start: 0.4em;
}

body.drive-ma-site .site blockquote,
.editor-styles-wrapper blockquote {
  border-inline-start: 0.25rem solid var(--drive-ui-accent, var(--drive-color-brand, #c94224));
  color: var(--drive-ui-text, var(--drive-color-body, #334155));
  font-size: var(--drive-type-lead);
  font-style: normal;
  line-height: 1.6;
  margin-inline: 0;
  padding: 0.25rem 0 0.25rem 1.25rem;
}

body.drive-ma-site .site blockquote cite,
.editor-styles-wrapper blockquote cite {
  display: block;
  font-size: var(--drive-type-caption);
  font-style: normal;
  font-weight: 600;
  margin-block-start: 0.75rem;
}

body.drive-ma-site .site :where(figcaption, .wp-caption-text, .wp-element-caption),
.editor-styles-wrapper :where(figcaption, .wp-caption-text, .wp-element-caption) {
  color: var(--drive-ui-muted, var(--drive-color-muted, #59677a));
  font-size: var(--drive-type-caption);
  line-height: 1.5;
  margin-block-start: 0.55rem;
  max-inline-size: var(--drive-measure-body);
}

body.drive-ma-site .site :where(
  .entry-meta,
  .posted-on,
  .byline,
  .drive-meta,
  .drive-card__meta,
  .drive-media-card__meta
),
.editor-styles-wrapper :where(.entry-meta, .drive-meta, .drive-card__meta, .drive-media-card__meta) {
  color: var(--drive-ui-muted, var(--drive-color-muted, #59677a));
  font-family: var(--drive-font-family-ui);
  font-size: var(--drive-type-meta);
  font-weight: 600;
  line-height: var(--drive-leading-compact);
}

body.drive-ma-site .site :where(nav, .menu, .main-navigation, .drive-tabs, .drive-filter-nav) :where(a, button),
.editor-styles-wrapper :where(nav, .menu, .drive-tabs) :where(a, button) {
  font-family: var(--drive-font-family-ui);
  font-size: var(--drive-type-sm);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.4;
}

body.drive-ma-site .site :where(
  button,
  .button,
  .wp-element-button,
  .wp-block-button__link,
  input[type="button"],
  input[type="submit"],
  input[type="reset"]
),
.editor-styles-wrapper :where(button, .button, .wp-element-button, .wp-block-button__link) {
  font-family: var(--drive-font-family-ui);
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.3;
  text-transform: none;
}

body.drive-ma-site .site :where(label, legend, .drive-label),
.editor-styles-wrapper :where(label, legend, .drive-label) {
  font-family: var(--drive-font-family-ui);
  font-size: var(--drive-type-sm);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.4;
  text-transform: none;
}

body.drive-ma-site .site :where(input, select, textarea),
.editor-styles-wrapper :where(input, select, textarea) {
  font-family: var(--drive-font-family-ui);
  font-size: max(1rem, 16px);
  font-weight: 400;
  line-height: 1.5;
}

body.drive-ma-site .site :where(table),
.editor-styles-wrapper :where(table) {
  font-family: var(--drive-font-family-ui);
  font-size: var(--drive-type-sm);
  font-variant-numeric: tabular-nums;
  line-height: 1.45;
}

/* Prices must remain inside cards and sidebars at every supported width. */
body.drive-ma-site .site :where(
  .drive-brand-landing__metrics strong,
  .drive-vehicle-card__price strong,
  .drive-vehicle-block-card__price strong,
  .drive-model-price strong,
  .drive-version-row__price > strong,
  .drive-promotion-card__price strong,
  .drive-promotion-offer-price > strong,
  .drive-review-lead-card__price strong,
  .drive-recommendation-price
) {
  font-variant-numeric: tabular-nums;
  max-inline-size: 100%;
  overflow-wrap: anywhere;
  white-space: normal;
}

body.drive-ma-site .site :where(th),
.editor-styles-wrapper :where(th) {
  font-weight: 700;
  text-align: start;
}

body.drive-ma-site .site :where(code, kbd, samp, pre),
.editor-styles-wrapper :where(code, kbd, samp, pre) {
  font-family: var(--drive-font-family-mono);
  font-size: 0.875em;
  font-variant-ligatures: none;
}

body.drive-ma-site .site pre,
.editor-styles-wrapper pre {
  line-height: 1.65;
  max-inline-size: 100%;
  overflow-x: auto;
  padding: 1rem;
  tab-size: 2;
  white-space: pre;
}

body.drive-ma-site .site :where(.drive-legal, .drive-legal-footer, .drive-fine-print, small),
.editor-styles-wrapper :where(.drive-legal, .drive-fine-print, small) {
  font-family: var(--drive-font-family-ui);
  font-size: var(--drive-type-legal);
  line-height: 1.55;
}

body.drive-ma-site .site :where(a:not(.button):not(.wp-element-button):not(.wp-block-button__link)),
.editor-styles-wrapper :where(a:not(.button):not(.wp-element-button):not(.wp-block-button__link)) {
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.16em;
}

body.drive-ma-site .site :where(p, li, dd) a,
.editor-styles-wrapper :where(p, li, dd) a {
  text-decoration-line: underline;
  text-decoration-skip-ink: auto;
}

body.drive-ma-site .site :where(strong, b),
.editor-styles-wrapper :where(strong, b) {
  font-weight: 700;
}

body.drive-ma-site .site :where(em, i),
.editor-styles-wrapper :where(em, i) {
  font-style: italic;
}

body.drive-ma-site .site :where(
  .drive-card,
  .drive-vehicle-card,
  .drive-brand-card,
  .drive-promotion-card,
  .drive-media-card,
  .drive-version-row,
  .drive-source-card,
  .drive-service-preview,
  .drive-filter-panel,
  .drive-brand-landing__summary,
  .drive-brand-landing__guide li,
  .drive-media-article__aside,
  .drive-native-lead,
  .drive-finance-calculator,
  .drive-comparison-tray
) :where(h2, h3, h4, h5, h6),
.editor-styles-wrapper :where(.drive-card, .drive-vehicle-card, .drive-media-card, aside) :where(h2, h3, h4, h5, h6) {
  letter-spacing: var(--drive-tracking-compact);
  line-height: 1.2;
  margin-block: 0 0.45em;
  max-inline-size: var(--drive-measure-compact);
}

body.drive-ma-site .site :is(
  .drive-card,
  .drive-vehicle-card,
  .drive-brand-card,
  .drive-promotion-card,
  .drive-media-card,
  .drive-version-row,
  .drive-source-card,
  .drive-service-preview,
  .drive-filter-panel,
  .drive-brand-landing__summary,
  .drive-brand-landing__guide li,
  .drive-media-article__aside,
  .drive-native-lead,
  .drive-finance-calculator,
  .drive-comparison-tray
) h2,
.editor-styles-wrapper :is(.drive-card, .drive-vehicle-card, .drive-media-card, aside) h2 {
  font-size: 1.125rem !important;
  line-height: 1.222;
}

body.drive-ma-site .site :is(
  .drive-card,
  .drive-vehicle-card,
  .drive-brand-card,
  .drive-promotion-card,
  .drive-media-card,
  .drive-version-row,
  .drive-source-card,
  .drive-service-preview,
  .drive-filter-panel,
  .drive-brand-landing__summary,
  .drive-brand-landing__guide li,
  .drive-media-article__aside,
  .drive-native-lead,
  .drive-finance-calculator,
  .drive-comparison-tray
) h3,
.editor-styles-wrapper :is(.drive-card, .drive-vehicle-card, .drive-media-card, aside) h3 {
  font-size: 1.125rem !important;
  line-height: 1.222;
}

body.drive-ma-site .site :is(
  .drive-card,
  .drive-vehicle-card,
  .drive-brand-card,
  .drive-promotion-card,
  .drive-media-card,
  .drive-version-row,
  .drive-source-card,
  .drive-service-preview,
  .drive-filter-panel,
  .drive-media-article__aside,
  .drive-native-lead,
  .drive-finance-calculator
) h4,
.editor-styles-wrapper :is(.drive-card, .drive-vehicle-card, .drive-media-card, aside) h4 {
  font-size: clamp(1rem, 0.4vw + 0.9rem, 1.1rem) !important;
}

body.drive-ma-site .site :is(
  .drive-card,
  .drive-vehicle-card,
  .drive-brand-card,
  .drive-promotion-card,
  .drive-media-card,
  .drive-version-row,
  .drive-source-card,
  .drive-service-preview,
  .drive-filter-panel,
  .drive-media-article__aside,
  .drive-native-lead,
  .drive-finance-calculator
) :where(h5, h6),
.editor-styles-wrapper :is(.drive-card, .drive-vehicle-card, .drive-media-card, aside) :where(h5, h6) {
  font-size: 0.9375rem !important;
}

/* Editorial headings use typography and spacing only—never decorative rules. */
body.drive-ma-site .site :where(.entry-content, .drive-entry-content) > :is(h1, h2, h3, h4, h5, h6),
.editor-styles-wrapper :where(.entry-content, .drive-entry-content) > :is(h1, h2, h3, h4, h5, h6) {
  border: 0 !important;
  padding-inline-start: 0 !important;
}

body.drive-ma-site .site :where(.entry-content, .drive-entry-content) > :is(h1, h2, h3, h4, h5, h6)::before,
.editor-styles-wrapper :where(.entry-content, .drive-entry-content) > :is(h1, h2, h3, h4, h5, h6)::before {
  content: none !important;
  display: none !important;
}

@media (max-width: 48rem) {
  body.drive-ma-site,
  .editor-styles-wrapper {
    --drive-type-display: clamp(2.2rem, 11vw, 3rem);
    --drive-type-h1: clamp(2rem, 8.5vw, 2.75rem);
    --drive-type-h2: clamp(1.5rem, 6.5vw, 2rem);
    --drive-type-h3: clamp(1.25rem, 5vw, 1.5rem);
    --drive-type-h4: clamp(1.125rem, 4.5vw, 1.25rem);
    --drive-type-h5: clamp(1rem, 4vw, 1.125rem);
  }

  body.drive-ma-site .site :where(h1, h2, h3, h4, h5, h6),
  .editor-styles-wrapper :where(h1, h2, h3, h4, h5, h6) {
    max-inline-size: 100%;
  }
}

@media (forced-colors: active) {
  body.drive-ma-site .site blockquote,
  .editor-styles-wrapper blockquote {
    border-inline-start-color: CanvasText;
  }
}
