/* Scoped membership checkout; shared by all parent entry points. */
.plans-overlay { position:fixed; inset:0; z-index:10020; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(25,41,34,.4); backdrop-filter:blur(5px); }
.plans-overlay *, .plans-overlay *::before, .plans-overlay *::after { box-sizing:border-box; }
.plans-overlay [hidden] { display:none !important; }
.plans-dialog { position:relative; width:690px; max-width:100%; max-height:calc(100dvh - 40px); overflow:auto; overscroll-behavior:contain; padding:32px; border-radius:28px; background:#fffefa; box-shadow:0 25px 90px rgba(26,58,44,.22); font-family:"Nunito",-apple-system,"PingFang SC",sans-serif; color:#25262d; text-align:left; }
.plans-dialog button { font:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.plans-dialog button:disabled { cursor:default; }
.plans-dialog button:focus-visible { outline:3px solid #e2b948; outline-offset:4px; }
.plans-close { position:absolute; right:18px; top:16px; display:grid; place-items:center; width:40px; height:40px; border:0; border-radius:50%; background:#edf3ee; color:#54655b; font-size:25px !important; }
.plans-close:hover { background:#e0eee5; }
.plans-close:disabled { opacity:.35; }
.plans-eyebrow { color:#278260; font-size:11px; font-weight:900; letter-spacing:1.3px; margin:0 50px 12px 0; }
.plans-dialog h2 { margin:0 30px 8px 0; font-size:25px; line-height:1.45; letter-spacing:-.6px; font-weight:900; }
#plans-subtitle { color:#6b756e; font-size:14px; line-height:1.7; margin:0 0 18px; }
.plans-test-mode { background:#fff3d4; color:#805d14; border:1px solid #eedaa7; border-radius:10px; font-size:12px; line-height:1.6; padding:9px 12px; margin:0 0 16px; }
.plans-list { display:grid; gap:10px; margin:0 0 20px; }
.plan-card { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 20px; width:100%; padding:17px 19px; text-align:left; border:1.5px solid #dde5df; border-radius:16px; background:#fff; color:#25262d; transition:border-color .15s,background .15s; }
.plan-card:hover:not(:disabled) { border-color:#49a482; }
.plan-card--recommended { border-color:#a0c5af; }
.plan-card--picked { border:2px solid #20966e; padding:16.5px 18.5px; background:#eff9f3; box-shadow:0 0 0 3px rgba(32,150,110,.06); }
.plan-card:disabled { opacity:.67; }
.plan-card-main { min-width:0; }
.plan-card-name { font-size:17px; font-weight:900; }
.plan-card-tag { display:inline-block; padding:3px 7px; margin-left:8px; border-radius:6px; background:#def0e4; color:#267255; font-size:10px; line-height:1.5; font-weight:800; vertical-align:2px; }
.plan-card-description,.plan-card-meta { display:block; margin-top:5px; font-size:12px; color:#6d776f; line-height:1.5; }
.plan-card-meta { color:#445e4f; }
.plan-card-price { display:flex; flex-direction:column; text-align:right; justify-content:center; }
.plan-card-price strong { color:#20785b; font-size:28px; font-weight:900; line-height:1.25; }
.plan-card-price span { color:#7b817b; font-size:11px; margin-top:3px; }
.plan-card-comparison { grid-column:1/-1; font-size:12px; line-height:1.5; color:#886820; background:#fbf3dc; padding:6px 10px; border-radius:7px; }
.plan-card-timing { grid-column:1/-1; color:#74806f; font-size:11px; line-height:1.6; }
.plans-bill { margin-bottom:18px; padding:19px 20px; border:1px solid #e3e8e0; border-radius:16px; background:#fff; }
.plans-bill h3 { margin:0 0 14px; font-size:15px; font-weight:900; }
.plans-bill dl { display:grid; gap:9px; margin:0; }
.plans-bill dl>div { display:flex; align-items:baseline; justify-content:space-between; gap:20px; font-size:13px; }
.plans-bill dt { color:#666e67; }
.plans-bill dd { margin:0; font-weight:800; }
.plans-bill .plans-credit dt,.plans-bill .plans-credit dd { color:#218460; }
.plans-bill .plans-total { border-top:1px solid #edf0eb; padding-top:12px; margin-top:3px; }
.plans-bill .plans-total dt { color:#25262d; font-weight:800; }
.plans-bill .plans-total dd { font-size:25px; color:#218460; }
.plans-dates { display:grid; gap:5px; margin-top:15px; }
.plans-dates p { display:flex; justify-content:space-between; gap:12px; margin:0; font-size:12px; line-height:1.7; }
.plans-dates span { color:#72796f; }.plans-dates strong { font-weight:600; }
.plans-bill-note { margin:10px 0 0; color:#81867c; font-size:11px; line-height:1.65; }
.plans-period-note,.membership-period-note { margin:12px 0 0; padding:12px 14px; border-radius:10px; background:#edf7ef; color:#34654a; font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
.membership-period-note { margin-bottom:14px; }.membership-period-note p { margin:5px 0 0; }.membership-period-note b { font-size:13px; }
.membership-test-note { margin:10px 0; color:#805d14; font-size:12px; line-height:1.6; }
.plans-error { margin:0 0 14px; padding:11px 13px; border:1px solid #efc5b6; border-radius:10px; background:#fff2ec; color:#9d4d32; font-size:13px; line-height:1.7; }
.plans-confirm { display:block; width:100%; min-height:53px; padding:12px 18px; border:0; border-radius:14px; background:#20966e; box-shadow:0 4px 0 #18734f; color:#fff; font-size:16px !important; font-weight:900 !important; line-height:1.5; }
.plans-confirm:hover:not(:disabled) { background:#18835e; }.plans-confirm:disabled { background:#dce6de; color:#748676; box-shadow:none; }
.plans-retry { display:block; margin:0 auto 12px; padding:8px 15px; border:1px solid #87bba1; border-radius:10px; color:#227c5b; background:white; }
.plans-footnote { margin:15px 0 8px; text-align:center; color:#889084; font-size:11px; line-height:1.6; }
.plans-help { display:flex; align-items:center; justify-content:center; gap:15px; color:#c4ccc3; }
.plans-help button { border:0; color:#557562; font-size:12px; padding:7px 0; background:none; }
.plans-loading,.plans-current { padding:30px 0; text-align:center; color:#788276; font-size:14px; line-height:1.8; }.plans-quote-loading { padding:20px; text-align:center; color:#788276; font-size:13px; }
.plans-current h3 { color:#25634d; }.plans-current p { font-size:13px; }.plans-current-check { display:inline-grid; place-items:center; width:54px; height:54px; border-radius:50%; background:#e5f2e7; color:#288464; font-size:26px; }
.plans-overlay--help { z-index:10030; }.plans-dialog--help { width:530px; }
.plans-policy-list { padding-left:21px; margin:18px 0; color:#626e62; font-size:13px; line-height:1.9; }.plans-policy-list li+li { margin-top:10px; }
.plans-help-note { color:#637163; font-size:13px; line-height:1.8; }.plans-support-placeholder { text-align:center; margin:21px 0; }.plans-support-placeholder img { display:block; margin:0 auto; }.plans-support-placeholder p { color:#899084; font-size:11px; margin:9px 0; }
.plans-secondary { width:100%; min-height:44px; border:1px solid #bdd2c2; color:#2b7756; background:#eef5ef; border-radius:11px; font-weight:800 !important; }
@media(max-width:560px) { .plans-overlay { padding:9px; }.plans-dialog { padding:25px 19px 22px; border-radius:22px; max-height:calc(100dvh - 18px); }.plans-dialog h2 { font-size:21px; }.plan-card { padding:14px; gap:8px 10px; }.plan-card--picked { padding:13.5px; }.plan-card-name { font-size:15px; }.plan-card-tag { display:table; margin:5px 0; }.plan-card-price strong { font-size:24px; }.plans-bill { padding:15px; }.plans-dates p { flex-wrap:wrap; gap:0 12px; }.plans-footnote { font-size:10px; } }
@media(prefers-reduced-motion:reduce) { .plan-card { transition:none; } }
