/* Wave 4: sponsored units and the supplier side. Big and bold; no hairlines, no accent bars. */
.sponsor {
  display: grid;
  gap: var(--space-3);
  margin-bottom: var(--space-5);
  padding: var(--space-4);
  border-radius: var(--radius-lg);
  background-color: var(--c-sand);
}
.app-card .sponsor { background-color: var(--c-paper); }
.sponsor-chip { justify-self: start; font-weight: 700; }
.sponsor-link {
  display: grid;
  gap: var(--space-4);
  align-items: center;
  color: var(--c-ink);
  text-decoration: none;
}
.sponsor-link:hover .sponsor-headline, .sponsor-link:focus-visible .sponsor-headline { text-decoration: underline; }
.sponsor-img { width: 100%; height: auto; max-height: 220px; object-fit: cover; border-radius: var(--radius-md); }
.sponsor-text { display: grid; gap: var(--space-1); }
.sponsor-headline { font-family: var(--font-display); font-size: 1.375rem; font-weight: 800; line-height: 1.2; }
.sponsor-body { font-size: 1.0625rem; }
.sponsor-from { display: inline-flex; align-items: center; gap: var(--space-1); color: var(--c-muted); font-weight: 600; }
@media (min-width: 768px) {
  .sponsor-dashboard-banner .sponsor-link, .sponsor-directory-top .sponsor-link, .sponsor-public-search .sponsor-link {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  }
}
.sponsor-board-sidebar .sponsor-img { max-height: 160px; }

/* Supplier side: stat tiles and the weekly table */
.stat-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: var(--space-4); list-style: none; margin: 0 0 var(--space-5); padding: 0; }
.stat-tiles li { padding: var(--space-4) var(--space-5); border-radius: var(--radius-lg); background-color: var(--c-white); }
.stat-tiles .n { display: block; font-size: 2.25rem; font-weight: 800; line-height: 1.1; color: var(--c-ink); }
.stat-tiles .l { display: inline-flex; align-items: center; gap: var(--space-1); font-weight: 600; color: var(--c-muted); }
.price-tag { font-size: 1.5rem; font-weight: 800; color: var(--c-ink); }
.price-grid { display: grid; gap: var(--space-3); grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }

/* ---- 1 Oct 2026: Sample label, plan prices, demo checkout and Billing, the rate card, Website Spots ---- */
.sponsor-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); justify-self: start; }
.sponsor-sample { background-color: var(--c-sand); color: var(--c-ink); font-weight: 700; }  /* neutral, never orange */

/* A slim functional note, not a banner */
.pilot-note { display: flex; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-5); font-weight: 600; color: var(--c-muted); }
.pilot-note .ph { color: var(--c-orange-text); font-size: 1.25em; }
.demo-note { color: var(--c-ink); }

/* Plan page: Monthly / Annual, CSS only, so it also works in the static snapshot */
.ivl-toggle { display: inline-flex; gap: var(--space-1); margin: 0 0 var(--space-4); padding: var(--space-1); border-radius: 999px; background-color: var(--c-sand); }
.ivl-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.ivl-toggle label { min-height: 44px; display: inline-flex; align-items: center; padding: 0 var(--space-5); border-radius: 999px; font-weight: 700; cursor: pointer; }
.ivl-toggle input:checked + label { background-color: var(--c-ink); color: var(--c-on-dark); }
.ivl-toggle input:focus-visible + label { outline: 3px solid var(--c-focus); outline-offset: 2px; }
.plan-side:has(.ivl-a:checked) .is-monthly { display: none !important; }
.plan-side:has(.ivl-m:checked) .is-annual { display: none !important; }

/* Order summary and plan facts */
.sum-list { display: grid; gap: var(--space-3); margin: 0; }
.sum-list > div { display: flex; justify-content: space-between; gap: var(--space-4); }
.sum-list dt { font-weight: 600; color: var(--c-on-dark-soft); }
.sum-list dd { margin: 0; font-weight: 700; text-align: right; }
.sum-list .sum-total { padding-top: var(--space-3); font-size: 1.375rem; }
.sum-list .sum-total dt { color: var(--c-on-dark); font-weight: 800; }
.sum-list-light dt { color: var(--c-muted); }
.sum-list-light > div { padding: var(--space-2) var(--space-3); border-radius: var(--radius-md); background-color: var(--c-paper); }
.order-summary .chip { background-color: rgb(255 255 255 / 0.12); color: var(--c-on-dark); }

/* Rate card */
.rate-facts { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-5); list-style: none; margin: 0 0 var(--space-6); padding: 0; font-weight: 600; }
.rate-facts li { display: inline-flex; align-items: center; gap: var(--space-2); }
.rate-facts .ph { color: var(--c-orange-text); font-size: 1.25em; }
.rate-grid { display: grid; gap: var(--space-5); grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); }
.rate-card { display: grid; gap: var(--space-3); align-content: start; scroll-margin-top: 96px; }
.rate-card .btn { justify-self: start; }
.rate-price { padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background-color: var(--c-paper); }

/* Where a spot appears: a page outline with the spot in orange */
.spot-map { display: flex; flex-direction: column; aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--radius-md); background-color: var(--c-sand); }
:where(.spot-map span) { display: block; }
.map-top { flex: 0 0 18px; background-color: var(--c-ink); }
.map-top-light { background-color: var(--c-white); }
.map-foot { flex: 0 0 22px; background-color: var(--c-ink); }
.map-body { flex: 1 1 auto; display: grid; padding: 14px; min-height: 0; }
.map-cols { grid-template-columns: 18% 1fr; gap: 14px; padding-left: 0; padding-top: 0; padding-bottom: 0; }
.map-cols .map-side { background-color: var(--c-white); }
.map-cols .map-main { padding: 14px 14px 0 0; }
.map-main { display: grid; gap: 6px; align-content: start; min-width: 0; }
.map-narrow { width: 70%; justify-self: center; }
.map-line { height: 7px; border-radius: 4px; background-color: rgb(46 46 46 / 0.16); }
.map-line.short { width: 45%; }
.map-row, .map-list { display: grid; gap: 6px; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); }
.map-list { grid-template-columns: 1fr; }
.map-block { height: 28px; border-radius: 4px; background-color: var(--c-white); }
.map-split { grid-template-columns: 1fr 34%; gap: 8px; }
.map-rail { display: grid; gap: 6px; align-content: start; }
.map-rail .map-ad { height: 44px; }
.map-search { height: 16px; width: 70%; border-radius: 4px; background-color: var(--c-white); }
.map-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.map-grid > span { height: 38px; }
.map-hero { height: 34px; border-radius: 4px; background-color: rgb(46 46 46 / 0.24); }
.map-mail { justify-items: center; }
.map-mail .map-main { width: 70%; padding: 14px; border-radius: 4px; background-color: var(--c-white); }
.map-button { width: 40%; height: 14px; border-radius: 4px; background-color: var(--c-ink); }
.map-ad { height: 30px; border-radius: 4px; background-color: var(--c-orange); }
.map-ad-slim { height: 12px; }

/* Admin > Sponsors > Website Spots */
.site-spot-grid { display: grid; gap: var(--space-5); }
@media (min-width: 992px) { .site-spot-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; } }
.site-preview { margin-bottom: 0; }
.app-card-ink .price-tag { color: var(--c-on-dark); }
