/* Modern new-member flow using the existing public-site palette and typography. */
#all-memberships.membership-selector{width:min(530px,calc(100vw - 28px));max-width:530px;max-height:90dvh;padding:28px 32px 22px;border:1px solid #cbbbab;border-radius:14px;background:#f8f3eb;color:#302820;box-sizing:border-box;overscroll-behavior:contain}
#all-memberships.membership-selector::backdrop{background:#222a}
#all-memberships.membership-selector .membership-modal-close{float:none;position:absolute;right:14px;top:12px;min-width:44px;min-height:44px;color:inherit}
#all-memberships.membership-selector p{margin:0}
.membership-selector .membership-kicker{text-align:left;color:#79483f;letter-spacing:.16em;padding-right:52px}
.membership-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0 26px;padding:0 4px}
.membership-progress span{height:3px;border-radius:99px;background:#ded3c4}
.membership-progress span.is-complete{background:#79483f}
.membership-step h2{margin:0 0 24px;font-size:36px!important;letter-spacing:-.025em;color:inherit;outline:none}
.membership-step fieldset{display:grid;gap:10px;margin:0 0 22px;padding:0;border:0}
.membership-step legend{margin-bottom:10px;font:400 20px/1.3 var(--public-serif,Georgia,serif)}
.membership-choice{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) 22px;gap:14px;align-items:center;min-height:68px;padding:11px 15px;border:1px solid #cbbbab;border-radius:10px;background:#fffaf2;color:#302820;cursor:pointer;box-sizing:border-box;transition:border-color .15s,background .15s}
.membership-choice:hover{border-color:#9e796c}
.membership-choice:has(input:checked){border-color:#79483f;background:#f5ede3}
.membership-choice input{position:absolute;opacity:0;pointer-events:none}
.membership-choice-icon{display:grid;place-items:center;width:32px;height:32px;font-size:24px;color:#79483f}
.membership-choice strong{display:block;font:600 16px/1.35 var(--public-sans,Arial,sans-serif)}
.membership-choice small{display:block;margin-top:2px;font:400 14px/1.45 var(--public-sans,Arial,sans-serif);color:#655e53}
.membership-radio{width:18px;height:18px;border:1px solid #9f9486;border-radius:50%;box-sizing:border-box}
.membership-choice:has(input:checked) .membership-radio{border:5px solid #79483f}
.membership-back{min-height:40px;margin:-8px 0 8px;padding:4px 0;border:0;background:none;color:#302820;font-size:15px;cursor:pointer}
.membership-context{text-align:center;color:#655e53;margin:-14px 0 22px!important}
.membership-saving-hint{color:#4a6044;margin:-8px 0 18px!important;font-size:14px!important}
#all-memberships.membership-selector .membership-primary{display:flex;width:100%;min-height:48px;align-items:center;justify-content:center;margin-top:10px;padding:11px 22px;border:1px solid #79483f;border-radius:9px;background:#79483f;color:#fffaf2;text-decoration:none;box-sizing:border-box;cursor:pointer}
.membership-result{text-align:center}
.membership-result .membership-back{display:block}
.membership-price{margin:0 0 18px}
#all-memberships.membership-selector [data-plan-amount]{font:400 46px/1.08 var(--public-serif,Georgia,serif);color:#302820}
#all-memberships.membership-selector [data-plan-caption]{font-size:16px!important;margin-top:5px}
#all-memberships.membership-selector .membership-equivalent{font-size:14px!important;color:#655e53;margin-top:3px}
#all-memberships.membership-selector .home-plan-saving{font-size:16px!important;color:#4a6044;margin-top:10px}
.membership-benefits{display:grid;gap:8px;width:max-content;max-width:100%;margin:0 auto 20px;padding:0;list-style:none;text-align:left}
.membership-benefits li{position:relative;padding-left:28px;font-size:16px;line-height:1.5}
.membership-benefits li::before{content:'✓';position:absolute;left:0;color:#79483f}
.membership-joining{border:1px solid #cbbbab;border-radius:9px;background:#fffaf2;text-align:left}
.membership-selector .membership-joining summary{min-height:48px;padding:12px 42px 12px 14px;cursor:pointer;font:400 16px/1.5 var(--public-sans,Arial,sans-serif);box-sizing:border-box}
.membership-joining>div{padding:0 14px 14px}
#all-memberships.membership-selector .membership-joining p{font-size:15px!important;line-height:1.65!important;margin-top:10px}
.membership-result>small{display:block;margin-top:6px;font-size:12px;line-height:1.5;color:#655e53}
#all-memberships.membership-selector .membership-trial-link{min-height:44px;margin-top:2px;padding:8px 12px;border:0;background:none;color:#79483f;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
#all-memberships.membership-selector .membership-portal{border-top:1px solid #cbbbab;margin-top:18px;padding-top:16px;text-align:center;font-size:14px!important;color:#655e53}
.membership-portal a{color:#79483f;text-underline-offset:4px}
.membership-selector :is(button,a,input,summary):focus-visible,.membership-choice:has(input:focus-visible){outline:2px solid #79483f;outline-offset:3px}
.membership-selector [hidden]{display:none!important}
.membership-selector .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:650px){
 #all-memberships.membership-selector{width:calc(100vw - 18px);max-height:94dvh;padding:22px 18px 18px;border-radius:12px}
 .membership-progress{margin:16px 0 22px}
 .membership-step h2{font-size:30px!important;margin-bottom:20px}
 .membership-choice{min-height:64px;padding:9px 12px}
 .membership-result [data-plan-amount]{font-size:40px!important}
}
@media(max-width:360px){
 #all-memberships.membership-selector{padding-inline:14px}
 .membership-choice{grid-template-columns:28px minmax(0,1fr) 20px;gap:10px}
 .membership-choice-icon{width:28px}
}
