/* =========================================================
   Commerce Master V2 — shared route composition only
   Design-system primitives and semantic tokens remain owned by DigiMSP.DesignSystem.
   ========================================================= */
.sf-commerce-page {
    --sf-commerce-environment-base: light-dark(
        color-mix(in srgb, var(--ds-color-surface-subtle) 97%, var(--ds-color-primary)),
        color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary))
    );
    /* Footer already owns the inter-section gap; do not reserve it twice. */
    padding: clamp(.75rem, 1.8vw, 1.35rem) var(--ds-page-gutter) var(--ds-space-4);
    color: var(--ds-color-text);
    font-family: var(--ds-font-body);
    background: radial-gradient(circle at 9% 8%, color-mix(in srgb, var(--ds-kinetic-cyan) 6%, transparent), transparent 21%),
        radial-gradient(circle at 88% 18%, color-mix(in srgb, var(--ds-color-primary) 5%, transparent), transparent 28%),
        radial-gradient(circle at 18% 88%, color-mix(in srgb, var(--ds-color-primary-hover) 4%, transparent), transparent 26%),
        var(--sf-commerce-environment-base);
}

.sf-commerce-page > * {
    max-inline-size: var(--ds-container-wide);
    margin-inline: auto;
}

.sf-commerce-antiforgery {
    display: none;
}

.sf-visually-hidden {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.sf-commerce-text-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: var(--ds-touch-target);
    margin-block-start: var(--ds-space-3);
    color: var(--ds-color-primary);
    font-weight: 800;
    text-decoration: none;
}

.sf-commerce-text-link:hover {
    text-decoration: underline;
    text-underline-offset: .3rem;
}

.sf-commerce-icon-plinth svg,
.sf-checkout-chapter__icon svg,
.sf-payment-console svg,
.sf-status-medallion svg,
.sf-payment-next-actions__icon svg,
.sf-order-passport__stamp svg,
.sf-order-delivery > span svg {
    inline-size: 1.25rem;
    block-size: 1.25rem;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

/* Feature-local content that remains inside shared Experience patterns. */
.sf-order-passport p {
    margin: 0;
    color: var(--ds-color-text-muted);
    font: 750 var(--ds-text-2xs)/1.5 var(--ds-font-body);
    letter-spacing: normal;
}

.sf-order-delivery > span {
    display: grid;
    place-items: center;
    inline-size: 3.4rem;
    block-size: 3.4rem;
    border: 1px solid color-mix(in srgb, var(--ds-color-border) 40%, transparent);
    border-radius: var(--ds-radius-sm);
    background: var(--ds-color-surface-subtle);
    color: var(--ds-color-primary);
    box-shadow: inset 0 1px 3px color-mix(in srgb, var(--ds-kinetic-ink) 6%, transparent), inset 0 -1px 0 color-mix(in srgb, var(--ds-color-surface-raised) 55%, transparent);
}

.sf-commerce-icon-plinth,
.sf-payment-next-actions__icon {
    display: grid;
    place-items: center;
    inline-size: 3.4rem;
    block-size: 3.4rem;
    border: 0;
    border-radius: var(--ds-radius-sm);
    background: linear-gradient(145deg, color-mix(in srgb, var(--ds-color-surface-strong) 96%, var(--ds-color-primary)), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
    color: var(--ds-color-primary);
    box-shadow: inset 4px 4px 8px color-mix(in srgb, var(--ds-kinetic-ink) 12%, transparent), inset -4px -4px 8px color-mix(in srgb, var(--ds-color-surface-raised) 73%, transparent);
}

/* =========================================================
   Shared page layout, state, and feature headings
   ========================================================= */
.sf-commerce-grid,
.sf-order-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(19rem, 25rem);
    gap: var(--ds-space-5);
    align-items: start;
}

.sf-order-dossier {
    border: 1px solid color-mix(in srgb, var(--ds-color-border) 35%, transparent);
    border-radius: var(--ds-radius-lg);
    background: color-mix(in srgb, var(--ds-color-surface-subtle) 80%, var(--ds-color-surface-raised));
    box-shadow: var(--ds-kinetic-shadow-raised);
}

.sf-commerce-panel,
.sf-commerce-state,
.sf-payment-result__card {
    border: 1px solid color-mix(in srgb, var(--ds-color-surface-raised) 42%, transparent);
    border-radius: var(--ds-radius-lg);
    background: linear-gradient(145deg, color-mix(in srgb, var(--ds-color-surface-raised) 96%, var(--ds-color-primary)), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
    box-shadow: 20px 22px 42px color-mix(in srgb, var(--ds-kinetic-ink) 18%, transparent), -15px -15px 32px color-mix(in srgb, var(--ds-color-surface-raised) 88%, transparent), 0 10px 20px color-mix(in srgb, var(--ds-kinetic-ink) 4%, transparent), inset 1px 1px 0 color-mix(in srgb, var(--ds-color-surface-raised) 70%, transparent);
}

.sf-commerce-panel,
.sf-order-dossier {
    padding: clamp(.95rem, 1.8vw, 1.3rem);
}

.sf-commerce-panel__heading,
.sf-checkout-chapter__head {
    display: flex;
    gap: var(--ds-space-3);
    align-items: center;
    justify-content: space-between;
}

.sf-commerce-panel__heading {
    margin-block-end: var(--ds-space-4);
}

.sf-commerce-panel__heading h2,
.sf-order-items h2,
.sf-order-journey h2,
.sf-order-delivery h2 {
    margin: 0;
    color: var(--ds-color-on-surface);
    font: 800 var(--ds-text-lg)/1.45 var(--ds-font-heading);
}

.sf-commerce-panel__heading > span {
    color: var(--ds-color-text-muted);
}

.sf-commerce-section-id {
    display: flex;
    gap: var(--ds-space-3);
    align-items: center;
}

.sf-commerce-section-id small,
.sf-checkout-chapter__head small {
    display: block;
    margin-block-start: var(--ds-space-1);
    color: var(--ds-color-text-muted);
    font-size: var(--ds-text-2xs);
}

.sf-commerce-icon-plinth {
    inline-size: 2.8rem;
    block-size: 2.8rem;
}

.sf-commerce-state {
    display: grid;
    justify-items: center;
    padding: clamp(2rem, 5vw, 4rem);
    text-align: center;
}

.sf-commerce-state strong {
    font: 800 var(--ds-text-xl)/1.4 var(--ds-font-heading);
}

.sf-commerce-state > p {
    color: var(--ds-color-text-muted);
}

.sf-commerce-state .sf-operation {
    inline-size: min(100%, 40rem);
}

.sf-commerce-state > .sf-button {
    margin-block-start: var(--ds-space-3);
}

.sf-commerce-state--error {
    border-color: color-mix(in srgb, var(--ds-color-danger-semantic) 42%, var(--ds-color-border));
}

.sf-commerce-message {
    margin-block: var(--ds-space-2) 0;
    color: var(--ds-color-text-muted);
    line-height: 1.7;
}

.sf-commerce-message:empty {
    display: none;
}

/* =========================================================
   Cart content inside shared decision sheets
   ========================================================= */
.sf-cart-overview {
    display: flex;
    gap: var(--ds-space-4);
    align-items: center;
    justify-content: space-between;
    margin-block-end: var(--ds-space-4);
    padding: var(--ds-space-4);
    border-radius: var(--ds-radius-md);
    background: linear-gradient(135deg, color-mix(in srgb, var(--ds-kinetic-cyan) 9%, color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary))), color-mix(in srgb, var(--ds-color-primary) 7%, color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary))));
    box-shadow: inset 8px 8px 15px color-mix(in srgb, var(--ds-kinetic-ink) 18%, transparent), inset -8px -8px 15px color-mix(in srgb, var(--ds-color-surface-raised) 85%, transparent), 1px 1px 0 color-mix(in srgb, var(--ds-color-surface-raised) 38%, transparent);
}

.sf-cart-overview strong,
.sf-cart-overview p {
    display: block;
    margin: 0;
}

.sf-cart-overview p {
    margin-block-start: var(--ds-space-1);
    color: var(--ds-color-text-muted);
    font-size: var(--ds-text-xs);
    line-height: 1.7;
}

.sf-cart-lines {
    display: grid;
    gap: var(--ds-space-4);
}

.sf-commerce-panel--main > .sf-operation {
    margin-block: var(--ds-space-4) 0;
}

/* =========================================================
   Address list spacing and existing form language
   ========================================================= */
.sf-address-list {
    display: grid;
    gap: var(--ds-space-3);
}

.sf-address-editor {
    margin-block: var(--ds-space-4);
    padding: var(--ds-space-3);
    border: 1px solid var(--ds-color-border);
    border-radius: var(--ds-radius-md);
    background: var(--ds-color-surface-subtle);
}

.sf-address-editor summary {
    min-block-size: var(--ds-touch-target);
    cursor: pointer;
    font-weight: 800;
}

.sf-commerce-form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ds-space-3);
    margin-block-start: var(--ds-space-3);
}

.sf-commerce-form__wide,
.sf-commerce-form .sf-commerce-actions {
    grid-column: 1 / -1;
}

.sf-commerce-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ds-space-2);
    align-items: center;
    justify-content: center;
}

/* =========================================================
   Checkout purchase dossier and Mellat console
   ========================================================= */
.sf-checkout-dossier {
    display: grid;
    gap: var(--ds-space-4);
}

.sf-checkout-chapter {
    position: relative;
    overflow: hidden;
    padding: .875rem;
    border: 0;
    border-radius: calc(var(--ds-radius-lg) - 6px);
    background: linear-gradient(145deg, color-mix(in srgb, var(--ds-color-surface-subtle) 97%, var(--ds-color-primary)), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
    box-shadow: 7px 7px 14px color-mix(in srgb, var(--ds-kinetic-ink) 16%, transparent), -6px -6px 12px color-mix(in srgb, var(--ds-color-surface-raised) 83%, transparent), inset 1px 1px 0 color-mix(in srgb, var(--ds-color-surface-raised) 48%, transparent);
    padding-inline-end: 1.0625rem;
}

.sf-checkout-chapter::before {
    position: absolute;
    inset-block: .875rem;
    inset-inline-start: 0;
    inline-size: 3px;
    border-radius: var(--ds-radius-xs);
    background: linear-gradient(var(--ds-kinetic-cyan), var(--ds-color-primary));
    content: "";
    opacity: .32;
}

.sf-checkout-chapter--payment {
    background: linear-gradient(135deg, color-mix(in srgb, var(--ds-color-warning-semantic) 7%, color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary))), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
    border: 1px solid color-mix(in srgb, var(--ds-color-warning-semantic) 17%, var(--ds-color-border));
}

.sf-checkout-chapter__head {
    margin-block-end: var(--ds-space-3);
}

.sf-checkout-chapter__identity {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr);
    gap: var(--ds-space-2);
    align-items: center;
    min-inline-size: 0;
}

.sf-checkout-chapter__number,
.sf-checkout-chapter__icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: var(--ds-radius-sm);
    color: var(--ds-color-primary);
    box-shadow: 4px 5px 10px color-mix(in srgb, var(--ds-kinetic-ink) 14%, transparent), -4px -4px 9px color-mix(in srgb, var(--ds-color-surface-raised) 78%, transparent), inset 1px 1px 0 color-mix(in srgb, var(--ds-color-surface-raised) 46%, transparent);
    background: linear-gradient(145deg, color-mix(in srgb, var(--ds-color-surface-raised) 96%, var(--ds-color-primary)), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
}

.sf-checkout-chapter__number {
    inline-size: 2.375rem;
    block-size: 2.375rem;
    font: 850 var(--ds-text-xs)/1 var(--ds-font-numeric);
    letter-spacing: .06em;
    position: relative;
    box-shadow: inset 4px 4px 8px color-mix(in srgb, var(--ds-kinetic-ink) 12%, transparent), inset -4px -4px 8px color-mix(in srgb, var(--ds-color-surface-raised) 73%, transparent);
}

.sf-checkout-chapter__number::after {
    position: absolute;
    inset: 7px;
    border: 1px solid color-mix(in srgb, var(--ds-color-primary) 18%, transparent);
    border-radius: calc(var(--ds-radius-xs) + 1px);
    content: "";
}

.sf-checkout-chapter__icon {
    inline-size: 2.55rem;
    block-size: 2.55rem;
}

.sf-checkout-chapter__icon svg {
    inline-size: 1.15rem;
    block-size: 1.15rem;
}

.sf-checkout-chapter__head h3 {
    margin: 0;
    font: 800 var(--ds-text-md)/1.5 var(--ds-font-heading);
}

.sf-checkout-chapter__head > a {
    color: var(--ds-color-primary);
    font-size: var(--ds-text-xs);
    font-weight: 800;
    text-decoration: none;
}

.sf-checkout-account {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--ds-space-2);
}

.sf-checkout-account > div {
    min-block-size: 3.9375rem;
    padding: .625rem .6875rem;
    border: 0;
    border-radius: calc(var(--ds-radius-sm) + 3px);
    background: linear-gradient(145deg, color-mix(in srgb, var(--ds-color-surface-strong) 96%, var(--ds-color-primary)), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
    box-shadow: inset 8px 8px 15px color-mix(in srgb, var(--ds-kinetic-ink) 18%, transparent), inset -8px -8px 15px color-mix(in srgb, var(--ds-color-surface-raised) 85%, transparent), 1px 1px 0 color-mix(in srgb, var(--ds-color-surface-raised) 38%, transparent);
}

.sf-checkout-account > div > span {
    display: block;
    color: var(--ds-color-text-muted);
    font-size: var(--ds-text-2xs);
}

.sf-checkout-account strong {
    display: block;
    margin-block-start: var(--ds-space-1);
    font-size: var(--ds-text-xs);
}

.sf-payment-console {
    display: grid;
    grid-template-columns: 7.375rem minmax(0, 1fr);
    gap: .9375rem;
    align-items: center;
    padding: .875rem;
    border: 1px solid color-mix(in srgb, var(--ds-color-warning-semantic) 16%, var(--ds-color-border));
    border-radius: calc(var(--ds-radius-md) + 2px);
    box-shadow: inset 8px 8px 15px color-mix(in srgb, var(--ds-kinetic-ink) 18%, transparent), inset -8px -8px 15px color-mix(in srgb, var(--ds-color-surface-raised) 85%, transparent), 1px 1px 0 color-mix(in srgb, var(--ds-color-surface-raised) 38%, transparent);
    background: linear-gradient(135deg, color-mix(in srgb, var(--ds-color-warning-semantic) 9%, color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary))), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
}

.sf-payment-console.is-ready {
    border-color: color-mix(in srgb, var(--ds-color-success-semantic) 24%, var(--ds-color-border));
    background: linear-gradient(135deg, color-mix(in srgb, var(--ds-color-success-semantic) 7%, var(--ds-color-surface)), var(--ds-color-surface));
}

.sf-payment-console__visual {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 1;
    border-radius: calc(var(--ds-radius-lg) - 6px);
    background: linear-gradient(145deg, color-mix(in srgb, var(--ds-color-surface-subtle) 97%, var(--ds-color-primary)), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
    box-shadow: 7px 7px 14px color-mix(in srgb, var(--ds-kinetic-ink) 16%, transparent), -6px -6px 12px color-mix(in srgb, var(--ds-color-surface-raised) 83%, transparent), inset 1px 1px 0 color-mix(in srgb, var(--ds-color-surface-raised) 48%, transparent);
}
.sf-payment-console__visual::before {
    position: absolute;
    inset: .8125rem;
    border-radius: calc(var(--ds-radius-md) + 1px);
    box-shadow: inset 0 0 0 7px color-mix(in srgb, var(--ds-color-warning-semantic) 3%, transparent);
    content: "";
    border: 1px solid color-mix(in srgb, var(--ds-color-warning-semantic) 24%, transparent);
}

.sf-payment-console__orbit {
    position: absolute;
    inline-size: 4.9375rem;
    block-size: 4.9375rem;
    border: 0;
    border-radius: 50%;
    background: conic-gradient(from 205deg, transparent 0 38%, color-mix(in srgb, var(--ds-color-warning-semantic) 70%, transparent) 48%, transparent 57% 100%);
}

.sf-payment-console__orbit--inner {
    inline-size: 4.3125rem;
    block-size: 4.3125rem;
    background: linear-gradient(145deg, color-mix(in srgb, var(--ds-color-surface-strong) 96%, var(--ds-color-primary)), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
    box-shadow: inset 4px 4px 8px color-mix(in srgb, var(--ds-kinetic-ink) 12%, transparent), inset -4px -4px 8px color-mix(in srgb, var(--ds-color-surface-raised) 73%, transparent);
}

.sf-payment-console.is-ready .sf-payment-console__orbit {
    background: conic-gradient(from 205deg, transparent 0 38%, color-mix(in srgb, var(--ds-color-success-semantic) 70%, transparent) 48%, transparent 57% 100%);
}

.sf-payment-console.is-ready .sf-payment-console__orbit--inner {
    background: linear-gradient(145deg, color-mix(in srgb, var(--ds-color-surface-strong) 96%, var(--ds-color-primary)), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
}

.sf-payment-console__lock {
    position: relative;
    display: grid;
    place-items: center;
    inline-size: 3.0625rem;
    block-size: 3.0625rem;
    border: 0;
    border-radius: calc(var(--ds-radius-md) - 2px);
    background: linear-gradient(145deg, color-mix(in srgb, var(--ds-color-surface-raised) 96%, var(--ds-color-primary)), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
    color: var(--ds-color-warning-semantic);
    box-shadow: 7px 7px 14px color-mix(in srgb, var(--ds-kinetic-ink) 16%, transparent), -6px -6px 12px color-mix(in srgb, var(--ds-color-surface-raised) 83%, transparent), inset 1px 1px 0 color-mix(in srgb, var(--ds-color-surface-raised) 48%, transparent);
}

.sf-payment-console__lock svg {
    inline-size: 1.375rem;
    block-size: 1.375rem;
    filter: drop-shadow(0 2px 1px color-mix(in srgb, var(--ds-kinetic-ink) 18%, transparent));
}

.sf-payment-console.is-ready .sf-payment-console__lock {
    color: var(--ds-color-success-semantic);
}

.sf-payment-console h4 {
    margin: var(--ds-space-1) 0;
    font: 850 var(--ds-text-md)/1.55 var(--ds-font-heading);
}

.sf-payment-console > div:last-child > span {
    color: var(--ds-color-text-muted);
    font-size: var(--ds-text-xs);
    line-height: 1.75;
}

.sf-checkout-items {
    margin-block-start: var(--ds-space-5);
    padding-block-start: var(--ds-space-4);
    border-block-start: 1px solid var(--ds-color-border);
}

.sf-checkout-lines {
    display: grid;
    gap: var(--ds-space-2);
}

.sf-checkout-lines article {
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr);
    gap: var(--ds-space-3);
    align-items: center;
    padding: var(--ds-space-3);
    border-radius: var(--ds-radius-md);
    background: linear-gradient(145deg, color-mix(in srgb, var(--ds-color-surface-subtle) 97%, var(--ds-color-primary)), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
    box-shadow: 7px 7px 14px color-mix(in srgb, var(--ds-kinetic-ink) 16%, transparent), -6px -6px 12px color-mix(in srgb, var(--ds-color-surface-raised) 83%, transparent), inset 1px 1px 0 color-mix(in srgb, var(--ds-color-surface-raised) 48%, transparent);
}

.sf-checkout-lines__media,
.sf-order-items__media {
    display: grid;
    place-items: center;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: var(--ds-radius-sm);
    background: var(--ds-color-surface);
}

.sf-checkout-lines img,
.sf-order-items img {
    inline-size: 100%;
    block-size: 100%;
    padding: var(--ds-space-1);
    object-fit: contain;
}

.sf-checkout-lines__detail {
    display: grid;
    min-inline-size: 0;
    gap: var(--ds-space-2);
    overflow-wrap: anywhere;
}

.sf-checkout-lines__quantities,
.sf-order-items__quantities {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--ds-space-2);
    color: var(--ds-color-text-muted);
    font: 600 var(--ds-text-xs)/1.7 var(--ds-font-body);
}

.sf-checkout-lines__facts,
.sf-order-items__facts {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 8.5rem), 1fr));
    gap: var(--ds-space-2);
    margin: 0;
    font: 600 var(--ds-text-xs)/1.7 var(--ds-font-body);
}

.sf-checkout-lines__facts > div,
.sf-order-items__facts > div {
    display: grid;
    align-content: start;
    gap: var(--ds-space-1);
    min-inline-size: 0;
    padding: var(--ds-space-2);
    border-radius: var(--ds-radius-xs);
    background: var(--ds-control-surface);
    box-shadow: inset 1px 1px 0 var(--ds-control-icon-light);
}

.sf-checkout-lines__facts dt,
.sf-order-items__facts dt {
    color: var(--ds-color-text-muted);
}

.sf-checkout-lines__facts dd,
.sf-order-items__facts dd {
    min-inline-size: 0;
    overflow-x: auto;
    margin: 0;
}

.sf-checkout-lines__final,
.sf-order-items__final {
    border-inline-start: 2px solid var(--ds-control-accent);
}

.sf-checkout-lines small {
    color: var(--ds-color-text-muted);
}

.sf-checkout-lines .sf-price {
    justify-content: flex-start;
}

.sf-checkout-lines .sf-price strong {
    font-size: var(--ds-text-sm);
}

.sf-commerce-consent {
    display: flex;
    gap: var(--ds-space-2);
    align-items: start;
    margin-block: var(--ds-space-4);
    line-height: 1.8;
    color: var(--ds-color-text-muted);
    font-size: var(--ds-text-xs);
}

.sf-commerce-consent input {
    inline-size: 1.2rem;
    block-size: 1.2rem;
    margin-block-start: .3rem;
    accent-color: var(--ds-color-primary);
}

/* =========================================================
   Payment medallion, receipt, and next actions
   ========================================================= */
.sf-payment-result {
    max-inline-size: 65rem;
    margin-inline: auto;
}

.sf-payment-result__card {
    position: relative;
    overflow: hidden;
    padding: 1.625rem;
    text-align: center;
    border-radius: calc(var(--ds-radius-lg) + 4px);
}

/* Success atmosphere belongs only to a persisted successful result. */
.sf-payment-result:is([data-status="success"], [data-status="already-processed"]) .sf-payment-result__card {
    background: radial-gradient(circle at 100% 100%, color-mix(in srgb, var(--ds-color-success-semantic) 10%, transparent), transparent 27rem), linear-gradient(145deg, color-mix(in srgb, var(--ds-color-surface-raised) 96%, var(--ds-color-primary)), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
}

.sf-status-medallion {
    --result-tone: var(--ds-color-success-semantic);
    position: relative;
    display: grid;
    place-items: center;
    inline-size: 7.375rem;
    block-size: 7.375rem;
    margin: 0 auto var(--ds-space-4);
    border-radius: calc(var(--ds-radius-xl) - 3px);
    background: linear-gradient(145deg, color-mix(in srgb, var(--ds-color-surface-subtle) 97%, var(--ds-color-primary)), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
    color: var(--ds-color-ink-inverse);
    box-shadow: 7px 7px 14px color-mix(in srgb, var(--ds-kinetic-ink) 16%, transparent), -6px -6px 12px color-mix(in srgb, var(--ds-color-surface-raised) 83%, transparent), inset 1px 1px 0 color-mix(in srgb, var(--ds-color-surface-raised) 48%, transparent);
    transform: rotate(-2deg);
}
.sf-status-medallion::before {
    position: absolute;
    inset: .625rem;
    border-radius: calc(var(--ds-radius-lg) + 2px);
    box-shadow: inset 8px 8px 15px color-mix(in srgb, var(--ds-kinetic-ink) 18%, transparent), inset -8px -8px 15px color-mix(in srgb, var(--ds-color-surface-raised) 85%, transparent), 1px 1px 0 color-mix(in srgb, var(--ds-color-surface-raised) 38%, transparent);
    content: "";
    background: linear-gradient(145deg, color-mix(in srgb, var(--ds-color-surface-strong) 96%, var(--ds-color-primary)), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
}
.sf-status-medallion::after {
    position: absolute;
    border-radius: calc(var(--ds-radius-lg) - 5px);
    background: linear-gradient(145deg, color-mix(in srgb, var(--result-tone) 83%, var(--ds-color-surface-raised)), var(--result-tone));
    box-shadow: 0 12px 25px color-mix(in srgb, var(--result-tone) 30%, transparent), inset 1px 1px 0 color-mix(in srgb, var(--ds-color-ink-inverse) 33%, transparent);
    content: "";
    inline-size: 4.125rem;
    block-size: 4.125rem;
}
.sf-status-medallion[data-tone="danger"] {
    --result-tone: var(--ds-color-danger-semantic);
}
.sf-status-medallion svg {
    position: relative;
    z-index: 1;
    inline-size: 1.9375rem;
    block-size: 1.9375rem;
    stroke-width: 2.2;
    filter: drop-shadow(0 3px 2px color-mix(in srgb, var(--ds-kinetic-ink) 14%, transparent));
}

.sf-payment-result__card h2 {
    margin: var(--ds-space-2) 0;
    font: 850 clamp(1.65rem, 3.2vw, 2.6rem)/1.3 var(--ds-font-display);
    letter-spacing: -.035em;
}

.sf-payment-result__description {
    max-inline-size: 44rem;
    margin: 0 auto var(--ds-space-5);
    color: var(--ds-color-text-muted);
    line-height: 1.9;
}

.sf-payment-receipt {
    position: relative;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
    gap: var(--ds-space-2);
    max-inline-size: 47.5rem;
    margin: 0 auto var(--ds-space-4);
    padding: .8125rem;
    border: 0;
    border-radius: calc(var(--ds-radius-md) + 3px);
    background: linear-gradient(145deg, color-mix(in srgb, var(--ds-color-surface-strong) 96%, var(--ds-color-primary)), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
    box-shadow: inset 8px 8px 15px color-mix(in srgb, var(--ds-kinetic-ink) 18%, transparent), inset -8px -8px 15px color-mix(in srgb, var(--ds-color-surface-raised) 85%, transparent), 1px 1px 0 color-mix(in srgb, var(--ds-color-surface-raised) 38%, transparent);
}

.sf-payment-receipt::before,
.sf-payment-receipt::after {
    position: absolute;
    inset-block-start: calc(50% - .6rem);
    inline-size: .65rem;
    block-size: 1.2rem;
    background: color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary));
    content: "";
}
.sf-payment-receipt::before {
    inset-inline-start: 0;
    border-radius: 0 1rem 1rem 0;
}
.sf-payment-receipt::after {
    inset-inline-end: 0;
    border-radius: 1rem 0 0 1rem;
}
.sf-payment-receipt--unavailable {
    display: block;
}

.sf-payment-receipt > div {
    display: grid;
    align-content: center;
    min-block-size: 4.5rem;
    padding: .625rem;
    border-radius: calc(var(--ds-radius-sm) + 2px);
    background: linear-gradient(145deg, color-mix(in srgb, var(--ds-color-surface-subtle) 97%, var(--ds-color-primary)), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
    box-shadow: 7px 7px 14px color-mix(in srgb, var(--ds-kinetic-ink) 16%, transparent), -6px -6px 12px color-mix(in srgb, var(--ds-color-surface-raised) 83%, transparent), inset 1px 1px 0 color-mix(in srgb, var(--ds-color-surface-raised) 48%, transparent);
}

.sf-payment-receipt--unavailable > .sf-operation {
    margin: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.sf-payment-receipt span {
    color: var(--ds-color-text-muted);
    font-size: var(--ds-text-2xs);
}

.sf-payment-receipt strong {
    margin-block-start: var(--ds-space-1);
}

.sf-payment-receipt .sf-price {
    justify-content: center;
}

.sf-payment-receipt .sf-price strong {
    font-size: var(--ds-text-sm);
}

.sf-payment-next-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .625rem;
    max-inline-size: 47.5rem;
    margin-inline: auto;
}

.sf-payment-next-actions > a {
    display: grid;
    grid-template-columns: 2.75rem minmax(0, 1fr) auto;
    gap: .625rem;
    align-items: center;
    min-block-size: 5rem;
    padding: var(--ds-space-3);
    border: 0;
    border-radius: var(--ds-radius-md);
    background: linear-gradient(145deg, color-mix(in srgb, var(--ds-color-surface-subtle) 97%, var(--ds-color-primary)), color-mix(in srgb, var(--ds-color-surface-subtle) 94%, var(--ds-color-primary)));
    color: var(--ds-color-text);
    text-align: start;
    text-decoration: none;
    box-shadow: 7px 7px 14px color-mix(in srgb, var(--ds-kinetic-ink) 16%, transparent), -6px -6px 12px color-mix(in srgb, var(--ds-color-surface-raised) 83%, transparent), inset 1px 1px 0 color-mix(in srgb, var(--ds-color-surface-raised) 48%, transparent);
    transition: box-shadow var(--ds-duration-fast) var(--ds-ease-standard);
}

.sf-payment-next-actions > a:active {
    box-shadow: inset 4px 4px 8px color-mix(in srgb, var(--ds-kinetic-ink) 12%, transparent), inset -4px -4px 8px color-mix(in srgb, var(--ds-color-surface-raised) 73%, transparent);
}

.sf-payment-next-actions > a:first-child strong,
.sf-payment-next-actions > a > span:last-child {
    color: var(--ds-color-primary);
}

.sf-payment-next-actions > a:hover {
    outline: 1px solid color-mix(in srgb, var(--ds-color-primary) 30%, transparent);
    outline-offset: 2px;
}

.sf-payment-next-actions__icon {
    inline-size: 2.75rem;
    block-size: 2.75rem;
    border-radius: calc(var(--ds-radius-sm) + 2px);
}

.sf-payment-next-actions strong,
.sf-payment-next-actions small {
    display: block;
}

.sf-payment-next-actions small {
    margin-block-start: var(--ds-space-1);
    color: var(--ds-color-text-muted);
}

/* =========================================================
   Order Passport, items, and delivery
   ========================================================= */
.sf-order-passport {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--ds-space-4);
    align-items: center;
    margin-block-end: var(--ds-space-4);
    padding: var(--ds-space-4);
    border-radius: var(--ds-radius-lg);
    border: 1px solid color-mix(in srgb, var(--ds-color-primary) 12%, var(--ds-color-border));
    background:
        radial-gradient(circle at 12% 18%, color-mix(in srgb, var(--ds-color-info-semantic) 11%, transparent), transparent 38%),
        linear-gradient(135deg, color-mix(in srgb, var(--ds-color-primary) 10%, var(--ds-color-surface)), var(--ds-color-surface-raised));
    box-shadow: var(--ds-kinetic-shadow-inset);
}

.sf-order-passport h2 {
    margin: var(--ds-space-1) 0;
    font: 850 clamp(1.7rem, 3vw, 2.4rem)/1.3 var(--ds-font-display);
}

.sf-order-passport > div > span {
    color: var(--ds-color-text-muted);
}

.sf-order-passport__stamp {
    display: grid;
    place-items: center;
    inline-size: 7rem;
    min-block-size: 6rem;
    padding: var(--ds-space-2);
    border-radius: var(--ds-radius-lg);
    color: var(--ds-color-primary);
    text-align: center;
    background: color-mix(in srgb, var(--ds-color-surface-raised) 76%, transparent);
    box-shadow: var(--ds-kinetic-shadow-raised);
}

.sf-order-passport__stamp small {
    color: var(--ds-color-text-muted);
    font: 500 var(--ds-text-xs)/1.5 var(--ds-font-body);
}

.sf-order-passport__stamp strong {
    margin-block-start: var(--ds-space-1);
    font-size: var(--ds-text-2xs);
}

.sf-order-items > article {
    display: grid;
    grid-template-columns: 6rem minmax(0, 1fr);
    gap: var(--ds-space-3);
    align-items: center;
    margin-block-start: var(--ds-space-2);
    padding: var(--ds-space-3);
    border-radius: var(--ds-radius-md);
    background: linear-gradient(145deg, var(--ds-color-surface-subtle), color-mix(in srgb, var(--ds-color-primary) 4%, var(--ds-color-surface)));
    box-shadow: var(--ds-kinetic-shadow-raised);
}

.sf-order-items__identity {
    display: grid;
    justify-items: start;
    min-inline-size: 0;
    gap: var(--ds-space-2);
    overflow-wrap: anywhere;
}

/* Historical facts reuse the approved Commerce cells; timeline cards describe state. */
.sf-order-journey header {
    display: grid;
    gap: var(--ds-space-1);
    margin-block-end: var(--ds-space-2);
}

.sf-order-journey header small {
    color: var(--ds-color-text-muted);
    font: 500 var(--ds-text-xs)/1.65 var(--ds-font-body);
}

.sf-order-page .sf-order-journey .ds-order-timeline li:not(.is-current) {
    background: var(--ds-control-surface);
    box-shadow: inset 1px 1px 0 var(--ds-control-icon-light);
}

/* Keep large atomic amounts inside the fixed financial rail without splitting currency. */
.sf-order-page .ds-summary-rail__facts dd {
    overflow-x: auto;
}

.sf-order-page .ds-summary-rail__facts .is-total {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--ds-space-1);
}

.sf-order-page .ds-summary-rail__facts .is-total dt,
.sf-order-page .ds-summary-rail__facts .is-total dd {
    text-align: start;
}

.sf-order-page .ds-summary-rail__facts .is-total .sf-price {
    justify-content: flex-start;
}

.sf-order-page .sf-order-layout .ds-summary-rail__facts .is-total .sf-price strong {
    font-size: clamp(var(--ds-text-lg), 2vw, var(--ds-text-xl));
}

.sf-order-items h3,
.sf-order-items p {
    margin: 0;
}

.sf-order-items h3 {
    font: 800 var(--ds-text-sm)/1.6 var(--ds-font-heading);
}

.sf-order-items p {
    margin-block-start: var(--ds-space-1);
    color: var(--ds-color-text-muted);
    font-size: var(--ds-text-2xs);
}

.sf-order-items .sf-price {
    justify-content: flex-start;
    margin: 0;
}

.sf-order-page .sf-order-items .sf-price strong {
    font-size: var(--ds-text-sm);
}

.sf-order-delivery {
    display: grid;
    grid-template-columns: 3.4rem minmax(0, 1fr);
    gap: var(--ds-space-3);
    align-items: center;
    margin-block-start: var(--ds-space-4);
    padding: var(--ds-space-3);
    border: 1px solid var(--ds-color-border);
    border-radius: var(--ds-radius-md);
    background: var(--ds-color-surface-strong);
    box-shadow: var(--ds-kinetic-shadow-inset);
}

.sf-order-delivery p,
.sf-order-delivery small {
    margin: var(--ds-space-1) 0 0;
    color: var(--ds-color-text-muted);
    line-height: 1.75;
}

/* =========================================================
   Accessibility, responsive ownership, and reduced motion
   ========================================================= */
.sf-commerce-text-link:focus-visible,
.sf-commerce-form :is(input, select, textarea):focus-visible,
.sf-address-editor > summary:focus-visible,
.sf-commerce-consent input:focus-visible,
.sf-checkout-chapter__head > a:focus-visible,
.sf-payment-next-actions > a:focus-visible {
    outline: 2px solid var(--ds-color-primary);
    outline-offset: 3px;
}

@media (max-width: 68rem) {
    .sf-commerce-grid,
    .sf-order-layout {
        grid-template-columns: 1fr;
    }

}

@media (max-width: 46rem) {
    .sf-commerce-page {
        padding-block-start: var(--ds-space-3);
        padding-block-end: calc(var(--ds-space-4) + env(safe-area-inset-bottom));
    }

    .sf-commerce-panel,
    .sf-order-dossier {
        padding: var(--ds-space-3);
        border-radius: var(--ds-radius-md);
    }

    .sf-commerce-panel__heading,
    .sf-cart-overview {
        align-items: flex-start;
    }

    .sf-cart-overview {
        flex-direction: column;
    }

    .sf-commerce-form,
    .sf-checkout-account {
        grid-template-columns: 1fr;
    }

    .sf-commerce-form__wide,
    .sf-commerce-form .sf-commerce-actions {
        grid-column: 1;
    }

    .sf-payment-console {
        grid-template-columns: 5.75rem minmax(0, 1fr);
        padding: .6875rem;
    }

    .sf-payment-console__visual {
        min-block-size: 6.125rem;
    }

    .sf-payment-console__orbit {
        inline-size: 4.25rem;
        block-size: 4.25rem;
    }

    .sf-payment-console__orbit--inner {
        inline-size: 3.625rem;
        block-size: 3.625rem;
    }

    .sf-payment-result__card {
        padding: 1.25rem .875rem;
    }

    .sf-status-medallion {
        inline-size: 6.5rem;
        block-size: 6.5rem;
    }

    .sf-payment-receipt {
        grid-template-columns: 1fr 1fr;
    }

    .sf-payment-next-actions {
        grid-template-columns: 1fr;
    }

    .sf-order-passport {
        grid-template-columns: 1fr;
    }

    .sf-order-passport__stamp {
        inline-size: 100%;
        min-block-size: 4.5rem;
    }

    .sf-order-items > article {
        grid-template-columns: 4.5rem minmax(0, 1fr);
    }

}

@media (max-width: 34rem) {

    .sf-commerce-panel__heading {
        flex-wrap: wrap;
    }

    .sf-checkout-chapter__head {
        flex-wrap: wrap;
        align-items: flex-start;
    }

    .sf-checkout-chapter__identity {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .sf-checkout-chapter__icon {
        display: none;
    }

    .sf-checkout-chapter__head > .sf-badge,
    .sf-checkout-chapter__head > a {
        margin-inline-start: 3.35rem;
    }

    .sf-payment-console {
        grid-template-columns: 1fr;
    }

    .sf-payment-console__visual {
        inline-size: 5.75rem;
        justify-self: center;
    }

    .sf-payment-receipt {
        grid-template-columns: 1fr;
    }

    .sf-checkout-lines article {
        grid-template-columns: 3.75rem minmax(0, 1fr);
    }

    .sf-checkout-lines__facts,
    .sf-order-items__facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (prefers-reduced-motion: reduce) {
    .sf-payment-next-actions > a {
        transition: none;
    }
}
