/* Talvemo v4: the existing sage/teal identity, with a roomy document checkout.
   Kept separate from resume.css so UI typography never changes exported pages. */
[hidden] { display: none !important; }
.checkout-active { overflow: hidden; }
#checkout-screen { position: fixed; inset: 0; z-index: 45; overflow-y: auto; background: #fff; scrollbar-width: thin; font-size: 17px; color: var(--ink); }
.purchase-container { width: min(1160px, calc(100% - 64px)); margin-inline: auto; }
.purchase-header { border-bottom: 1px solid var(--line); background: white; }
.purchase-header-inner { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.purchase-header .brand { width: auto; }
.purchase-header .brand-label { font-size: 10px; }
.purchase-progress { display: flex; align-items: center; gap: 27px; list-style: none; margin: 0; padding: 0; color: #8a968f; font-size: 16px; }
.purchase-progress li { display: flex; align-items: center; gap: 9px; white-space: nowrap; }
.purchase-progress li:not(:last-child):after { content: ''; width: 32px; height: 1px; background: #dae5df; margin-left: 16px; }
.purchase-progress li>span { width: 30px; height: 30px; border-radius: 50%; border: 1px solid #dce5de; background: #f8faf7; display: grid; place-items: center; font-size: 14px; }
.purchase-progress button { padding: 0; border: 0; background: none; color: inherit; }
.purchase-progress .is-done { color: #618272; }
.purchase-progress .is-done>span { color: var(--accent); background: #edf5ef; border-color: #dae7dd; }
.purchase-progress .is-active { color: var(--accent); font-weight: 650; }
.purchase-progress .is-active>span { background: var(--accent); border-color: var(--accent); color: white; }
.purchase-local-badge { display: flex; align-items: center; gap: 7px; background: #f5f8f2; border: 1px solid #dfe8d8; border-radius: 20px; color: #677a56; padding: 8px 12px; font-size: 14px; white-space: nowrap; }
.purchase-heading { text-align: center; padding: 42px 0 35px; position: relative; }
.purchase-eyebrow { display: block; font-size: 12px; letter-spacing: 1.7px; font-weight: 650; color: #698879; line-height: 1.6; }
.purchase-heading h1 { font-size: clamp(34px,3.8vw,49px); line-height: 1.15; letter-spacing: -1.7px; font-weight: 650; margin: 12px 0 13px; color: #253e34; outline: none; }
.purchase-heading h1 span { color: var(--accent); }
.purchase-heading>p { color: #75857b; font-size: 19px; line-height: 1.6; margin: 0; }
.purchase-heading .purchase-back { position: absolute; top: 60px; left: 0; color: #6f8276; font-size: 15px; gap: 8px; }
.purchase-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.04fr); align-items: start; gap: 54px; padding-bottom: 53px; }
.purchase-preview-column { position: sticky; top: 24px; min-width: 0; }
.purchase-preview-card { border: 1px solid #dae4dd; border-radius: 16px; padding: 8px 8px 0; background: white; box-shadow: 0 8px 30px #244b3610; overflow: hidden; }
.purchase-ready { min-height: 53px; padding: 12px 15px; border-radius: 9px; background: #eef5ef; color: #436f5a; display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 16px; font-weight: 600; }
.purchase-ready>span:first-child { display: flex; align-items: center; gap: 9px; }
.purchase-ready svg { color: #4e886d; }
.purchase-file-tag { font-size: 12px; letter-spacing: .6px; border: 1px solid #d9e6dc; padding: 3px 8px; background: white; border-radius: 5px; color: #4e7162; }
.purchase-preview-stage { position: relative; display: flex; justify-content: center; align-items: flex-start; padding: 24px 24px 25px; margin-top: 8px; border-radius: 9px; background: #edf2ef; }
.purchase-paper { width: min(100%,350px); background: white; box-shadow: 0 6px 23px #243e321c,0 0 0 1px #dce5df; border-radius: 1px; overflow: hidden; }
.purchase-paper img { width: 100%; height: auto; display: block; }
.purchase-expand { position: absolute; right: 10px; top: 10px; background: #ffffffee; box-shadow: 0 0 0 1px #d8e2da; color: #6f8d7b; border-radius: 8px; width: 38px; height: 38px; }
.purchase-file-details { display: flex; align-items: center; gap: 14px; padding: 20px 17px 12px; min-width: 0; }
.purchase-file-details>div { min-width: 0; }
.purchase-file-details h2 { margin: 0 0 5px; font-size: 17px; line-height: 1.4; font-weight: 600; overflow-wrap: anywhere; color: #365547; }
.purchase-file-details p { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; font-size: 15px; color: #7a8b80; line-height: 1.5; }
.purchase-file-details p span { color: #afbbb0; }
.purchase-document-icon { width: 42px; height: 47px; flex-shrink: 0; background: #f2f6ef; border: 1px solid #e4ebdf; border-radius: 8px; display: grid; place-items: center; color: #7b9772; }
.purchase-preview-controls { display: flex; justify-content: space-between; align-items: center; gap: 12px; border-top: 1px solid #e7eee8; margin: 3px 12px 0; padding: 5px 0; }
.purchase-preview-controls .text-button { font-size: 14px; font-weight: 500; padding: 8px 0; }
.purchase-pages { display: flex; align-items: center; gap: 5px; }
.purchase-pages>span { font-size: 14px; min-width: 45px; text-align: center; color: #6a8170; }
.purchase-pages .icon-button { width: 36px; height: 36px; }
.purchase-preview-note { display: flex; gap: 14px; align-items: flex-start; margin: 24px 9px 0; color: #749180; }
.purchase-preview-note>svg { margin-top: 3px; }
.purchase-preview-note strong { color: #536f5e; font-size: 16px; font-weight: 600; }
.purchase-preview-note p { margin: 6px 0 0; font-size: 15px; line-height: 1.65; color: #7c8e80; }
.purchase-mobile-preview { display: none; }
.purchase-form-column { min-width: 0; }
.purchase-offer { display: flex; justify-content: space-between; align-items: center; gap: 22px; padding: 21px 24px; border-radius: 13px; border: 1px solid #dce7da; background: #f3f7ef; }
.purchase-offer .purchase-eyebrow { font-size: 12px; color: #6b8664; }
.purchase-offer h2 { font-size: 25px; line-height: 1.25; margin: 8px 0 0; font-weight: 600; color: #355540; letter-spacing: -.6px; }
.purchase-price { text-align: right; flex-shrink: 0; }
.purchase-price strong { display: block; font-size: 43px; letter-spacing: -1.7px; font-weight: 650; line-height: 1.2; color: #2c5f4c; }
.purchase-price span { display: block; color: #738568; font-size: 14px; margin-top: 6px; }
.purchase-benefits { list-style: none; margin: 21px 1px 23px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.purchase-benefits li { display: flex; gap: 10px; align-items: flex-start; font-size: 16px; color: #5c7564; line-height: 1.5; }
.purchase-benefits li svg { color: #689771; margin-top: 3px; }
.purchase-payment-card { border: 1px solid #dfe7e0; border-radius: 14px; overflow: hidden; background: white; }
.purchase-payment-heading { display: flex; align-items: center; justify-content: space-between; padding: 19px 24px; background: #fafcf8; border-bottom: 1px solid #e7ece5; gap: 12px; }
.purchase-payment-heading h2 { display: flex; align-items: center; gap: 10px; font-size: 19px; margin: 0; font-weight: 600; color: #446451; letter-spacing: -.25px; }
.checkout-demo-tag { display: inline-flex; align-items: center; font-size: 11px; font-weight: 600; letter-spacing: 1px; border: 1px solid #dce6d7; border-radius: 5px; padding: 4px 7px; color: #6a825d; background: #f3f7ed; }
.purchase-payment-body { padding: 21px 24px 22px; }
.purchase-demo-note { margin: 0 0 22px; display: flex; align-items: flex-start; gap: 9px; font-size: 14px; line-height: 1.6; color: #6f806b; background: #f6f9f2; border-radius: 7px; padding: 11px 12px; }
.purchase-demo-note svg { margin-top: 3px; }
.purchase-demo-note strong { font-weight: 600; }
.purchase-payment-body .field>label { font-size: 16px; color: #5b705f; font-weight: 500; }
.purchase-payment-body .field .optional { font-size: 14px; color: #8a998b; }
.purchase-payment-body .input { min-height: 51px; font-size: 17px; background: #f8faf7; border-color: #e0e8df; color: #405847; border-radius: 7px; }
.purchase-payment-body .input:focus { background: white; }
.purchase-payment-body .input:disabled { opacity: 1; color: #839280; -webkit-text-fill-color: #839280; background: #f8faf7; cursor: default; }
.purchase-payment-body .input::placeholder { opacity: 1; color: #9ca995; -webkit-text-fill-color: #9ca995; }
.purchase-payment-body .field-hint { color: #869481; font-size: 14px; }
.purchase-card-fields { margin: 20px 0 0; padding: 0; border: 0; min-width: 0; display: flex; flex-direction: column; gap: 17px; }
.purchase-input-icon { position: relative; }
.purchase-input-icon .input { padding-right: 45px; }
.purchase-input-icon svg { position: absolute; right: 14px; top: 16px; color: #9bad94; }
.purchase-field-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }
.purchase-total { display: flex; justify-content: space-between; align-items: center; gap: 15px; border-top: 1px solid #e6ece2; padding-top: 20px; margin-top: 24px; font-size: 17px; color: #48634d; }
.purchase-total strong { font-size: 23px; font-weight: 650; letter-spacing: -.3px; }
.purchase-total small { font-size: 14px; color: #819079; font-weight: 400; letter-spacing: 0; }
.purchase-pay-button { width: 100%; min-height: 55px; font-size: 18px; margin-top: 17px; border-radius: 8px; gap: 13px; }
.purchase-no-charge { text-align: center; color: #7b8f74; font-size: 14px; margin: 11px 0 0; line-height: 1.5; }
.purchase-disclosure { font-size: 16px; line-height: 1.75; color: #6d7f70; margin: 22px 2px 0; }
.purchase-disclosure strong { color: #4f6956; font-weight: 600; }
.inline-policy { border: 0; padding: 0; background: none; color: #3e7160; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.purchase-demo-tools { border-top: 1px solid #e6ede3; margin-top: 21px; padding-top: 16px; color: #7b8c73; font-size: 14px; }
.purchase-demo-tools summary { cursor: pointer; padding-block: 5px; }
.purchase-demo-tools p { line-height: 1.6; }
.purchase-demo-tools .button { font-size: 14px; margin: 0 18px 10px 0; }
.purchase-demo-tools .text-button { font-size: 14px; }
.purchase-error,.purchase-preview-error { margin: 15px 0 0; padding: 12px; border: 1px solid #e7c6b3; background: #fff7ef; color: #975c3f; border-radius: 7px; font-size: 15px; line-height: 1.6; }
.purchase-preview-error { margin: 9px 10px 12px; }
.purchase-footer { border-top: 1px solid #e5ece4; background: #fafcf8; }
.purchase-footer .purchase-container { display: flex; align-items: center; justify-content: space-between; padding-block: 25px; gap: 20px; color: #82917b; font-size: 14px; }
.purchase-footer .purchase-container>span { color: #52765d; font-weight: 600; }
.purchase-footer .purchase-container>span>span { color: #7a8e73; margin-left: 12px; font-weight: 400; }
.purchase-footer .purchase-container>div { display: flex; gap: 20px; align-items: center; }
.checkout-policy p { font-size: 17px; color: #627a66; line-height: 1.8; }
.purchase-success { border: 1px solid #e0e8d8; border-radius: 17px; background: #f8faf4; padding: 37px 33px; text-align: center; }
.purchase-success-icon { width: 80px; height: 80px; background: #e7f0df; color: #6d9460; display: flex; align-items: center; justify-content: center; margin: 0 auto 23px; border-radius: 50%; }
.purchase-success h2 { font-size: 34px; line-height: 1.16; letter-spacing: -1px; color: #345c3f; margin: 14px 0 16px; font-weight: 650; }
.purchase-success>p { font-size: 17px; color: #748768; line-height: 1.7; }
.purchase-success-file { display: flex; align-items: center; gap: 13px; text-align: left; background: white; border: 1px solid #dfe9d8; padding: 18px 16px; border-radius: 10px; margin: 27px 0 20px; color: #6c8b5c; }
.purchase-success-file div { min-width: 0; }
.purchase-success-file strong { display: block; font-size: 16px; font-weight: 600; color: #4f7146; overflow-wrap: anywhere; }
.purchase-success-file span { display: block; font-size: 14px; margin-top: 6px; color: #849578; }
.purchase-success .button { width: 100%; min-height: 54px; margin-top: 11px; font-size: 17px; }
.purchase-success .purchase-success-footnote { font-size: 15px; margin-top: 26px; }
.purchase-loading { max-width: 600px; margin: 15vh auto; padding: 24px; text-align: center; }
.purchase-loading h1 { font-size: 31px; line-height: 1.2; color: #385c45; }
.purchase-loading p { color: #6f826d; font-size: 18px; line-height: 1.7; }
.purchase-loading .spinner { display: block; margin: auto; width: 33px; height: 33px; border-color: #dce8da; border-top-color: var(--accent); }
@media (min-width:1500px) { .purchase-container { max-width: 1210px; } .purchase-layout { gap: 66px; } .purchase-paper { width: min(100%,385px); } }
@media (max-width:1120px) { .purchase-heading .purchase-back { position: static; display: flex; margin-bottom: 18px; } .purchase-heading { padding-top: 20px; } .purchase-layout { gap: 30px; } .purchase-header .brand-label { display: none; } .purchase-progress { gap: 13px; } .purchase-progress li:not(:last-child):after { width: 20px; margin-left: 8px; } .purchase-offer { padding-inline: 20px; gap: 12px; } .purchase-offer h2 { font-size: 23px; } }
@media (max-width:820px) {
    .purchase-container { width: min(590px,calc(100% - 40px)); }
    .purchase-header-inner { min-height: 82px; flex-wrap: wrap; padding: 19px 0 17px; gap: 19px; }
    .purchase-header .brand { font-size: 28px; }
    .purchase-local-badge { margin-left: auto; }
    .purchase-progress { width: 100%; order: 3; justify-content: space-between; gap: 6px; border-top: 1px solid #e7ede5; padding-top: 16px; font-size: 15px; }
    .purchase-progress li { gap: 8px; }
    .purchase-progress li:not(:last-child):after { width: 33px; margin-left: 16px; }
    .purchase-layout { grid-template-columns: 1fr; gap: 25px; padding-bottom: 33px; }
    .purchase-preview-column { position: static; }
    .purchase-preview-note { display: none; }
    .purchase-heading { padding-top: 16px; padding-bottom: 25px; }
    .purchase-heading .purchase-back { margin-bottom: 15px; }
    .purchase-heading h1 { font-size: 38px; }
    .purchase-heading>p { font-size: 18px; }
    .purchase-preview-card { display: grid; grid-template-columns: 116px minmax(0,1fr); column-gap: 17px; padding: 7px 7px 0; }
    .purchase-ready { grid-column: 1/-1; }
    .purchase-preview-stage { grid-column: 1; grid-row: 2; padding: 11px; width: 116px; margin-top: 10px; }
    .purchase-paper { width: 94px; }
    .purchase-expand { inset: 0; width: 100%; height: 100%; background: transparent; box-shadow: none; align-items: flex-start; justify-content: flex-end; padding: 5px; }
    .purchase-expand svg { background: white; border: 1px solid #dce5da; border-radius: 5px; padding: 4px; width: 27px; height: 27px; }
    .purchase-file-details { grid-column: 2; grid-row: 2; padding: 10px 11px 0 0; }
    .purchase-document-icon { display: none; }
    .purchase-file-details h2 { font-size: 17px; }
    .purchase-preview-controls { grid-column: 1/-1; margin-top: 10px; }
    .purchase-mobile-preview { display: flex; margin-top: 10px; font-size: 15px; min-height: 35px; }
    .purchase-preview-controls>.text-button { display: none; }
    .purchase-preview-controls { justify-content: center; }
    .purchase-preview-error { grid-column: 1/-1; }
    .purchase-offer h2 { font-size: 26px; }
    .purchase-footer .purchase-container { flex-wrap: wrap; gap: 14px; }
}
@media (max-width:450px) {
    .purchase-container { width: calc(100% - 32px); }
    .purchase-progress { font-size: 14px; gap: 3px; }
    .purchase-progress li { gap: 6px; }
    .purchase-progress li:not(:last-child):after { width: 14px; margin-left: 7px; }
    .purchase-progress li>span { width: 26px; height: 26px; font-size: 13px; }
    .purchase-header .brand { font-size: 27px; }
    .purchase-local-badge { font-size: 13px; padding: 7px 10px; }
    .purchase-heading h1 { font-size: 35px; letter-spacing: -1.3px; }
    .purchase-heading .purchase-back { font-size: 15px; }
    .purchase-heading>p { font-size: 17px; }
    .purchase-preview-card { grid-template-columns: 102px minmax(0,1fr); column-gap: 12px; }
    .purchase-preview-stage { width: 102px; padding: 10px; }
    .purchase-paper { width: 82px; }
    .purchase-file-details h2 { font-size: 16px; }
    .purchase-file-details p { font-size: 14px; gap: 4px; }
    .purchase-ready { font-size: 15px; padding-inline: 10px; gap: 6px; }
    .purchase-ready>span:first-child { gap: 7px; }
    .purchase-offer { padding: 20px 17px; gap: 12px; }
    .purchase-offer h2 { font-size: 22px; }
    .purchase-price strong { font-size: 38px; }
    .purchase-price span { font-size: 13px; }
    .purchase-payment-heading { padding: 18px; }
    .purchase-payment-heading h2 { font-size: 18px; gap: 8px; }
    .purchase-payment-body { padding: 18px; }
    .purchase-field-pair { gap: 12px; }
    .purchase-payment-body .input { font-size: 17px; padding-inline: 11px; }
    .purchase-payment-body .field>label { font-size: 15px; }
    .purchase-pay-button { font-size: 17px; padding-inline: 12px; gap: 10px; }
    .purchase-disclosure { font-size: 16px; }
    .purchase-success { padding: 30px 21px; }
    .purchase-success h2 { font-size: 30px; }
    .purchase-footer .purchase-container>span>span { display: block; margin: 7px 0 0; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior: auto!important; transition: none!important; animation: none!important; } }
/* Keep every progress label readable on narrow phones; drop decoration, not type size. */
@media(max-width:450px){.purchase-progress li:not(:last-child):after{display:none}}

/* v5 — one checkout, both download formats. */
.purchase-format-choice { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 22px; padding:14px 16px; border:1px solid #e1e9e1; border-radius:10px; background:#fbfcf9; }
.purchase-format-choice>span { font-size:16px; color:#627665; }
.purchase-format-choice>div { display:flex; gap:7px; }
.purchase-format-button { display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 12px;border:1px solid #dce5db;background:white;color:#617765;border-radius:7px;font-family:inherit;font-size:15px;font-weight:500;line-height:1.4;cursor:pointer;min-height:41px; }
.purchase-format-button.is-selected { color:#285e4e;border-color:#64957b;background:#eff6ee; }
.purchase-format-button:focus-visible {outline:3px solid #bbd9c8;outline-offset:2px;}
.purchase-format-button:disabled {cursor:wait;opacity:.6;}
.purchase-word-note { font-size:15px;line-height:1.65;margin:16px 4px 0;color:#647568; }
.purchase-word-note strong {color:#415e4e;font-weight:600;}
.purchase-success .purchase-return-editor {display:inline-flex;align-items:center;gap:9px;margin:23px auto 0;font-size:16px;min-height:40px;}
@media(max-width:820px) { .purchase-word-note{font-size:14px;line-height:1.6;margin:13px 2px 0} }
@media(max-width:450px) { .purchase-format-choice {gap:9px;padding:12px;flex-wrap:wrap} .purchase-format-choice>span {font-size:15px} .purchase-format-button {padding:9px;font-size:15px} }
@media(max-width:820px) { .purchase-layout{grid-template-columns:minmax(0,1fr)} .purchase-success{min-width:0} .purchase-success .button{white-space:normal;line-height:1.4;overflow-wrap:anywhere} }
