/* Base styles for the generated Phase 3 pages: header main nav, status badge and availability pill,
   card shell, grids and prose. Tokens only; no inline style anywhere. */

/* ---------- header main nav ---------- */
.site-header{flex-wrap:wrap;align-items:center}
.main-nav{order:3;flex-basis:100%}
.main-nav ul{display:flex;flex-wrap:wrap;gap:0 var(--space-lg);list-style:none}
.main-nav a{
  display:inline-flex;
  align-items:center;
  min-height:48px;
  font-size:var(--label-size);
  font-weight:var(--label-weight);
  line-height:var(--label-line);
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--paper);
  text-decoration:none;
  border-bottom:2px solid transparent;
}
.main-nav a:hover{color:var(--accent-text-on-ink)}
.main-nav a[aria-current="page"]{border-bottom-color:var(--accent)}
.band-ink .main-nav a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (min-width:768px){
  .main-nav{order:0;flex-basis:auto;margin-left:auto}
}

/* ---------- status badge and availability pill ---------- */
.status-badge,.avail-pill{
  display:inline-block;
  padding:var(--space-xs) var(--space-md);
  font-size:var(--label-size);
  font-weight:var(--label-weight);
  line-height:var(--label-line);
  text-transform:uppercase;
  letter-spacing:.04em;
  border:2px solid var(--ink);
  border-radius:999px;
  background:var(--paper);
  color:var(--ink);
}
.status-badge.is-inverted,.avail-pill.is-inverted{background:var(--ink);color:var(--paper)}
.band-ink .status-badge,.band-ink .avail-pill{border-color:var(--paper);background:var(--ink);color:var(--paper)}
.band-ink .status-badge.is-inverted,.band-ink .avail-pill.is-inverted{background:var(--paper);color:var(--ink)}

/* ---------- card shell and grids ---------- */
.event-card{
  background:var(--paper);
  color:var(--ink);
  border:2px solid var(--ink);
  border-radius:8px;
  padding:var(--space-lg);
}
.event-grid{display:grid;grid-template-columns:1fr;gap:var(--space-lg)}
@media (min-width:768px){
  .event-card{padding:var(--space-xl)}
  .event-grid{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1024px){
  .event-grid{grid-template-columns:repeat(3,1fr)}
}

/* ---------- prose ---------- */
.prose{max-width:68ch}
.prose h2{margin-top:var(--space-2xl);margin-bottom:var(--space-md)}
.prose ul,.prose ol{padding-left:var(--space-lg)}
.prose li+li{margin-top:var(--space-sm)}
.band-paper .prose a{color:var(--ink);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.band-paper .prose a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

/* ---------- event page ---------- */
.hero-plain{min-height:0}
.draft-banner{padding:var(--space-md) var(--space-lg);border-left:4px solid var(--accent);font-weight:800}
.draft-banner p{margin:0}
.event-body{padding-top:0;padding-bottom:0}
.event-section{position:relative;padding:var(--space-2xl) 0}
.event-section::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--charcoal);opacity:.2}
.event-section:first-child::before{display:none}
.weekend-grid{display:grid;grid-template-columns:1fr;gap:var(--space-xl)}
.event-facts dt{color:var(--charcoal)}
.rooms-note{color:var(--charcoal)}

/* room cards */
.event-grid{list-style:none;padding:0}
.room-card{display:flex;flex-direction:column;gap:var(--space-md);height:100%}
.room-card p{margin:0}
.room-head{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-sm)}
.room-head h3{font-family:var(--font-display);font-weight:400;font-size:var(--heading-size);line-height:var(--heading-line);text-transform:uppercase;margin:0}
.room-total{font-family:var(--font-display);font-size:var(--heading-size);line-height:var(--heading-line)}
.room-share{font-weight:800}
.room-card.is-sold .room-price,.room-card.is-sold .room-share{color:var(--charcoal)}

/* entry and refunds */
.entry-list div+div{margin-top:var(--space-md)}
.entry-list dt{font-weight:800}
.entry-list dd{margin:0}
.entry-note,.refund-note{margin-top:var(--space-md);max-width:68ch}
.refund-note p+p,.refund-note p+ul,.refund-note ul+p{margin-top:var(--space-sm)}
.refund-note ul{padding-left:var(--space-lg)}
.refund-list{padding-left:var(--space-lg);max-width:68ch}
.refund-list li+li{margin-top:var(--space-sm)}

@media (min-width:768px){
  .event-section{padding:var(--space-3xl) 0}
  .weekend-grid{grid-template-columns:1.4fr 1fr;align-items:start}
  .room-head{flex-direction:row;justify-content:space-between;align-items:flex-start}
}

/* ---------- events list ---------- */
.page-top{padding-top:var(--space-2xl);padding-bottom:var(--space-2xl)}
.page-top .lede{max-width:68ch}
.band-paper .section-inner>h2{margin-bottom:var(--space-lg)}
.list-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-md);height:100%}
.list-card p,.list-card h3{margin:0}
.list-card h3{font-family:var(--font-display);font-weight:400;font-size:var(--heading-size);line-height:var(--heading-line);text-transform:uppercase}
.list-card h3 a{color:var(--ink);text-decoration:none}
.list-card h3 a::after{content:"";position:absolute;inset:0;border-radius:8px}
.event-grid>li:focus-within{outline:3px solid var(--ink);outline-offset:3px;border-radius:8px}
.event-dates{font-weight:800}
.event-price strong{font-weight:800}
.price-lead{font-size:var(--label-size);font-weight:var(--label-weight);text-transform:uppercase;letter-spacing:.04em}
.event-price.is-sold,.event-price.is-unset{color:var(--charcoal)}
.event-action{margin-top:auto;font-size:var(--label-size);font-weight:var(--label-weight);line-height:var(--label-line);text-transform:uppercase;letter-spacing:.04em}

/* past events strip */
.past-list{list-style:none;padding:0;margin:0}
.past-row{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:var(--space-xs);
  min-height:64px;
  padding:var(--space-md) 0;
  border-bottom:1px solid var(--charcoal);
}
.past-row a{font-weight:800;color:var(--ink);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.past-row a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.past-row p{margin:0}
.past-recap{color:var(--charcoal)}
@media (min-width:768px){
  .past-row{flex-direction:row;align-items:center;gap:var(--space-lg)}
  .past-row .past-recap{flex:1}
}
