/* Checkout: compact purchase form, then a separate order receipt. */
html:has(#purchase-dialog[open]){overflow:hidden;scrollbar-gutter:stable}
#purchase-dialog{width:calc(100% - 32px);max-width:660px;max-height:calc(100dvh - 40px);padding:0;border:1px solid #d5cdbc;box-shadow:0 24px 100px #0004;overflow:auto;overscroll-behavior:contain}
#purchase-dialog::backdrop{background:#171714a8;backdrop-filter:blur(6px)}
#purchase-dialog .purchase-topbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:16px;height:auto;min-height:68px;padding:10px 28px;margin:0;border:0;border-bottom:1px solid var(--rule);background:var(--paper)}
#purchase-dialog .purchase-topbar .wordmark{font:700 25px/1 var(--serif);letter-spacing:-1px}
#purchase-dialog .purchase-topbar .wordmark span{color:var(--accent)}
.purchase-topbar-label{font-size:9px;letter-spacing:1.6px;color:var(--muted)}
#purchase-dialog .close-dialog{margin-left:auto;display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:1px solid transparent;background:transparent;color:var(--ink);font:400 26px/1 Arial,sans-serif;cursor:pointer}
#purchase-dialog .close-dialog:hover{background:#e9e1d2;border-color:var(--rule)}
#purchase-dialog button:focus-visible,#purchase-dialog summary:focus-visible,#purchase-dialog input:focus-visible,#purchase-dialog select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.purchase-scroll{padding:26px 28px 22px}
.purchase-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}
#purchase-dialog #purchase-title{font:400 clamp(29px,4vw,38px)/1.08 var(--serif);letter-spacing:-1px;margin:0 0 9px}
#purchase-subtitle{font-size:13px;line-height:1.5;color:var(--muted);margin:0;max-width:380px}
.purchase-total{flex:none;min-width:75px;text-align:right;border-left:1px solid var(--rule);padding-left:22px}
.purchase-total strong{display:block;font:400 40px/1 var(--serif);letter-spacing:-1px}
.purchase-total span{display:block;font-size:10px;line-height:1.5;color:var(--muted);margin-top:6px}
#purchase-dialog .stripe-mode{display:inline-flex;font-size:9px;line-height:1.5;letter-spacing:1px;color:#9a3022;background:#a9382110;border:1px solid #a9382125;padding:5px 8px;margin:0 0 18px}
#purchase-dialog .stripe-mode:empty{display:none}
#stripe-availability-note{font-size:12px;line-height:1.65;color:var(--muted);margin:0 0 18px}
#purchase-dialog #purchase-preview-form label{font-size:12px;font-weight:500;margin:16px 0 7px}
#purchase-dialog #purchase-preview-form input,#purchase-dialog #purchase-preview-form select{width:100%;box-sizing:border-box;min-height:48px;padding:12px 14px;font-size:14px;background:#fffcf7;border:1px solid #ada596;border-radius:0;color:var(--ink)}
#purchase-dialog #purchase-submit{margin:22px 0 0;min-height:50px;justify-content:center;font-size:14px}
#purchase-dialog .primary{border-radius:0;min-height:48px;justify-content:center;padding:12px 20px;gap:14px;font-size:13px}
.purchase-reassurance{text-align:center;font-size:10px;color:var(--muted);line-height:1.5;margin:10px 0 17px}
#purchase-dialog details{border-top:1px solid var(--rule)}
#purchase-dialog summary{position:relative;cursor:pointer;font-size:12px;list-style:none;padding:15px 30px 15px 0;line-height:1.5;color:var(--ink)}
#purchase-dialog summary::-webkit-details-marker{display:none}
#purchase-dialog summary:after{content:'+';position:absolute;right:3px;top:12px;font-size:19px;line-height:1.3;color:var(--muted)}
#purchase-dialog details[open]>summary:after{content:'−'}
#purchase-dialog .purchase-conditions p,#purchase-dialog .access-note{font-size:11px;line-height:1.7;color:var(--muted);margin:0 0 14px}
#stripe-history{margin:0 0 15px}
#stripe-history label{display:block;font-size:11px;margin:0 0 7px}
#stripe-history select{width:100%;font-size:12px;min-height:44px;margin-bottom:10px}
.purchase-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.order-stages{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.order-stage{min-width:0;background:#eee8dd;border:1px solid #dbd3c4;padding:16px 18px}
.order-stage-label{display:flex;align-items:center;gap:9px;font-size:9px;letter-spacing:1.2px;font-weight:600;margin-bottom:14px}
.order-stage-icon{display:grid;place-items:center;width:25px;height:25px;border:1px solid #aca494;border-radius:50%;font-size:11px;letter-spacing:0;flex:none}
#stripe-result .order-stage h4{font:400 25px/1.1 var(--serif);letter-spacing:-.4px;margin:0 0 9px}
#stripe-result .order-stage p{font-size:11px;line-height:1.65;margin:0;color:#605b52}
.order-stage[data-state=complete]{background:#eaf0e8;border-color:#cbd8c6}
.order-stage[data-state=complete] .order-stage-icon{background:#345a43;border-color:#345a43;color:white}
.order-stage[data-state=complete] .order-stage-label{color:#345a43}
.order-stage[data-state=held] .order-stage-icon{background:#85601e;border-color:#85601e;color:white}
.order-stage[data-state=held] .order-stage-label{color:#76551c}
.order-stage[data-state=error] .order-stage-icon{background:#a62b1e;border-color:#a62b1e;color:white}
#stripe-result #stripe-delivery-reason{font-size:12px;line-height:1.65;margin:12px 0 0;padding:13px 16px;background:#e9e1d2;border-left:2px solid #85601e}
#stripe-result #stripe-verification-note{font-size:11px;line-height:1.65;margin:12px 0 0;color:var(--muted)}
#stripe-result p:empty,#stripe-status:empty{display:none}
.stripe-actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 10px}
.stripe-actions>button{flex:1}
#stripe-new-purchase{font:500 12px/1.4 'DM Sans',Arial,sans-serif;min-height:48px;border:1px solid var(--ink);padding:11px 16px;background:transparent;color:var(--ink);cursor:pointer}
#stripe-new-purchase:hover{background:#e9e1d2}
.stripe-status-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}
#stripe-update-label{font-size:10px;line-height:1.5;color:var(--muted)}
#stripe-refresh{flex:none;min-height:44px;font:500 11px/1.5 'DM Sans',Arial,sans-serif;border:0;padding:10px 0 10px 10px;background:transparent;color:var(--ink);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
#stripe-order-details p{font-size:11px;line-height:1.7;color:var(--muted);margin:0 0 10px}
#stripe-reference{overflow-wrap:anywhere}
#stripe-clear{font:400 11px/1.5 'DM Sans',Arial,sans-serif;min-height:44px;border:0;background:transparent;padding:8px 0;color:var(--muted);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
#stripe-clear:disabled{cursor:default;opacity:.5}
#stripe-clear-confirm{background:#e9e1d2;padding:14px;margin:4px 0 14px}
#stripe-clear-confirm button{font:500 11px/1.5 'DM Sans',Arial,sans-serif;min-height:44px;padding:10px 12px;margin:4px 6px 0 0;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer}
#stripe-clear-confirm #stripe-clear-yes{color:#a62b1e;border-color:#a62b1e}
#stripe-status{font-size:11px;line-height:1.6;color:var(--muted);margin:12px 0 0}
@media(max-width:540px){#purchase-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px)}#purchase-dialog .purchase-topbar{padding:8px 18px;min-height:60px}.purchase-scroll{padding:21px 18px 17px}.purchase-topbar-label{font-size:8px;letter-spacing:1px}.purchase-intro{gap:12px}.purchase-total{min-width:56px;padding-left:14px}.purchase-total strong{font-size:34px}#purchase-dialog #purchase-title{font-size:29px}#purchase-subtitle{font-size:12px}.order-stages{gap:8px}.order-stage{padding:13px 12px}.order-stage-label{font-size:8px;letter-spacing:.6px;gap:7px;margin-bottom:12px}#stripe-result .order-stage h4{font-size:23px}.stripe-actions{gap:8px}#stripe-new-purchase{font-size:11px;padding:10px}.stripe-status-toolbar{align-items:center}#stripe-update-label{max-width:165px}}
@media(max-width:340px){.order-stages{grid-template-columns:1fr}.purchase-topbar-label{display:none}}
/* Saved orders stay accessible without adding another card to the offer. */
#stripe-tracking{margin-top:6px}
#stripe-resume{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 0;border:0;background:transparent;color:var(--ink);font:500 13px/1.5 'DM Sans',Arial,sans-serif;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
#stripe-resume:hover{color:var(--accent)}
#stripe-resume:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
#stripe-resume span[aria-hidden]{font-size:15px;text-decoration:none}
.payment-simulation{padding:40px 20px}.payment-simulation main{max-width:560px;margin:0 auto;background:#fffcf5;border:1px solid var(--rule);padding:35px}.payment-simulation .wordmark{display:inline-block;margin-bottom:35px}.payment-simulation .eyebrow{font-size:10px;color:var(--accent)}.payment-simulation h1{font:400 49px/1.05 var(--serif);letter-spacing:-1.5px}.payment-simulation .purchase-price{font:400 45px/1.1 var(--serif)}.payment-simulation .purchase-price span{font:400 12px/1.7 'DM Sans',sans-serif}.payment-simulation main>p{font-size:14px;line-height:1.8}.simulation-actions{display:grid;gap:15px;margin-top:25px}.simulation-actions button:not(.primary){padding:14px;border:1px solid var(--ink);background:transparent;font:inherit;font-size:13px;min-height:44px}.simulation-actions .primary{justify-content:space-between;font-size:12px}.simulation-actions a{font-size:12px;min-height:44px;padding-top:10px}
@media(max-width:760px){.payment-simulation main{padding:25px}.payment-simulation h1{font-size:42px}}

/* Keep the purchase decision readable before leaving for Stripe. */
#purchase-dialog #purchase-preview-form input,#purchase-dialog #purchase-preview-form select{font-size:16px}
#purchase-dialog #purchase-preview-form label{font-size:14px}
#purchase-community-status{font-size:13px;line-height:1.7;margin:10px 0;color:var(--muted)}#purchase-community-status:empty{display:none}
#purchase-communities-retry{min-height:44px;padding:10px 14px;border:1px solid var(--ink);background:transparent;font-size:13px;color:var(--ink);margin-bottom:8px}
.purchase-summary{margin:22px 0 0;padding:18px;background:var(--soft);border:1px solid var(--rule)}.purchase-summary h3{font:400 24px/1.2 var(--serif);margin:0 0 15px}.purchase-summary dl{margin:0;display:grid;gap:13px}.purchase-summary dl>div{display:grid;grid-template-columns:105px minmax(0,1fr);gap:12px}.purchase-summary dt{font-size:12px;font-weight:600;line-height:1.7}.purchase-summary dd{font-size:12px;line-height:1.7;margin:0;color:var(--muted);overflow-wrap:anywhere}
#purchase-dialog .purchase-conditions p,#purchase-dialog .access-note,#stripe-availability-note,.purchase-reassurance,#stripe-status,#stripe-order-details p{font-size:12px;line-height:1.8}#stripe-result .order-stage p{font-size:12px}
@media(max-width:540px){.purchase-summary{padding:15px}.purchase-summary dl>div{grid-template-columns:1fr;gap:3px}.purchase-summary dt,.purchase-summary dd{font-size:13px}#purchase-dialog #purchase-subtitle{font-size:14px}}
/* Preferences remain available outside the purchase dialog. */
.cookie-preferences{position:fixed;bottom:1rem;left:1rem;right:1rem;z-index:100;background:var(--cream,#fffaf0);color:#161616;border:1px solid;padding:1rem;max-width:42rem;box-shadow:0 4px 24px #0002}
.cookie-preferences[hidden]{display:none}
.cookie-preferences button,.advertising-preferences button{padding:.7rem;margin:.25rem;min-height:44px}
.advertising-preferences{padding:1rem 5%;font-size:.85rem}
#stripe-advertising-status,#advertising-sync-status{color:#6f3c15;font-size:.9rem}

/* Keep the action visible while a compact, independently scrolling form is read. */
#purchase-dialog{overflow:hidden}
.purchase-scroll{max-height:calc(100dvh - 110px);overflow:auto;overscroll-behavior:contain;scroll-padding-block:15px 145px}
#purchase-dialog .purchase-topbar{position:relative}
#purchase-dialog .purchase-topbar-label{font-size:11px;color:#514d46}
#purchase-dialog #purchase-subtitle,#purchase-dialog #stripe-availability-note,#purchase-dialog .purchase-conditions p,#purchase-dialog .access-note,#stripe-order-details p,#stripe-status,#stripe-result .order-stage p{font-size:14px;line-height:1.6;color:#514d46}
#stripe-checkout-information:has(#stripe-availability-note:empty){display:none}
#purchase-dialog .purchase-summary{padding:14px 16px;margin-top:16px}
#purchase-dialog .purchase-summary h3{font-size:23px;margin-bottom:10px}
#purchase-dialog .purchase-summary dl{gap:7px}
#purchase-dialog .purchase-summary dl>div{grid-template-columns:88px minmax(0,1fr);gap:10px}
#purchase-dialog .purchase-summary dt,#purchase-dialog .purchase-summary dd{font-size:14px;line-height:1.5}
#purchase-dialog .purchase-summary dd{color:#514d46}
#purchase-dialog .purchase-conditions{margin-top:16px}
#purchase-dialog summary{font-size:14px;min-height:48px}
.purchase-action-bar{flex:none;z-index:2;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px;align-items:center;background:var(--paper);border-top:1px solid var(--rule);padding:14px 28px 18px;margin:0;box-shadow:0 -10px 12px var(--paper)}
.purchase-action-price{font:400 30px/1 var(--serif);white-space:nowrap}.purchase-action-price small{display:block;font:400 12px/1.5 'DM Sans',sans-serif;color:#514d46;margin-top:4px}
#purchase-dialog #purchase-submit{margin:0;min-width:0;font-size:14px;padding:12px}
#purchase-dialog .purchase-reassurance{grid-column:1/-1;font-size:12px;line-height:1.5;color:#514d46;margin:0}
#purchase-dialog input:focus,#purchase-dialog select:focus{scroll-margin-block:15px 145px}
#stripe-update-label,.purchase-total span{font-size:12px;color:#514d46}
@media(max-width:540px){.purchase-scroll{padding:18px 18px 14px;max-height:calc(100dvh - 98px)}.purchase-action-bar{bottom:-14px;padding-bottom:14px;gap:8px 12px}.purchase-intro{margin-bottom:12px}#purchase-dialog .purchase-summary{padding:12px}#purchase-dialog .purchase-summary dl>div{grid-template-columns:78px minmax(0,1fr);gap:8px}#purchase-dialog .purchase-summary dt,#purchase-dialog .purchase-summary dd{font-size:13px}.purchase-action-price{font-size:27px}#purchase-dialog #purchase-submit{font-size:13px}.purchase-action-price small{font-size:11px}}
#purchase-dialog[open]{display:flex;flex-direction:column}
#purchase-dialog .purchase-topbar{flex:none}
#purchase-dialog .purchase-scroll{flex:1;min-height:0;max-height:none}
@media(max-width:540px){.purchase-action-bar{padding:12px 18px}}
#purchase-edition-status{font-size:14px;line-height:1.6;color:#514d46;margin:12px 0}#purchase-edition-status:empty{display:none}
#purchase-edition-retry{min-height:44px;border:1px solid var(--ink);background:transparent;padding:10px 14px;font-size:14px;color:var(--ink)}
