.subscription-checkout .purchase-terms-order {
    background:#faf8fd;
    border-color:#e9e2f1;
    border-radius:14px;
    gap:18px;
}
.subscription-checkout .purchase-terms-preview {
    border:0;
    border-radius:10px;
    background:#e5dbf4;
    cursor:default;
    pointer-events:none;
}
.subscription-checkout .purchase-terms-product-label {
    color:#7140a4;
    font-weight:500;
}
.subscription-checkout .purchase-terms-product-title {
    font-weight:600;
}
.subscription-checkout .subscription-duration {
    color:#787080;
    font-size:12px;
    line-height:1.4;
}
.subscription-checkout .purchase-terms-total {
    border-left:1px solid #e4dceb;
}
.subscription-checkout .purchase-terms-price {
    font-weight:600;
}
@media(max-width:600px) {
    .subscription-checkout .purchase-terms-total { border-left:0; }
}

.purchase-terms-modal {
    position:fixed;
    z-index:4900;
    inset:0;
    display:grid;
    place-items:center;
    padding:24px;
    background:rgba(20, 18, 24, 0.68);
    backdrop-filter:blur(10px) saturate(0.8);
    overscroll-behavior:contain;
    opacity:0;
    visibility:hidden;
    transition:none;
}

.purchase-terms-modal[hidden] {
    display:none;
}

.purchase-terms-modal.open {
    opacity:1;
    visibility:visible;
}

.purchase-terms-dialog {
    position:relative;
    width:min(680px, 100%);
    max-height:calc(100dvh - 48px);
    padding:28px;
    overflow:auto;
    overscroll-behavior:contain;
    border:1px solid rgba(255, 255, 255, 0.82);
    border-radius:8px;
    background:#ffffff;
    box-shadow:0 28px 90px rgba(17, 18, 23, 0.32), 0 2px 10px rgba(17, 18, 23, 0.08);
    outline:none;
    transform:none;
    transition:none;
}

.purchase-terms-modal.open .purchase-terms-dialog {
    transform:none;
}

.purchase-terms-close {
    position:absolute;
    top:20px;
    right:20px;
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    padding:0 0 2px;
    border:1px solid #e5e7eb;
    border-radius:50%;
    background:#ffffff;
    color:#60646c;
    font-size:23px;
    line-height:1;
    cursor:pointer;
    transition:background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.purchase-terms-close:hover,
.purchase-terms-close:focus-visible {
    border-color:#d0d4da;
    background:#f5f6f7;
    color:#17191d;
}

.purchase-terms-close:focus-visible,
.purchase-terms-offer-link:focus-visible,
.purchase-terms-confirm:focus-visible,
.purchase-terms-consent input:focus-visible + .purchase-terms-check {
    outline:3px solid rgba(141, 52, 230, 0.25);
    outline-offset:3px;
}

.purchase-terms-heading {
    padding-right:54px;
}

.purchase-terms-kicker {
    display:inline-flex;
    align-items:center;
    gap:9px;
    margin:0 0 12px;
    color:#5d626a;
    font-size:14px;
    font-weight:650;
    line-height:1.3;
}

.purchase-terms-shield {
    width:21px;
    height:21px;
    flex:0 0 21px;
    overflow:visible;
}

.purchase-terms-shield-body {
    fill:#22bd68;
}

.purchase-terms-shield-check {
    fill:none;
    stroke:#ffffff;
    stroke-width:2.2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.purchase-terms-dialog h2 {
    margin:0 0 7px;
    color:#17191d;
    font-size:29px;
    line-height:1.15;
}

.purchase-terms-intro {
    max-width:590px;
    margin:0 0 22px;
    color:#696e77;
    font-size:15px;
    line-height:1.5;
}

.purchase-terms-order {
    display:grid;
    grid-template-columns:112px minmax(0, 1fr) auto;
    align-items:center;
    gap:18px;
    margin-bottom:18px;
    padding:14px;
    border:1px solid #e4e7eb;
    border-radius:8px;
    background:#f8f9fa;
    box-shadow:none;
}

.purchase-terms-preview {
    position:relative;
    width:112px;
    aspect-ratio:4 / 3;
    display:grid;
    place-items:center;
    overflow:hidden;
    padding:0;
    border:1px solid #dde1e6;
    border-radius:6px;
    background:#eef0f3;
    color:inherit;
    font:inherit;
    cursor:zoom-in;
}

.purchase-terms-preview:focus-visible {
    outline:3px solid rgba(141, 52, 230, 0.25);
    outline-offset:3px;
}

.purchase-terms-preview:disabled {
    cursor:default;
}

.purchase-terms-image {
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.purchase-terms-image[hidden],
.purchase-terms-image-placeholder[hidden] {
    display:none;
}

.purchase-terms-image-placeholder {
    color:#7e3ba7;
    font-size:15px;
    font-weight:900;
}

.purchase-terms-product {
    display:grid;
    gap:6px;
    min-width:0;
}

.purchase-terms-product-label {
    display:block;
    margin:0;
    color:#757b84;
    font-size:12px;
    font-weight:700;
    line-height:1.35;
}

.purchase-terms-product-title {
    display:block;
    color:#202329;
    font-size:17px;
    line-height:1.35;
    overflow-wrap:anywhere;
}

.purchase-terms-total {
    min-width:112px;
    display:grid;
    justify-items:end;
    gap:6px;
    padding-left:18px;
    border-left:2px solid #c8cdd5;
    color:#757b84;
    font-size:12px;
    font-weight:700;
    line-height:1.35;
}

.purchase-terms-price {
    color:#17191d;
    font-size:17px;
    font-weight:900;
    line-height:1.35;
    white-space:nowrap;
}

.purchase-terms-watermark-note {
    display:block;
    grid-column:1 / -1;
    margin:0;
    padding-top:10px;
    border-top:1px solid #e4e7eb;
    color:#626871;
    font-size:11px;
    font-weight:400;
    line-height:1.35;
    text-align:center;
}

.purchase-terms-email {
    display:grid;
    gap:7px;
    margin:-2px 0 14px;
}

.purchase-terms-email > label {
    color:#34373d;
    font-size:12px;
    font-weight:700;
    line-height:1.35;
}

.purchase-terms-email-field {
    min-height:48px;
    display:grid;
    grid-template-columns:20px minmax(0, 1fr);
    align-items:center;
    gap:10px;
    padding:0 14px;
    border:1px solid #d7dbe1;
    border-radius:8px;
    background:#ffffff;
    transition:border-color 0.16s ease, box-shadow 0.16s ease;
}

.purchase-terms-email-field:focus-within {
    border-color:#aaa1b0;
    box-shadow:0 0 0 2px rgba(56, 35, 65, 0.07);
    background:#ffffff;
}

.purchase-terms-email-field svg {
    width:20px;
    height:20px;
    fill:none;
    stroke:#747a83;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.purchase-terms-email input {
    width:100%;
    min-width:0;
    height:46px;
    padding:0;
    border:0;
    outline:0;
    background:transparent;
    color:#202329;
    font:inherit;
    font-size:15px;
}

.purchase-terms-email input:focus {
    outline:none;
    box-shadow:none;
}

.purchase-terms-email input:-webkit-autofill,
.purchase-terms-email input:-webkit-autofill:hover,
.purchase-terms-email input:-webkit-autofill:focus {
    -webkit-text-fill-color:#202329;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset;
    caret-color:#202329;
}

.purchase-terms-email input::placeholder {
    color:#9a9fa7;
    opacity:1;
}

.purchase-terms-email-hint {
    color:#7a8089;
    font-size:11px;
    line-height:1.35;
    text-align:center;
}

.purchase-terms-email.is-invalid .purchase-terms-email-field {
    border-color:#c83b50;
    box-shadow:0 0 0 3px rgba(200, 59, 80, 0.1);
}

.purchase-terms-email.is-invalid .purchase-terms-email-hint {
    color:#a72d40;
}

.purchase-terms-consent {
    position:relative;
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    align-items:center;
    gap:16px;
    margin-bottom:18px;
    padding:14px 15px;
    border:1px solid #dfe2e7;
    border-radius:8px;
    background:#f8f9fa;
    transition:border-color 0.16s ease, background-color 0.16s ease, box-shadow 0.16s ease;
}

.purchase-terms-consent-control {
    display:grid;
    grid-template-columns:22px minmax(0, 1fr);
    align-items:start;
    gap:12px;
    min-width:0;
}

.purchase-terms-consent-control input {
    position:absolute;
    width:1px;
    height:1px;
    opacity:0;
    pointer-events:none;
}

.purchase-terms-check {
    width:22px;
    height:22px;
    display:grid;
    place-items:center;
    margin:0;
    border:1px solid #b8bec7;
    border-radius:7px;
    background:#ffffff;
    color:#ffffff;
    cursor:pointer;
    box-shadow:inset 0 0 0 1px rgba(255, 255, 255, 0.8), 0 1px 2px rgba(29, 24, 33, 0.08);
    transition:border-color 0.16s ease, background-color 0.16s ease, box-shadow 0.16s ease;
}

.purchase-terms-check svg {
    width:14px;
    height:14px;
    fill:none;
    stroke:currentColor;
    stroke-width:2.1;
    stroke-linecap:round;
    stroke-linejoin:round;
    opacity:0;
    transform:scale(0.75);
    transition:opacity 0.14s ease, transform 0.14s ease;
}

.purchase-terms-consent input:checked + .purchase-terms-check {
    border-color:#2b2030;
    background:#2b2030;
    box-shadow:inset 0 0 0 1px rgba(255, 255, 255, 0.08), 0 2px 5px rgba(29, 22, 33, 0.2);
}

.purchase-terms-consent input:checked + .purchase-terms-check svg {
    opacity:1;
    transform:scale(1);
}

.purchase-terms-consent-copy {
    display:grid;
    gap:3px;
    min-width:0;
}

.purchase-terms-consent-copy strong {
    color:#292c32;
    font-size:11px;
    font-weight:400;
    line-height:1.35;
}

.purchase-terms-consent-copy strong label {
    cursor:pointer;
}

.purchase-terms-consent-copy span {
    color:#7a8089;
    font-size:11px;
    line-height:1.35;
}

.purchase-terms-consent-copy strong > span {
    color:inherit;
    font-size:inherit;
    font-weight:inherit;
    line-height:inherit;
}

.purchase-terms-offer-link {
    appearance:none;
    display:inline;
    margin:0;
    padding:0;
    border:0;
    background:transparent;
    color:#7932bd;
    font:inherit;
    font-weight:400;
    line-height:inherit;
    text-decoration:underline;
    text-decoration-thickness:1px;
    text-underline-offset:2px;
    cursor:pointer;
    transition:color 0.16s ease;
}

.purchase-terms-offer-link:hover {
    color:#4e1e73;
}

.purchase-terms-actions {
    display:block;
}

.purchase-terms-confirm {
    width:100%;
    min-height:54px;
    display:grid;
    grid-template-columns:19px max-content 19px;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:0 24px;
    border:1px solid #211826;
    border-radius:11px;
    background:#211826;
    color:#ffffff;
    font:inherit;
    font-size:15px;
    font-weight:800;
    cursor:pointer;
    transition:background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease;
    box-shadow:0 12px 26px rgba(31, 23, 36, 0.2);
}

.purchase-terms-confirm::after {
    content:"";
    width:19px;
    height:19px;
    grid-column:3;
}

.purchase-terms-confirm-label {
    grid-column:2;
    justify-self:center;
    text-align:center;
}

.purchase-terms-confirm:hover:not(:disabled),
.purchase-terms-confirm:focus-visible:not(:disabled) {
    border-color:#37233f;
    background:#37233f;
    box-shadow:0 14px 30px rgba(31, 23, 36, 0.25);
}

.purchase-terms-pay-icon {
    width:19px;
    height:19px;
    grid-column:1;
    fill:none;
    stroke:#74dfa6;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
    transition:stroke 0.16s ease;
}

.purchase-terms-confirm:disabled {
    border-color:#e3dee7;
    background:#eae7ed;
    color:#9a939f;
    box-shadow:none;
    cursor:not-allowed;
}

.purchase-terms-confirm:disabled .purchase-terms-pay-icon {
    stroke:#aaa3ae;
}

.purchase-terms-security-note {
    display:flex;
    align-items:flex-start;
    justify-content:center;
    gap:7px;
    margin:11px 8px 0;
    color:#747982;
    font-size:11px;
    line-height:1.4;
    text-align:center;
}

.purchase-terms-watermark-note,
.purchase-terms-email-hint,
.purchase-terms-security-note {
    color:#6f747d;
    font-size:11px;
    font-weight:400;
    line-height:1.35;
}

.purchase-terms-security-note svg {
    width:15px;
    height:15px;
    flex:0 0 15px;
    margin-top:1px;
    overflow:visible;
}

.purchase-terms-security-shield {
    fill:#22bd68;
}

.purchase-terms-security-check {
    fill:none;
    stroke:#ffffff;
    stroke-width:2.2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

@media (max-width:660px) {
    .purchase-terms-modal {
        align-items:end;
        padding:0;
        backdrop-filter:blur(7px);
    }

    .purchase-terms-dialog {
        width:100%;
        max-height:calc(100dvh - 12px);
        padding:24px 18px calc(16px + env(safe-area-inset-bottom));
        border-width:1px 0 0;
        border-radius:8px 8px 0 0;
        transform:translateY(24px);
    }

    .purchase-terms-heading {
        padding-right:44px;
    }

    .purchase-terms-close {
        top:16px;
        right:16px;
        width:36px;
        height:36px;
    }

    .purchase-terms-kicker {
        margin-bottom:10px;
        font-size:14px;
    }

    .purchase-terms-dialog h2 {
        font-size:25px;
    }

    .purchase-terms-intro {
        margin-bottom:17px;
        font-size:14px;
    }

    .purchase-terms-order {
        grid-template-columns:86px minmax(0, 1fr);
        gap:13px;
        padding:12px;
    }

    .purchase-terms-preview {
        width:86px;
    }

    .purchase-terms-product-title {
        font-size:15px;
    }

    .purchase-terms-total {
        grid-column:1 / -1;
        min-width:0;
        display:flex;
        align-items:center;
        justify-content:space-between;
        padding:12px 0 0;
        border-top:1px solid #e9e4ec;
        border-left:0;
    }

    .purchase-terms-price {
        font-size:15px;
    }

    .purchase-terms-consent {
        margin-bottom:16px;
        padding:13px;
        grid-template-columns:1fr;
        gap:11px;
    }

    .purchase-terms-consent-control {
        grid-template-columns:22px minmax(0, 1fr);
    }

    .purchase-terms-security-note {
        margin-right:0;
        margin-left:0;
    }

}

@media (max-width:380px) {
    .purchase-terms-dialog {
        padding-right:14px;
        padding-left:14px;
    }

    .purchase-terms-order {
        grid-template-columns:74px minmax(0, 1fr);
    }

    .purchase-terms-preview {
        width:74px;
    }
}

@media (prefers-reduced-motion:reduce) {
    .purchase-terms-modal,
    .purchase-terms-dialog,
    .purchase-terms-close,
    .purchase-terms-consent,
    .purchase-terms-check,
    .purchase-terms-confirm,
    .purchase-terms-pay-icon {
        transition:none;
    }
}
