/* Star parties page (Pages::Templates::StarParties). Builds on site.css: the home page's .svo-hero,
   .svo-pillars and .svo-tiles, with breakpoints matching site.css (1100 / 860). */

/* Hero: copy and the next star party share a grid so their bottom edges align */
.svo-hero--parties .svo-hero__content { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 64px; align-items: end; }
.svo-hero--parties .svo-hero__content > div { max-width: none; }
.svo-hero__intro p { margin: 0 0 32px; }
.svo-hero__next { display: flex; flex-direction: column; gap: 14px; padding: 24px 28px 26px; background: var(--surface-glass); backdrop-filter: var(--blur-glass); -webkit-backdrop-filter: var(--blur-glass); border: 1px solid var(--line-strong); }
.svo-hero__next-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.svo-hero__next-soon { font: var(--type-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--ink-500); }
.svo-hero__next-date { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.svo-hero__next-day { font: 300 48px/1 var(--font-serif); letter-spacing: var(--tracking-display); color: var(--ink-0); }
.svo-hero__next-when { font: var(--type-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--gold-500); }
.svo-hero__next-title { font: 400 22px/1.3 var(--font-serif); color: var(--ink-0); }
.svo-hero__next-place { font: var(--type-ui); color: var(--ink-400); }
.svo-hero__next .svo-btn-row { margin-top: 4px; align-items: center; }

/* Section heads: eyebrow + headline left, controls or a short intro right */
.svo-parties-head { display: flex; justify-content: space-between; align-items: end; gap: 24px 48px; flex-wrap: wrap; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.svo-parties-head .svo-h2 { margin-top: 16px; }
.svo-parties-head__intro { max-width: 460px; margin: 0; color: var(--ink-400); }

/* Schedule tabs reuse .svo-tag at a 44px touch height */
button.svo-tag { min-height: 44px; padding: 0 18px; background: transparent; cursor: pointer; }
.svo-schedule__count { margin: 0; padding: 18px 0; border-bottom: 1px solid var(--line); font: var(--type-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--ink-600); }
.svo-schedule__more { margin: 24px 0 0; font: var(--type-ui); color: var(--ink-500); }

/* Upcoming: date block · details · actions */
.svo-event { display: grid; grid-template-columns: 128px minmax(0, 1fr) auto; gap: 24px 48px; align-items: center; padding: 40px 0; border-bottom: 1px solid var(--line); }
.svo-event__date { display: flex; flex-direction: column; gap: 10px; }
.svo-event__month { font: var(--type-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--gold-500); }
.svo-event__day { font: 300 72px/1 var(--font-serif); letter-spacing: var(--tracking-display); color: var(--ink-0); margin-top: 4px; }
.svo-event__weekday { font: var(--type-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--ink-500); }
.svo-event h3 { font: var(--type-h3); color: var(--ink-0); margin: 0 0 10px; text-wrap: balance; }
.svo-event__meta { margin: 0; font: var(--type-body); color: var(--ink-400); }
.svo-event__desc { margin: 8px 0 0; max-width: 640px; font: var(--type-ui); color: var(--ink-500); }
.svo-event__note { margin: 10px 0 0; font: var(--type-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--gold-500); }
.svo-event .svo-btn-row { align-items: center; justify-content: flex-end; }
.svo-event__flag, .svo-event-row__flag { display: inline-block; font: var(--type-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--ink-400); }
.svo-event__flag { margin-bottom: 10px; padding: 5px 10px; border: 1px solid var(--line-control); }
.svo-event--cancelled h3 { color: var(--ink-500); text-decoration: line-through; text-decoration-color: var(--ink-600); }

/* Past: date · title · place · time */
.svo-event-row { display: grid; grid-template-columns: 140px minmax(0, 1fr) minmax(0, 340px) 96px; grid-template-areas: "date title place time"; gap: 6px 32px; align-items: baseline; padding: 18px 0; border-bottom: 1px solid var(--line); }
.svo-event-row__date { grid-area: date; }
.svo-event-row__title { grid-area: title; font: 400 19px/1.35 var(--font-serif); color: var(--ink-100); }
.svo-event-row__place { grid-area: place; font: var(--type-ui); color: var(--ink-400); }
.svo-event-row__time { grid-area: time; text-align: right; }
.svo-event-row__date, .svo-event-row__time { font: var(--type-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--ink-500); }
.svo-event-row__flag { margin-right: 10px; }
.svo-event-row--cancelled .svo-event-row__title { color: var(--ink-500); text-decoration: line-through; text-decoration-color: var(--ink-600); }

/* Where we gather: hairline grid, as in DonateBand's methods */
.svo-venues { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 40px 0 0; padding: 0; list-style: none; background: var(--line); border: 1px solid var(--line); }
.svo-venues li { background: var(--surface-raised); padding: 28px; display: flex; flex-direction: column; gap: 10px; }
.svo-venues__label { font: var(--type-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--gold-500); }
.svo-venues h3 { font: var(--type-h4); color: var(--ink-0); margin: 0; }
.svo-venues p { flex: 1; margin: 0; font: var(--type-ui); color: var(--ink-400); }
.svo-venues a { font: var(--type-button); margin-top: 8px; }

.svo-pillars > div > .svo-btn--link { margin-top: 24px; }
.svo-tiles .svo-newsletter { grid-template-columns: 1fr; align-content: center; }

@media (max-width: 1100px) {
  .svo-event { grid-template-columns: 112px minmax(0, 1fr); }
  .svo-event .svo-btn-row { grid-column: 2; justify-content: flex-start; }
  .svo-event-row { grid-template-columns: 120px minmax(0, 1fr) 84px; grid-template-areas: "date title time" "date place time"; row-gap: 4px; }
  .svo-venues { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
  .svo-hero--parties .svo-hero__content { grid-template-columns: 1fr; gap: 40px; }
  .svo-hero__next { width: 100%; max-width: 400px; }
  .svo-event { grid-template-columns: 72px minmax(0, 1fr); gap: 16px; padding: 28px 0; }
  .svo-event__day { font-size: 48px; }
  .svo-event h3 { font-size: 24px; }
  .svo-event .svo-btn-row { grid-column: 1 / -1; }
  .svo-event-row { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "date time" "title title" "place place"; }
  .svo-venues { grid-template-columns: 1fr; }
}
