/* Public purchase and account journey. Keep portal styling independent. */
.landing-layout { --journey-green: #0057e6; --journey-muted: #425774; }
.landing-layout :is(a, button, input, summary):focus-visible { outline: 3px solid #234676; outline-offset: 4px; }
.landing-layout :is(button, input):disabled { cursor: not-allowed; opacity: .65; }
.landing-layout .landing-button { min-height: 44px; }
.landing-shop #pricing { padding-top: 4rem; }
.landing-shop #pricing h1 { color: #17263c; font-size: clamp(2rem, 4vw, 3.3rem); line-height: 1.12; letter-spacing: -.045em; margin: .8rem 0 1rem; }
.landing-sales .landing-pricing-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 1.25rem; }
.landing-sales .landing-pricing-card { padding: 1.6rem; }
.landing-sales .landing-pricing-card-top { min-height: 7.5rem; }
.landing-sales .landing-pricing-card .landing-plan-label { line-height: 1.6; letter-spacing: .04em; }
.landing-sales .landing-pricing-card .landing-price strong { font-size: clamp(2rem, 3vw, 2.8rem); }
.landing-sales .landing-pricing-card ul { margin-bottom: 1.8rem; }
.landing-sales .landing-plan-button { margin-top: auto; }
.landing-sales .landing-pricing-note { color: #374962; }
.shop-page { background: #f2f5f8; color: #192535; overflow: clip; }
.shop-page .landing-shell { width: min(100% - 3rem, 70rem); }
.shop-header { min-height: 5.5rem; border-bottom-color: #d7dfe9; }
.shop-header .landing-brand { width: 8.5rem; padding: .35rem 0; border-radius: 0; box-shadow: none; background: transparent; }
.shop-main { padding-top: 2rem; }
.shop-progress { max-width: 38rem; margin-bottom: 2rem; }
.shop-progress span { color: #475d7d; font-weight: 600; }
.shop-progress span.active b { background: #0057e6; border-color: #0057e6; }
.shop-grid { grid-template-columns: minmax(0, 1.5fr) minmax(18rem, 1fr); gap: 1.75rem; }
.shop-panel { background: #fff; border: 1px solid #d7dfe9; border-radius: 1rem; box-shadow: 0 4px 20px #17263c06; backdrop-filter: none; }
.shop-form-panel, .shop-summary { padding: clamp(1.25rem, 3vw, 2rem); }
.shop-form-panel h1, .shop-message-panel h1 { max-width: 22ch; font-size: clamp(1.8rem, 3vw, 2.4rem); line-height: 1.15; letter-spacing: -.04em; }
.shop-page .landing-eyebrow { color: #425774; letter-spacing: .1em; }
.shop-page .landing-eyebrow > span { background: #234676; }
.shop-lede { color: #425774; font-size: .95rem; line-height: 1.7; }
.shop-account-choice { padding: 1rem; background: #f4f6f9; border-color: #d7dfe9; border-radius: .65rem; margin-top: 1.5rem; }
.shop-account-choice p, .shop-signed-in p { line-height: 1.6; }
.shop-choice-icon { background: #e6ebf1; border-radius: .6rem; }
.shop-page .landing-button { border-radius: .6rem; min-height: 2.9rem; box-shadow: none; font-size: .9rem; }
.shop-page .landing-button-primary { color: #fff !important; background: #0057e6; border-color: #0057e6; }
.shop-page .landing-button-primary:hover,
.shop-page .landing-button-primary:focus-visible { color: #fff !important; background: #10223b; border-color: #10223b; transform: none; }
.shop-page .landing-button-outline { color: #0057e6 !important; border-color: #abbacf; background: #fff; }
.shop-page .landing-button-outline:hover,
.shop-page .landing-button-outline:focus-visible { color: #fff !important; background: #0057e6; border-color: #0057e6; transform: none; }
.shop-page .landing-button:disabled { opacity: 1; }
.shop-page .landing-button-primary:disabled { color: #fff !important; background: #64748b; border-color: #64748b; }
.shop-page .landing-button-outline:disabled { color: #425774 !important; background: #f0f2f6; border-color: #becadb; }
.shop-divider { margin-block: 1.4rem; color: #4c6486; }
.shop-field label { text-transform: none; letter-spacing: 0; font-size: .88rem; color: #253243; }
.shop-input { min-height: 3rem; border-radius: .5rem; border-color: #b4c2d5; color: #192535; background: #fff; }
.shop-input:focus { border-color: #234676; box-shadow: 0 0 0 3px #23467618; }
.shop-field small, .shop-security-note, .shop-checkbox { color: #425774; line-height: 1.65; }
.shop-required-note { color: #425774; font-size: .8rem; margin: 0; }
.shop-policy-links { color: #173763; font-size: .78rem; line-height: 1.7; margin: 0; }
.shop-policy-links a { text-decoration: underline; text-underline-offset: .2em; }
.shop-checkbox { align-items: start; font-size: .83rem; }
.shop-checkbox input { accent-color: #0057e6; flex-shrink: 0; margin-top: .2rem; }
.shop-summary { background: #fff; color: #192535; position: sticky; top: 1.5rem; }
.shop-summary .landing-plan-label { color: #425774; letter-spacing: .1em; }
.shop-summary h2 { color: #192535; margin-bottom: .35rem; }
.shop-page .shop-change-plan { display: inline-block; margin-bottom: 1rem; color: #173763; text-decoration: underline; text-underline-offset: .2em; font-size: .85rem; }
.shop-price { margin-top: .7rem; }
.shop-price strong { color: #192535; font-size: 2.6rem; }
.shop-price span, .shop-summary dt, .shop-summary li, .shop-total small { color: #425774; }
.shop-summary dd { color: #192535; overflow-wrap: anywhere; }
.shop-summary dl div { border-color: #dee4ec; }
.shop-total { padding: 1.1rem; background: #eaeff5; border-radius: .7rem; border: 1px solid #d6dee8; }
.shop-total span, .shop-total strong { color: #0057e6; }
.shop-total strong { font-size: 1.9rem; }
.shop-summary li span { color: #234676; }
.shop-safe-note { padding: 1rem; background: #f2f5f8; border-radius: .6rem; color: #425774; }
.shop-safe-note p, .shop-safe-note strong, .shop-order-email, .shop-order-email strong { color: #384a63; line-height: 1.65; }
.shop-payment-placeholder { background: #f0f2f6; border-color: #d7dfe9; border-radius: .7rem; }
.shop-payment-placeholder > span { background: #0057e6; color: #fff; }
.public-account-page { display: flex; flex-direction: column; min-height: 100dvh; }
.public-account-main { width: min(100% - 2rem, 29rem); margin: 3rem auto; flex: 1; }
.public-account-main .dashboard-surface { max-width: none; background: #fff; padding: 2rem; border: 1px solid #d7dfe9; border-radius: 1rem; box-shadow: 0 6px 24px #17263c08; }
.public-account-main h2 { font-size: 1.85rem; letter-spacing: -.04em; line-height: 1.2; color: #192535; }
.public-account-main p { line-height: 1.7; }
.public-account-main label { text-transform: none; letter-spacing: 0; font-size: .875rem; color: #384a63; }
.public-account-main .form-control { min-height: 3rem; border: 1px solid #b4c2d5; border-radius: .5rem; padding: .7rem .85rem; }
.public-account-main .btn-primary { min-height: 3rem; background: #0057e6; border-color: #0057e6; color: #fff; border-radius: .6rem; }
.public-journey-footer { display: flex; justify-content: center; gap: 1.4rem; flex-wrap: wrap; padding: 1.5rem; color: #425774; font-size: .8rem; }
.public-journey-footer a { text-underline-offset: .2em; }
.landing-legal-page { background: #f2f5f8; }
.landing-legal-page .landing-header { background: #0057e6; }
.landing-legal-card { max-width: 52rem; border-radius: 1rem; box-shadow: 0 4px 20px #17263c06; }
.landing-legal-card p, .landing-legal-card li { line-height: 1.85; }
.landing-legal-card h2 { scroll-margin-top: 6rem; }
@media (max-width: 1000px) {
    .landing-sales .landing-pricing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .landing-sales .landing-nav { display: grid; grid-template-columns: 1fr auto; gap: .4rem 1rem; padding-block: .7rem; }
    .landing-sales .landing-nav .landing-nav-cta { display: none; }
    .landing-sales .landing-nav > .landing-button-light { grid-column: 2; grid-row: 1; }
    .landing-sales .landing-nav-links { grid-column: 1 / -1; grid-row: 2; width: 100%; justify-content: space-between; gap: .5rem; margin: 0; }
    .landing-sales .landing-nav-links a { padding-block: .65rem; font-size: .78rem; }
    .landing-shop #pricing { padding-top: 2rem; }
    .shop-page .landing-shell { width: calc(100% - 2rem); }
    .shop-grid { grid-template-columns: minmax(0, 1fr); }
    .shop-summary { position: static; }
    .shop-field-grid { grid-template-columns: 1fr; }
    .shop-progress { gap: .4rem; }
    .shop-progress span { gap: .3rem; font-size: .7rem; white-space: normal; }
    .shop-account-choice { align-items: start; flex-wrap: wrap; }
    .landing-sales .landing-pricing-grid { grid-template-columns: minmax(0, 1fr); }
    .landing-sales .landing-pricing-card-top { min-height: 0; }
    .public-account-main { margin-block: 1.5rem; }
    .public-account-main .dashboard-surface { padding: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
    .landing-layout *, .landing-layout *::before, .landing-layout *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
