.em-public-plans {
    --em-plan-blue: var(--em-primary, #046bd2);
    --em-plan-blue-dark: var(--em-primary-hover, #0353a4);
    --em-plan-cyan: #00b8d9;
    --em-plan-gold: #f59e0b;
    --em-plan-green: #0f9f6e;
    --em-plan-ink: var(--em-text-primary, #18253a);
    --em-plan-muted: var(--em-text-secondary, #64748b);
    --em-plan-line: var(--em-border, #dfe6ef);
    --em-plan-soft: var(--em-surface-soft, #f4f8fc);
    max-width: 1280px;
    margin: 0 auto;
    padding: clamp(24px, 4vw, 52px) 16px;
    color: var(--em-plan-ink);
    font-family: 'Fredoka', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.em-public-plans * { box-sizing: border-box; }
.em-public-plans button,
.em-public-plans input,
.em-public-plans select,
.em-public-plans textarea { font-family: inherit; }
.em-public-plans__intro { max-width: 760px; margin: 0 auto 24px; text-align: center; }
.em-public-plans__eyebrow { display: inline-block; margin-bottom: 8px; color: var(--em-plan-blue); font-size: .75rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.em-public-plans__intro h2 { margin: 0 0 10px; color: var(--em-plan-ink); font-size: clamp(1.9rem, 4vw, 3rem); line-height: 1.08; }
.em-public-plans__intro p { margin: 0; color: var(--em-plan-muted); font-size: clamp(1rem, 2vw, 1.12rem); }

.em-public-plans-tools { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; max-width: 680px; margin: 26px auto 12px; padding: 16px; border: 1px solid var(--em-plan-line); border-radius: 18px; background: color-mix(in srgb, var(--em-surface, #fff) 94%, transparent); box-shadow: var(--em-shadow-card, 0 8px 30px rgba(24, 55, 91, .07)); }
.em-public-plans-tools label { display: grid; flex: 1 1 240px; gap: 6px; color: var(--em-plan-ink); font-size: .8rem; font-weight: 800; }
.em-public-plans-tools select { width: 100%; min-height: 46px; border: 2px solid var(--em-plan-line); border-radius: 999px; background: var(--em-input-bg, #fff); color: var(--em-plan-ink); padding: 9px 38px 9px 16px; font: inherit; font-size: .95rem; cursor: pointer; outline: none; transition: border-color .2s ease, box-shadow .2s ease; }
.em-public-plans-tools select:hover,
.em-public-plans-tools select:focus { border-color: var(--em-plan-blue); box-shadow: 0 0 0 4px rgba(4, 107, 210, .12); }
.em-public-plans-status { min-height: 28px; margin: 8px 0 22px; color: var(--em-plan-muted); text-align: center; font-weight: 600; }

.em-public-plans-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 276px), 1fr)); gap: 20px; align-items: stretch; }
.em-public-plan-card { position: relative; display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--em-plan-line); border-radius: 22px; background: var(--em-surface, #fff); padding: 26px 22px 22px; box-shadow: 0 8px 24px rgba(24, 55, 91, .07); transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.em-public-plan-card:hover { transform: translateY(-4px); border-color: #b9cce2; box-shadow: 0 18px 42px rgba(4, 107, 210, .14); }
.em-public-plan-card.is-featured { border: 2px solid var(--em-plan-blue); box-shadow: 0 18px 46px rgba(4, 107, 210, .18); }
.em-plan-featured-ribbon { position: absolute; z-index: 2; top: 22px; right: -40px; width: 155px; padding: 6px 10px; transform: rotate(45deg); background: var(--em-plan-gold); color: #fff; text-align: center; font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; box-shadow: 0 3px 9px rgba(96, 62, 0, .22); }
.em-plan-campaign { margin: -4px 36px 14px 0; border-radius: 10px; background: #fff3cd; color: #725000; padding: 8px 10px; font-size: .78rem; font-weight: 800; }
.em-plan-badge { display: inline-flex; align-self: flex-start; max-width: calc(100% - 36px); border-radius: 999px; background: #eaf4ff; color: #07559e; padding: 6px 10px; font-size: .72rem; font-weight: 800; }
.em-plan-card-header h3 { margin: 14px 0 6px; color: var(--em-plan-ink); font-size: 1.55rem; line-height: 1.15; }
.em-plan-card-header p { min-height: 2.8em; margin: 0; color: var(--em-plan-muted); font-size: .9rem; line-height: 1.45; }

.em-plan-price { display: flex; align-items: baseline; min-height: 72px; margin: 18px 0 14px; color: var(--em-plan-blue); }
.em-plan-price__symbol { align-self: flex-start; margin-top: 10px; font-size: 1.2rem; font-weight: 800; }
.em-plan-price strong { font-size: clamp(2.25rem, 4vw, 2.8rem); font-weight: 800; letter-spacing: -.04em; line-height: 1; }
.em-plan-price__period { margin-left: 7px; color: var(--em-plan-muted); font-size: .82rem; font-weight: 600; }

.em-plan-benefit-group { margin-top: 8px; }
.em-plan-benefit-group h4 { display: flex; align-items: center; gap: 7px; margin: 0 0 9px; border-bottom: 1px solid var(--em-plan-line); padding-bottom: 7px; color: var(--em-plan-blue); font-size: .75rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.em-plan-benefit-group.is-chordem h4 { color: #7855aa; }
.em-plan-benefit-group.is-additional h4 { color: var(--em-plan-muted); }
.em-plan-marketing-features,
.em-plan-all-features { display: grid; gap: 8px; margin: 0 0 13px; padding: 0; list-style: none; }
.em-plan-marketing-features li,
.em-plan-all-features li { display: grid; grid-template-columns: 19px 1fr; gap: 7px; align-items: start; color: var(--em-plan-muted); font-size: .84rem; line-height: 1.38; }
.em-plan-check,
.em-plan-all-features li::before { display: grid; place-items: center; width: 17px; height: 17px; margin-top: 1px; border-radius: 50%; background: #e8f8f1; color: var(--em-plan-green); font-size: .68rem; font-weight: 900; }
.em-plan-all-features li::before { content: '✓'; }

.em-plan-expand { margin: auto 0 14px; border: 0; border-radius: 8px; background: transparent; color: var(--em-plan-blue); padding: 9px 4px; text-align: left; font: inherit; font-size: .83rem; font-weight: 800; cursor: pointer; }
.em-plan-expand:hover,
.em-plan-expand:focus-visible { color: var(--em-plan-blue-dark); text-decoration: underline; }
.em-plan-all-features { margin: -4px 0 16px; border-radius: 12px; background: var(--em-plan-soft); padding: 12px; }
.em-plan-cta { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 46px; margin-top: auto; border: 2px solid var(--em-plan-blue); border-radius: 999px; background: var(--em-plan-blue); color: var(--em-button-primary-text, #fff) !important; padding: 10px 14px; text-align: center; text-decoration: none !important; font-weight: 800; transition: background .2s ease, border-color .2s ease, transform .2s ease; }
.em-plan-cta:hover { border-color: var(--em-plan-blue-dark); background: var(--em-plan-blue-dark); transform: translateY(-1px); }
.em-plan-cta[aria-disabled=true] { border-color: #a8b2c0; background: #a8b2c0; cursor: not-allowed; pointer-events: none; }
.em-plan-cta.is-current { border-color: var(--em-plan-green); background: var(--em-plan-green); }
.em-public-plan-card[hidden] { display: none !important; }

html.em-instrument-dialog-open { overflow: hidden; }
.em-plan-instrument-dialog {
    width: min(500px, calc(100vw - 24px));
    max-width: none;
    max-height: calc(100dvh - 24px);
    margin: auto;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--em-plan-blue) 45%, var(--em-plan-line));
    border-radius: 22px;
    background: transparent;
    color: var(--em-plan-ink);
    padding: 0;
    box-shadow: 0 28px 80px rgba(5, 18, 39, .42);
}
.em-plan-instrument-dialog[open] { display: flex; }
.em-plan-instrument-dialog::backdrop { background: rgba(4, 12, 28, .8); backdrop-filter: blur(5px); }
.em-plan-instrument-dialog__panel { position: relative; display: flex; width: 100%; min-width: 0; flex-direction: column; gap: 12px; overflow: hidden; border-radius: inherit; background: linear-gradient(145deg, var(--em-surface, #fff), var(--em-plan-soft)); padding: 28px; text-align: center; }
.em-plan-instrument-dialog__close { position: absolute; z-index: 2; top: 10px; right: 12px; display: grid; width: 36px; height: 36px; place-items: center; border: 0; border-radius: 50%; background: transparent; color: var(--em-plan-muted); padding: 0; font-size: 1.75rem; line-height: 1; cursor: pointer; }
.em-plan-instrument-dialog__close:hover,
.em-plan-instrument-dialog__close:focus-visible { background: color-mix(in srgb, var(--em-plan-blue) 12%, transparent); color: var(--em-plan-blue); outline: 2px solid transparent; }
.em-plan-instrument-dialog__eyebrow { align-self: center; color: var(--em-plan-blue); font-size: .7rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.em-plan-instrument-dialog h3 { margin: 0; color: var(--em-plan-ink); font-size: clamp(1.55rem, 5vw, 2rem); line-height: 1.1; }
.em-plan-instrument-dialog__panel > p { margin: 0; color: var(--em-plan-muted); font-size: .92rem; line-height: 1.4; }
.em-plan-instrument-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 2px; }
.em-plan-instrument-choice { display: flex; min-width: 0; min-height: 76px; align-items: center; justify-content: flex-start; gap: 11px; border: 2px solid var(--em-plan-line); border-radius: 15px; background: var(--em-surface, #fff); color: var(--em-plan-ink); padding: 11px 13px; text-align: left; font-size: .9rem; font-weight: 800; line-height: 1.15; cursor: pointer; transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease; }
.em-plan-instrument-choice[hidden] { display: none !important; }
.em-plan-instrument-choice:hover,
.em-plan-instrument-choice:focus-visible { border-color: var(--em-plan-blue); box-shadow: 0 0 0 4px color-mix(in srgb, var(--em-plan-blue) 14%, transparent); outline: none; }
.em-plan-instrument-choice.is-selected { border-color: var(--em-plan-blue); background: color-mix(in srgb, var(--em-plan-blue) 12%, var(--em-surface, #fff)); color: var(--em-plan-blue); transform: translateY(-1px); }
.em-plan-instrument-choice__icon { display: grid; width: 39px; height: 39px; flex: 0 0 39px; place-items: center; border-radius: 12px; background: color-mix(in srgb, var(--em-plan-blue) 12%, transparent); font-size: 1.35rem; }
.em-plan-instrument-dialog__status { min-height: 20px; font-size: .78rem !important; font-weight: 650; }
.em-plan-instrument-dialog__continue { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; border: 2px solid var(--em-plan-blue); border-radius: 999px; background: var(--em-plan-blue); color: var(--em-button-primary-text, #fff); padding: 9px 18px; font-size: .95rem; font-weight: 850; cursor: pointer; }
.em-plan-instrument-dialog__continue:hover:not(:disabled),
.em-plan-instrument-dialog__continue:focus-visible:not(:disabled) { border-color: var(--em-plan-blue-dark); background: var(--em-plan-blue-dark); outline: 3px solid color-mix(in srgb, var(--em-plan-blue) 20%, transparent); }
.em-plan-instrument-dialog__continue:disabled { border-color: #a8b2c0; background: #a8b2c0; cursor: not-allowed; opacity: .78; }

.em-public-plans.is-loading .em-public-plan-card { pointer-events: none; }
.em-public-plans.is-loading .em-plan-price strong { width: 92px; height: 40px; border-radius: 8px; color: transparent; background: linear-gradient(90deg, #edf2f7 25%, #f8fafc 50%, #edf2f7 75%); background-size: 200% 100%; animation: em-plan-shimmer 1.35s infinite; }
@keyframes em-plan-shimmer { to { background-position: -200% 0; } }

@media (min-width: 1180px) {
    .em-public-plans-grid[data-visible-plans="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .em-public-plans-grid[data-visible-plans="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .em-public-plan-card.is-featured { transform: translateY(-8px); }
    .em-public-plan-card.is-featured:hover { transform: translateY(-12px); }
}
@media (max-width: 700px) {
    .em-public-plans { padding-inline: 12px; }
    .em-public-plans-tools { display: grid; padding: 14px; }
    .em-public-plans-tools label { width: 100%; }
    .em-public-plans-grid { grid-template-columns: 1fr; }
    .em-public-plan-card { padding: 24px 20px 20px; }
    .em-public-plan-card:hover,
    .em-public-plan-card.is-featured,
    .em-public-plan-card.is-featured:hover { transform: none; }

    .em-plan-instrument-dialog { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); border-radius: 18px; }
    .em-plan-instrument-dialog__panel { gap: 8px; padding: 18px 15px 15px; }
    .em-plan-instrument-dialog__close { top: 5px; right: 6px; width: 34px; height: 34px; }
    .em-plan-instrument-dialog__eyebrow { padding-inline: 34px; font-size: .61rem; }
    .em-plan-instrument-dialog h3 { padding-inline: 26px; font-size: 1.45rem; }
    .em-plan-instrument-dialog__panel > p { font-size: .8rem; line-height: 1.25; }
    .em-plan-instrument-grid { gap: 7px; }
    .em-plan-instrument-choice { min-height: 60px; gap: 7px; border-radius: 12px; padding: 7px 8px; font-size: .78rem; }
    .em-plan-instrument-choice__icon { width: 31px; height: 31px; flex-basis: 31px; border-radius: 9px; font-size: 1.05rem; }
    .em-plan-instrument-dialog__status { min-height: 16px; font-size: .7rem !important; }
    .em-plan-instrument-dialog__continue { min-height: 42px; padding-block: 7px; font-size: .88rem; }
}
@media (max-height: 520px) {
    .em-plan-instrument-dialog { max-height: calc(100dvh - 12px); }
    .em-plan-instrument-dialog__panel { gap: 6px; padding: 12px; }
    .em-plan-instrument-dialog__eyebrow,
    .em-plan-instrument-dialog__panel > p:not(.em-plan-instrument-dialog__status) { display: none; }
    .em-plan-instrument-dialog h3 { font-size: 1.2rem; }
    .em-plan-instrument-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
    .em-plan-instrument-choice { min-height: 48px; justify-content: center; gap: 5px; padding: 5px; font-size: .7rem; }
    .em-plan-instrument-choice__icon { width: 27px; height: 27px; flex-basis: 27px; font-size: .9rem; }
    .em-plan-instrument-dialog__status { min-height: 14px; }
    .em-plan-instrument-dialog__continue { min-height: 38px; }
}
@media (prefers-reduced-motion: reduce) {
    .em-public-plan-card,
    .em-plan-cta { transition: none; }
    .em-plan-instrument-choice { transition: none; }
    .em-public-plans.is-loading .em-plan-price strong { animation: none; }
}
