.promotion-banner { background: #20452e; color: #fff; padding: .7rem 1rem; }
.promotion-banner-inner { max-width: 1180px; margin: auto; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .35rem 1.3rem; font-size: .85rem; }
.promotion-banner a { color: #fff; text-underline-offset: 3px; font-weight: 650; }
.promotion-test-label { opacity: .8; }
.promotions-shell { max-width: 1040px; margin: auto; padding: 3.5rem 1.2rem; }
.promotions-shell h1 { font-size: clamp(2rem, 6vw, 3.6rem); letter-spacing: -.04em; line-height: 1.1; margin: 0 0 1rem; }
.promotions-intro { max-width: 650px; color: #4d5b50; }
.promotions-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); gap: 1.2rem; margin-top: 2rem; }
.promotion-card { padding: 1.6rem; border: 1px solid #c6d0be; background: #f8faf5; border-radius: 12px; min-width: 0; }
.promotion-card h2 { margin: .6rem 0 1rem; font-size: 1.7rem; letter-spacing: -.03em; }
.promotion-eyebrow { font-size: .75rem; text-transform: uppercase; letter-spacing: .07em; color: #3a6941; font-weight: 700; }
.promotion-terms { font-size: .84rem; line-height: 1.6; color: #4d5b50; }
.promotion-cta { display: inline-block; background: #20452e; color: #fff !important; padding: .75rem 1rem; margin-top: .6rem; border-radius: 7px; font-weight: 650; text-decoration: none; }
.promotion-code { padding: .7rem; background: #e9efdf; border-radius: 6px; overflow-wrap: anywhere; }
.promotion-sandbox-note { padding: .8rem; border: 1px solid #c6d0be; border-radius: 7px; font-size: .82rem; }
.promotions-grid > .promotion-sandbox-note { grid-column: 1 / -1; }
.promotion-dialog { width: min(440px, calc(100% - 2rem)); padding: 1.8rem; border: 1px solid #c6d0be; border-radius: 14px; color: #1d3021; background: #fffef9; }
.promotion-dialog::backdrop { background: rgb(17 34 22 / .4); }
.promotion-dialog h2 { font-size: 2rem; line-height: 1.15; letter-spacing: -.04em; margin: .7rem 0; }
.promotion-dialog .promotion-cta { display: block; text-align: center; }
.promotion-dismiss { display: block; border: 0; padding: .7rem; margin: .4rem auto 0; background: transparent; font: inherit; color: #4d5b50; cursor: pointer; }
.promotion-plan-label { display: inline-block; padding: .2rem .5rem; background: #e9efdf; color: #20452e; border-radius: 5px; font-size: .76rem; font-weight: 650; }
.promotion-price-note { color: #4d5b50; font-size: .82rem; margin-top: .4rem; }
.balance-credit-breakdown { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; font-size: .9rem; }
.balance-promotion-note { padding: 1rem; margin: 1rem 0; border: 1px solid #c6d0be; border-radius: 7px; background: #f8faf5; }
@media (max-width: 480px) { .promotion-banner-inner { justify-content: flex-start; } .promotions-shell { padding-top: 2.5rem; } }
