/* EnterTrade Calendar — Front styles (shared across card designs, single/archive templates) */

/* ── Live badge ─────────────────────────────────────────────────────────── */
.et-cal-live-badge {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: #e11d48;
  color: #fff;
  padding: .4rem .9rem;
  border-radius: 50rem;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  box-shadow: 0 0 18px -2px rgba(225, 29, 72, .65);
}

.et-cal-live-badge__dot {
  width: .6rem;
  height: .6rem;
  border-radius: 50%;
  background: #fff;
  animation: et-cal-live-pulse 1.2s ease-in-out infinite;
}

.et-cal-live-badge--overlay {
  position: absolute;
  top: .6rem;
  right: .6rem;
  z-index: 4;
  padding: .25rem .6rem;
  font-size: .68rem;
}

@keyframes et-cal-live-pulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(255, 255, 255, .7);
  }
  50% {
    opacity: .55;
    transform: scale(.8);
    box-shadow: 0 0 0 .4rem rgba(255, 255, 255, 0);
  }
}

/* ── Featured badge ─────────────────────────────────────────────────────── */
.et-cal-featured-badge {
  display: inline-flex;
  align-items: center;
  background: #f59e0b;
  color: #1a1a1a;
  padding: .4rem .9rem;
  border-radius: 50rem;
  font-size: .78rem;
  font-weight: 700;
}

.et-cal-featured-badge--overlay {
  position: absolute;
  top: .6rem;
  right: .6rem;
  z-index: 4;
  padding: .25rem .6rem;
  font-size: .68rem;
}

/* ── Archive filter pills ───────────────────────────────────────────────── */
.et-cal-archive-filters .et-pill {
  --et-pill-accent: var(--et-secondary);
  border: 1px solid color-mix(in srgb, var(--et-pill-accent) 50%, transparent);
  background: color-mix(in srgb, var(--et-pill-accent) 6%, transparent);
  color: var(--et-pill-accent);
  font-weight: 500;
  border-radius: 50rem;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}

.et-cal-archive-filters .et-pill--cat      { --et-pill-accent: var(--et-secondary); }
.et-cal-archive-filters .et-pill--tag      { --et-pill-accent: var(--et-primary); }
.et-cal-archive-filters .et-pill--modality { --et-pill-accent: var(--et-tertiary); }

.et-cal-archive-filters .et-pill:hover,
.et-cal-archive-filters .et-pill:focus-visible {
  background: color-mix(in srgb, var(--et-pill-accent) 16%, transparent);
  border-color: var(--et-pill-accent);
  color: var(--et-pill-accent);
  transform: translateY(-1px);
}

.et-cal-archive-filters .et-pill.is-active {
  background: var(--et-pill-accent);
  border-color: var(--et-pill-accent);
  color: #fff;
  box-shadow: 0 2px 10px color-mix(in srgb, var(--et-pill-accent) 40%, transparent);
}

.et-cal-archive-filters .et-pill.is-active:hover {
  color: #fff;
}

[data-bs-theme="dark"] .et-cal-archive-filters .et-pill {
  color: color-mix(in srgb, var(--et-pill-accent) 55%, #fff);
  border-color: color-mix(in srgb, var(--et-pill-accent) 60%, #fff 25%);
}

[data-bs-theme="dark"] .et-cal-archive-filters .et-pill:hover,
[data-bs-theme="dark"] .et-cal-archive-filters .et-pill:focus-visible {
  color: #fff;
  background: color-mix(in srgb, var(--et-pill-accent) 28%, transparent);
  border-color: color-mix(in srgb, var(--et-pill-accent) 70%, #fff 30%);
}

[data-bs-theme="dark"] .et-cal-archive-filters .et-pill.is-active {
  color: #fff;
}

/* ── Speaker chip (archive card) & speaker card (single/archive listing) ── */
.et-cal-speaker-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .35rem;
  color: var(--bs-body-color);
  max-width: 140px;
}

.et-cal-speaker-card__avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
}

.et-cal-speaker-card__name {
  font-weight: 600;
  font-size: .9rem;
}

.et-cal-speaker-card__role {
  font-size: .78rem;
  opacity: .7;
}

/* ── Single event (mirrors ET LMS's single-course layout/typography so both
   plugins read as one suite — see entertrade-lms/assets/css/front/single-course.css) */
.et-cal-single-wrap {
  color: var(--et-text, var(--bs-body-color));
}

.et-cal-single__header {
  margin-bottom: .5rem;
}

/* Used by single-event-location.php (its own simple layout, not the LMS-mirrored one below) */
.et-cal-single__media img {
  width: 100%;
  border-radius: .75rem;
  margin-bottom: 1.5rem;
}

.et-cal-single__terms {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
}

.et-cal-single__terms .badge {
  border-radius: 50rem;
  padding: .4em .8em;
  font-weight: 500;
}

.et-cal-single__title {
  font-weight: 800;
  line-height: 1.15;
  margin: .25rem 0 .5rem;
}

.et-cal-single__meta-line {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: .95rem;
  opacity: .9;
}

.et-cal-single__meta-line i {
  color: var(--et-primary, #1a3a6b);
}

/* Section titles (Event Info / Speakers) — same underline-accent as LMS's Course Info */
.et-cal-single__section-title {
  position: relative;
  font-weight: 700;
  padding-bottom: .4rem;
  margin-bottom: 1rem;
}

.et-cal-single__section-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 2.5rem;
  height: 3px;
  border-radius: 3px;
  background: var(--et-primary, #1a3a6b);
}

.et-cal-single__body {
  line-height: 1.7;
  margin-bottom: 1rem;
}

.et-cal-single__body a {
  color: var(--et-link, #1a3a6b);
}

.et-cal-single__speakers {
  margin-bottom: 1.5rem;
}

.et-cal-single__share {
  margin-bottom: 1rem;
}

.et-cal-badge--category {
  background: var(--et-secondary, #2c5f8a);
  color: #fff;
}

.et-cal-badge--tag {
  background: var(--et-primary, #1a3a6b);
  color: #fff;
}

/* ── Sidebar (single event) ────────────────────────────────────────────── */
@media (min-width: 992px) {
  .et-cal-single__sticky {
    position: sticky;
    top: 1rem;
  }

  .et-cal-single__main {
    padding-right: 1.5rem;
  }

  .et-cal-single__sidebar {
    padding-left: 1.5rem;
  }
}

.et-cal-single__image {
  width: 100%;
  border-radius: .75rem;
  margin-bottom: .85rem;
  object-fit: cover;
}

.et-cal-sidebar {
  background: var(--et-bg, #fff);
  color: var(--et-text, #1a1a1a);
  border-radius: 1rem;
  padding: 1.5rem;
}

.et-cal-sidebar__item {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding-bottom: 1rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid color-mix(in srgb, var(--et-text, #1a1a1a) 12%, transparent);
}

.et-cal-sidebar__item:last-of-type {
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 0;
}

.et-cal-sidebar__item > i {
  color: var(--et-primary, #1a3a6b);
  font-size: 1.1rem;
  margin-top: .15rem;
  flex-shrink: 0;
}

.et-cal-sidebar__label {
  font-weight: 600;
}

.et-cal-sidebar__sub {
  font-size: .82rem;
  opacity: .75;
}

.et-cal-sidebar__links {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  margin: 1rem 0;
}

.et-cal-sidebar__link {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem .75rem;
  border-radius: .5rem;
  background: color-mix(in srgb, var(--et-primary, #1a3a6b) 8%, transparent);
  color: var(--et-primary, #1a3a6b);
  text-decoration: none;
  font-size: .88rem;
}

.et-cal-sidebar__link:hover {
  background: color-mix(in srgb, var(--et-primary, #1a3a6b) 16%, transparent);
  color: var(--et-primary, #1a3a6b);
}

.et-cal-cta {
  display: block;
  width: 100%;
  padding: .75rem 1rem;
  border-radius: .6rem;
  text-align: center;
  font-weight: 700;
  text-decoration: none;
  margin-bottom: .6rem;
}

.et-cal-cta--primary {
  background: var(--et-primary, #1a3a6b);
  color: #fff;
}

.et-cal-cta--primary:hover {
  filter: brightness(1.08);
  color: #fff;
}

.et-cal-single__back {
  display: inline-block;
  margin-top: 1rem;
  color: var(--et-link, #1a3a6b);
  text-decoration: none;
  font-size: .9rem;
}

.et-cal-single__back:hover {
  text-decoration: underline;
}

/* ── Theme: Light / Dark card treatment (mirrors LMS's .lms-access-card) ─── */
.et-cal-single-wrap--theme-light .et-cal-sidebar {
  border: 1px solid rgba(0, 0, 0, .08);
  box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .08);
}

.et-cal-single-wrap--theme-light .et-cal-single__image {
  box-shadow: 0 .35rem 1rem rgba(0, 0, 0, .10);
}

.et-cal-single-wrap--theme-dark .et-cal-sidebar {
  border: 1px solid rgba(255, 255, 255, .10);
  box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .45);
}

.et-cal-single-wrap--theme-dark .et-cal-single__image {
  box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .5);
}

/* ── Location map (Leaflet) ─────────────────────────────────────────────── */
.et-cal-map {
  height: 220px;
  border-radius: .5rem;
  margin-top: .5rem;
  z-index: 0; /* keep Leaflet's own z-indexes from climbing above modals/menus */
}

.et-cal-map--large {
  height: 400px;
  margin-top: 1rem;
}

/* ── FullCalendar view ([entertrade_calendar_view]) ────────────────────────*/
.et-cal-fullcalendar {
  margin-bottom: 2rem;
}

.et-cal-fullcalendar .fc-event {
  cursor: pointer;
}

/* ── Upcoming events carousel ([entertrade_calendar_upcoming]) ─────────────*/
.et-cal-upcoming {
  padding-bottom: 2.5rem;
}

.et-cal-upcoming .carousel-control-prev,
.et-cal-upcoming .carousel-control-next {
  width: 3rem;
}

.et-cal-upcoming .carousel-control-prev-icon,
.et-cal-upcoming .carousel-control-next-icon {
  background-color: var(--et-primary, #1a3a6b);
  border-radius: 50%;
  padding: .9rem;
  background-size: 50%;
}

.et-cal-upcoming .carousel-indicators [data-bs-target] {
  background-color: var(--et-primary, #1a3a6b);
}

/* ── Filter bar (shortcodes + archive) ─────────────────────────────────────── */
.et-cal-filter-bar {
  --et-filter-accent: var(--et-primary, #1a3a6b);
}

.et-cal-filter {
  min-width: 9rem;
  flex: 0 1 auto;
}

.et-cal-filter .form-select {
  border-color: color-mix(in srgb, var(--et-filter-accent) 30%, transparent);
}

.et-cal-filter .form-select:focus {
  border-color: var(--et-filter-accent);
  box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--et-filter-accent) 20%, transparent);
}

.et-cal-filter--reset {
  min-width: 0;
}

.et-cal-filter--reset .btn-link {
  padding-bottom: .375rem;
}

/* Loading state while AJAX swaps results. */
.et-cal-results {
  position: relative;
  transition: opacity .15s ease;
}

.et-cal-results--loading {
  opacity: .45;
  pointer-events: none;
}

/* ── Recurrence label on cards ─────────────────────────────────────────────── */
.et-cal-event-card__recurrence,
.et-cal-card-modern__recurrence {
  font-size: .8rem;
  color: color-mix(in srgb, var(--et-text, #333) 70%, transparent);
  margin-top: -.15rem;
}

.et-cal-event-card__recurrence i,
.et-cal-card-modern__recurrence i {
  color: var(--et-tertiary, #4a90d9);
}
