/* OCR v21.8 — shared screen typography and customer purchase journey.
   Screen-only rules preserve existing print and report-PDF formatting. */
:root { --ocr-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
@media screen {
  body.ocr-consistent { font-family: var(--ocr-font); font-size: 1.0625rem; line-height: 1.7; -webkit-font-smoothing: antialiased; }
  body.ocr-consistent :is(button,input,select,textarea) { font-family: var(--ocr-font); }
  body.ocr-consistent :is(h1,h2,h3,h4) { font-family: var(--ocr-font); font-weight: 650; letter-spacing: -.025em; text-wrap: pretty; }
  body.ocr-consistent h1 { font-size: clamp(2.25rem,4vw,3.5rem); line-height: 1.12; letter-spacing: -.035em; }
  body.ocr-consistent h2 { font-size: clamp(1.4rem,2.2vw,2rem); line-height: 1.3; }
  body.ocr-consistent h3 { font-size: 1.4rem; line-height: 1.35; }
  body.ocr-consistent :is(strong,b,summary,label,legend) { font-weight: 650; }
  body.ocr-consistent :is(.button,.rc-primary-button,.rc-action-button,.portal-button,.header-return,.nav-cta,.section-kicker,.portal-kicker,.rc-eyebrow,.eyebrow,.kicker,.detail-card-label,.package-eyebrow,.rc-back-link) { font-weight: 650; }
  body.ocr-consistent :is(.package-price-card > strong,.rc-price-row strong) { font-size: clamp(2rem,3vw,2.75rem); font-weight: 650; }
  body.ocr-consistent :is(.rc-purchase-layout,.ocr-commerce-grid) { grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); gap: clamp(32px,5vw,70px); }
  body.ocr-consistent .rc-purchase-hero { min-height: auto; padding: 135px 0 82px; }
  body.ocr-consistent .rc-purchase-intro > p:not(.rc-eyebrow) { font-size: 1.16rem; line-height: 1.75; }
  body.ocr-consistent .rc-included-list { gap: 15px; }
  body.ocr-consistent .rc-included-list li { font-size: 1.06rem; line-height: 1.65; }
  body.ocr-consistent .rc-order-card { border-radius: 25px; padding: clamp(26px,3vw,42px); }
  body.ocr-consistent .rc-access-card { text-align: left; }
  body.ocr-consistent .rc-access-card h1 { font-size: clamp(2rem,4vw,3rem); }
  body.ocr-consistent .rc-access-card > p { margin-left: 0; }
  body.ocr-consistent :is(.rc-workflow p,.download-grid p) { font-size: 1rem; line-height: 1.7; }
  body.ocr-consistent .customer-guide .file-name { font-family: var(--ocr-font); }
  body.ocr-consistent :is(.rc-results-heading,.readiness-intro) h1 { max-width: 950px; }
  body.ocr-consistent :is(.rc-section-heading h2,.readiness-guide h2) { font-size: clamp(1.4rem,2.2vw,2rem); }
  body.ocr-consistent :is(button,.button,.rc-action-button,.rc-primary-button):focus-visible,
  body.ocr-consistent :is(a,input,textarea,select,summary):focus-visible { outline: 3px solid #009ed7; outline-offset: 4px; }

  /* Compact shared header for checkout, downloads, help and questionnaire. */
  body.ocr-consistent .ocr-commerce-header { width: 100%; max-width: none; margin: 0; padding: 20px max(24px,calc((100vw - 1180px)/2)); display: flex; align-items: center; justify-content: space-between; gap: 24px; color: #14233f; background: #fff; border-bottom: 1px solid #dbe6f4; }
  body.ocr-consistent .ocr-commerce-brand { display: flex; align-items: center; gap: 13px; color: #081735; text-decoration: none; }
  body.ocr-consistent .ocr-commerce-brand img { flex: 0 0 48px; width: 48px; height: 48px; display: block; }
  body.ocr-consistent .ocr-commerce-brand strong { display: block; font-size: 1rem; line-height: 1.3; letter-spacing: -.015em; }
  body.ocr-consistent .ocr-brand-initials { color: #1559f5; font-size: 1.4rem; margin-right: 4px; }
  body.ocr-consistent .ocr-commerce-brand small { display: block; margin: 3px 0 0; color: #52637c; font-size: .82rem; font-weight: 400; }
  body.ocr-consistent .ocr-commerce-header nav { display: flex; gap: 24px; flex-wrap: wrap; }
  body.ocr-consistent .ocr-commerce-header nav a { font-size: .94rem; font-weight: 650; color: #344965; text-decoration: none; }
  body.ocr-consistent .ocr-commerce-header nav a:hover { color: #1559f5; }

  body.ocr-utility-page, body.ocr-questionnaire-page { margin: 0; background: #f5f9ff; color: #14233f; }
  body.ocr-utility-page *, body.ocr-questionnaire-page * { box-sizing: border-box; }
  body.ocr-utility-page main { max-width: 1008px; margin: 60px auto 80px; padding: 0 24px; }
  body.ocr-utility-page main > h1 { margin: 0 0 28px; color: #081735; }
  body.ocr-utility-page .panel { background: #fff; border: 1px solid #dbe6f4; border-radius: 22px; padding: clamp(24px,4vw,38px); box-shadow: 0 18px 50px #0817350b; }
  body.ocr-utility-page .panel + .panel { margin-top: 28px; }
  body.ocr-utility-page .panel > h2:first-child { margin-top: 0; }
  body.ocr-utility-page :is(p,li) { font-size: 1.06rem; line-height: 1.75; }
  body.ocr-utility-page li + li { margin-top: 12px; }
  body.ocr-utility-page :is(a) { color: #1559f5; }
  body.ocr-utility-page :is(button,.links a,.download-grid a), body.ocr-questionnaire-page :is(button,.button) { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 13px 22px; border: 1px solid transparent; border-radius: 999px; background: linear-gradient(135deg,#1559f5,#0876ff); color: #fff; font: 650 1rem/1.45 var(--ocr-font); text-align: center; text-decoration: none; cursor: pointer; }
  body.ocr-utility-page :is(button,.links a,.download-grid a):hover, body.ocr-questionnaire-page :is(button,.button):hover { background: #104cd0; }
  body.ocr-utility-page :is(button,.links a).secondary, body.ocr-questionnaire-page :is(button,.button).secondary { color: #17386c; background: #e7efff; border-color: #cfddf0; }
  body.ocr-consistent :is(button,.button):disabled { opacity: .6; cursor: not-allowed; }
  body.ocr-utility-page label { font-weight: 400; line-height: 1.7; }
  body.ocr-utility-page input[type=checkbox] { width: 19px; height: 19px; margin: 4px 8px 0 0; vertical-align: top; accent-color: #1559f5; }
  body.ocr-utility-page footer { max-width: 1008px; padding: 0 24px; margin: 45px auto; color: #52637c; font-size: .875rem; line-height: 1.6; }
  body.ocr-questionnaire-page :is(.panel,.field) { border-color: #dbe6f4; border-radius: 20px; padding: clamp(22px,3vw,32px); }
  body.ocr-questionnaire-page :is(input:not([type=checkbox]),textarea,select) { font-size: 1.0625rem; line-height: 1.65; border-radius: 10px; }
  body.ocr-questionnaire-page .hint { font-size: .98rem; line-height: 1.65; }
  body.ocr-questionnaire-page .consent { font-weight: 400; }
  body.ocr-questionnaire-page :is(.panel,.field) > h2:first-child { margin-top: 0; }
  body.ocr-questionnaire-page .notice { border-radius: 0 14px 14px 0; }

  /* Starter checkout uses the same blue hero / white card layout as package pages. */
  body.ocr-checkout-page main { max-width: none; padding: 0; margin: 0; }
  body.ocr-checkout-page .ocr-commerce-hero { padding: 72px 24px; color: white; background: radial-gradient(circle at 83% 38%,rgba(5,188,235,.24),transparent 35%),linear-gradient(120deg,#050f25,#081735 58%,#0b3d8b); }
  body.ocr-checkout-page .ocr-commerce-grid { max-width: 1180px; margin: auto; display: grid; align-items: center; }
  body.ocr-checkout-page .ocr-commerce-grid > * { min-width: 0; }
  body.ocr-checkout-page .ocr-commerce-intro h1 { color: #fff; margin: 18px 0 26px; }
  body.ocr-checkout-page .ocr-commerce-intro > p:not(.eyebrow) { font-size: 1.25rem; color: #d7e5fb; }
  body.ocr-checkout-page .ocr-commerce-intro .eyebrow { color: #7ae6fa; font-size: .88rem; font-weight: 650; letter-spacing: .14em; }
  body.ocr-checkout-page .ocr-back-link { display: inline-block; color: #d8e8ff; font-size: .98rem; font-weight: 650; margin-bottom: 20px; text-decoration: none; border-bottom: 1px solid #8294ab; }
  body.ocr-checkout-page .panel { color: #14233f; box-shadow: 0 32px 90px #00051955; }
  body.ocr-checkout-page [data-checkout-button] { width: 100%; }
  body.ocr-checkout-page .ocr-checkout-help { max-width: 1008px; margin: 24px auto; padding: 0 24px; }
  body.ocr-consistent [hidden] { display: none !important; }
  @media (max-width: 960px) {
    body.ocr-consistent :is(.rc-purchase-layout,.ocr-commerce-grid) { grid-template-columns: 1fr; gap: 38px; }
  }
  @media (max-width: 650px) {
    body.ocr-consistent h1 { font-size: clamp(2rem,7vw,2.75rem); }
    body.ocr-consistent .ocr-commerce-header { padding: 16px 20px; flex-wrap: wrap; gap: 14px; }
    body.ocr-consistent .ocr-commerce-header nav { gap: 20px; }
    body.ocr-utility-page main { margin: 34px auto 50px; padding: 0 18px; }
    body.ocr-checkout-page main { margin: 0; padding: 0; }
    body.ocr-checkout-page .ocr-commerce-hero { padding: 44px 18px; }
    body.ocr-utility-page .links { flex-direction: column; }
    body.ocr-consistent .rc-purchase-hero { padding: 116px 0 60px; }
    body.ocr-consistent :is(.panel,.field,.rc-order-card,.rc-access-card) { overflow-wrap: anywhere; }
  }
}
@media screen {
  body.ocr-consistent .rc-access-main > .panel { position: relative; width: min(100%,760px); margin: 28px auto 0; padding: clamp(24px,4vw,38px); color: #14233f; background: #fff; border: 1px solid #dbe6f4; border-radius: 22px; }
  body.ocr-consistent .rc-access-main > .panel h2 { margin-top: 0; color: #081735; }
  body.ocr-consistent .rc-access-main > .panel a { color: #1559f5; text-decoration: underline; }
}
