/* ============================================================
   USA Times — Ride Booking Polish  ·  iOS-matched redesign 2026-05-25
   Comprehensive visual upgrade for /ride/* checkout. Pure CSS, no
   markup changes. Loads AFTER the design system, scoped to
   body.usat-polished.usat-on-checkout to win specificity cleanly.

   Aesthetic ported from the iOS member app (Theme.swift): clean
   white canvas, whisper-cream cards, cool blue-gray fills, near-
   black ink, Fraunces serif headlines + Inter UI, USA Times blue
   #0A3F93 as the single accent. Editorial but calm.

   Tokens are declared once on the scope and referenced everywhere
   so the palette stays consistent with usat-airport-booking.css.
   ============================================================ */

body.usat-polished.usat-on-checkout {
    --co-bg:        #FFFFFF;   /* page canvas */
    --co-card:      #FBFAF6;   /* whisper-cream card */
    --co-soft:      #ECEFF5;   /* cool blue-gray fill (inputs, tabs) */
    --co-ink:       #101014;   /* near-black text */
    --co-muted:     #848E9F;   /* secondary text */
    --co-rule:      #E4E7ED;   /* hairline */
    --co-border:    #D4D9E2;   /* stronger control border */
    --co-border-hi: #C2C8D2;   /* hover border */
    --co-blue:      #0A3F93;   /* USA Times blue */
    --co-blue-dk:   #082E6B;   /* pressed blue */
    --co-blue-tint: #F0F4FC;   /* blue wash */
    --co-gold:      #B89556;   /* star glyph */
    --co-placeholder:#A8AFBC;
}

/* ============================================================
   BASE — body, container, vertical rhythm
   ============================================================ */

body.usat-polished.usat-on-checkout {
    background: var(--co-bg);
    color: var(--co-ink);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

body.usat-polished.usat-on-checkout .usat-co-wrap {
    max-width: 960px;
    margin: 0 auto;
    padding: 56px 24px 96px;
}

@media (max-width: 720px) {
    body.usat-polished.usat-on-checkout .usat-co-wrap {
        padding: 32px 20px 80px;
    }
}

/* ============================================================
   HEADER — slim, branded
   ============================================================ */

body.usat-polished.usat-on-checkout header,
body.usat-polished.usat-on-checkout .wp-site-blocks > .wp-block-group:first-child {
    background: #FFFFFF !important;
    border-bottom: 1px solid var(--co-rule) !important;
    box-shadow: 0 1px 3px rgba(16, 16, 20, 0.03) !important;
    padding: 16px 32px !important;
}

@media (max-width: 720px) {
    body.usat-polished.usat-on-checkout header,
    body.usat-polished.usat-on-checkout .wp-site-blocks > .wp-block-group:first-child {
        padding: 12px 20px !important;
    }
}

body.usat-polished.usat-on-checkout .wp-block-site-logo {
    line-height: 0 !important;
}

body.usat-polished.usat-on-checkout .wp-block-site-logo img {
    height: 32px !important;
    width: auto !important;
    aspect-ratio: auto !important;
}

/* Header phone (right-side CTA) */
body.usat-polished.usat-on-checkout .usat-header-phone {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border: 1px solid var(--co-border);
    border-radius: 999px;
    color: var(--co-ink) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 500;
    text-decoration: none;
    background: transparent;
    transition: all 140ms ease;
}

body.usat-polished.usat-on-checkout .usat-header-phone:hover {
    background: var(--co-soft);
    border-color: var(--co-ink);
}

body.usat-polished.usat-on-checkout .usat-phone-ico {
    width: 14px;
    height: 14px;
    color: var(--co-blue);
}

/* ============================================================
   TRIP CHIP — trip-summary ticket card
   ============================================================ */

body.usat-polished.usat-on-checkout .usat-trip-chip {
    display: flex !important;
    align-items: center;
    gap: 16px;
    padding: 18px 24px !important;
    background: var(--co-card) !important;
    border: 1px solid var(--co-rule) !important;
    border-radius: 16px !important;
    box-shadow:
        0 1px 2px rgba(16, 16, 20, 0.04),
        0 8px 28px rgba(16, 16, 20, 0.05) !important;
    color: var(--co-ink) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 15px !important;
    font-weight: 500;
    width: 100%;
    margin: 0 0 40px;
    cursor: pointer;
    transition: all 200ms cubic-bezier(.2,.8,.2,1);
}

body.usat-polished.usat-on-checkout .usat-trip-chip:hover {
    transform: translateY(-1px);
    box-shadow:
        0 2px 4px rgba(16, 16, 20, 0.06),
        0 16px 44px rgba(16, 16, 20, 0.09) !important;
    border-color: var(--co-border-hi) !important;
}

body.usat-polished.usat-on-checkout .usat-trip-chip-content {
    font-variant-numeric: tabular-nums lining-nums;
    letter-spacing: 0.005em;
}

/* Trip chip skeleton shimmer */
body.usat-polished.usat-on-checkout .usat-trip-chip-content:empty,
body.usat-polished.usat-on-checkout .usat-trip-chip.is-loading .usat-trip-chip-content {
    width: 320px;
    max-width: 70%;
    height: 16px;
    border-radius: 8px;
    background: linear-gradient(90deg, var(--co-soft) 0%, #F6F8FB 50%, var(--co-soft) 100%);
    background-size: 200% 100%;
    animation: usat-shimmer 1.6s infinite ease-in-out;
    color: transparent;
}

@keyframes usat-shimmer {
    0% { background-position: 200% 50%; }
    100% { background-position: -200% 50%; }
}

/* ============================================================
   STEPPER — refined progress indicator
   ============================================================ */

body.usat-polished.usat-on-checkout .usat-co-stepper {
    margin: 0 0 64px;
}

body.usat-polished.usat-on-checkout .usat-co-stepper ol {
    list-style: none;
    padding: 0;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    position: relative;
    gap: 0;
    max-width: 560px;
}

body.usat-polished.usat-on-checkout .usat-co-stepper li {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 12px;
    position: relative;
    z-index: 2;
}

body.usat-polished.usat-on-checkout .usat-co-stepper .dot {
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    font-weight: 600;
    background: #FFFFFF !important;
    border: 1.5px solid var(--co-border) !important;
    color: var(--co-muted) !important;
    z-index: 2;
    transition: all 280ms cubic-bezier(.2,.8,.2,1);
}

body.usat-polished.usat-on-checkout .usat-co-stepper li.done .dot {
    background: var(--co-blue) !important;
    border-color: var(--co-blue) !important;
    color: #FFFFFF !important;
}

body.usat-polished.usat-on-checkout .usat-co-stepper li.current .dot {
    background: #FFFFFF !important;
    border-color: var(--co-blue) !important;
    border-width: 2px !important;
    color: var(--co-blue) !important;
    box-shadow: 0 0 0 6px rgba(10, 63, 147, 0.10);
    transform: scale(1.06);
}

body.usat-polished.usat-on-checkout .usat-co-stepper .label {
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.14em !important;
    color: var(--co-muted);
    transition: color 200ms ease;
}

body.usat-polished.usat-on-checkout .usat-co-stepper li.current .label {
    color: var(--co-ink);
}

body.usat-polished.usat-on-checkout .usat-co-stepper li.done .label {
    color: var(--co-blue);
}

/* Progress line connecting dots */
body.usat-polished.usat-on-checkout .usat-co-stepper ol::before {
    content: '';
    position: absolute;
    top: 18px;
    left: 16.66%;
    right: 16.66%;
    height: 1.5px;
    background: var(--co-rule);
    z-index: 1;
}

body.usat-polished.usat-on-checkout .usat-co-stepper ol::after {
    content: '';
    position: absolute;
    top: 18px;
    left: 16.66%;
    height: 1.5px;
    background: linear-gradient(90deg, var(--co-blue), #1E5DBC);
    z-index: 1;
    transition: width 380ms cubic-bezier(.2,.8,.2,1);
    width: 33.33%;
}

body.usat-polished.usat-on-checkout .usat-co-stepper ol[data-progress="0"]::after   { width: 0%; }
body.usat-polished.usat-on-checkout .usat-co-stepper ol[data-progress="33"]::after  { width: 16.66%; }
body.usat-polished.usat-on-checkout .usat-co-stepper ol[data-progress="50"]::after  { width: 33.33%; }
body.usat-polished.usat-on-checkout .usat-co-stepper ol[data-progress="66"]::after  { width: 50%; }
body.usat-polished.usat-on-checkout .usat-co-stepper ol[data-progress="100"]::after { width: 66.66%; }

/* ============================================================
   STEP HEADER — eyebrow + display headline
   ============================================================ */

body.usat-polished.usat-on-checkout .usat-co-step {
    max-width: 720px;
    margin: 0 auto;
}

body.usat-polished.usat-on-checkout .usat-co-step-eyebrow {
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em !important;
    color: var(--co-muted) !important;
    margin: 0 0 8px !important;
}

body.usat-polished.usat-on-checkout .usat-co-step-h {
    font-family: 'Fraunces', Georgia, serif !important;
    font-size: 44px !important;
    font-weight: 600 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.02em !important;
    color: var(--co-ink) !important;
    margin: 0 0 48px !important;
}

@media (max-width: 720px) {
    body.usat-polished.usat-on-checkout .usat-co-step-h {
        font-size: 32px !important;
        margin-bottom: 32px !important;
    }
}

/* Step 3 gets a slightly smaller H1 — execution mode, less air */
body.usat-polished.usat-on-checkout .usat-co-stepper ol[data-progress="100"] ~ * .usat-co-step-h {
    font-size: 36px !important;
}

/* ============================================================
   CARDS — primary container element
   ============================================================ */

body.usat-polished.usat-on-checkout .usat-co-card {
    background: var(--co-card) !important;
    border: 1px solid var(--co-rule) !important;
    border-radius: 18px !important;
    padding: 32px !important;
    box-shadow:
        0 1px 2px rgba(16, 16, 20, 0.03),
        0 8px 24px rgba(16, 16, 20, 0.05) !important;
    transition: box-shadow 280ms ease;
}

@media (max-width: 720px) {
    body.usat-polished.usat-on-checkout .usat-co-card {
        padding: 24px !important;
        border-radius: 16px !important;
    }
}

body.usat-polished.usat-on-checkout .usat-co-h2 {
    font-family: 'Fraunces', Georgia, serif !important;
    font-size: 24px !important;
    font-weight: 600 !important;
    color: var(--co-ink) !important;
    margin: 0 0 20px !important;
    line-height: 1.25;
    letter-spacing: -0.01em;
}

/* Two-column layout */
body.usat-polished.usat-on-checkout .usat-co-twocol {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 32px;
}

@media (max-width: 800px) {
    body.usat-polished.usat-on-checkout .usat-co-twocol {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

/* Primary recommended card gets a refined accent */
body.usat-polished.usat-on-checkout .usat-co-twocol > .usat-co-card:first-child {
    border-left: none !important;
    position: relative;
}

body.usat-polished.usat-on-checkout .usat-co-twocol > .usat-co-card:first-child::before {
    content: 'Recommended';
    position: absolute;
    top: -10px;
    left: 24px;
    background: var(--co-blue);
    color: #FFFFFF;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    padding: 5px 12px;
    border-radius: 999px;
}

/* ============================================================
   SSO BUTTONS — equal-width row
   ============================================================ */

body.usat-polished.usat-on-checkout .usat-sso-toprow,
body.usat-polished.usat-on-checkout .usat-sso-stack-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 28px;
}

@media (max-width: 480px) {
    body.usat-polished.usat-on-checkout .usat-sso-toprow,
    body.usat-polished.usat-on-checkout .usat-sso-stack-row {
        grid-template-columns: 1fr;
    }
}

body.usat-polished.usat-on-checkout .usat-sso-row {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 52px !important;
    padding: 0 20px !important;
    background: #FFFFFF !important;
    color: var(--co-ink) !important;
    border: 1px solid var(--co-border) !important;
    border-radius: 999px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    cursor: pointer;
    transition: all 140ms cubic-bezier(.2,.8,.2,1) !important;
    box-shadow: 0 1px 2px rgba(16, 16, 20, 0.03);
}

body.usat-polished.usat-on-checkout .usat-sso-row:hover {
    background: var(--co-soft) !important;
    border-color: var(--co-ink) !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(16, 16, 20, 0.08);
}

body.usat-polished.usat-on-checkout .usat-sso-apple {
    background: #000000 !important;
    color: #FFFFFF !important;
    border-color: #000000 !important;
}

body.usat-polished.usat-on-checkout .usat-sso-apple:hover {
    background: #1A1A1A !important;
    border-color: #1A1A1A !important;
}

body.usat-polished.usat-on-checkout .usat-sso-ico {
    display: inline-flex;
    align-items: center;
}

body.usat-polished.usat-on-checkout .usat-sso-ico svg {
    width: 18px;
    height: 18px;
}

/* "or use email" divider */
body.usat-polished.usat-on-checkout .usat-sso-divider {
    display: grid !important;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 16px;
    margin: 28px 0 !important;
    color: var(--co-muted);
    font-size: 11px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em;
}

body.usat-polished.usat-on-checkout .usat-sso-divider::before,
body.usat-polished.usat-on-checkout .usat-sso-divider::after {
    content: '';
    height: 1px;
    background: var(--co-rule);
}

body.usat-polished.usat-on-checkout .usat-sso-divider span {
    padding: 0;
}

/* ============================================================
   FORMS — inputs
   ============================================================ */

body.usat-polished.usat-on-checkout .usat-co-form {
    display: grid;
    gap: 16px;
}

body.usat-polished.usat-on-checkout .usat-co-form label {
    display: block;
    margin: 0;
}

body.usat-polished.usat-on-checkout .usat-co-label {
    display: block !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 12px !important;
    font-weight: 600;
    color: var(--co-muted) !important;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin: 0 0 6px !important;
}

body.usat-polished.usat-on-checkout .usat-co-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

@media (max-width: 480px) {
    body.usat-polished.usat-on-checkout .usat-co-row {
        grid-template-columns: 1fr;
    }
}

body.usat-polished.usat-on-checkout .usat-co-form input,
body.usat-polished.usat-on-checkout .usat-co-form select,
body.usat-polished.usat-on-checkout .usat-co-form textarea,
body.usat-polished.usat-on-checkout .usat-pay-input {
    width: 100%;
    height: 52px !important;
    padding: 0 16px !important;
    background: var(--co-soft) !important;
    border: 1px solid transparent !important;
    border-radius: 12px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 16px !important;
    color: var(--co-ink) !important;
    line-height: 1.2;
    transition: all 140ms ease;
}

body.usat-polished.usat-on-checkout .usat-co-form input::placeholder,
body.usat-polished.usat-on-checkout .usat-pay-input::placeholder {
    color: var(--co-placeholder);
}

body.usat-polished.usat-on-checkout .usat-co-form input:focus,
body.usat-polished.usat-on-checkout .usat-co-form input:focus-visible,
body.usat-polished.usat-on-checkout .usat-co-form select:focus,
body.usat-polished.usat-on-checkout .usat-co-form textarea:focus,
body.usat-polished.usat-on-checkout .usat-pay-input:focus {
    outline: none !important;
    background: #FFFFFF !important;
    border-color: var(--co-blue) !important;
    box-shadow: 0 0 0 4px rgba(10, 63, 147, 0.10) !important;
}

/* ============================================================
   AUTH TABS (Email / Phone toggle) — iOS segmented control
   ============================================================ */

body.usat-polished.usat-on-checkout .usat-co-authtabs {
    display: flex;
    gap: 4px;
    background: var(--co-soft);
    padding: 4px;
    border-radius: 12px;
    margin-bottom: 20px;
}

body.usat-polished.usat-on-checkout .usat-co-authtab {
    flex: 1;
    height: 40px;
    background: transparent;
    border: none;
    border-radius: 9px;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: var(--co-muted);
    cursor: pointer;
    transition: all 200ms ease;
}

body.usat-polished.usat-on-checkout .usat-co-authtab.active {
    background: #FFFFFF;
    color: var(--co-ink);
    font-weight: 600;
    box-shadow: 0 1px 3px rgba(16, 16, 20, 0.10);
}

/* ============================================================
   BUTTONS — primary CTA, secondary, outline
   ============================================================ */

body.usat-polished.usat-on-checkout .usat-co-btn,
body.usat-polished.usat-on-checkout .usat-pay-submit {
    appearance: none !important;
    -webkit-appearance: none !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 56px !important;
    padding: 0 32px !important;
    border-radius: 999px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    letter-spacing: 0.005em;
    line-height: 1.2;
    cursor: pointer;
    transition: all 160ms cubic-bezier(.2,.8,.2,1) !important;
    border: 1.5px solid transparent !important;
    white-space: nowrap;
    text-decoration: none;
}

body.usat-polished.usat-on-checkout .usat-co-btn-primary,
body.usat-polished.usat-on-checkout .usat-pay-submit {
    background: var(--co-blue) !important;
    color: #FFFFFF !important;
    border-color: var(--co-blue) !important;
    box-shadow: 0 2px 8px rgba(10, 63, 147, 0.20);
}

body.usat-polished.usat-on-checkout .usat-co-btn-primary:hover,
body.usat-polished.usat-on-checkout .usat-pay-submit:hover {
    background: var(--co-blue-dk) !important;
    border-color: var(--co-blue-dk) !important;
    box-shadow: 0 6px 20px rgba(10, 63, 147, 0.30) !important;
    transform: translateY(-1px);
}

body.usat-polished.usat-on-checkout .usat-co-btn-outline {
    background: #FFFFFF !important;
    color: var(--co-blue) !important;
    border-color: var(--co-blue) !important;
}

body.usat-polished.usat-on-checkout .usat-co-btn-outline:hover {
    background: var(--co-blue-tint) !important;
}

/* Guest form's primary submit (recommended path) */
body.usat-polished.usat-on-checkout #usat-co-guest-form .usat-co-btn,
body.usat-polished.usat-on-checkout #usat-co-guest-form button[type="submit"] {
    background: var(--co-blue) !important;
    color: #FFFFFF !important;
    border-color: var(--co-blue) !important;
    box-shadow: 0 2px 8px rgba(10, 63, 147, 0.20);
    width: 100%;
    margin-top: 8px;
}

body.usat-polished.usat-on-checkout #usat-co-guest-form button[type="submit"]:hover {
    background: var(--co-blue-dk) !important;
    border-color: var(--co-blue-dk) !important;
    box-shadow: 0 6px 20px rgba(10, 63, 147, 0.30) !important;
    transform: translateY(-1px);
}

/* Disabled state */
body.usat-polished.usat-on-checkout .usat-co-btn:disabled,
body.usat-polished.usat-on-checkout button:disabled {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
    transform: none !important;
    box-shadow: none !important;
}

/* ============================================================
   PAYMENT (step 3) — clean Stripe element + apple pay
   ============================================================ */

body.usat-polished.usat-on-checkout .usat-pay-card-clean {
    padding: 32px !important;
}

body.usat-polished.usat-on-checkout .usat-pay-loading-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 24px;
    gap: 20px;
}

body.usat-polished.usat-on-checkout .usat-pay-spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--co-rule);
    border-top-color: var(--co-blue);
    border-radius: 50%;
    animation: usat-spin 800ms linear infinite;
}

@keyframes usat-spin {
    to { transform: rotate(360deg); }
}

body.usat-polished.usat-on-checkout .usat-pay-loading-label {
    color: var(--co-muted);
    font-size: 14px;
    margin: 0;
}

body.usat-polished.usat-on-checkout .usat-pay-intro {
    color: var(--co-muted);
    font-size: 13px;
    margin: 0 0 24px;
    line-height: 1.5;
}

body.usat-polished.usat-on-checkout .usat-pay-intro strong {
    color: var(--co-ink);
    font-weight: 600;
}

body.usat-polished.usat-on-checkout .usat-pay-field {
    margin-bottom: 16px;
}

/* ============================================================
   STAR PRICE DISPLAY — gold accent
   ============================================================ */

body.usat-polished.usat-on-checkout .usat-fare-amount,
body.usat-polished.usat-on-checkout .usat-pay-stars-amount {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 600;
    color: var(--co-ink);
    font-variant-numeric: tabular-nums lining-nums;
}

body.usat-polished.usat-on-checkout .star-glyph,
body.usat-polished.usat-on-checkout .usat-star-ico {
    color: var(--co-gold);
}

/* ============================================================
   FOOTER — minimal italic serif
   ============================================================ */

body.usat-polished.usat-on-checkout footer,
body.usat-polished.usat-on-checkout .wp-block-template-part:last-child,
body.usat-polished.usat-on-checkout .wp-site-blocks > .wp-block-group:last-child {
    background: transparent !important;
    border-top: 1px solid var(--co-rule) !important;
    padding: 32px 24px !important;
    margin-top: 64px !important;
    text-align: center;
}

body.usat-polished.usat-on-checkout footer * {
    font-family: 'Fraunces', Georgia, serif !important;
    font-style: italic;
    font-size: 13px !important;
    color: var(--co-muted) !important;
}

/* ============================================================
   GLOBAL OVERRIDES — kill any FSE theme noise
   ============================================================ */

/* Hide the services nav (Airport/Hourly/Joyride) during checkout */
body.usat-polished.usat-on-checkout .usat-header-services {
    display: none !important;
}

/* Hide the LOG IN pill on /ride/* unconditionally */
body.usat-polished.usat-on-checkout .wp-block-loginout,
body.usat-polished.usat-on-checkout a.wp-block-loginout {
    display: none !important;
}

/* Hide WP block separator if it shows up */
body.usat-polished.usat-on-checkout .wp-block-separator {
    border-top-color: var(--co-rule) !important;
    border-top-width: 1px !important;
    margin: 32px 0 !important;
}

/* Inherit clean type on any WP-emitted block content */
body.usat-polished.usat-on-checkout p,
body.usat-polished.usat-on-checkout div,
body.usat-polished.usat-on-checkout span,
body.usat-polished.usat-on-checkout a,
body.usat-polished.usat-on-checkout label {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
}

body.usat-polished.usat-on-checkout h1,
body.usat-polished.usat-on-checkout h2,
body.usat-polished.usat-on-checkout h3 {
    font-family: 'Fraunces', Georgia, serif !important;
}

/* Selection */
body.usat-polished.usat-on-checkout ::selection {
    background: rgba(10, 63, 147, 0.18);
    color: var(--co-ink);
}

/* ============================================================
   ACCESSIBILITY — visible focus, motion-respect
   ============================================================ */

body.usat-polished.usat-on-checkout *:focus-visible {
    outline: 2px solid var(--co-blue) !important;
    outline-offset: 3px;
    border-radius: 6px;
}

body.usat-polished.usat-on-checkout button:focus-visible {
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
    body.usat-polished.usat-on-checkout *,
    body.usat-polished.usat-on-checkout *::before,
    body.usat-polished.usat-on-checkout *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}
