/* ---------------------------------------------------------------- */
/* Button */
/* ---------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-condensed);font-weight:var(--weight-bold);
  text-transform:uppercase;letter-spacing:var(--tracking-caps);
  border-radius:var(--radius-control);border:1.5px solid transparent;
  cursor:pointer;text-decoration:none;white-space:nowrap;
  transition:var(--transition-control);
}
.btn:hover{text-decoration:none}
.btn:active{transform:translateY(1px);box-shadow:var(--shadow-xs)!important}
.btn[disabled],.btn.is-disabled{opacity:.42;cursor:not-allowed;box-shadow:none!important}
.btn--sm{height:var(--control-h-sm);padding:0 14px;font-size:var(--text-xs)}
.btn--md{height:var(--control-h-md);padding:0 20px;font-size:var(--text-sm)}
.btn--lg{height:var(--control-h-lg);padding:0 28px;font-size:var(--text-md)}
.btn--full{width:100%}

.btn--primary{background:var(--pg-red);color:var(--text-on-brand);border-color:var(--pg-red);box-shadow:var(--shadow-sm)}
.btn--primary:hover{color:var(--text-on-brand);background:var(--red-600);border-color:var(--red-600);box-shadow:var(--shadow-md)}
.btn--accent{background:var(--pg-gold);color:var(--text-on-accent);border-color:var(--pg-gold);box-shadow:var(--shadow-sm)}
.btn--accent:hover{color:var(--text-on-accent);background:var(--gold-400);border-color:var(--gold-400);box-shadow:var(--shadow-md)}
.btn--secondary{background:transparent;color:var(--pg-red);border-color:var(--pg-red)}
.btn--secondary:hover{color:var(--pg-red);background:var(--red-50)}
.btn--ghost{background:transparent;color:var(--pg-red);border-color:transparent}
.btn--ghost:hover{color:var(--pg-red);background:var(--red-50)}
.btn--inverse{background:var(--pg-white);color:var(--pg-red);border-color:var(--pg-white)}
.btn--inverse:hover{color:var(--pg-red);background:var(--red-50);border-color:var(--red-50)}

/* ---------------------------------------------------------------- */
/* Badge / Tag */
/* ---------------------------------------------------------------- */
.badge{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--font-condensed);font-weight:var(--weight-bold);
  text-transform:uppercase;letter-spacing:var(--tracking-caps);
  border-radius:var(--radius-xs);line-height:1.4;
}
.badge--sm{font-size:var(--text-2xs);padding:2px 8px}
.badge--md{font-size:var(--text-xs);padding:4px 10px}
.badge--red{background:var(--pg-red);color:var(--pg-white)}
.badge--gold{background:var(--pg-gold);color:var(--text-on-accent)}
.badge--neutral{background:var(--ink-100);color:var(--ink-700)}
.badge--outline{background:transparent;color:var(--pg-red);box-shadow:inset 0 0 0 1.5px var(--pg-red)}
.badge--success{background:var(--status-success-soft);color:var(--status-success)}
.badge--inverse{background:rgba(255,255,255,.16);color:#fff}

/* ---------------------------------------------------------------- */
/* Card */
/* ---------------------------------------------------------------- */
.card{
  border-radius:var(--radius-card);overflow:hidden;
  transition:box-shadow var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard);
  padding:var(--card-pad);
}
.card--elevated{background:var(--surface-card);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}
.card--flat{background:var(--surface-card);border:1px solid var(--border-subtle)}
.card--sunken{background:var(--surface-sunken);border:1px solid transparent}
.card--brand{background:var(--surface-brand);border:1px solid var(--pg-red);color:var(--text-on-brand);box-shadow:var(--shadow-brand)}
.card--dark{background:var(--surface-inverse);border:1px solid var(--ink-800);color:var(--text-on-dark);box-shadow:var(--shadow-md)}
.card--interactive:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.card--accent-bar{position:relative;padding-top:calc(var(--card-pad) + 4px)}
.card--accent-bar::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--pg-gold)}

/* ---------------------------------------------------------------- */
/* Alert */
/* ---------------------------------------------------------------- */
.alert{
  display:flex;align-items:flex-start;gap:var(--space-4);
  padding:var(--space-4) var(--space-5);border-radius:var(--radius-card);border:1px solid;
}
.alert__body{flex:1}
.alert__title{display:block;font-family:var(--font-condensed);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-caps);font-size:var(--text-sm);margin-bottom:2px}
.alert__message{font-size:var(--text-sm);color:var(--text-body);margin:0}
.alert--info{background:var(--status-info-soft);color:var(--ink-800);border-color:var(--ink-400)}
.alert--success{background:var(--status-success-soft);color:var(--status-success);border-color:var(--status-success)}
.alert--warning{background:var(--status-warning-soft);color:var(--gold-800);border-color:var(--pg-gold)}
.alert--danger{background:var(--status-danger-soft);color:var(--red-700);border-color:var(--pg-red)}

/* ---------------------------------------------------------------- */
/* SectionHeading */
/* ---------------------------------------------------------------- */
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-6);margin-bottom:var(--space-7)}
.section-heading--center{flex-direction:column;align-items:center;text-align:center}
.section-heading__text{max-width:640px}
.section-heading__eyebrow{display:block;font-family:var(--font-condensed);font-weight:var(--weight-bold);font-size:var(--text-sm);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--pg-red);margin-bottom:var(--space-2)}
.section-heading--dark .section-heading__eyebrow{color:var(--pg-gold)}
.section-heading__title{font-family:var(--font-display);font-weight:var(--weight-regular);font-size:var(--text-4xl);text-transform:uppercase;line-height:var(--leading-tight);margin:0}
.section-heading--dark .section-heading__title{color:#fff}
.section-heading__desc{font-size:var(--text-md);color:var(--text-muted);margin:var(--space-2) 0 0}
.section-heading--dark .section-heading__desc{color:rgba(255,255,255,.78)}

/* ---------------------------------------------------------------- */
/* KeyDateCard */
/* ---------------------------------------------------------------- */
.key-dates-list{display:flex;flex-direction:column;gap:var(--space-3)}
.key-date-card{
  display:flex;align-items:center;background:var(--surface-card);border:1px solid var(--border-subtle);
  border-radius:var(--radius-card);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-xs);gap:var(--space-5);
}
.key-date-card__when{width:64px;flex:none;text-align:center;border-right:1px solid var(--border-subtle);padding-right:var(--space-4)}
.key-date-card__month{display:block;font-family:var(--font-condensed);font-weight:var(--weight-bold);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--pg-red)}
.key-date-card__day{display:block;font-family:var(--font-display);font-size:var(--text-2xl);line-height:1;color:var(--ink-800)}
.key-date-card__main{flex:1;min-width:0}
.key-date-card__title{display:block;font-family:var(--font-condensed);font-weight:var(--weight-bold);font-size:var(--text-lg);text-transform:uppercase}
.key-date-card__meta{display:block;font-size:var(--text-sm);color:var(--text-muted);margin-top:2px}
.key-date-card__desc{font-size:var(--text-sm);color:var(--text-muted);margin:var(--space-2) 0 0}
.key-date-card__cta{margin-top:var(--space-3)}

@media (max-width:600px){
  .key-date-card{flex-wrap:wrap}
}

/* ---------------------------------------------------------------- */
/* SponsorGrid */
/* ---------------------------------------------------------------- */
.sponsor-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-4)}
.sponsor-tile{
  aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;padding:var(--space-3);
  background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);
  box-shadow:var(--shadow-xs);text-decoration:none;
  transition:box-shadow var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard);
}
.sponsor-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.sponsor-tile img{max-width:100%;max-height:100%;object-fit:contain}
.sponsor-tile__name{font-family:var(--font-condensed);font-weight:var(--weight-bold);text-transform:uppercase;font-size:var(--text-xs);text-align:center;color:var(--ink-700);overflow-wrap:anywhere}

/* ---------------------------------------------------------------- */
/* Breadcrumbs */
/* ---------------------------------------------------------------- */
.breadcrumbs{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-condensed);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-caps);font-weight:var(--weight-semibold);margin-bottom:var(--space-4)}
.breadcrumbs a{text-decoration:none;color:rgba(255,255,255,.7)}
.breadcrumbs a:hover{color:#fff}
.breadcrumbs__sep{color:rgba(255,255,255,.4)}
.breadcrumbs__current{color:var(--pg-gold)}

/* ---------------------------------------------------------------- */
/* Field / Input */
/* ---------------------------------------------------------------- */
.field__label{
  display:block;margin-bottom:6px;font-family:var(--font-condensed);font-weight:var(--weight-semibold);
  font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--ink-700);
}
.input{
  display:block;width:100%;height:var(--control-h-md);padding:0 12px;font:inherit;font-size:var(--text-base);
  color:var(--text-body);background:var(--surface-card);border-radius:var(--radius-control);
  border:1.5px solid var(--border-default);transition:var(--transition-control);
}
.input:focus{outline:none;border-color:var(--pg-red);box-shadow:var(--ring-focus)}

/* ---------------------------------------------------------------- */
/* PersonCard (board / contact directory) */
/* ---------------------------------------------------------------- */
.person-card{display:flex;flex-direction:column}
.person-card__duties{
  position:absolute;top:calc(var(--card-pad) - 2px);right:calc(var(--card-pad) - 6px);
  display:inline-flex;padding:6px;border-radius:var(--radius-sm);color:var(--text-faint);transition:var(--transition-control);
}
.person-card__duties:hover{color:var(--pg-red);background:var(--surface-sunken)}
.person-card__duties+.person-card__role{padding-right:28px}
.person-card__role{
  display:block;font-family:var(--font-condensed);font-weight:var(--weight-bold);
  font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-caps);
  color:var(--pg-red);margin-bottom:2px;
}
.person-card__name{display:block;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-heading);margin-bottom:var(--space-3)}
.person-card__name--vacant{color:var(--text-faint);font-style:italic;font-weight:var(--weight-regular)}
.person-card__name--vacant:has(+ .person-card__cover){margin-bottom:2px}
.person-card__cover{display:block;font-size:var(--text-xs);color:var(--text-muted);margin-bottom:var(--space-3)}
.person-card__email{
  align-self:flex-start;font-size:var(--text-xs);font-weight:var(--weight-semibold);
  color:var(--pg-red);text-decoration:none;word-break:break-all;
  background:var(--surface-sunken);padding:4px 10px;border-radius:var(--radius-sm);
  border:1px solid var(--border-subtle);transition:var(--transition-control);
}
.person-card__email:hover{background:var(--pg-red);color:#fff;border-color:var(--pg-red)}
