/* Allowlisted membership-block presentation choices selected in the CMS. */
.membership-block { margin: 2rem 0; }
.membership-block-copy { margin: 0 auto 1.25rem; max-width: 46rem; }
.membership-block[data-membership-alignment="center"] .membership-block-copy { text-align: center; }
.membership-block[data-membership-alignment="left"] .membership-block-copy { text-align: left; }
.membership-block-heading { margin: 0 0 .4rem; }
.membership-block-body { margin: 0; color: var(--ink-soft, #5a6e78); }
.membership-block[data-membership-layout="stack"] [data-tier-grid],
.membership-block[data-membership-layout="stack"] #membership-programs { grid-template-columns: minmax(0, 34rem); justify-content: center; }
.membership-block[data-membership-card-style="outlined"] .tier-card,
.membership-block[data-membership-card-style="outlined"] .program-card { box-shadow: none; }
.membership-block[data-membership-card-style="outlined"] .program-card.featured { box-shadow: none; }
.membership-block[data-membership-card-style="soft"] .tier-card,
.membership-block[data-membership-card-style="soft"] .program-card { background: rgba(57, 123, 151, .06); border-color: rgba(57, 123, 151, .45); box-shadow: none; }
.membership-block[data-membership-card-style="soft"] .program-card.featured { background: rgba(57, 123, 151, .06); border-color: rgba(57, 123, 151, .45); }
.membership-payment-alternative { margin-top: .85rem; }
.membership-payment-note { margin: 0 0 .45rem; color: var(--ink-soft, #5a6e78); font-size: .88rem; line-height: 1.35; }
.membership-status { margin: 0 0 1.5rem; padding: .85rem 1rem; border-left: 3px solid var(--primary-blue, #397b97); background: #e4f0f4; color: var(--ink-soft, #5a6e78); font-size: .95rem; line-height: 1.5; }
.membership-payment-label { margin: .5rem 0; font-size: 1rem; line-height: 1.5; font-weight: 600; color: var(--primary-blue, #397b97); }
.membership-block [data-tier-grid] { grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); }
.membership-block .tier-card { min-width: 0; overflow-wrap: anywhere; }
#membership-programs { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
#membership-programs .program-card { min-width: 0; display: flex; flex-direction: column; overflow-wrap: anywhere; }
#membership-programs .program-name { font-size: 1.35rem; line-height: 1.3; min-height: 3.51rem; margin: 0 0 .5rem; }
#membership-programs .program-badge { position: absolute; top: -.85rem; left: 50%; transform: translateX(-50%); width: max-content; max-width: calc(100% - 2rem); margin: 0; padding: .3rem .8rem; font-size: .8rem; line-height: 1.4; }
#membership-programs .membership-card-actions { margin-top: auto; padding-top: .85rem; }
#membership-programs .membership-card-actions .cta-button { display: block; width: 100%; min-height: 44px; box-sizing: border-box; }
#membership-programs .membership-card-actions > .membership-payment-alternative:first-child { margin-top: 0; }
.program-card-media { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; margin: 1rem 0; border: 0; border-radius: 8px; background: #dce9ed; }
.cms-payment-preview { cursor: not-allowed; opacity: .68; }
.cms-payment-preview:hover,
.cms-payment-preview:focus-visible { background: inherit; color: inherit; }
.membership-zeffy-action { background: transparent; border-color: var(--primary-blue, #397b97); color: var(--primary-blue, #397b97); }
.membership-zeffy-action:hover,
.membership-zeffy-action:focus-visible { background: rgba(57, 123, 151, .1); color: var(--primary-blue, #397b97); }
