/* Interior pages (sponsor, dashboard) built on the NGMI dark system in styles.css. */

/* ---------- Page head ---------- */
.page-head { text-align: center; padding: 150px 24px 70px; }
.page-head h1 {
  font-size: clamp(40px, 6vw, 76px);
  line-height: .98;
  margin: 18px auto 20px;
  max-width: 16ch;
}
.page-head .lede { color: #c9c9c4; font-size: 15px; max-width: 54ch; margin: 0 auto; }
.page-head .btn-row { justify-content: center; margin-top: 34px; }
.page-note { font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: #6f6f69; margin-top: 22px; }

.live-dot {
  display: inline-block; width: 8px; height: 8px; border-radius: 50%;
  background: var(--red); margin-right: 10px; vertical-align: 1px;
  animation: live-pulse 1.6s ease-in-out infinite;
}
@keyframes live-pulse { 0%,100% { opacity: 1; } 50% { opacity: .25; } }

/* ---------- Pricing ---------- */
.price-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1px;
  background: var(--line); border: 1px solid var(--line);
  margin-top: 48px;
}
.price-cell { background: var(--cell); padding: 38px 34px; display: flex; flex-direction: column; }
.price-kicker {
  font-size: 10px; font-weight: 600; letter-spacing: .24em;
  text-transform: uppercase; color: #6f6f69;
}
.price-num { font-family: 'Archivo Black', sans-serif; font-size: clamp(40px, 4.5vw, 58px); line-height: 1; margin-top: 14px; }
.price-per { font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin-top: 8px; }
.price-list { list-style: none; margin: 24px 0 30px; flex: 1; }
.price-list li { position: relative; padding: 7px 0 7px 20px; font-size: 13px; color: #c9c9c4; }
.price-list li::before { content: ""; position: absolute; left: 0; top: 14px; width: 8px; height: 8px; background: var(--red); }
.price-cell .btn { align-self: flex-start; }
.price-cell.featured {
  background:
    radial-gradient(ellipse 90% 70% at 50% 115%, rgba(224,44,16,.16) 0%, transparent 65%),
    var(--cell);
  box-shadow: inset 0 0 0 1px var(--red);
}
.price-cell.featured .price-kicker { color: var(--red); }
.price-cell.featured .btn { background: var(--red); color: #fff; }
.price-cell.featured .btn:hover { background: #c4270e; }

/* ---------- Availability ---------- */
.avail { margin-top: 40px; }
.avail[hidden] { display: none; }
.avail-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px;
  background: var(--line); border: 1px solid var(--line); margin-top: 14px;
}
.avail-cell { background: var(--cell); padding: 20px 22px; }
.avail-day { font-size: 10px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: #6f6f69; }
.avail-date { font-family: 'Archivo Black', sans-serif; font-size: 22px; text-transform: uppercase; margin: 8px 0 10px; }
.avail-status {
  display: inline-flex; font-size: 10px; font-weight: 700; letter-spacing: .2em;
  text-transform: uppercase; padding: 3px 10px;
  background: rgba(224,44,16,.14); color: var(--red);
}
.avail-cell.taken .avail-date { color: #4a4a44; text-decoration: line-through; }
.avail-cell.taken .avail-status { background: #1a1a19; color: var(--muted); }
.avail-note { font-size: 12px; color: var(--muted); margin-top: 12px; }
.avail-note a { color: #c9c9c4; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Dashboard blocks ---------- */
.dash-wrap { width: min(1160px, 92vw); margin: 0 auto; padding: 0 0 90px; }
.dash-block { border: 1px solid var(--line); background: var(--cell); margin-top: 26px; }
.dash-label {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 13px 22px; border-bottom: 1px solid var(--line);
  font-size: 10px; font-weight: 600; letter-spacing: .24em;
  text-transform: uppercase; color: #6f6f69;
}
.dash-note { font-size: 12px; color: var(--muted); padding: 12px 22px; border-top: 1px solid var(--line); }
.dash-note a { color: #c9c9c4; text-decoration: underline; text-underline-offset: 3px; }
.dash-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: start; }

.count-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.count-cell { padding: 26px 12px; text-align: center; }
.count-cell + .count-cell { border-left: 1px solid var(--line); }
.count-num {
  font-family: 'Archivo Black', sans-serif;
  font-size: clamp(34px, 4.6vw, 60px); line-height: 1;
  font-variant-numeric: tabular-nums;
}
.count-unit { font-size: 10px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: #6f6f69; margin-top: 8px; }

.board-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 22px; }
.board-row + .board-row { border-top: 1px solid var(--line); }
.board-day { font-size: 10px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: #6f6f69; margin-right: 12px; }
.board-date { font-family: 'Archivo Black', sans-serif; font-size: 16px; text-transform: uppercase; }
.board-row.taken .board-date { color: #4a4a44; text-decoration: line-through; }
.board-row .avail-status { flex: none; }

.dash-embed { padding: 10px; }
.dash-embed iframe { width: 100%; height: 452px; border: 0; display: block; }

.dash-stats { display: grid; grid-template-columns: repeat(4, 1fr); }
.dash-stats .stat { border-left: 1px solid var(--line); }
.dash-stats .stat:first-child { border-left: 0; }

.crew-row { display: flex; align-items: center; gap: 16px; padding: 15px 22px; }
.crew-row + .crew-row { border-top: 1px solid var(--line); }
.crew-photo { width: 42px; height: 42px; object-fit: cover; flex: none; filter: grayscale(1) contrast(1.05); }
.crew-name { font-family: 'Archivo Black', sans-serif; font-size: 14px; text-transform: uppercase; letter-spacing: .02em; }
.crew-co { font-size: 11.5px; color: var(--muted); }
.crew-status {
  margin-left: auto; text-align: right;
  font-size: 10px; font-weight: 600; letter-spacing: .2em;
  text-transform: uppercase; color: #6f6f69;
}

/* ---------- Closing banner (ad slot / closing CTA): red glow on black ---------- */
.banner {
  background:
    radial-gradient(ellipse 60% 70% at 50% 110%, rgba(224,44,16,.16) 0%, transparent 65%),
    #0a0a0a;
  border-top: 1px solid var(--line);
  color: var(--ink); text-align: center; padding: 90px 28px;
}
.banner .bk { font-size: 10px; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; color: var(--red); }
.banner h2 { font-size: clamp(30px, 4.6vw, 52px); line-height: 1; margin: 16px auto 0; max-width: 18ch; }
.banner p { color: #c9c9c4; font-size: 13.5px; max-width: 52ch; margin: 16px auto 0; }
.banner .btn-row { justify-content: center; margin-top: 30px; }
.banner .btn { background: var(--red); color: #fff; }
.banner .btn:hover { background: #c4270e; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .price-grid, .dash-2col { grid-template-columns: 1fr; }
  .avail-grid { grid-template-columns: 1fr 1fr; }
  .dash-stats { grid-template-columns: 1fr 1fr; }
  .dash-stats .stat:nth-child(odd) { border-left: 0; }
  .dash-stats .stat:nth-child(n+3) { border-top: 1px solid var(--line); }
  .page-head { padding: 120px 20px 56px; }
}
@media (max-width: 640px) {
  .page-head h1, .banner h2 { max-width: none; }
  .dash-label { padding: 12px 16px; }
  .dash-label span + span { display: none; }
  .dash-note, .board-row { padding-left: 16px; padding-right: 16px; }
  .count-grid { grid-template-columns: 1fr 1fr; }
  .count-cell:nth-child(odd) { border-left: 0; }
  .count-cell:nth-child(n+3) { border-top: 1px solid var(--line); }
  .crew-row { flex-wrap: wrap; row-gap: 2px; padding-left: 16px; padding-right: 16px; }
  .crew-status { width: 100%; margin-left: 58px; text-align: left; }
  .price-cell { padding: 26px 20px; }
  .price-cell .btn { align-self: stretch; text-align: center; }
}
