/* Mt. Pulaski Today public-page theme bridge.
   Keeps calendars and event/detail pages aligned with the town portal. */
:root {
  --bg: #fbf9fc;
  --panel: rgba(255, 255, 255, 0.90);
  --panel-strong: #ffffff;
  --text: #261a38;
  --muted: #6f6678;
  --accent: #5a2d82;
  --accent-soft: #f3edf8;
  --border: rgba(90, 45, 130, 0.20);
  --shadow: 0 18px 50px rgba(59, 24, 95, 0.14);
  --focus-ring: #5a2d82;
}

body,
body.soft-light {
  background:
    radial-gradient(circle at top right, rgba(242, 193, 78, 0.18), transparent 30%),
    radial-gradient(circle at top left, rgba(90, 45, 130, 0.12), transparent 36%),
    linear-gradient(180deg, #fbf9fc 0%, #f4eef8 100%);
}

.hero-card.home-hero,
.hero-card.compact {
  color: #fff;
  border-color: rgba(242, 193, 78, 0.32);
  background:
    radial-gradient(circle at 86% 10%, rgba(242, 193, 78, 0.30), transparent 27%),
    linear-gradient(135deg, #3b185f 0%, #5a2d82 62%, #70429a 100%);
}
.hero-card.home-hero h1,
.hero-card.compact h1,
.hero-card.compact h2 { color: #fff; }
.hero-card.home-hero .eyebrow,
.hero-card.home-hero .subtle,
.hero-card.compact .eyebrow,
.hero-card.compact .subtle { color: rgba(255,255,255,.86); }
.hero-card .pill { background: #f2c14e; border-color: #f6d576; color: #392900; }
.hero-card .secondary-button,
.hero-card .back-link { border-color: rgba(255,255,255,.42); background: rgba(255,255,255,.12); color: #fff; }

.view-button.active,
.tab-button.active,
.tab-button[aria-selected="true"],
.filter-chip.active,
.day-chip.active {
  background: linear-gradient(180deg, #f5eff9 0%, #e8dcf1 100%);
  color: #3b185f;
  border-color: rgba(90,45,130,.30);
}

.calendar-day-number,
.mini-badge,
.schedule-card button,
.vendor-card button,
.location-card button,
.item-card button,
.inline-link-button,
.modal-action-button,
.vendor-cta-pill {
  background: linear-gradient(180deg, #fbf8fd 0%, #eee4f5 100%);
  color: #4b246d;
}

.calendar-day-card.proper-grid.today {
  background: linear-gradient(180deg, #fff 0%, #fff8e8 100%);
  box-shadow: inset 0 0 0 2px rgba(242,193,78,.80);
}
.calendar-day-card.proper-grid.selected {
  background: linear-gradient(180deg, #fff 0%, #f4edf8 100%);
  box-shadow: inset 0 0 0 2px rgba(90,45,130,.65);
}
.calendar-day-card.today,
.agenda-day-card.today { outline-color: rgba(242,193,78,.80); }

.event-time,
.inline-link-button,
.public-footer-link:hover,
.public-footer-link:focus { color: #5a2d82; }

.primary-button,
.page-type-primary-cta {
  background: linear-gradient(135deg, #3b185f, #5a2d82 70%);
  border-color: rgba(90,45,130,.38);
  box-shadow: 0 10px 22px rgba(59,24,95,.20);
}
.secondary-button,
.modal-content .secondary-button {
  border-color: rgba(90,45,130,.22);
}
.secondary-button:hover,
.secondary-button:focus,
.modal-content .secondary-button:hover,
.modal-content .secondary-button:focus {
  border-color: rgba(90,45,130,.45);
  box-shadow: 0 6px 14px rgba(59,24,95,.13);
}

.theme-toggle-track { background: linear-gradient(180deg, #eee4f5 0%, #dfd0eb 100%); }
.proper-calendar-shell { border-color: rgba(90,45,130,.18); }
.month-grid { background: rgba(90,45,130,.12); border-color: rgba(90,45,130,.16); }

body.theme-dark {
  --bg: #18101f;
  --panel: rgba(36, 24, 47, 0.88);
  --panel-strong: #24182f;
  --text: #faf6fc;
  --muted: #d1c3da;
  --accent: #d2afe8;
  --accent-soft: rgba(120, 72, 154, 0.35);
  --border: rgba(210, 175, 232, 0.22);
  --shadow: 0 20px 52px rgba(0,0,0,.40);
  --focus-ring: #f2c14e;
  background:
    radial-gradient(circle at top right, rgba(242,193,78,.13), transparent 30%),
    radial-gradient(circle at top left, rgba(90,45,130,.34), transparent 36%),
    linear-gradient(180deg, #160d1e 0%, #21142b 100%);
}
body.theme-dark.soft-light { background: inherit; }
body.theme-dark .view-button.active,
body.theme-dark .tab-button.active,
body.theme-dark .day-chip.active,
body.theme-dark .filter-chip.active {
  background: linear-gradient(180deg, rgba(116,70,151,.72), rgba(76,40,104,.90));
}

/* Keep event-specific flyer artwork/themes intact when printing. */
@media print {
  body, body.soft-light { background: #fff !important; }
}
