/* ratio.css — generated by tools/fallback_css.py from zk-audit.css (left untouched).
   Adds metric-matched local fallback faces so the swap from system font to web font does not reflow text.
   No licence has been chosen for these fonts' distribution in this project; see FONTLOG/OFL notes. */
/* zk-audit site: Ratio register fonts + role tokens. Generated by glyph-engine tools/style_guide.py.
   Ratio families (working builds); no licence chosen, licence wording is Conner's call. Files: /fonts/ratio/*.woff2 */
@font-face {
  font-family: 'Ratio Bastion Label';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/ratio/RatioBastion-Label.woff2) format('woff2');
}
@font-face {
  font-family: 'Ratio Booking';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ratio/RatioBooking-Regular.woff2) format('woff2');
  size-adjust: 88.5%; /* x-height → body */
  ascent-override: 84.9%; descent-override: 28.1%; line-gap-override: 0%;
}
@font-face {
  font-family: 'Ratio Button';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ratio/RatioButton-Regular.woff2) format('woff2');
  size-adjust: 97.4%; /* cap height → body */
  ascent-override: 77.2%; descent-override: 25.5%; line-gap-override: 0%;
}
@font-face {
  font-family: 'Ratio Headline';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ratio/RatioHeadline-Regular.woff2) format('woff2');
}
@font-face {
  font-family: 'Ratio Headline';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/ratio/RatioHeadline-SemiBold.woff2) format('woff2');
}
@font-face {
  font-family: 'Ratio Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/ratio/RatioMono-Bold.woff2) format('woff2');
}
@font-face {
  font-family: 'Ratio Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ratio/RatioMono-Regular.woff2) format('woff2');
}
@font-face {
  font-family: 'Ratio Text';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ratio/RatioText-Italic.woff2) format('woff2');
}
@font-face {
  font-family: 'Ratio Text';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ratio/RatioText-Regular.woff2) format('woff2');
}
@font-face {
  font-family: 'Ratio Text';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/ratio/RatioText-SemiBold.woff2) format('woff2');
}
:root {
  --phi: 1.618034; --phi-half: 1.272020;
  --type-step-n2: 0.75rem; /* 12px */
  --type-step-n1: 0.8844rem; /* 14.15px */
  --type-step-0: 1.125rem; /* 18px */
  --type-step-1: 1.431rem; /* 22.9px */
  --type-step-2: 1.82rem; /* 29.12px */
  --type-step-3: 2.316rem; /* 37.05px */
  --type-step-4: 2.945rem; /* 47.12px */
  --type-step-5: 3.746rem; /* 59.94px */
  --type-step-6: 4.766rem; /* 76.25px */
  --type-step-7: 6.062rem; /* 96.99px */
  --type-step-8: 7.711rem; /* 123.37px */
  --space-phi-3xs: 0.2362rem; /* 3.78px */
  --space-phi-2xs: 0.3819rem; /* 6.11px */
  --space-phi-xs: 0.6181rem; /* 9.89px */
  --space-phi-s: 1rem; /* 16px */
  --space-phi-m: 1.618rem; /* 25.89px */
  --space-phi-l: 2.618rem; /* 41.89px */
  --space-phi-xl: 4.236rem; /* 67.78px */
  --space-phi-2xl: 6.854rem; /* 109.67px */
  --space-phi-3xl: 11.09rem; /* 177.44px */
  --lh-phi-display: 1.0;
  --lh-phi-tight: 1.15;
  --lh-phi-snug: 1.272;
  --lh-phi-ui: 1.0;
  --lh-phi-dense: 1.5;
  --lh-phi-body: 1.618;
  --measure-body: 66ch;
  --measure-lede: 56ch;
  --measure-caption: 52ch;
  --measure-pull: 41ch;
  --measure-fine: 72ch;
  --role-h1-font: 'Ratio Headline', 'Ratio Headline Fallback', 'Ratio Headline Fallback 2', serif;
  --role-h1-weight: 400; --role-h1-style: normal;
  --role-h1-size: clamp(2.945rem, 2.338rem + 2.697vw, 4.766rem); --role-h1-lh: 1.15; --role-h1-track: 0;
  --role-h2-font: 'Ratio Headline', 'Ratio Headline Fallback', 'Ratio Headline Fallback 2', serif;
  --role-h2-weight: 400; --role-h2-style: normal;
  --role-h2-size: clamp(1.82rem, 1.445rem + 1.667vw, 2.945rem); --role-h2-lh: 1.15; --role-h2-track: 0;
  --role-h3-font: 'Ratio Headline', 'Ratio Headline Fallback', 'Ratio Headline Fallback 2', serif;
  --role-h3-weight: 400; --role-h3-style: normal;
  --role-h3-size: clamp(1.431rem, 1.302rem + 0.5759vw, 1.82rem); --role-h3-lh: 1.272; --role-h3-track: 0;
  --role-h4-card-finding-titles-font: 'Ratio Headline', 'Ratio Headline Fallback', 'Ratio Headline Fallback 2', serif;
  --role-h4-card-finding-titles-weight: 600; --role-h4-card-finding-titles-style: normal;
  --role-h4-card-finding-titles-size: 1.431rem; --role-h4-card-finding-titles-lh: 1.272; --role-h4-card-finding-titles-track: 0;
  --role-body-prose-font: 'Ratio Text', 'Ratio Text Fallback', 'Ratio Text Fallback 2', serif;
  --role-body-prose-weight: 400; --role-body-prose-style: normal;
  --role-body-prose-size: 1.125rem; --role-body-prose-lh: 1.618; --role-body-prose-track: 0;
  --role-lede-font: 'Ratio Text', 'Ratio Text Fallback', 'Ratio Text Fallback 2', serif;
  --role-lede-weight: 400; --role-lede-style: normal;
  --role-lede-size: 1.431rem; --role-lede-lh: 1.272; --role-lede-track: 0;
  --role-code-pre-file-line-font: 'Ratio Mono', 'Ratio Mono Fallback', 'Ratio Mono Fallback 2', monospace;
  --role-code-pre-file-line-weight: 400; --role-code-pre-file-line-style: normal;
  --role-code-pre-file-line-size: 1em; --role-code-pre-file-line-lh: 1.618; --role-code-pre-file-line-track: 0;
  --role-buttons-ctas-font: 'Ratio Button', 'Ratio Button Fallback', 'Ratio Button Fallback 2', serif;
  --role-buttons-ctas-weight: 400; --role-buttons-ctas-style: normal;
  --role-buttons-ctas-size: 0.8844rem; --role-buttons-ctas-lh: 1.0; --role-buttons-ctas-track: .04em;
  --role-form-booking-submit-font: 'Ratio Button', 'Ratio Button Fallback', 'Ratio Button Fallback 2', serif;
  --role-form-booking-submit-weight: 400; --role-form-booking-submit-style: normal;
  --role-form-booking-submit-size: 0.8844rem; --role-form-booking-submit-lh: 1.0; --role-form-booking-submit-track: .04em;
  --role-navigation-font: 'Ratio Button', 'Ratio Button Fallback', 'Ratio Button Fallback 2', serif;
  --role-navigation-weight: 400; --role-navigation-style: normal;
  --role-navigation-size: 0.75rem; --role-navigation-lh: 1.0; --role-navigation-track: .06em;
  --role-booking-widget-font: 'Ratio Booking', 'Ratio Booking Fallback', 'Ratio Booking Fallback 2', sans-serif;
  --role-booking-widget-weight: 400; --role-booking-widget-style: normal;
  --role-booking-widget-size: 1.125rem; --role-booking-widget-lh: 1.5; --role-booking-widget-track: 0;
  --role-forms-font: 'Ratio Booking', 'Ratio Booking Fallback', 'Ratio Booking Fallback 2', sans-serif;
  --role-forms-weight: 400; --role-forms-style: normal;
  --role-forms-size: 1.125rem; --role-forms-lh: 1.5; --role-forms-track: 0;
  --role-reports-audit-findings-severity-font: 'Ratio Bastion Label', 'Ratio Bastion Label Fallback', 'Ratio Bastion Label Fallback 2', sans-serif;
  --role-reports-audit-findings-severity-weight: 600; --role-reports-audit-findings-severity-style: normal;
  --role-reports-audit-findings-severity-size: 0.75rem; --role-reports-audit-findings-severity-lh: 1.0; --role-reports-audit-findings-severity-track: .06em;
  --role-tables-header-font: 'Ratio Mono', 'Ratio Mono Fallback', 'Ratio Mono Fallback 2', monospace;
  --role-tables-header-weight: 400; --role-tables-header-style: normal;
  --role-tables-header-size: 0.75rem; --role-tables-header-lh: 1.0; --role-tables-header-track: .12em;
  --role-tables-text-cells-font: 'Ratio Text', 'Ratio Text Fallback', 'Ratio Text Fallback 2', serif;
  --role-tables-text-cells-weight: 400; --role-tables-text-cells-style: normal;
  --role-tables-text-cells-size: 0.8844rem; --role-tables-text-cells-lh: 1.272; --role-tables-text-cells-track: 0;
  --role-data-numbers-font: 'Ratio Mono', 'Ratio Mono Fallback', 'Ratio Mono Fallback 2', monospace;
  --role-data-numbers-weight: 400; --role-data-numbers-style: normal;
  --role-data-numbers-size: 0.8844rem; --role-data-numbers-lh: 1.272; --role-data-numbers-track: 0;
  --role-big-figures-font: 'Ratio Headline', 'Ratio Headline Fallback', 'Ratio Headline Fallback 2', serif;
  --role-big-figures-weight: 400; --role-big-figures-style: normal;
  --role-big-figures-size: clamp(1.82rem, 1.655rem + 0.7343vw, 2.316rem); --role-big-figures-lh: 1.272; --role-big-figures-track: 0;
  --role-captions-font: 'Ratio Text', 'Ratio Text Fallback', 'Ratio Text Fallback 2', serif;
  --role-captions-weight: 400; --role-captions-style: italic;
  --role-captions-size: 0.8844rem; --role-captions-lh: 1.5; --role-captions-track: 0;
  --role-kickers-eyebrows-font: 'Ratio Mono', 'Ratio Mono Fallback', 'Ratio Mono Fallback 2', monospace;
  --role-kickers-eyebrows-weight: 400; --role-kickers-eyebrows-style: normal;
  --role-kickers-eyebrows-size: 0.75rem; --role-kickers-eyebrows-lh: 1.0; --role-kickers-eyebrows-track: .12em;
  --role-footer-font: 'Ratio Text', 'Ratio Text Fallback', 'Ratio Text Fallback 2', serif;
  --role-footer-weight: 400; --role-footer-style: normal;
  --role-footer-size: 0.8844rem; --role-footer-lh: 1.5; --role-footer-track: 0;
  --role-callouts-font: 'Ratio Text', 'Ratio Text Fallback', 'Ratio Text Fallback 2', serif;
  --role-callouts-weight: 400; --role-callouts-style: normal;
  --role-callouts-size: 1.125rem; --role-callouts-lh: 1.618; --role-callouts-track: 0;
  --role-pull-quotes-font: 'Ratio Headline', 'Ratio Headline Fallback', 'Ratio Headline Fallback 2', serif;
  --role-pull-quotes-weight: 400; --role-pull-quotes-style: normal;
  --role-pull-quotes-size: 1.82rem; --role-pull-quotes-lh: 1.272; --role-pull-quotes-track: 0;
  --role-legal-fine-print-font: 'Ratio Text', 'Ratio Text Fallback', 'Ratio Text Fallback 2', serif;
  --role-legal-fine-print-weight: 400; --role-legal-fine-print-style: normal;
  --role-legal-fine-print-size: 0.8844rem; --role-legal-fine-print-lh: 1.5; --role-legal-fine-print-track: 0;
  --role-brand-mark-font: 'Ratio Mono', 'Ratio Mono Fallback', 'Ratio Mono Fallback 2', monospace;
  --role-brand-mark-weight: 400; --role-brand-mark-style: normal;
  --role-brand-mark-size: 0.8844rem; --role-brand-mark-lh: 1.0; --role-brand-mark-track: .16em;
}

/* ---- metric-matched local fallbacks (size-adjust + metric overrides) ---- */
@font-face {
  font-family: 'Ratio Headline Fallback';
  font-style: normal;
  font-weight: 400;
  src: local('Georgia');
  size-adjust: 95.41%;
  ascent-override: 78.92%;
  descent-override: 25.89%;
  line-gap-override: 0.00%;
  /* Headline 400 normal: metric-matched Georgia for RatioHeadline-Regular.woff2 */
}
@font-face {
  font-family: 'Ratio Headline Fallback 2';
  font-style: normal;
  font-weight: 400;
  src: local('Times New Roman'), local('TimesNewRomanPSMT');
  size-adjust: 103.57%;
  ascent-override: 72.70%;
  descent-override: 23.85%;
  line-gap-override: 0.00%;
  /* Headline 400 normal: metric-matched Times New Roman for RatioHeadline-Regular.woff2 */
}
@font-face {
  font-family: 'Ratio Headline Fallback';
  font-style: normal;
  font-weight: 600;
  src: local('Georgia Bold'), local('Georgia-Bold');
  size-adjust: 86.49%;
  ascent-override: 87.06%;
  descent-override: 28.56%;
  line-gap-override: 0.00%;
  /* Headline 600 normal: metric-matched Georgia Bold for RatioHeadline-SemiBold.woff2 */
}
@font-face {
  font-family: 'Ratio Headline Fallback 2';
  font-style: normal;
  font-weight: 600;
  src: local('Times New Roman Bold'), local('TimesNewRomanPS-BoldMT');
  size-adjust: 102.97%;
  ascent-override: 73.13%;
  descent-override: 23.99%;
  line-gap-override: 0.00%;
  /* Headline 600 normal: metric-matched Times New Roman Bold for RatioHeadline-SemiBold.woff2 */
}
@font-face {
  font-family: 'Ratio Text Fallback';
  font-style: normal;
  font-weight: 400;
  src: local('Georgia');
  size-adjust: 105.12%;
  ascent-override: 71.49%;
  descent-override: 23.64%;
  line-gap-override: 0.00%;
  /* Text 400 normal: metric-matched Georgia for RatioText-Regular.woff2 */
}
@font-face {
  font-family: 'Ratio Text Fallback 2';
  font-style: normal;
  font-weight: 400;
  src: local('Times New Roman'), local('TimesNewRomanPSMT');
  size-adjust: 114.11%;
  ascent-override: 65.85%;
  descent-override: 21.78%;
  line-gap-override: 0.00%;
  /* Text 400 normal: metric-matched Times New Roman for RatioText-Regular.woff2 */
}
@font-face {
  font-family: 'Ratio Text Fallback';
  font-style: normal;
  font-weight: 600;
  src: local('Georgia Bold'), local('Georgia-Bold');
  size-adjust: 95.49%;
  ascent-override: 78.70%;
  descent-override: 26.02%;
  line-gap-override: 0.00%;
  /* Text 600 normal: metric-matched Georgia Bold for RatioText-SemiBold.woff2 */
}
@font-face {
  font-family: 'Ratio Text Fallback 2';
  font-style: normal;
  font-weight: 600;
  src: local('Times New Roman Bold'), local('TimesNewRomanPS-BoldMT');
  size-adjust: 113.68%;
  ascent-override: 66.11%;
  descent-override: 21.86%;
  line-gap-override: 0.00%;
  /* Text 600 normal: metric-matched Times New Roman Bold for RatioText-SemiBold.woff2 */
}
@font-face {
  font-family: 'Ratio Text Fallback';
  font-style: italic;
  font-weight: 400;
  src: local('Georgia Italic'), local('Georgia-Italic');
  size-adjust: 98.86%;
  ascent-override: 76.01%;
  descent-override: 25.14%;
  line-gap-override: 0.00%;
  /* Text 400 italic: metric-matched Georgia Italic for RatioText-Italic.woff2 */
}
@font-face {
  font-family: 'Ratio Text Fallback 2';
  font-style: italic;
  font-weight: 400;
  src: local('Times New Roman Italic'), local('TimesNewRomanPS-ItalicMT');
  size-adjust: 110.48%;
  ascent-override: 68.02%;
  descent-override: 22.49%;
  line-gap-override: 0.00%;
  /* Text 400 italic: metric-matched Times New Roman Italic for RatioText-Italic.woff2 */
}
@font-face {
  font-family: 'Ratio Button Fallback';
  font-style: normal;
  font-weight: 400;
  src: local('Georgia');
  size-adjust: 119.35%;
  ascent-override: 63.00%;
  descent-override: 20.81%;
  line-gap-override: 0.00%;
  /* Button 400 normal: metric-matched Georgia for RatioButton-Regular.woff2 */
}
@font-face {
  font-family: 'Ratio Button Fallback 2';
  font-style: normal;
  font-weight: 400;
  src: local('Times New Roman'), local('TimesNewRomanPSMT');
  size-adjust: 129.56%;
  ascent-override: 58.04%;
  descent-override: 19.17%;
  line-gap-override: 0.00%;
  /* Button 400 normal: metric-matched Times New Roman for RatioButton-Regular.woff2 */
}
@font-face {
  font-family: 'Ratio Booking Fallback';
  font-style: normal;
  font-weight: 400;
  src: local('Arial'), local('ArialMT');
  size-adjust: 93.18%;
  ascent-override: 80.63%;
  descent-override: 26.69%;
  line-gap-override: 0.00%;
  /* Booking 400 normal: metric-matched Arial for RatioBooking-Regular.woff2 */
}
@font-face {
  font-family: 'Ratio Booking Fallback 2';
  font-style: normal;
  font-weight: 400;
  src: local('Helvetica');
  size-adjust: 93.18%;
  ascent-override: 80.63%;
  descent-override: 26.69%;
  line-gap-override: 0.00%;
  /* Booking 400 normal: metric-matched Helvetica for RatioBooking-Regular.woff2 */
}
@font-face {
  font-family: 'Ratio Bastion Label Fallback';
  font-style: normal;
  font-weight: 600;
  src: local('Arial Bold'), local('Arial-BoldMT');
  size-adjust: 92.50%;
  ascent-override: 110.82%;
  descent-override: 29.73%;
  line-gap-override: 0.00%;
  /* Bastion Label 600 normal: metric-matched Arial Bold for RatioBastion-Label.woff2 */
}
@font-face {
  font-family: 'Ratio Bastion Label Fallback 2';
  font-style: normal;
  font-weight: 600;
  src: local('Helvetica Bold'), local('Helvetica-Bold');
  size-adjust: 92.49%;
  ascent-override: 110.82%;
  descent-override: 29.73%;
  line-gap-override: 0.00%;
  /* Bastion Label 600 normal: metric-matched Helvetica Bold for RatioBastion-Label.woff2 */
}
@font-face {
  font-family: 'Ratio Mono Fallback';
  font-style: normal;
  font-weight: 400;
  src: local('Menlo Regular'), local('Menlo-Regular');
  size-adjust: 86.54%;
  ascent-override: 86.90%;
  descent-override: 28.66%;
  line-gap-override: 0.00%;
  /* Mono 400 normal: metric-matched Menlo Regular for RatioMono-Regular.woff2 */
}
@font-face {
  font-family: 'Ratio Mono Fallback 2';
  font-style: normal;
  font-weight: 400;
  src: local('Courier New'), local('CourierNewPSMT');
  size-adjust: 86.82%;
  ascent-override: 86.62%;
  descent-override: 28.57%;
  line-gap-override: 0.00%;
  /* Mono 400 normal: metric-matched Courier New for RatioMono-Regular.woff2 */
}
@font-face {
  font-family: 'Ratio Mono Fallback';
  font-style: normal;
  font-weight: 700;
  src: local('Menlo Bold'), local('Menlo-Bold');
  size-adjust: 86.54%;
  ascent-override: 86.90%;
  descent-override: 28.66%;
  line-gap-override: 0.00%;
  /* Mono 700 normal: metric-matched Menlo Bold for RatioMono-Bold.woff2 */
}
@font-face {
  font-family: 'Ratio Mono Fallback 2';
  font-style: normal;
  font-weight: 700;
  src: local('Courier New Bold'), local('CourierNewPS-BoldMT');
  size-adjust: 86.82%;
  ascent-override: 86.62%;
  descent-override: 28.57%;
  line-gap-override: 0.00%;
  /* Mono 700 normal: metric-matched Courier New Bold for RatioMono-Bold.woff2 */
}
