/*
 * Le Diplomate — parcours Paid Memberships Pro 4.8.8
 *
 * Cette couche habille le balisage officiel de PMPro. Elle ne remplace ni le
 * formulaire, ni les passerelles, ni les contrôles transactionnels du plugin.
 */

/* Coque dédiée au paiement. */
.membership-checkout-page{
    min-height:70vh;
    background:var(--soft);
    color:var(--ink);
}
.membership-checkout-page~.newsletter-band{display:none}
.membership-checkout-hero{
    position:relative;
    overflow:hidden;
    background:var(--navy);
    color:#fff;
    padding:42px 0 76px;
}
.membership-checkout-hero::after{
    content:'';
    position:absolute;
    right:-180px;
    top:-310px;
    width:590px;
    height:590px;
    border:1px solid rgba(255,255,255,.1);
    border-radius:50%;
    box-shadow:0 0 0 88px rgba(255,255,255,.025),0 0 0 176px rgba(255,255,255,.017);
    pointer-events:none;
}
.membership-checkout-hero__inner{position:relative;z-index:1}
.membership-checkout-back{
    display:inline-flex;
    align-items:center;
    min-width:44px;
    min-height:44px;
    gap:8px;
    color:#d5ddec;
    padding:8px 0;
    font-size:11px;
    font-weight:700;
    line-height:1.4;
    text-decoration:none;
}
.membership-checkout-back:hover{color:#fff}
.membership-checkout-back:focus-visible,
.membership-checkout-page :is(a,button,input,select,textarea):focus-visible{
    outline:3px solid #90a5ff;
    outline-offset:3px;
}
.membership-checkout-hero__copy{
    max-width:790px;
    margin-top:34px;
}
.membership-checkout-kicker,
.membership-checkout-form__head>span,
.membership-checkout-aside__eyebrow{
    display:block;
    font-size:9px;
    font-weight:700;
    line-height:1.4;
    letter-spacing:.13em;
    text-transform:uppercase;
}
.membership-checkout-kicker{margin-bottom:13px;color:#b9c6ff}
.membership-checkout-hero h1{
    max-width:12ch;
    margin:0;
    font-family:var(--editorial);
    font-size:clamp(42px,5vw,64px);
    font-weight:700;
    line-height:1.02;
    letter-spacing:-.04em;
    text-wrap:balance;
}
.membership-checkout-hero__copy>p{
    max-width:63ch;
    margin:18px 0 0;
    color:#cbd4e3;
    font-size:16px;
    line-height:1.65;
}
.membership-checkout-plan{
    display:inline-flex;
    align-items:center;
    gap:10px;
    max-width:100%;
    margin-top:22px;
    border:1px solid rgba(255,255,255,.2);
    border-radius:999px;
    background:rgba(255,255,255,.07);
    padding:8px 13px;
    font-size:11px;
    line-height:1.35;
}
.membership-checkout-plan>span{color:#aebbd1}
.membership-checkout-plan>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.membership-checkout-shell{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(270px,320px);
    gap:32px;
    align-items:start;
    margin-top:-34px;
    padding-bottom:88px;
}
.membership-checkout-form,
.membership-checkout-aside{min-width:0}
.membership-checkout-form__head,
.membership-checkout-aside{
    border:1px solid var(--line);
    background:var(--paper);
    box-shadow:0 14px 42px rgba(8,21,47,.08);
}
.membership-checkout-form__head{
    margin-bottom:20px;
    border-radius:20px;
    padding:26px 30px;
}
.membership-checkout-form__head>span{margin-bottom:9px;color:var(--blue)}
.membership-checkout-form__head h2{
    margin:0;
    font-family:var(--editorial);
    font-size:clamp(28px,3vw,37px);
    line-height:1.12;
    letter-spacing:-.025em;
    text-wrap:balance;
}
.membership-checkout-form__head p{
    max-width:68ch;
    margin:10px 0 0;
    color:var(--muted);
    font-size:13px;
    line-height:1.6;
}
.membership-checkout-aside{
    position:sticky;
    top:24px;
    border-radius:20px;
    padding:27px 25px 24px;
}
body.admin-bar .membership-checkout-aside{top:calc(var(--ld-admin-bar-offset) + 24px)}
.membership-checkout-aside__eyebrow{margin-bottom:10px;color:var(--blue)}
.membership-checkout-aside h2{
    margin:0;
    font-family:var(--editorial);
    font-size:27px;
    line-height:1.16;
    letter-spacing:-.025em;
}
.membership-checkout-steps{
    margin:25px 0 0;
    padding:0;
    list-style:none;
}
.membership-checkout-steps li{
    position:relative;
    display:grid;
    grid-template-columns:32px minmax(0,1fr);
    gap:12px;
    min-width:0;
    padding:0 0 21px;
}
.membership-checkout-steps li:last-child{padding-bottom:0}
.membership-checkout-steps li:not(:last-child)::after{
    content:'';
    position:absolute;
    left:15px;
    top:34px;
    bottom:2px;
    width:1px;
    background:var(--line);
}
.membership-checkout-steps li>span{
    display:grid;
    place-items:center;
    width:32px;
    height:32px;
    border:1px solid var(--line);
    border-radius:50%;
    background:var(--paper);
    color:var(--muted);
    font-size:11px;
    font-weight:700;
}
.membership-checkout-steps .is-complete>span{
    border-color:#9ed8ae;
    background:#e7f6ed;
    color:#075f30;
}
.membership-checkout-steps .is-current>span{
    border-color:var(--blue);
    background:var(--blue);
    color:#fff;
}
.membership-checkout-steps strong,
.membership-checkout-steps small{display:block}
.membership-checkout-steps strong{padding-top:1px;font-size:12px;line-height:1.4}
.membership-checkout-steps small{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.45}
.membership-checkout-reassurance{
    margin:25px 0 0;
    border-top:1px solid var(--line);
    padding:17px 0 0;
    list-style:none;
}
.membership-checkout-reassurance li{
    position:relative;
    margin:0;
    padding:6px 0 6px 23px;
    color:var(--muted);
    font-size:10px;
    line-height:1.5;
}
.membership-checkout-reassurance li::before{
    content:'✓';
    position:absolute;
    left:0;
    top:6px;
    color:var(--teal);
    font-weight:700;
}
.membership-checkout-help{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
    margin-top:20px;
    border-top:1px solid var(--line);
    padding-top:17px;
}
.membership-checkout-help a{
    display:inline-flex;
    align-items:center;
    min-width:44px;
    min-height:44px;
    color:var(--blue);
    padding:8px 0;
    font-size:10px;
    font-weight:700;
    line-height:1.45;
    text-decoration:underline;
    text-underline-offset:3px;
}
.membership-checkout-unavailable{
    border:1px solid var(--line);
    border-radius:20px;
    background:var(--paper);
    padding:clamp(25px,5vw,44px);
    box-shadow:0 14px 42px rgba(8,21,47,.08);
}
.membership-checkout-unavailable h2{
    margin:0;
    font-family:var(--editorial);
    font-size:32px;
    line-height:1.15;
}
.membership-checkout-unavailable>p{
    max-width:62ch;
    margin:12px 0 22px;
    color:var(--muted);
    font-size:14px;
}
.membership-checkout-unavailable>div{display:flex;gap:10px;flex-wrap:wrap}
.membership-checkout-admin-note{
    margin:22px 0 0!important;
    border-top:1px solid var(--line);
    padding-top:17px;
    color:var(--muted);
    font-size:11px!important;
}

/*
 * Composants PMPro.
 * Les pages transactionnelles génériques et l’espace abonné partagent cette
 * portée; la grille n’est appliquée qu’aux wrappers PMPro prévus à cet effet.
 */
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro{
    --ld-membership-card:var(--paper);
    --ld-membership-tint:#fff7dc;
    --ld-membership-success:#e7f6ed;
    --ld-membership-danger:#fff0f1;
    display:grid;
    gap:20px;
    width:100%;
    max-width:none;
    min-width:0;
    margin:0;
    color:var(--ink);
    font-family:var(--interface);
    font-size:14px;
    line-height:1.55;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(*,::before,::after){box-sizing:border-box}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(h1,h2,h3,h4){
    color:var(--ink);
    font-family:var(--editorial);
    letter-spacing:-.02em;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(a:not(.pmpro_btn),.pmpro_actions_nav a){
    color:var(--blue);
    font-weight:700;
    text-decoration:underline;
    text-decoration-thickness:1px;
    text-underline-offset:3px;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(a:not(.pmpro_btn),.pmpro_actions_nav a):hover{color:var(--blue-dark)}

:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_section{
    min-width:0;
    margin:0;
    border:0;
    border-radius:0;
    background:transparent;
    padding:0;
    box-shadow:none;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_card,
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_confirmation_wrap{
    min-width:0;
    margin:0;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:20px;
    background:var(--ld-membership-card);
    box-shadow:0 12px 34px rgba(8,21,47,.07);
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_card_title{
    margin:0!important;
    padding:24px 28px 15px!important;
    font-size:clamp(23px,2.6vw,30px)!important;
    line-height:1.16!important;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_card_content{
    min-width:0;
    margin:0!important;
    padding:0 28px 27px!important;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_card_actions{
    display:flex;
    align-items:center;
    gap:10px 14px;
    flex-wrap:wrap;
    margin:0!important;
    border-top:1px solid var(--line);
    background:var(--soft);
    padding:17px 28px!important;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_form_fieldset{
    min-width:0;
    margin:0;
    border:0;
    background:transparent;
    padding:0;
    box-shadow:none;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_form_fieldset+.pmpro_form_fieldset{margin-top:20px}

:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    #pmpro_pricing_fields.pmpro_card,
    .pmpro_pricing_fields.pmpro_card,
    #pmpro_pricing_fields .pmpro_card,
    .pmpro_pricing_fields .pmpro_card
){
    position:relative;
    border-color:#e4c560;
    background:linear-gradient(135deg,var(--ld-membership-tint),var(--paper));
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    #pmpro_pricing_fields.pmpro_card,
    .pmpro_pricing_fields.pmpro_card,
    #pmpro_pricing_fields .pmpro_card,
    .pmpro_pricing_fields .pmpro_card
)::before{
    content:'';
    position:absolute;
    inset:0 auto 0 0;
    width:4px;
    background:var(--blue);
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.pmpro_level_name_text,.pmpro_level_cost_text){margin:0 0 12px}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.ld-pmpro-cost,#pmpro_level_cost .ld-pmpro-cost){margin-top:14px}

/* PMPro gère les groupes; seul .pmpro_cols-2 devient réellement bi-colonne. */
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_form_fields{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:16px;
    min-width:0;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_cols-2{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    width:100%;
    min-width:0;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.pmpro_form_field,.pmpro_cols-2>*){
    width:100%;
    min-width:0;
    margin:0;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_form_field-wide{grid-column:1/-1}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.pmpro_form_label,.pmpro_form_field>label:not(.pmpro_form_label-inline)){
    display:block;
    margin:0 0 7px;
    color:var(--ink);
    font-size:11px;
    font-weight:700;
    letter-spacing:.025em;
    line-height:1.4;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.pmpro_form_field-checkbox,.pmpro_form_field-radio,.pmpro_form_field-radio-item) label,
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_form_label-inline{
    display:flex;
    align-items:flex-start;
    min-height:44px;
    gap:9px;
    margin:0;
    padding:8px 0;
    font-size:13px;
    font-weight:400;
    letter-spacing:0;
    line-height:1.5;
    text-transform:none;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=reset]):not([type=image]):not([type=file]):not([type=hidden]),
    select,
    textarea
){
    display:block;
    width:100%;
    max-width:none;
    min-height:48px;
    margin:0;
    border:1px solid #b9c3d1;
    border-radius:11px;
    background:var(--paper);
    color:var(--ink);
    padding:11px 13px;
    font-family:var(--interface);
    font-size:16px;
    line-height:1.4;
    box-shadow:none;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro textarea{min-height:120px;resize:vertical}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .StripeElement{
    box-sizing:border-box;
    width:100%;
    min-height:48px;
    border:1px solid #b9c3d1;
    border-radius:11px;
    background:#fff;
    padding:13px;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=reset]):not([type=image]):not([type=file]):not([type=hidden]),
    select,
    textarea
):focus{
    border-color:var(--blue);
    outline:0;
    box-shadow:0 0 0 4px rgba(52,84,209,.15);
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .StripeElement--focus{
    border-color:var(--blue);
    outline:0;
    box-shadow:0 0 0 4px rgba(52,84,209,.15);
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=reset]):not([type=image]):not([type=file]):not([type=hidden]),
    select,
    textarea
):is(.pmpro_form_input-error,[aria-invalid="true"]),
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.StripeElement--invalid,.StripeElement[aria-invalid="true"]){
    border-color:#a61b2b;
    background:#fff7f8;
    box-shadow:0 0 0 4px rgba(166,27,43,.16);
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=reset]):not([type=image]):not([type=file]):not([type=hidden]),
    select,
    textarea
):is(.pmpro_form_input-error,[aria-invalid="true"]):focus,
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.StripeElement--invalid,.StripeElement[aria-invalid="true"]):is(.StripeElement--focus,:focus-within){
    border-color:#8c1120;
    outline:0;
    box-shadow:0 0 0 4px rgba(166,27,43,.24);
}
/* PMPro donne deux identifiants à ses conteneurs Stripe : cette précision
   volontaire dépasse sa règle native sans recourir à !important. */
:is(.pmpro_checkout_gateway-stripe,.pmpro_billing_gateway-stripe) form.pmpro_form #pmpro_payment_information_fields div:is(#AccountNumber,#Expiry,#CVV).StripeElement{
    box-sizing:border-box;
    width:100%;
    min-height:48px;
    border:1px solid #b9c3d1;
    border-radius:11px;
    background:#fff;
    padding:13px;
}
:is(.pmpro_checkout_gateway-stripe,.pmpro_billing_gateway-stripe) form.pmpro_form #pmpro_payment_information_fields div:is(#AccountNumber,#Expiry,#CVV).StripeElement--focus{
    border-color:var(--blue);
    outline:0;
    box-shadow:0 0 0 4px rgba(52,84,209,.15);
}
:is(.pmpro_checkout_gateway-stripe,.pmpro_billing_gateway-stripe) form.pmpro_form #pmpro_payment_information_fields div:is(#AccountNumber,#Expiry,#CVV).StripeElement:is(.StripeElement--invalid,[aria-invalid="true"]){
    border-color:#a61b2b;
    background:#fff7f8;
    box-shadow:0 0 0 4px rgba(166,27,43,.16);
}
:is(.pmpro_checkout_gateway-stripe,.pmpro_billing_gateway-stripe) form.pmpro_form #pmpro_payment_information_fields div:is(#AccountNumber,#Expiry,#CVV).StripeElement:is(.StripeElement--invalid,[aria-invalid="true"]):is(.StripeElement--focus,:focus-within){
    border-color:#8c1120;
    outline:0;
    box-shadow:0 0 0 4px rgba(166,27,43,.24);
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(input[type=checkbox],input[type=radio]){
    flex:0 0 auto;
    margin-top:.22em;
    accent-color:var(--blue);
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro input[type=file]{
    display:block;
    width:100%;
    max-width:100%;
    font-size:13px;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.pmpro_form_hint,.pmpro_form_field .description,.pmpro_form_field>small){
    display:block;
    margin-top:6px;
    color:var(--muted);
    font-size:11px;
    line-height:1.45;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_form_fields-inline{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    align-items:end;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_form_fields-inline :is(input[type=button],button){
    width:auto;
    min-height:48px;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_payment-expiration .pmpro_form_fields-inline{
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    align-items:center;
    gap:8px;
    width:100%;
    min-width:0;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_payment-expiration .pmpro_form_fields-inline>select{
    width:100%;
    min-width:0;
}

:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(#pmpro_message,.pmpro_message){
    margin:0;
    border:1px solid #d5dce8;
    border-radius:13px;
    background:var(--soft);
    padding:14px 16px;
    color:var(--ink);
    font-size:13px;
    line-height:1.5;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(#pmpro_message.pmpro_error,.pmpro_message.pmpro_error,.pmpro_error){
    border-color:#e8a6ac;
    background:var(--ld-membership-danger);
    color:#7b1722;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(#pmpro_message.pmpro_success,.pmpro_message.pmpro_success,.pmpro_success){
    border-color:#9ed8ae;
    background:var(--ld-membership-success);
    color:#075f30;
}

/* Boutons : le CTA de validation reste primaire, les actions auxiliaires non. */
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    border:1px solid var(--line);
    border-radius:999px;
    background:var(--paper);
    color:var(--ink);
    padding:10px 18px;
    font-family:var(--interface);
    font-size:12px;
    font-weight:700;
    line-height:1.25;
    text-align:center;
    text-decoration:none;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    #pmpro_btn-submit,
    .pmpro_btn-submit,
    .pmpro_btn-submit-checkout,
    .pmpro_btn-primary,
    input[type=submit]
){
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    border:1px solid var(--blue);
    border-radius:999px;
    background:var(--blue);
    color:#fff;
    padding:11px 21px;
    font-family:var(--interface);
    font-size:13px;
    font-weight:700;
    line-height:1.25;
    text-align:center;
    transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    #pmpro_btn-submit,
    .pmpro_btn-submit,
    .pmpro_btn-submit-checkout,
    .pmpro_btn-primary,
    input[type=submit]
):hover{
    border-color:var(--blue-dark);
    background:var(--blue-dark);
    color:#fff;
    transform:translateY(-1px);
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_btn-plain{
    display:inline-flex;
    width:auto;
    min-height:0;
    margin:0;
    border:0;
    border-radius:0;
    background:transparent;
    color:var(--blue);
    padding:0;
    font-size:11px;
    font-weight:700;
    text-decoration:underline;
    text-underline-offset:3px;
    box-shadow:none;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_btn-print{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:44px;
    padding:10px 0;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro button[type="button"]#other_discount_code_toggle{
    display:inline-flex;
    align-items:center;
    min-width:44px;
    min-height:44px;
    margin:0;
    padding:10px 0;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.pmpro_form_field-password-toggle,.pmpro_password-toggle){
    display:flex;
    align-items:stretch;
    width:auto;
    min-height:44px;
    margin-top:7px;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    .pmpro_form_field-password-toggle,
    .pmpro_password-toggle
) :is(.pmpro_btn-plain,.pmpro_btn-password-toggle),
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_btn-password-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:flex-start;
    gap:6px;
    min-height:44px;
    margin:0;
    padding:10px 0;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.pmpro_btn-cancel,.pmpro_btn-delete){
    border-color:#d6a5aa;
    background:transparent;
    color:#8a1d29;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.pmpro_form_submit,.pmpro_actions_nav,.pmpro_member_links){
    display:flex;
    align-items:center;
    gap:10px 16px;
    flex-wrap:wrap;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro #pmpro_processing_message{
    color:var(--muted);
    font-size:12px;
    font-weight:600;
}

:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(table,.pmpro_table){
    width:100%;
    border-collapse:collapse;
    border-spacing:0;
    font-family:var(--interface);
    font-size:12px;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(th,td){
    padding:12px 9px;
    border-bottom:1px solid var(--line);
    text-align:left;
    vertical-align:top;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro th{
    color:var(--muted);
    font-size:9px;
    letter-spacing:.06em;
    text-transform:uppercase;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro tr:last-child td{border-bottom:0}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(iframe,.StripeElement){
    width:100%;
    max-width:100%;
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.pmpro_cancel_wrap,.pmpro_billing_wrap,.pmpro_invoice_wrap,.pmpro_confirmation_wrap){max-width:900px}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.pmpro_confirmation_wrap,.pmpro_confirmation){
    border-color:#a7d9b5;
    background:linear-gradient(135deg,var(--ld-membership-success),var(--paper));
}
:where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.pmpro_cancel_wrap,.pmpro_cancel){
    border-color:#ebc6ca;
    background:linear-gradient(135deg,#fff8f8,var(--paper));
}

body.dark :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro{
    --ld-membership-tint:#2c2a20;
    --ld-membership-success:#112b20;
    --ld-membership-danger:#341c25;
}
body.dark :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    #pmpro_message.pmpro_error,
    .pmpro_message.pmpro_error,
    .pmpro_error
){
    border-color:#9f5964;
    color:#ffd5da;
}
body.dark :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    #pmpro_message.pmpro_success,
    .pmpro_message.pmpro_success,
    .pmpro_success
){
    border-color:#437d59;
    color:#baf3cc;
}
body.dark :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    #pmpro_btn-submit,
    .pmpro_btn-submit,
    .pmpro_btn-submit-checkout,
    .pmpro_btn-primary,
    input[type=submit]
),
body.dark :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    #pmpro_btn-submit,
    .pmpro_btn-submit,
    .pmpro_btn-submit-checkout,
    .pmpro_btn-primary,
    input[type=submit]
):hover,
body.dark .membership-checkout-steps .is-current>span{
    color:#fff;
}
body.dark :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.pmpro_btn-cancel,.pmpro_btn-delete){
    border-color:#b86a74;
    color:#ffb8c0;
}
body.dark :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.pmpro_cancel_wrap,.pmpro_cancel){
    border-color:#7f4b54;
    background:linear-gradient(135deg,#2b171b,var(--paper));
}
body.dark :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    #pmpro_pricing_fields.pmpro_card,
    .pmpro_pricing_fields.pmpro_card,
    #pmpro_pricing_fields .pmpro_card,
    .pmpro_pricing_fields .pmpro_card
){
    border-color:#8a7335;
    background:linear-gradient(135deg,var(--ld-membership-tint),var(--paper));
}
body.dark :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=reset]):not([type=image]):not([type=file]):not([type=hidden]),
    select,
    textarea
){border-color:#46546c}
body.dark :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .StripeElement{
    border-color:#70809a;
    background:#fff;
}
body.dark :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .StripeElement--focus{
    border-color:var(--blue);
    box-shadow:0 0 0 4px rgba(52,84,209,.2);
}
body.dark :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=reset]):not([type=image]):not([type=file]):not([type=hidden]),
    select,
    textarea
):is(.pmpro_form_input-error,[aria-invalid="true"]){
    border-color:#ff9aa5;
    background:#28161b;
    box-shadow:0 0 0 4px rgba(255,154,165,.18);
}
body.dark :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
    input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=reset]):not([type=image]):not([type=file]):not([type=hidden]),
    select,
    textarea
):is(.pmpro_form_input-error,[aria-invalid="true"]):focus{
    border-color:#ffb2ba;
    box-shadow:0 0 0 4px rgba(255,154,165,.28);
}
body.dark :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.StripeElement--invalid,.StripeElement[aria-invalid="true"]){
    border-color:#a61b2b;
    background:#fff7f8;
    box-shadow:0 0 0 4px rgba(255,154,165,.22);
}
body.dark :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.StripeElement--invalid,.StripeElement[aria-invalid="true"]):is(.StripeElement--focus,:focus-within){
    border-color:#8c1120;
    box-shadow:0 0 0 4px rgba(255,154,165,.32);
}
body.dark :is(.pmpro_checkout_gateway-stripe,.pmpro_billing_gateway-stripe) form.pmpro_form #pmpro_payment_information_fields div:is(#AccountNumber,#Expiry,#CVV).StripeElement{
    border-color:#70809a;
    background:#fff;
}
body.dark :is(.pmpro_checkout_gateway-stripe,.pmpro_billing_gateway-stripe) form.pmpro_form #pmpro_payment_information_fields div:is(#AccountNumber,#Expiry,#CVV).StripeElement--focus{
    border-color:var(--blue);
    box-shadow:0 0 0 4px rgba(52,84,209,.2);
}
body.dark :is(.pmpro_checkout_gateway-stripe,.pmpro_billing_gateway-stripe) form.pmpro_form #pmpro_payment_information_fields div:is(#AccountNumber,#Expiry,#CVV).StripeElement:is(.StripeElement--invalid,[aria-invalid="true"]){
    border-color:#a61b2b;
    background:#fff7f8;
    box-shadow:0 0 0 4px rgba(255,154,165,.22);
}
body.dark :is(.pmpro_checkout_gateway-stripe,.pmpro_billing_gateway-stripe) form.pmpro_form #pmpro_payment_information_fields div:is(#AccountNumber,#Expiry,#CVV).StripeElement:is(.StripeElement--invalid,[aria-invalid="true"]):is(.StripeElement--focus,:focus-within){
    border-color:#8c1120;
    box-shadow:0 0 0 4px rgba(255,154,165,.32);
}
body.dark .membership-checkout-steps .is-complete>span{
    border-color:#28794b;
    background:#112b20;
    color:#7ee0a7;
}

@media screen and (max-width:900px){
    .membership-checkout-shell{
        grid-template-columns:minmax(0,1fr);
        max-width:780px;
    }
    .membership-checkout-aside{
        position:static;
        order:0;
    }
    .membership-checkout-steps{
        display:grid;
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:14px;
    }
    .membership-checkout-steps li{
        grid-template-columns:32px minmax(0,1fr);
        padding:0;
    }
    .membership-checkout-steps li::after{display:none}
}
@media screen and (max-width:767px){
    :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_cols-2{
        grid-template-columns:minmax(0,1fr);
        gap:15px;
    }
}
@media screen and (max-width:640px){
    .membership-checkout-hero{padding:32px 0 58px}
    .membership-checkout-hero__copy{margin-top:26px}
    .membership-checkout-hero h1{font-size:clamp(38px,11vw,48px)}
    .membership-checkout-hero__copy>p{font-size:14px}
    .membership-checkout-plan{border-radius:14px}
    .membership-checkout-shell{
        width:min(calc(100% - 24px),780px);
        gap:16px;
        margin-top:-24px;
        padding-bottom:58px;
    }
    .membership-checkout-form__head,
    .membership-checkout-aside{border-radius:16px}
    .membership-checkout-form__head{margin-bottom:16px;padding:22px 19px}
    .membership-checkout-form__head h2{font-size:28px}
    .membership-checkout-aside{padding:22px 19px}
    .membership-checkout-aside h2{font-size:25px}
    .membership-checkout-steps{
        grid-template-columns:minmax(0,1fr);
        gap:0;
    }
    .membership-checkout-steps li{padding-bottom:18px}
    .membership-checkout-steps li:last-child{padding-bottom:0}
    .membership-checkout-steps li:not(:last-child)::after{display:block}
    :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro{
        gap:16px;
        font-size:13px;
    }
    :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_card,
    :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_confirmation_wrap{
        border-radius:16px;
    }
    :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_card_title{
        padding:20px 18px 13px!important;
        font-size:24px!important;
    }
    :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_card_content{
        padding:0 18px 20px!important;
    }
    :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_card_actions{
        align-items:stretch;
        flex-direction:column;
        padding:15px 18px!important;
    }
    :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(.pmpro_form_submit,.pmpro_actions_nav){
        align-items:stretch;
        flex-direction:column;
    }
    :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
        #pmpro_btn-submit,
        .pmpro_btn-submit,
        .pmpro_btn-submit-checkout,
        .pmpro_btn-primary,
        input[type=submit]
    ){width:100%}
    :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_card_content{
        overflow-x:auto;
    }
}
@media screen and (max-width:420px){
    .membership-checkout-plan{
        align-items:flex-start;
        flex-direction:column;
        gap:2px;
    }
    .membership-checkout-plan>strong{white-space:normal}
    .membership-checkout-unavailable>div{display:grid}
    .membership-checkout-unavailable .pill{width:100%}
    :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_form_fields-inline{
        grid-template-columns:minmax(0,1fr);
        align-items:stretch;
    }
    :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_form_fields-inline :is(input[type=button],button){
        width:100%;
    }
    :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro .pmpro_payment-expiration .pmpro_form_fields-inline{
        grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
        align-items:center;
        gap:6px;
    }
}
@media(prefers-reduced-motion:reduce){
    :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
        #pmpro_btn-submit,
        .pmpro_btn-submit,
        .pmpro_btn-submit-checkout,
        .pmpro_btn-primary,
        input[type=submit]
    ){transition:none}
    :where(.ld-membership-content,.prose-page,.member-account-content) .pmpro :is(
        #pmpro_btn-submit,
        .pmpro_btn-submit,
        .pmpro_btn-submit-checkout,
        .pmpro_btn-primary,
        input[type=submit]
    ):hover{transform:none}
}
@media print{
    .membership-checkout-aside,
    .membership-checkout-back{display:none!important}
    .membership-checkout-page{background:#fff!important;color:#000!important}
    .membership-checkout-hero{background:#fff!important;color:#000!important;padding:20px 0!important}
    .membership-checkout-shell{display:block!important;margin-top:0!important}
}
