.marketing-page .commerce-main { max-width: 960px; }
.marketing-page .page-hero h1 { font-size: clamp(32px, 5vw, 48px); line-height: 1.2; }
.marketing-page .page-hero { margin-bottom: 40px; }
.program-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.program-card { min-width: 0; padding: 28px; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); }
.program-icon { display: block; width: 78px; height: 60px; margin-bottom: 18px; image-rendering: pixelated; }
.program-card h2, .program-card h3 { margin: 0 0 14px; font-size: 22px; line-height: 1.35; overflow-wrap: anywhere; hyphens: auto; }
.program-card p { margin: 0 0 24px; color: var(--muted); font-size: 15px; line-height: 1.75; overflow-wrap: anywhere; }
.program-card > .button { max-width: 100%; margin-top: 8px; white-space: normal; text-align: center; }
.program-note { margin: 18px 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
.program-records { margin: 24px 0; }
.program-records .button.text { min-height: 44px; padding: 0; border: 0; background: transparent; color: var(--ink); font: inherit; font-size: 14px; text-decoration: underline; text-underline-offset: 4px; }
.marketing-page #login { margin: 32px 0; }
.marketing-private { margin-top: 52px; padding-top: 32px; border-top: 1px solid var(--line); }
.marketing-private > h2 { margin: 0 0 20px; font-size: 26px; }
.marketing-private .notice { margin-bottom: 24px; }
.marketing-private form { margin: 20px 0; }
.marketing-private .program-grid form { margin: 0; }
.marketing-private p, .marketing-private a { overflow-wrap: anywhere; }
.marketing-private h2, .marketing-private h3 { overflow-wrap: anywhere; hyphens: auto; }
.marketing-private .field { font-size: 14px; }
.marketing-private .button { white-space: normal; }
#public-campaigns article + article { border-top: 1px solid var(--line); margin-top: 20px; padding-top: 20px; }
#rewards-body > section { margin: 20px 0; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
#rewards-body .button + .button { margin-left: 8px; }
@media (max-width: 650px) {
  .program-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .program-card { padding: 22px; }
  .marketing-page .commerce-main { padding-top: 42px; }
}
.program-card p.program-benefit { margin: -4px 0 18px; color: var(--ink); font-weight: 600; font-size: 17px; }
.program-card p.program-assurance { font-size: 14px; margin-bottom: 20px; }
.program-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 20px; }
.program-actions a { font-size: 14px; text-decoration: underline; text-underline-offset: 4px; }
.program-actions .button { white-space: normal; max-width: 100%; }
.program-rules { margin-top: 24px; }
.program-rules details { border-top: 1px solid var(--line); padding: 18px 0; }
.program-rules summary { cursor: pointer; font-weight: 600; }
.program-rules p { color: var(--muted); font-size: 14px; line-height: 1.8; }
.marketing-forms form { margin-top: 28px; }
.marketing-forms small { color: var(--muted); line-height: 1.7; }
.marketing-private > section { margin-top: 32px; }
.program-ledger { width: 100%; border-collapse: collapse; font-size: 13px; }
.program-ledger th, .program-ledger td { padding: 12px 8px; text-align: start; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.program-ledger td:first-child { max-width: 220px; }
@media (max-width: 650px) { .program-ledger { font-size: 12px; } .program-ledger th, .program-ledger td { padding: 10px 4px; } }
.program-card[data-program] { display: flex; flex-direction: column; }
.program-card[data-program] .program-actions { margin-top: auto; }
