/* Guest-only overrides: linked by index.html, never the staff dashboard.
   Keep enough specificity for content/numbered styles loaded later by scripts. */
.feature-grid .feature-vendor { color: var(--gold); font-size: 16px; font-weight: 600; margin: 10px 0; }

.brand { font-size: 13px; }
.brand small { font-size: 10px; }
nav a, footer a, .text-link { font-size: 14px; }
.eyebrow, .wallet .eyebrow, .raffle-dialog .eyebrow { font-size: 12px; line-height: 1.6; }
.gold-btn, .outline-btn, .add-btn, .tier a { font-size: 13px; line-height: 1.5; }
.intro-text, .support-copy > p:not(.eyebrow), .raffle-intro { font-size: 16px; }
.feature-grid p, .tier p, .basket p, .raffle-dialog p { font-size: 15px; }
.ticket-price span, .basket-meta span, .stardust-card p, .tier-details,
.ticket-balance, .cart-items, .cart-total, .choice, .check-row,
.wallet-top p, .wallet-balance span, .wallet-empty, .wallet-note,
.wallet .wallet-entry, .wallet .wallet-entry > span:last-child,
.wallet-history, .raffle-steps, .basket-footnote, .basket-value,
.dialog-callout, .order-card p, .request-total span, .raffle-toast,
.preview-strip, .guest-preview label, .guest-preview p,
.support-preview-note, footer { font-size: 14px; line-height: 1.6; }
.disclaimer, .wallet-disclaimer, .wallet-stats span, .basket-paused,
.radio-label small, .request-total small, .order-status,
.tier-details strong, .group-label span, .op-tab small,
.preview-label, .preview-strip b { font-size: 13px; line-height: 1.6; }
.op-tab, .op-table, #modalContent .op-table,
.opportunity-grid .grid-cell, .opportunity-grid .grid-row > div { font-size: 14px; }
.opportunity-grid .grid-head { font-size: 22px; }

.raffle-request label, .raffle-request legend, .raffle-request .radio-label,
.modal .content-form label { font-size: 15px; line-height: 1.5; }
.modal .content-form .content-note { font-size: 14px; }
.form-error { font-size: 14px !important; }
.modal input, .modal select, .modal textarea,
.raffle-dialog input, .raffle-dialog.numbered-dialog input,
.raffle-dialog select, .raffle-dialog textarea,
.guest-preview select, .basket-controls select { font-size: 16px; }
.basket-controls .basket-add { font-size: 13px; }
.wallet .numbered-counts, .basket .numbered-counts, .numbered-dialog .numbered-counts,
.numbered-dialog .numbered-status, .wallet .numbered-submit,
.wallet .numbered-submit-hint { font-size: 14px; line-height: 1.6; }

/* Larger copy needs wrapping room without changing the display headings. */
.link-row { flex-wrap: wrap; }
.support { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.raffle-layout { grid-template-columns: minmax(0, 1fr) 350px; }
.tier, .basket, .wallet, .stardust-card { min-width: 0; overflow-wrap: break-word; }
.order-card header { flex-wrap: wrap; }
@media (max-width: 1100px) {
  .support { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
  .raffle-layout { grid-template-columns: 1fr; }
  .preview-strip { font-size: 13px; }
  .preview-strip b { font-size: 12px; }
  .guest-preview p, .raffle-steps { font-size: 14px; }
}
@media (max-width: 480px) {
  .hero { grid-template-columns: minmax(0, 1fr); }
  .hero h1 { font-size: clamp(64px, 21vw, 90px); }
  .basket-grid { grid-template-columns: minmax(0, 1fr); }
}
