.order-recovery-banner {
    position: relative;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    max-width: 1180px;
    margin: 18px auto 0;
    padding: 18px 22px;
    border: 1px solid rgba(126, 83, 255, .35);
    border-radius: 18px;
    background: rgba(24, 18, 48, .96);
    color: #fff;
    box-shadow: 0 16px 42px rgba(10, 7, 28, .22);
}
.order-recovery-banner__eyebrow {
    display: block;
    margin-bottom: 4px;
    color: #c9b7ff;
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .12em;
}
.order-recovery-banner strong { display: block; font-size: 1.05rem; }
.order-recovery-banner p { margin: 5px 0 0; color: #ddd7ef; }
.order-recovery-banner__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}
.order-recovery-banner__dismiss {
    border: 0;
    background: transparent;
    color: #cfc7df;
    text-decoration: underline;
    cursor: pointer;
}
.lifecycle-actions { display: grid; gap: 14px; margin-top: 24px; }
.lifecycle-actions form { margin: 0; }
.payment-offer{display:grid;gap:7px;margin:24px 0 0;padding:18px;border:1px solid #e5deed;border-radius:14px;background:#faf7fc;line-height:1.5}
.payment-offer span{font-size:.9rem;color:#62556f}
.payment-opening{display:none;font-size:.95rem;color:#503579;line-height:1.5}
.payment-opening[hidden]{display:none}
.order-brand img{width:28px;height:34px;object-fit:contain;vertical-align:middle}
/* Server-rendered handoff has one stable screen, including before JS executes. */
html.pm-order-js .payment-resume-page[data-payment-transition="auto"] [data-payment-choice]>*:not([data-payment-opening]){display:none}
html.pm-order-js .payment-resume-page[data-payment-transition="auto"] [data-payment-choice]{min-height:160px;display:grid;place-items:center}
html.pm-order-js .payment-resume-page[data-payment-transition="auto"] .payment-opening{display:block;margin:0;text-align:center;font-size:1.05rem;font-weight:600}
.payment-actions .download-button{min-height:52px;white-space:normal;line-height:1.4}
.payment-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;margin:22px 0 0}.payment-summary strong{font-size:1.7rem}.payment-summary span{font-size:.85rem;color:#62556f}.payment-actions .download-button{width:100%;justify-content:center}.payment-follow{text-align:center;color:#68429b;font-size:.9rem;padding:6px}.payment-browser-help{border-top:1px solid #e5deed;margin-top:24px;padding-top:20px}.payment-browser-help summary{font-weight:650;cursor:pointer;line-height:1.6}.payment-browser-help p,.payment-browser-help li{font-size:.9rem;line-height:1.7}.payment-browser-help ol{padding-left:24px}.payment-browser-help li+li{margin-top:8px}.payment-copy{border:1px solid #bda6d7;border-radius:10px;background:#f7f2fc;color:#503579;padding:13px 16px;font:inherit;font-weight:600;cursor:pointer;max-width:100%}.payment-copy:focus-visible,.payment-browser-help summary:focus-visible{outline:3px solid #ad87dc;outline-offset:4px}.payment-access{display:block;font-size:.85rem}.payment-access[hidden],.payment-copy[hidden]{display:none}.payment-access input{display:block;width:100%;min-width:0;box-sizing:border-box;margin-top:8px;padding:12px;border:1px solid #bda6d7;border-radius:8px;font:inherit}.payment-private{color:#796d85;font-size:.8rem!important}#payment-copy-status:empty{display:none}.payment-actions button:disabled{opacity:.7;cursor:wait}@media(max-width:480px){.payment-copy{width:100%}.payment-browser-help summary{font-size:.95rem}}
.lifecycle-actions .button-primary,
.lifecycle-actions .button-secondary { width: 100%; text-align: center; }
.lifecycle-channel-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.lifecycle-notice {
    margin: 18px 0;
    padding: 14px 16px;
    border-radius: 12px;
    background: #f0ebff;
    color: #352650;
}
.lifecycle-notice--warn { background: #fff2d9; color: #603e00; }
.lifecycle-notice--success { background: #e8f8ee; color: #155d31; }
.financial-danger-zone {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid rgba(120, 104, 145, .24);
}
.financial-danger-zone summary { cursor: pointer; font-weight: 800; }
.financial-confirmation { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.notification-history { width: 100%; border-collapse: collapse; }
.notification-history th,
.notification-history td { padding: 10px; border-bottom: 1px solid rgba(120, 104, 145, .18); text-align: left; }
@media (max-width: 760px) {
    .order-recovery-banner { margin: 12px 14px 0; align-items: flex-start; flex-direction: column; }
    .order-recovery-banner__actions { width: 100%; justify-content: stretch; }
    .order-recovery-banner__actions a { flex: 1 1 100%; text-align: center; }
    .lifecycle-channel-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .order-recovery-banner * { scroll-behavior: auto !important; transition: none !important; }
}

/* Document renewal stays in the order flow; acceptance is never preselected. */
.acceptance-documents{display:flex;flex-wrap:wrap;gap:12px 24px;margin:24px 0}
.acceptance-documents a,.acceptance-summary summary{color:#623b70;text-underline-offset:4px}
.acceptance-summary{border:1px solid #e3d9e6;border-radius:16px;padding:16px 20px;margin:20px 0}
.acceptance-summary summary{cursor:pointer;font-weight:600;min-height:24px}
.acceptance-summary p{line-height:1.65;font-size:.95rem}
.acceptance-form{margin:24px 0}
.order-card .acceptance-form .acceptance-choice{display:flex;align-items:flex-start;gap:14px;line-height:1.65;font-size:.95rem;cursor:pointer;margin-bottom:22px}
.acceptance-choice input{flex:0 0 auto;width:22px;height:22px;accent-color:#623b70;margin:3px 0 0}
.acceptance-choice input:focus-visible{outline:3px solid #a97bba;outline-offset:4px}
.acceptance-form .download-button{white-space:normal;min-height:48px;line-height:1.4}
@media(max-width:540px){.acceptance-form .download-button{width:100%;padding:16px}.acceptance-summary{padding:16px}.order-card .acceptance-form .acceptance-choice{gap:12px}}

/* Keep the payment action close to its summary on narrow phone screens. */
.payment-resume-page{max-width:680px;padding-top:32px}
.payment-resume-page h1{font-size:clamp(2rem,6vw,3rem);line-height:1.08;letter-spacing:-.035em}
.payment-resume-page .order-lead{margin-bottom:24px;font-size:.95rem}
.payment-resume-page .order-card{padding:22px}
.payment-resume-page .status-copy{margin-top:0;padding-top:0;border-top:0}
.payment-resume-page .status-copy h2{margin:0 0 10px;font-size:1.3rem;line-height:1.25}
.payment-resume-page .status-copy p{font-size:.95rem;line-height:1.55}
.payment-resume-page .order-card>.lifecycle-notice:first-child{margin:0 0 18px;font-size:.9rem;line-height:1.5}
.payment-resume-page .payment-offer{margin-top:16px;padding:14px;font-size:.95rem}
.payment-resume-page .payment-summary{margin-top:16px}
.payment-resume-page .payment-actions{margin-top:16px;gap:10px}
.payment-resume-page .payment-actions .download-button{margin-top:0;font:inherit;font-weight:750}
@media(max-width:480px){.payment-resume-page{padding-top:24px}.payment-resume-page .payment-browser-help{margin-top:18px;padding-top:16px}}

/* Recovery is self-contained on the creator, homepage and occasion landings. */
.order-recovery-banner { box-sizing: border-box; width: auto; }
.order-recovery-banner > div { min-width: 0; }
.order-recovery-banner__actions .button-primary { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; box-sizing: border-box; padding: 12px 20px; border-radius: 12px; background: #f3ebff; color: #34204c; font: inherit; font-weight: 700; text-decoration: none; }
.order-recovery-banner__dismiss { min-height: 44px; font: inherit; }
.order-recovery-banner a:focus-visible, .order-recovery-banner button:focus-visible { outline: 3px solid #d6baff; outline-offset: 3px; }
[data-payment-choice][hidden], [data-payment-resume][hidden], [data-payment-acceptance][hidden], #order-update-notice[hidden] { display: none; }

.pm-gift-next {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    align-items: start;
    gap: 10px 12px;
    margin: 16px 0;
    padding: 14px;
    border: 1px solid #e3d7f1;
    border-radius: 14px;
    background: linear-gradient(125deg, #f4eefb, #fcfaff);
    text-align: left;
}
.pm-gift-next[hidden] { display: none; }
.pm-gift-next::before {
    content: "";
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: #eadcf8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235d358d' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E") center / 20px no-repeat;
}
.pm-gift-next .pm-gift-next__title {
    display: block;
    margin: 0 0 3px;
    color: #392352;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.3;
}
.pm-gift-next__content > p {
    margin: 0;
    color: #4e435b;
    font-size: .93rem;
    line-height: 1.55;
}
.pm-gift-next--ready { margin: 0 0 22px; }
.pm-gift-next .pm-gift-next__action {
    grid-column: 2;
    justify-self: start;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    margin: 2px 0 0;
    padding: 10px 16px;
    background: #5d358d;
    font-size: .95rem;
    line-height: 1.3;
    text-align: center;
}
.pm-gift-next .pm-gift-next__action:hover { background: #492571; }
.pm-gift-next .pm-gift-next__action:focus-visible { outline: 3px solid #7044a3; outline-offset: 3px; }
@media (max-width: 480px) {
    .pm-gift-next .pm-gift-next__action { grid-column: 1 / -1; justify-self: stretch; }
}


/* Accessible order entry remains visible on mobile, including a fresh browser. */
.pm-order-access-entry {
    width: min(1120px, calc(100% - 32px));
    margin: 0 auto 12px;
    display: flex;
    justify-content: flex-end;
    box-sizing: border-box;
}
.pm-order-access-entry a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    max-width: 100%;
    box-sizing: border-box;
    padding: 8px 14px;
    border: 1px solid #d7c4b0;
    border-radius: 999px;
    background: #fffaf2;
    color: #60324a;
    font: inherit;
    font-size: .86rem;
    font-weight: 650;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
}
.pm-order-access-entry a:hover { background: #f7ecde; }
.pm-order-access-entry a:focus-visible,
.pm-order-email-form input:focus-visible,
.pm-order-email-form button:focus-visible { outline: 3px solid #8b4b68; outline-offset: 3px; }
.pm-order-email-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    max-width: 560px;
    margin: 22px 0;
}
.pm-order-email-form label { font-weight: 700; }
.pm-order-email-form input[type=email] {
    display: block;
    width: 100%;
    min-width: 0;
    min-height: 52px;
    box-sizing: border-box;
    border: 1px solid #cbb6aa;
    border-radius: 12px;
    padding: 12px 14px;
    color: #322631;
    background: #fffdfa;
    font: inherit;
    font-size: 16px;
}
.pm-order-email-form .pm-finder-cta { min-height: 52px; justify-content: center; cursor: pointer; }
.pm-order-email-form small { line-height: 1.6; color: #695b64; }
.pm-access-notice { padding: 16px; border-radius: 12px; border: 1px solid #d6c7b8; background: #fbf4e8; color: #46323c; }
.pm-order-access-save { margin: 20px 0; padding: 20px; border: 1px solid #dfd1e6; border-radius: 16px; background: #fcf9ff; }
.pm-order-access-save h2 { margin: 0 0 8px; font-size: 1.12rem; }
.pm-order-access-save p { line-height: 1.6; }
.pm-order-access-save a { color: #5d358d; }
@media(max-width: 480px) {
    .pm-order-access-entry { justify-content: center; margin-bottom: 8px; }
    .pm-order-access-entry a { width: 100%; }
    .pm-order-access-save { padding: 16px; }
}

/* The access link replaces the redundant mobile breadcrumb, keeping the gift in view. */
@media(max-width:760px) {
    .pm-order-access-entry + .pm-search-guide > .pm-search-breadcrumb { display:none; }
}
