/* ============================================================================
   Sponsors / Underwriting pages — styles on top of main.css design tokens.
   Dark theme, Poppins, pink + cyan accents; teal for success/bonus notes.
   ============================================================================ */

.site-nav a.active { color: var(--pink); }

/* ===== Shared hero (matches donate-hero) ===== */
.sp-hero { text-align: center; padding: 4rem 1.5rem 1.5rem; }
.sp-hero h1 { font-size: 44px; margin: 0 0 0.6rem; color: var(--white); }
@media (max-width: 640px) { .sp-hero h1 { font-size: 32px; } }
.sp-hero p { max-width: 620px; margin: 0 auto 1.6rem; color: var(--muted); }

/* ===== Section scaffolding ===== */
.sp-section { max-width: 1060px; margin: 0 auto; padding: 2.5rem 1.5rem; }
.sp-section > h2 { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 30px; text-align: center; margin: 0 0 0.4rem; }
@media (max-width: 640px) { .sp-section > h2 { font-size: 24px; } }
.sp-sub { color: var(--muted); text-align: center; max-width: 640px; margin: 0 auto 2rem; }
.sp-kicker { color: var(--pink); font-weight: 600; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.1em; text-align: center; margin: 0 0 1.4rem; }

/* ===== Benefit cards (What You Get) ===== */
.sp-benefits { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 640px) { .sp-benefits { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .sp-benefits { grid-template-columns: repeat(3, 1fr); } }
.sp-benefit { background: #0e0e12; border: 1px solid #232329; border-radius: 12px; padding: 1.4rem; }
.sp-benefit .icon-wrap {
  width: 88px; height: 88px; border-radius: 50%; overflow: hidden; margin-bottom: 0.9rem;
  background: #1d1d22; display: flex; align-items: center; justify-content: center;
}
.sp-benefit .icon-wrap img { width: 76px; height: 76px; object-fit: cover; border-radius: 50%; }
.sp-benefit h3 { margin: 0 0 0.4rem; font-size: 1.05rem; font-weight: 600; text-transform: none; color: var(--white); letter-spacing: 0; }
.sp-benefit p { margin: 0; color: var(--muted); font-size: 0.92rem; line-height: 1.55; }

/* ===== New sponsor bonus banner ===== */
.sp-bonus {
  max-width: 560px; margin: 0 auto 2.4rem; padding: 1rem 1.4rem; text-align: center;
  background: rgba(89, 243, 222, 0.07); border: 1px solid rgba(89, 243, 222, 0.35); border-radius: 12px;
}
.sp-bonus strong { display: block; color: var(--teal); font-size: 1.1rem; margin-bottom: 0.15rem; }
.sp-bonus span { color: #d7d7df; font-size: 0.92rem; }
.sp-bonus span b { color: var(--white); }

/* ===== Package cards ===== */
.sp-packages { display: grid; grid-template-columns: 1fr; gap: 1.5rem; align-items: stretch; }
@media (min-width: 820px) { .sp-packages { grid-template-columns: repeat(3, 1fr); } }
.sp-package {
  position: relative; display: flex; flex-direction: column;
  background: #0e0e12; border: 1px solid #232329; border-radius: 14px; padding: 1.8rem 1.5rem 1.5rem;
}
.sp-package.featured { border: 2px solid var(--pink); }
.sp-package .badge {
  position: absolute; top: -14px; left: 50%; transform: translateX(-50%);
  background: var(--pink-deep); color: var(--white); font-size: 0.72rem; font-weight: 700;
  letter-spacing: 0.08em; padding: 0.3rem 0.9rem; border-radius: 999px; white-space: nowrap;
}
.sp-package .pkg-head { text-align: center; margin-bottom: 1.2rem; }
.sp-package .pkg-head h3 { margin: 0 0 0.4rem; font-size: 1.25rem; font-weight: 700; text-transform: none; color: var(--white); letter-spacing: 0; }
.sp-package .price { font-size: 2.2rem; font-weight: 800; color: var(--white); line-height: 1.1; }
.sp-package .price small { font-size: 1.05rem; font-weight: 500; color: var(--muted); }
.sp-package .per-quarter { color: var(--muted); font-size: 0.85rem; margin-top: 0.25rem; }
.sp-package .spots {
  background: #121216; border: 1px solid #2e2e36; border-radius: 10px;
  padding: 0.9rem; text-align: center; margin-bottom: 1.2rem;
}
.sp-package.featured .spots { border-color: rgba(255, 82, 168, 0.4); }
.sp-package .spots .num { display: block; color: var(--cyan); font-size: 1.7rem; font-weight: 800; line-height: 1.2; }
.sp-package .spots .lbl { color: var(--muted); font-size: 0.85rem; }
.sp-package .spots .first { display: block; color: var(--teal); font-size: 0.78rem; font-weight: 600; margin-top: 0.35rem; }
.sp-features { list-style: none; margin: 0 0 1.4rem; padding: 0; flex-grow: 1; }
.sp-features li {
  position: relative; padding-left: 1.5rem; margin-bottom: 0.55rem;
  color: #d7d7df; font-size: 0.9rem; line-height: 1.45;
}
.sp-features li::before { content: "\2713"; position: absolute; left: 0; top: 0; color: var(--teal); font-weight: 700; }
.sp-package .pill { width: 100%; text-align: center; margin-top: auto; }

/* ===== Partners band (light, like the site's colored bands) ===== */
.sp-partners { background: var(--white); color: #111; border-radius: 1.25rem; margin: 1.5rem 1.5rem 2.5rem; }
@media (max-width: 640px) { .sp-partners { border-radius: 0; margin-left: 0; margin-right: 0; } }
.sp-partners-inner { max-width: 980px; margin: 0 auto; padding: 3rem 1.5rem; }
.sp-partners h2 { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 28px; text-align: center; color: #111; margin: 0 0 0.4rem; }
.sp-partners .sp-sub { color: #555; }
.sp-partners .sp-kicker { color: var(--pink-deep); }
.sp-logo-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 2rem; align-items: flex-start; margin-bottom: 2.5rem; }
.sp-logo { position: relative; display: flex; flex-direction: column; align-items: center; text-decoration: none; width: 160px; }
.sp-logo .disc {
  width: 150px; height: 150px; border-radius: 50%; overflow: hidden;
  display: flex; align-items: center; justify-content: center; padding: 0.9rem;
  background: #fff; border: 3px solid #d5d5dc; margin-bottom: 0.5rem;
  transition: transform 0.15s;
}
.sp-logo .disc.dark { background: #121216; border-color: #121216; }
.sp-logo .disc.grey { background: #f0f0f3; border-color: #f0f0f3; }
.sp-logo .disc.full { padding: 0; }
.sp-logo .disc.full img { width: 100%; height: 100%; object-fit: cover; }
.sp-logo .disc img { max-width: 100%; max-height: 100%; object-fit: contain; }
.sp-logo:hover .disc { transform: scale(1.05); }
.sp-logo .name { color: #666; font-size: 0.78rem; text-align: center; }
.sp-logo .tip {
  position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); margin-bottom: 0.5rem;
  background: #121216; color: var(--white); font-size: 0.75rem; line-height: 1.4;
  border-radius: 8px; padding: 0.5rem 0.8rem; width: 190px; text-align: center;
  opacity: 0; pointer-events: none; transition: opacity 0.15s; z-index: 10;
}
.sp-logo:hover .tip { opacity: 1; }
.sp-logo .disc.join {
  background: #e8e8ee; border: 2px dashed #9a9aa6;
  color: #555; font-size: 0.85rem; font-weight: 600; text-align: center;
}
.sp-logo .tip.pink { background: var(--pink-deep); }

/* ===== Event sponsorship cards ===== */
.sp-events { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 820px) { .sp-events { grid-template-columns: repeat(3, 1fr); } }
.sp-event-card { background: #0e0e12; border: 1px solid #232329; border-radius: 12px; padding: 1.4rem; }
.sp-event-card h3 { margin: 0 0 0.4rem; font-size: 1.05rem; font-weight: 600; text-transform: none; color: var(--white); letter-spacing: 0; }
.sp-event-card p { margin: 0 0 0.9rem; color: var(--muted); font-size: 0.92rem; }
.sp-event-card a { color: var(--cyan); text-decoration: none; font-size: 0.9rem; font-weight: 600; }
.sp-event-card a:hover { color: var(--white); }

/* ===== Contact / inquiry section ===== */
.sp-contact { display: grid; grid-template-columns: 1fr; gap: 2.5rem; align-items: start; }
@media (min-width: 880px) { .sp-contact { grid-template-columns: 1fr 1fr; } }
.sp-contact-copy h2 { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 26px; margin: 0 0 0.8rem; }
.sp-contact-copy p { color: #d7d7df; margin: 0 0 1rem; font-size: 0.97rem; }
.sp-about { background: #0e0e12; border: 1px solid #232329; border-radius: 12px; padding: 1.4rem; margin: 1.2rem 0; }
.sp-about h3 { margin: 0 0 0.6rem; font-size: 1rem; font-weight: 600; text-transform: none; color: var(--white); letter-spacing: 0; }
.sp-about p { color: var(--muted); font-size: 0.9rem; margin: 0 0 0.7rem; }
.sp-about p:last-child { margin-bottom: 0; }
.sp-about strong { color: var(--white); }
.sp-direct { color: var(--muted); font-size: 0.9rem; }
.sp-direct a { color: var(--cyan); text-decoration: none; font-weight: 600; }
.sp-direct a:hover { color: var(--white); }

/* ===== Card + form (shared by all sponsor forms) ===== */
.sp-card { background: #0e0e12; border: 1px solid #232329; border-radius: 14px; padding: 1.8rem; }
.sp-card > h3 { margin: 0 0 1.4rem; font-size: 1.15rem; font-weight: 600; text-transform: none; color: var(--white); letter-spacing: 0; }
.sp-form label.field { display: block; margin-bottom: 1.1rem; font-size: 0.85rem; color: var(--muted); }
.sp-form label.field .opt { color: #7c7c88; }
.sp-form input[type="text"], .sp-form input[type="email"], .sp-form input[type="tel"],
.sp-form input[type="url"], .sp-form textarea {
  display: block; width: 100%; margin-top: 0.35rem; padding: 0.8rem 0.9rem;
  background: #121216; border: 1px solid #2e2e36; border-radius: 6px;
  color: var(--white); font-size: 1rem; font-family: inherit; resize: vertical;
}
.sp-form input:focus, .sp-form textarea:focus { outline: none; border-color: var(--pink); }
.sp-form .group-label { display: block; font-size: 0.85rem; color: var(--muted); margin-bottom: 0.5rem; }
.sp-interests { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 1.1rem; }
.sp-interest {
  display: flex; align-items: center; gap: 0.7rem; padding: 0.7rem 1rem; cursor: pointer;
  background: #121216; border: 1px solid #2e2e36; border-radius: 8px;
  color: #d7d7df; font-size: 0.9rem; transition: border-color 0.12s, background 0.12s;
}
.sp-interest:hover { border-color: #4a4a54; }
.sp-interest.active { border-color: var(--pink); background: rgba(255, 82, 168, 0.08); }
.sp-interest input { position: absolute; opacity: 0; pointer-events: none; }
.sp-interest .box {
  width: 18px; height: 18px; flex: 0 0 18px; border-radius: 4px; border: 2px solid #4a4a54;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--white); font-size: 0.7rem; font-weight: 700; line-height: 1;
}
.sp-interest.active .box { background: var(--pink-deep); border-color: var(--pink-deep); }
.sp-form .pill { width: 100%; }
.sp-form .pill[disabled] { opacity: 0.6; cursor: wait; }
.sp-error {
  background: rgba(248, 113, 113, 0.08); border: 1px solid rgba(248, 113, 113, 0.35);
  border-radius: 8px; padding: 0.7rem 1rem; color: #f87171; font-size: 0.9rem; margin-bottom: 1.1rem;
}
.sp-success { text-align: center; padding: 2rem 0; }
.sp-success .ok-ring {
  width: 64px; height: 64px; margin: 0 auto 1rem; border-radius: 50%;
  background: rgba(89, 243, 222, 0.12); display: flex; align-items: center; justify-content: center;
}
.sp-success .ok-ring span { color: var(--teal); font-size: 1.9rem; font-weight: 700; }
.sp-success h3 { margin: 0 0 0.4rem; font-size: 1.2rem; font-weight: 600; text-transform: none; color: var(--white); letter-spacing: 0; }
.sp-success p { color: var(--muted); margin: 0; }

/* ===== Signup page ===== */
.sp-narrow { max-width: 520px; margin: 0 auto; padding: 2.5rem 1.5rem 4rem; }
.sp-back { display: inline-block; color: var(--cyan); text-decoration: none; font-size: 0.9rem; margin-bottom: 1.4rem; }
.sp-back:hover { color: var(--white); }
.sp-summary { border: 2px solid var(--pink); border-radius: 14px; background: rgba(255, 82, 168, 0.05); padding: 1.5rem; margin-bottom: 1.8rem; }
.sp-summary .top { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.sp-summary .you-selected { color: var(--muted); font-size: 0.85rem; margin: 0; }
.sp-summary h1 { font-size: 1.5rem; margin: 0.15rem 0 0; font-family: 'Poppins', sans-serif; font-weight: 700; letter-spacing: 0; line-height: 1.2; }
.sp-summary .amount-col { text-align: right; }
.sp-summary .amount-col .amt { font-size: 1.9rem; font-weight: 800; color: var(--white); line-height: 1.1; }
.sp-summary .amount-col .per { color: var(--muted); font-size: 0.85rem; }
.sp-summary .sp-features { border-top: 1px solid rgba(255, 255, 255, 0.12); padding-top: 1rem; margin-bottom: 0; }
.sp-summary .sp-bonus { margin: 1.1rem 0 0; max-width: none; text-align: left; padding: 0.8rem 1rem; }
.sp-summary .sp-bonus strong { font-size: 0.95rem; }
.sp-summary .sp-bonus span { font-size: 0.85rem; }
.sp-fineprint { text-align: center; color: #7c7c88; font-size: 0.8rem; margin-top: 1.4rem; }
.sp-social-proof { border-top: 1px solid #232329; margin-top: 1.4rem; padding-top: 1.3rem; text-align: center; color: var(--muted); font-size: 0.88rem; }

/* ===== Thank-you page ===== */
.sp-thanks { max-width: 560px; margin: 0 auto; padding: 4rem 1.5rem; text-align: center; }
.sp-thanks .ok-ring {
  width: 92px; height: 92px; margin: 0 auto 1.6rem; border-radius: 50%;
  background: rgba(89, 243, 222, 0.12); display: flex; align-items: center; justify-content: center;
}
.sp-thanks .ok-ring .inner {
  width: 62px; height: 62px; border-radius: 50%; background: var(--teal);
  display: flex; align-items: center; justify-content: center; color: #08080c; font-size: 2rem; font-weight: 800;
}
.sp-thanks h1 { font-size: 2.1rem; margin: 0 0 0.6rem; }
.sp-thanks .lede { color: #d7d7df; font-size: 1.15rem; margin: 0 0 0.4rem; }
.sp-thanks .sub { color: var(--muted); margin: 0 0 2rem; }
.sp-steps { background: #0e0e12; border: 1px solid #232329; border-radius: 14px; padding: 1.6rem; text-align: left; margin-bottom: 2rem; }
.sp-steps h2 { font-size: 1.1rem; font-weight: 600; margin: 0 0 1.1rem; font-family: 'Poppins', sans-serif; letter-spacing: 0; }
.sp-step { display: flex; align-items: flex-start; gap: 0.8rem; margin-bottom: 1rem; }
.sp-step:last-child { margin-bottom: 0; }
.sp-step .n {
  width: 30px; height: 30px; flex: 0 0 30px; border-radius: 50%;
  background: rgba(255, 82, 168, 0.15); color: var(--pink);
  display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem;
}
.sp-step strong { display: block; color: var(--white); font-weight: 600; font-size: 0.95rem; }
.sp-step span { color: var(--muted); font-size: 0.85rem; }
.sp-thanks .questions { color: var(--muted); font-size: 0.9rem; margin-top: 1.4rem; }
.sp-thanks .questions a { color: var(--pink); text-decoration: none; }

/* ===== Onboarding page ===== */
.sp-onboard { max-width: 680px; margin: 0 auto; padding: 3rem 1.5rem 4rem; }
.sp-onboard-head { text-align: center; margin-bottom: 2rem; }
.sp-onboard-head h1 { font-size: 2rem; margin: 0 0 0.4rem; }
.sp-onboard-head p { color: var(--muted); margin: 0; }
.sp-onboard-head p .biz { color: var(--pink); }
.sp-pkg-pill {
  display: inline-block; margin-top: 0.7rem; padding: 0.3rem 1rem; border-radius: 999px;
  background: rgba(255, 82, 168, 0.15); color: var(--pink); font-size: 0.85rem; font-weight: 600;
}
.sp-onboard .sp-card { margin-bottom: 1.4rem; }
.sp-onboard .sp-card > p.help { color: var(--muted); font-size: 0.9rem; margin: -0.8rem 0 1rem; }
.sp-template {
  background: #121216; border: 1px solid #2e2e36; border-radius: 8px; padding: 1rem;
  color: #d7d7df; font-family: 'SFMono-Regular', Consolas, monospace; font-size: 0.82rem;
  white-space: pre-wrap; line-height: 1.6; margin-bottom: 1rem;
}
.sp-hint { color: #7c7c88; font-size: 0.8rem; margin: 0.5rem 0 0; }
.sp-logo-upload { display: flex; align-items: flex-start; gap: 1.2rem; flex-wrap: wrap; }
.sp-logo-preview {
  width: 96px; height: 96px; flex: 0 0 96px; border-radius: 10px; background: #1d1d22;
  display: flex; align-items: center; justify-content: center; overflow: hidden;
  color: #7c7c88; font-size: 0.72rem; text-align: center;
}
.sp-logo-preview img { width: 100%; height: 100%; object-fit: contain; background: #fff; }
.sp-file { flex: 1; min-width: 220px; }
.sp-file input[type="file"] { display: block; width: 100%; color: var(--muted); font-size: 0.85rem; }
.sp-file input[type="file"]::file-selector-button {
  margin-right: 0.9rem; padding: 0.55rem 1.3rem; border: none; border-radius: var(--pill-radius);
  background: var(--pink-deep); color: var(--white); font-family: 'Poppins', sans-serif;
  font-weight: 600; font-size: 0.82rem; cursor: pointer;
}
.sp-file input[type="file"]::file-selector-button:hover { filter: brightness(1.12); }
.sp-center-note { text-align: center; color: var(--muted); font-size: 0.88rem; margin-top: 1.2rem; }
.sp-center-note a { color: var(--pink); text-decoration: none; }
.sp-state { text-align: center; padding: 5rem 1.5rem; color: var(--muted); }
.sp-state h1 { font-size: 1.7rem; color: var(--white); margin: 0.8rem 0 0.5rem; }
.sp-state .err-ring {
  width: 64px; height: 64px; margin: 0 auto; border-radius: 50%;
  background: rgba(248, 113, 113, 0.12); color: #f87171;
  display: flex; align-items: center; justify-content: center; font-size: 1.8rem; font-weight: 700;
}
.sp-state a { color: var(--pink); }
.sp-state .pill { margin-top: 1.4rem; }

/* ===== Embed page (iframed on external sites — self-contained look) ===== */
body.sp-embed { background: #0b0b0e; padding: 1.5rem 1rem; }
.sp-embed-wrap { max-width: 440px; margin: 0 auto; }
.sp-embed-wrap > h2 {
  font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 1.5rem;
  text-align: center; color: var(--white); margin: 0 0 1.4rem;
}
.sp-powered { text-align: center; color: #7c7c88; font-size: 0.75rem; margin-top: 1.4rem; }
@media (max-width: 640px) { .sp-hero { padding: 1.4rem 1rem 0.8rem; } }
