/* =============================================================
   CALENDAR PAGE — Page-Specific CSS
   Paste into: Calendar page > Avada Page Options > Custom CSS
   Scoped under .bds-page for custom sections,
   plus TEC overrides scoped to the page body class.
   ============================================================= */

/* ===== HERO ===== */
.bds-page .cal-hero {
  background: var(--bds-surface-low);
  padding: 5rem 2rem 4rem;
  text-align: center;
}
.bds-page .cal-hero-inner {
  max-width: 700px;
  margin: 0 auto;
}
.bds-page .cal-hero-badge {
  display: inline-block;
  padding: 0.35em 1em;
  background: rgba(0, 114, 57, 0.1);
  color: var(--bds-primary);
  border-radius: 2rem;
  font-family: var(--font-label, "Work Sans", "Helvetica Neue", sans-serif);
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin-bottom: 1.5rem;
}
.bds-page .cal-hero h1 {
  margin-bottom: 1rem;
}
.bds-page .cal-hero-body {
  font-size: 1.1rem;
  color: var(--bds-on-surface-muted);
  line-height: 1.75;
  max-width: 600px;
  margin: 0 auto;
}

/* ===== QUICK-LINKS BAR ===== */
.cal-quicklinks {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  background: var(--bds-white);
  border-radius: var(--bds-radius-xl);
  box-shadow: var(--bds-shadow);
  padding: 1.5rem;
}
.bds-page a.cal-quicklink,
a.cal-quicklink {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1.2rem 0.8rem;
  border-radius: var(--bds-radius-lg);
  text-decoration: none !important;
  color: var(--bds-on-surface) !important;
  transition: background 0.2s;
}
.cal-quicklink:hover {
  background: rgba(0, 114, 57, 0.05);
}
.cal-quicklink .material-symbols-outlined {
  font-size: 2rem;
  color: var(--bds-primary);
  margin-bottom: 0.6rem;
}
.cal-quicklink strong {
  font-size: 0.88rem;
  color: var(--bds-primary);
  margin-bottom: 0.3rem;
}
.cal-quicklink-desc {
  font-size: 0.75rem;
  color: var(--bds-on-surface-light);
  line-height: 1.4;
}

/* One native TEC instance preserves search, date navigation, and view switching
   at every viewport. Do not hide views by class: TEC swaps them with AJAX. */
.fable-calendar-feed .tribe-events .tribe-events-l-container {
  padding-top: 1.5rem;
}

/* ===== PROGRAM CARDS GRID ===== */
.cal-program-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}
.bds-page a.cal-program-card,
a.cal-program-card {
  padding: 2rem;
  background: var(--bds-white);
  border-radius: var(--bds-radius-lg);
  box-shadow: var(--bds-shadow);
  text-decoration: none !important;
  color: var(--bds-on-surface) !important;
  display: block;
  transition: transform 0.2s;
}
.cal-program-card:hover { transform: translateY(-3px); }
.cal-program-card .material-symbols-outlined {
  font-size: 2rem;
  color: var(--bds-primary);
  margin-bottom: 0.8rem;
}
.cal-program-card h4 {
  margin-bottom: 0.5rem;
  font-size: 1.1rem;
  text-decoration: none !important;
}
.cal-program-card p {
  font-size: 0.88rem;
  color: var(--bds-on-surface-muted);
  margin: 0 0 0.8rem;
  text-decoration: none !important;
}
.cal-program-meta {
  font-family: var(--font-label, "Work Sans", "Helvetica Neue", sans-serif);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--bds-terracotta);
  text-decoration: none !important;
}

/* ===== TEC STYLING OVERRIDES ===== */
/* Brand the TEC search/filter bar */
.tribe-events .tribe-events-c-search__button {
  background: #007239 !important;
  border-color: #007239 !important;
}
.tribe-events .tribe-events-c-search__button:hover {
  background: #005a2d !important;
}

/* Brand the view selector active state */
.tribe-events .tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-text {
  color: #007239 !important;
}

/* Month view — event bar colors */
.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner {
  background: #007239 !important;
}

/* Month view — today highlight */
.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date {
  color: #007239 !important;
}
.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-daynum {
  background: rgba(0, 114, 57, 0.1);
  border-radius: 50%;
}

/* List view — event title links */
.tribe-events .tribe-events-calendar-list__event-title-link {
  color: #007239 !important;
  font-family: var(--font-display, "Roboto Slab", Rockwell, serif) !important;
  font-size: 1.3rem !important;
  font-weight: 600 !important;
}
.tribe-events .tribe-events-calendar-list__event-title-link:hover {
  color: #005a2d !important;
}

/* List view — date tag */
.tribe-events .tribe-events-calendar-list__event-date-tag-weekday,
.tribe-events .tribe-events-calendar-list__event-date-tag-daynum {
  color: #007239 !important;
}

/* List view — CTA button */
.tribe-events .tribe-events-c-small-cta__link {
  color: #007239 !important;
  font-weight: 600 !important;
}

/* Widget — upcoming events list at top (if kept) */
.tribe-events-widget-events-list__event-title-link {
  color: #007239 !important;
}

/* "Subscribe to Calendar" link */
.tribe-events .tribe-events-c-subscribe-dropdown__button-text {
  color: #007239 !important;
}

/* Navigation arrows */
.tribe-events .tribe-events-c-nav__prev,
.tribe-events .tribe-events-c-nav__next {
  color: #007239 !important;
}

/* "This Month" button */
.tribe-events .tribe-events-c-top-bar__today-button {
  border-color: #007239 !important;
  color: #007239 !important;
}
.tribe-events .tribe-events-c-top-bar__today-button:hover {
  background: #007239 !important;
  color: #ffffff !important;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 900px) {
  .cal-quicklinks {
    grid-template-columns: repeat(2, 1fr);
  }
  .cal-program-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 600px) {
  .bds-page .cal-hero {
    padding: 3rem 1.5rem 2.5rem;
  }
  .cal-quicklinks {
    grid-template-columns: 1fr 1fr;
    padding: 1rem;
    gap: 0.5rem;
  }
  .cal-quicklink-desc {
    display: none;
  }
}

/* Server-rendered event finder: usable without JavaScript on every screen. */
.fable-event-finder { margin: 0 auto 1rem; padding: 1.5rem; background: #f1f1dc; border-radius: 12px; scroll-margin-top: 9rem; }
.fable-event-finder h3 { margin: 0 0 0.75rem; font-size: 1.4rem; }
.fable-event-finder__form { display: grid; grid-template-columns: 1fr 1fr 1.4fr auto; gap: 1rem; align-items: end; }
.fable-event-finder label { display: grid; gap: 0.35rem; font-weight: 600; font-size: 0.9rem; }
.fable-event-finder select, .fable-event-finder input { box-sizing: border-box; width: 100%; min-height: 44px; padding: 0.6rem; background: #fff; color: #1e3026; border: 1px solid #73806c; border-radius: 4px; font: inherit; }
.fable-event-finder button { min-height: 44px; padding: 0.65rem 1rem; background: #007239; color: #fff; border: 0; border-radius: 4px; font: inherit; font-weight: 600; cursor: pointer; }
.fable-event-finder :focus-visible { outline: 3px solid #9a6420; outline-offset: 3px; }
.fable-event-finder__reset { display: inline-block; margin-top: 0.75rem; }
.fable-event-finder__results { margin-top: 1.25rem; }
.fable-event-finder__results ul { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.fable-event-finder__results li { background: #fff; border-radius: 6px; padding: 1rem; }
.fable-event-finder__results h4 { margin: 0 0 0.5rem; font-size: 1.1rem; }
.fable-event-finder__results p { margin: 0.35rem 0; }
@media (max-width: 800px) {
  .fable-event-finder__form { grid-template-columns: 1fr 1fr; }
  .fable-event-finder__form label:last-of-type { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .fable-event-finder { padding: 1rem; }
  .fable-event-finder__form, .fable-event-finder__results ul { grid-template-columns: 1fr; }
}

.fable-full-calendar { margin-block: 1.5rem 2.5rem; }
.fable-full-calendar > summary { cursor: pointer; font-size: 1.15rem; font-weight: 600; padding: 0.75rem 0; color: #007239; }
.fable-full-calendar > p { max-width: 70ch; }

/* Calendar design refinement. Scoped to this page; native TEC owns its views. */
.page-id-11174 { --cal-ink: #173b2b; --cal-line: #d4dfd6; --cal-paper: #fffdf5; }
.page-id-11174 .bds-page .cal-hero { padding: 2.4rem 1.5rem 3.25rem; }
.page-id-11174 .cal-hero-inner { max-width: 850px; }
.page-id-11174 .cal-hero-badge { font-size: .88rem; letter-spacing: 0; text-transform: none; background: none; padding: 0; margin-bottom: .5rem; }
.page-id-11174 .cal-hero h1 { font-size: clamp(2.25rem, 4.5vw, 4rem); line-height: 1.08; margin: 0 0 .75rem; }
.page-id-11174 .cal-hero-body { font-size: 1rem; line-height: 1.6; max-width: 650px; }
.page-id-11174 .cal-quicklinks { padding: .75rem; gap: .25rem; border-radius: 12px; box-shadow: 0 3px 16px #173b2b0d; }
.page-id-11174 a.cal-quicklink { flex-direction: row; justify-content: center; gap: .6rem; padding: .65rem .4rem; min-height: 48px; border-radius: 6px; }
.page-id-11174 .cal-quicklink .material-symbols-outlined { font-size: 1.5rem; margin: 0; flex-shrink: 0; }
.page-id-11174 .cal-quicklink strong { font-size: .9rem; margin: 0; }
.page-id-11174 .cal-quicklink-desc { display: none; }
.page-id-11174 .cal-hero + .bds-container + .bds-section { padding: 2.25rem 1.5rem 1.25rem !important; }
.page-id-11174 #upcoming-events { font-size: clamp(1.8rem, 3vw, 2.4rem); margin-bottom: .6rem; }
.page-id-11174 #upcoming-events + p { font: 1rem/1.6 var(--font-body, sans-serif); margin-bottom: 0; }
.page-id-11174 .fable-calendar-feed { max-width: 1120px; padding-inline: 24px; box-sizing: border-box; }
.page-id-11174 .fable-calendar-feed { display: flex; flex-direction: column; }
.page-id-11174 .fable-calendar-feed { margin-top: 1.5rem; }
.page-id-11174 .cal-mobile-month-link { display: none; }
.page-id-11174 .fable-full-calendar { margin: 0 0 1rem; padding: 0; border: 1px solid var(--cal-line); border-radius: 8px; background: #fff; scroll-margin-top: 140px; }
.page-id-11174 .fable-full-calendar > summary { padding: .9rem 1.1rem; min-height: 52px; box-sizing: border-box; font-size: 1rem; }
.page-id-11174 .fable-full-calendar > summary span { float: right; color: #526459; font-size: .85rem; font-weight: 400; }
.page-id-11174 .fable-full-calendar[open] > summary { border-bottom: 1px solid var(--cal-line); }
.page-id-11174 .fable-full-calendar > p { padding: 1rem 1.25rem 0; margin: 0; font-size: .9rem; }
.page-id-11174 .fable-full-calendar .tribe-events-l-container { padding: 20px 20px 28px !important; min-height: 0; }
.page-id-11174 .tribe-events { --tec-font-family-sans-serif: var(--font-body, sans-serif); --tec-color-accent-primary: #007239; --tec-color-text-primary: #173b2b; --tec-spacer-9: 32px; }
.page-id-11174 .tribe-events .tribe-events-header { margin: 0; }
.page-id-11174 .tribe-events .tribe-events-c-events-bar { margin-bottom: 24px; }
.page-id-11174 .tribe-events .tribe-events-c-top-bar { margin-bottom: 24px; }
.page-id-11174 .tribe-events .tribe-events-calendar-month__day-cell--desktop { min-height: 115px; }
.page-id-11174 .tribe-events .tribe-events-calendar-month__day { background: #fff; }
.page-id-11174 .tribe-events .tribe-events-calendar-month__day--past { background: #f6f8f4; }
.page-id-11174 .tribe-events .tribe-events-calendar-month__day--other-month { background: #edf1eb; }
.page-id-11174 .tribe-events .tribe-events-calendar-month__day--current { background: #e8f2e7; }
.page-id-11174 .tribe-events .tribe-events-calendar-month__header-column { background: #eaf0e8; padding-block: 10px; }
.page-id-11174 .tribe-events .tribe-events-calendar-month__header > tr { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); background: #eaf0e8; }
.page-id-11174 .tribe-events .tribe-events-calendar-month__header-column { display: block; width: auto; text-align: center; }
.page-id-11174 .tribe-events .tribe-events-calendar-month__header-column-title { text-align: center; }
.page-id-11174 .tribe-events .tribe-events-calendar-month__header-column-title { color: #173b2b; font-weight: 600; }
.page-id-11174 .tribe-events .tribe-events-calendar-month__day-cell--desktop .tribe-events-calendar-month__day-date { font-size: 20px; }
.page-id-11174 .tribe-events .tribe-events-calendar-month__calendar-event { padding: 6px 8px; border-left: 3px solid #007239; background: #edf5ec; border-radius: 0 4px 4px 0; }
.page-id-11174 .tribe-events .tribe-events-calendar-month__calendar-event-datetime { font-size: 12px; line-height: 1.45; color: #34533f; margin-bottom: 4px; }
.page-id-11174 .tribe-events .tribe-events-calendar-month__calendar-event-title-link { font-family: var(--font-body, sans-serif); font-size: 13px; line-height: 1.4; }
.page-id-11174 .tribe-events .tribe-events-c-top-bar__nav-link { min-width: 44px; min-height: 44px; justify-content: center; }
.page-id-11174 .fable-event-finder { background: transparent; padding: 0; margin: 0 0 2rem; }
.page-id-11174 .fable-event-finder h2 { font: 600 1.15rem/1.4 var(--font-body, sans-serif); margin: 0 0 .8rem; }
.page-id-11174 .fable-event-finder__form { padding: 1.25rem; background: #eaf0e8; border-radius: 8px; gap: 1rem; grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(0,1.25fr) auto; }
.page-id-11174 .fable-event-finder__form label { min-width: 0; font-size: .85rem; }
.page-id-11174 .fable-event-finder input, .page-id-11174 .fable-event-finder select { min-width: 0; min-height: 48px; border-color: #9baa9e; padding: .65rem .7rem; font-size: 1rem; }
.page-id-11174 .fable-event-finder button { min-height: 48px; padding: .65rem 1.25rem; }
.page-id-11174 .cal-filter-help { font-size: .85rem; margin: .75rem 0 0; color: #526459; }
.page-id-11174 .fable-event-finder__reset { margin: .25rem 0 0; font-size: .9rem; min-height: 44px; display: inline-flex; align-items: center; text-decoration: underline; }
.page-id-11174 .fable-event-finder__results { margin-top: .8rem; }
.page-id-11174 .cal-results-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem 1rem; padding: 0 0 .75rem; font-size: .9rem; color: #526459; }
.page-id-11174 .cal-results-heading strong { color: var(--cal-ink); font-weight: 600; }
.page-id-11174 .fable-event-finder__results .cal-event-list { display: block; margin: 0; padding: 0; list-style: none; }
.page-id-11174 .fable-event-finder__results .cal-event { display: grid; grid-template-columns: 66px minmax(0,1fr) 155px; gap: 1.25rem; align-items: start; background: transparent; padding: 1.4rem 0; border-top: 1px solid var(--cal-line); border-radius: 0; }
.page-id-11174 .cal-event__date { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 76px; background: #eaf0e8; color: var(--cal-ink); border-radius: 6px; line-height: 1.2; }
.page-id-11174 .cal-event__month { font-size: .85rem; font-weight: 600; }
.page-id-11174 .cal-event__day { font-size: 2rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.page-id-11174 .cal-event__body h3 { font: 600 1.2rem/1.4 var(--font-body, sans-serif); margin: 0 0 .4rem; }
.page-id-11174 .cal-event__body h3 a { color: var(--cal-ink); text-decoration: none; }
.page-id-11174 .cal-event__body h3 a:hover { color: #007239; text-decoration: underline; }
.page-id-11174 .cal-event__time { font-size: .95rem; color: var(--cal-ink); }
.page-id-11174 .cal-event__venue { font-size: .9rem; color: #526459; }
.page-id-11174 .cal-event__action { text-align: right; }
.page-id-11174 .cal-event__cost { font-size: .95rem; font-weight: 600; color: var(--cal-ink); }
.page-id-11174 .cal-event__details { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin-top: .35rem; padding: .4rem .75rem; border: 1px solid #a8b9ad; border-radius: 5px; font-size: .9rem; font-weight: 600; text-decoration: none; }
.page-id-11174 .cal-event__details:hover { background: #eaf0e8; }
.page-id-11174 .cal-price-help { font-size: .85rem; color: #526459; padding-top: .75rem; border-top: 1px solid var(--cal-line); }
.page-id-11174 .cal-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: 1.5rem; }
.page-id-11174 .cal-pagination a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; border: 1px solid #a8b9ad; border-radius: 5px; text-decoration: none; }
.page-id-11174 .cal-pagination a[aria-current] { background: #007239; color: white; border-color: #007239; }
.page-id-11174 .cal-pagination span { margin-left: auto; color: #526459; font-size: .85rem; }
.page-id-11174 main :focus-visible { outline: 3px solid #9a6420; outline-offset: 3px; }
@media (min-width: 801px) {
  .page-id-11174 .fable-full-calendar { order: 0; border: 0; background: transparent; }
  .page-id-11174 .fable-full-calendar > summary { display: none; }
  .page-id-11174 .fable-full-calendar .tribe-events-l-container { padding: 0 0 28px !important; }
  .page-id-11174 .fable-event-finder { order: 1; padding-top: 1.5rem; border-top: 1px solid var(--cal-line); }
}
@media (max-width: 800px) {
  .page-id-11174 .fable-event-finder { order: 0; }
  .page-id-11174 .fable-full-calendar { order: 1; }
  .page-id-11174 .cal-mobile-month-link { display: inline-flex; align-items: center; min-height: 44px; margin: -.4rem 0 .5rem; text-decoration: underline; font-size: .9rem; }
  .page-id-11174 .fable-event-finder__form { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .page-id-11174 .fable-event-finder__form label:last-of-type { grid-column: 1 / -1; }
  .page-id-11174 .fable-event-finder__form button { grid-column: 1 / -1; }
  .page-id-11174 .cal-event { grid-template-columns: 58px minmax(0,1fr) 130px !important; gap: 1rem !important; }
}
@media (max-width: 600px) {
  .page-id-11174 .bds-page .cal-hero { padding: 1.5rem 1.25rem 2.75rem; }
  .page-id-11174 .cal-hero h1 { font-size: 2.25rem; }
  .page-id-11174 .cal-hero-body { font-size: .95rem; }
  .page-id-11174 .cal-quicklinks { grid-template-columns: repeat(2,minmax(0,1fr)); padding: .4rem; gap: .15rem; }
  .page-id-11174 a.cal-quicklink { gap: .35rem; padding: .5rem .25rem; }
  .page-id-11174 .cal-quicklink strong { font-size: .8rem; }
  .page-id-11174 .cal-quicklink .material-symbols-outlined { font-size: 1.2rem; }
  .page-id-11174 .cal-hero + .bds-container + .bds-section { padding: 1.5rem 1.25rem 1rem !important; }
  .page-id-11174 .fable-calendar-feed { padding-inline: 20px; }
  .page-id-11174 .fable-full-calendar > summary span { display: none; }
  .page-id-11174 .fable-event-finder__form { padding: 1rem; gap: .75rem; }
  .page-id-11174 .fable-event-finder__results .cal-event { grid-template-columns: 52px minmax(0,1fr) !important; gap: .85rem !important; padding: 1.1rem 0; }
  .page-id-11174 .cal-event__date { min-height: 68px; }
  .page-id-11174 .cal-event__day { font-size: 1.8rem; }
  .page-id-11174 .cal-event__body h3 { font-size: 1.05rem; }
  .page-id-11174 .cal-event__action { grid-column: 2; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; text-align: left; }
  .page-id-11174 .cal-event__details { margin: 0; }
  .page-id-11174 .cal-pagination span { flex-basis: 100%; margin: .3rem 0 0; }
  .page-id-11174 .fable-full-calendar .tribe-events-l-container { padding: 16px 10px !important; }
}
