/* v3: a single bounded grid. Deliberately scoped to FPA; no html/body overflow hiding. */
.fpa,.fpa-account{--fpa-page-gutter:var(--fpa-global-gutter,24px);--fpa-page-top:var(--fpa-global-top-space,48px);box-sizing:border-box}
.fpa.fpa:not(.fpa-confirmation){padding-inline:var(--fpa-page-gutter);padding-top:var(--fpa-page-top);padding-bottom:var(--fpa-global-bottom-space,48px);min-width:0;width:100%;max-width:100%;margin-inline:auto}
.fpa.fpa>.fpa-shell,.fpa.fpa.fpa-native-flow>.fpa-shell,.fpa.fpa.fpa-order-receipt>.fpa-receipt-shell{width:100%;min-width:0;max-width:min(100%,var(--fpa-journey-width,1200px))!important;margin-inline:auto;box-sizing:border-box}
.fpa-account.fpa-account{width:calc(100% - 2 * var(--fpa-page-gutter));max-width:var(--fpa-journey-width,1200px)!important;margin-inline:auto;padding:var(--fpa-page-top) 0 var(--fpa-global-bottom-space,48px);background:var(--fpa-account-background,#f4f6f7);min-height:70vh}
.fpa-account.fpa-account>.woocommerce{max-width:100%;min-width:0;margin-inline:0}
/* Clear hierarchy, calm account welcome. All parameters are editable in the shared studio. */
.fpa-account.fpa-account .fpa-account-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;width:100%;max-width:none;margin:0 0 var(--fpa-account-hero-gap,28px);padding:var(--fpa-account-hero-padding,30px);background:var(--fpa-account-hero-background-color,#fff);border:1px solid var(--fpa-account-hero-border-color,#dce5ec);border-radius:var(--fpa-account-hero-radius,16px);box-shadow:0 4px 18px #0c304903;text-align:left;box-sizing:border-box}
.fpa-account.fpa-account .fpa-account-hero>div{min-width:0;max-width:850px}
.fpa-account.fpa-account .fpa-account-hero .fpa-account-eyebrow{font-family:var(--fpa-account-font-family,system-ui,sans-serif);font-size:var(--fpa-account-hero-eyebrow-size,11px);font-weight:650;letter-spacing:.15em;text-transform:uppercase;color:var(--fpa-account-hero-eyebrow-color,#486d83);margin:0 0 12px}
.fpa-account.fpa-account .fpa-account-hero h1{color:var(--fpa-account-hero-heading-color,#0c3049);margin:0 0 12px;font-weight:500;line-height:1.16;overflow-wrap:anywhere}
.fpa-account.fpa-account .fpa-account-hero>div>p:last-child{color:var(--fpa-account-hero-intro-color,#536b7a);font-size:var(--fpa-account-hero-intro-size,15px);line-height:1.7;margin:0}
.fpa-account.fpa-account .fpa-account-hero.fpa-account-hero--minimal{padding:0 0 12px;border:0;box-shadow:none;background:transparent}
.fpa-account.fpa-account .fpa-account-hero-mark{flex:0 0 52px;color:var(--fpa-account-accent);background:#f1f6f9;border:1px solid var(--fpa-account-border);width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:14px}
/* Login is deliberately a readable centred card inside the SAME outer page grid. */
.fpa-account.fpa-account--guest .fpa-account-hero{max-width:var(--fpa-login-card-width,540px);margin:0 auto 24px;padding:0 0 8px;border:0;background:transparent;box-shadow:none;text-align:left}
.fpa-account.fpa-account--guest .fpa-account-hero h1{font-size:var(--fpa-account-heading-font-size,38px)}
.fpa-account.fpa-account--guest>.woocommerce{width:100%;max-width:var(--fpa-login-card-width,540px);margin:auto}
.fpa-account.fpa-account--guest .woocommerce-form-login{margin:0;padding:var(--fpa-login-card-padding,32px);border:1px solid var(--fpa-login-card-border-color,#dce5ec);background:var(--fpa-login-card-background-color,#fff);border-radius:var(--fpa-login-card-radius,18px);box-shadow:0 10px 30px #0c304906}
.fpa-account .fpa-login-heading{padding:0 0 22px;margin-bottom:24px;border-bottom:1px solid var(--fpa-account-border)}
.fpa-account .fpa-login-heading h2{font:500 var(--fpa-login-title-size,29px)/1.2 var(--fpa-account-heading-font-family,Georgia,serif);margin:0 0 8px}
.fpa-account .fpa-login-heading p{font-size:14px;color:var(--fpa-account-muted);margin:0;line-height:1.65}
.fpa-account.fpa-account .woocommerce-form-login .form-row{float:none!important;width:100%!important;margin:0 0 22px!important;padding:0!important}
.fpa-account.fpa-account .woocommerce-form-login input.input-text{min-height:var(--fpa-login-field-height,50px)}
.fpa-account .fpa-login-options{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin:6px 0 24px;font-size:13px}
.fpa-account .fpa-login-options label{display:flex!important;align-items:center;gap:8px;margin:0!important;font-weight:500!important}
.fpa-account .fpa-login-options input[type=checkbox]{width:17px!important;height:17px!important;min-height:0!important;margin:0!important;accent-color:var(--fpa-account-accent)}
.fpa-account.fpa-account .woocommerce-form-login button[name=login]{width:100%;min-height:48px;margin:0;font-weight:650;line-height:1.4}
.fpa-account .fpa-login-register{margin-top:24px}
/* WooCommerce owns password toggling; align its native button to the input, not its label. */
.fpa-account.fpa-account .woocommerce .password-input{display:block!important;position:relative!important;width:100%;min-width:0;line-height:1}
.fpa-account.fpa-account .woocommerce .password-input input{display:block;padding-right:calc(var(--fpa-login-eye-size,40px) + 14px)!important;margin:0!important}
.fpa-account.fpa-account .woocommerce .password-input .show-password-input{position:absolute!important;inset:auto 6px auto auto!important;top:50%!important;transform:translateY(-50%)!important;width:var(--fpa-login-eye-size,40px)!important;height:var(--fpa-login-eye-size,40px)!important;min-height:0!important;min-width:0!important;max-height:100%;padding:0!important;margin:0!important;display:flex!important;align-items:center;justify-content:center;background:transparent!important;border:0!important;box-shadow:none!important;color:var(--fpa-login-password-icon-color,#49697e)!important;line-height:1!important}
.fpa-account.fpa-account .woocommerce .show-password-input::after{line-height:1!important;margin:0!important;position:static!important}
.fpa-account .woocommerce :is(.woocommerce-error,.woocommerce-message,.woocommerce-info){gap:12px;align-items:center;flex-wrap:wrap}
.fpa-account .woocommerce :is(.woocommerce-error,.woocommerce-message,.woocommerce-info) .button{margin:0;max-width:100%;white-space:normal}
.fpa-account .fpa-membership-list{display:grid;gap:22px}
.fpa-account .fpa-membership-list-header{padding:0 0 22px;border-bottom:1px solid var(--fpa-account-border);margin:0 0 24px}
.fpa-account .fpa-membership-list-header h2{margin:0 0 10px;font:500 30px/1.2 var(--fpa-account-heading-font-family,Georgia,serif)}
.fpa-account .fpa-membership-list-header p{margin:0;color:var(--fpa-account-muted);font-size:14px}
.fpa-account .fpa-membership-empty{text-align:left;padding:32px}
.fpa-account .fpa-membership-empty h3{font:500 27px/1.25 var(--fpa-account-heading-font-family,Georgia,serif);margin:18px 0 12px}
.fpa-account .fpa-membership-empty p{margin:0 0 20px;color:var(--fpa-account-muted)}
.fpa-account .fpa-membership-empty svg{width:36px;height:36px;color:var(--fpa-account-accent)}
/* Critical shrink constraints without discarding max-width on the shell. */
.fpa :is(.fpa-layout,.fpa-form,.fpa-sidebar,.fpa-checkout-columns,.fpa-checkout-summary-card,.fpa-checkout-billing-card),.fpa-account :is(.woocommerce-MyAccount-content,.woocommerce-MyAccount-navigation,.fpa-account-card){min-width:0;box-sizing:border-box}
.fpa :is(input,select,textarea),.fpa-account :is(input,select,textarea){max-width:100%;box-sizing:border-box}
.fpa :is(.fpa-lead,.fpa-field-help,.fpa-review-value,.fpa-checkout-progress),.fpa-account :is(h1,h2,h3,p,dd,a){overflow-wrap:anywhere}
@media(max-width:1024px){.fpa,.fpa-account{--fpa-page-gutter:var(--fpa-global-gutter-tablet,24px)}.fpa-account.fpa-account .fpa-account-hero h1{font-size:var(--fpa-account-hero-title-tablet,32px)}}
@media(max-width:767px){.fpa,.fpa-account{--fpa-page-gutter:var(--fpa-global-gutter-mobile,16px);--fpa-page-top:var(--fpa-global-top-space-mobile,24px)}.fpa-account.fpa-account .fpa-account-hero{padding:var(--fpa-account-hero-padding-mobile,22px);gap:16px}.fpa-account.fpa-account .fpa-account-hero h1{font-size:var(--fpa-account-heading-font-size-mobile,30px)}.fpa-account.fpa-account--guest .fpa-account-hero{padding:0 0 4px}.fpa-account.fpa-account--guest .woocommerce-form-login{padding:var(--fpa-login-card-padding-mobile,22px)}.fpa-account .fpa-membership-list-header h2{font-size:26px}.fpa.fpa-native-flow .fpa-checkout-progress{display:flex;gap:6px;flex-wrap:wrap}.fpa.fpa-native-flow .fpa-checkout-progress li{flex:1 1 85px;max-width:100%;min-width:0;line-height:1.5;align-items:center;justify-content:center;font-size:11px;padding:7px;white-space:normal}.fpa.fpa-native-flow .fpa-checkout-progress li>span{flex:0 0 20px}.fpa-account.fpa-account .woocommerce input.input-text{font-size:max(16px,var(--fpa-account-field-font-size,15px))!important}}
@media(max-width:380px){.fpa-account .fpa-login-options{align-items:flex-start;flex-direction:column}.fpa-account.fpa-account .fpa-account-hero-mark{display:none}.fpa-account .fpa-membership-empty{padding:22px}}

.fpa-account.fpa-account .fpa-login-options>label,.fpa-account.fpa-account .fpa-login-options>a{width:auto!important;flex:0 1 auto;max-width:100%}

/* Container-width fix: the real Elementor parent owns its inline sizing.
 * These selectors intentionally do not match .fpa-checkout-source alone: that
 * wrapper carries a source widget's SKIN, not the checkout page's container.
 * Account/receipt layout and all vertical page spacing remain unchanged.
 */
.fpa.fpa.fpa:is(.fpa-registration,.fpa-native-flow)>.fpa-shell{
    max-width:min(100%,var(--fpa-elementor-content-width,var(--fpa-journey-width,1200px)))!important;
}
:where(.e-con,.elementor-section) .fpa.fpa.fpa:is(.fpa-registration,.fpa-native-flow){
    padding-inline:0;
}
:where(.e-con,.elementor-section) .fpa.fpa.fpa:is(.fpa-registration,.fpa-native-flow)>.fpa-shell{
    max-width:min(100%,var(--fpa-elementor-content-width,100%))!important;
}
.fpa-checkout-source.elementor>.elementor-element.elementor-widget-fpa_registration{
    width:100%;max-width:100%;min-width:0;flex-basis:auto;
}
/* Contain the final button/float and retain comfortable space inside the card,
 * even when a theme or gateway alters the surrounding payment markup.
 */
.fpa.fpa.fpa-native-flow .woocommerce .fpa-checkout-composed .fpa-checkout-summary-card #order_review{
    display:flow-root;
    padding-bottom:var(--fpa-checkout-summary-bottom-space,26px)!important;
}
