/* ============== Hero ============== */
.ek-hero {
  background-color: var(--color-midnight);
  color: var(--color-off-white);
  padding-block: var(--section-py-mobile);
}

@media (min-width: 768px) {
  .ek-hero {
    padding-block: var(--section-py-desktop);
  }
}

.ek-hero__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  max-width: 48rem;
}

.ek-hero__eyebrow {
  color: var(--baby-pink-60);
}

.ek-hero__title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(56px, 10vw, 110px);
  line-height: 0.92;
  letter-spacing: var(--tracking-tight);
  color: var(--color-off-white);
}

.ek-hero__text {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: var(--font-size-body);
  line-height: 1.75;
  color: var(--off-white-70);
  max-width: 32rem;
}

/* ============== Filter strip ============== */
.ek-filter {
  background-color: var(--color-off-white);
  border-bottom: 1px solid var(--mauve-light-30);
  padding-block: var(--space-md);
}

.ek-filter__inner {
  display: flex;
  gap: var(--space-sm);
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.ek-filter__inner::-webkit-scrollbar {
  display: none;
}

.ek-filter__chip {
  flex-shrink: 0;
  appearance: none;
  cursor: pointer;
  padding: var(--space-sm) var(--space-lg);
  border-radius: var(--radius-full);
  background-color: transparent;
  border: 1px solid rgba(200, 49, 74, 0.4);
  color: var(--color-midnight);
  font-family: var(--font-ui);
  font-size: var(--font-size-base);
  letter-spacing: var(--tracking-ui);
  text-transform: uppercase;
  white-space: nowrap;
  transition: background-color var(--transition-base),
              color var(--transition-base),
              transform var(--transition-base);
}

.ek-filter__chip:hover {
  background-color: var(--color-brand-red);
  color: var(--color-white);
  transform: translateY(-1px);
}

.ek-filter__chip--active,
.ek-filter__chip--active:hover {
  background-color: var(--color-midnight);
  border-color: var(--color-midnight);
  color: var(--color-white);
}

/* ============== Calendar + events board ============== */
.ek-board {
  background-color: var(--color-off-white);
  padding-block: var(--section-py-mobile);
}

@media (min-width: 768px) {
  .ek-board {
    padding-block: var(--section-py-desktop);
  }
}

.ek-board__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3xl);
  align-items: start;
}

@media (min-width: 1024px) {
  .ek-board__grid {
    grid-template-columns: 42fr 58fr;
    gap: var(--space-5xl);
  }
}

/* ---------- Calendar ---------- */
.ek-cal {
  display: flex;
  flex-direction: column;
}

.ek-cal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: var(--space-md);
  margin-bottom: var(--space-2xl);
  border-bottom: 1px solid var(--mauve-light-30);
}

.ek-cal__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(32px, 4vw, 48px);
  line-height: 1.05;
  color: var(--color-midnight);
}

.ek-cal__year {
  font-family: var(--font-body);
  font-weight: 300;
  font-style: italic;
  font-size: var(--font-size-body);
  color: var(--color-mauve);
  margin-inline-start: var(--space-sm);
}

.ek-cal__nav {
  display: flex;
  gap: var(--space-sm);
}

.ek-cal__btn {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  border: 1px solid rgba(200, 49, 74, 0.2);
  background-color: transparent;
  color: var(--color-midnight);
  cursor: pointer;
  transition: background-color var(--transition-base);
}

.ek-cal__btn:hover {
  background-color: var(--color-pink-light);
}

.ek-cal__weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: var(--space-xs);
  text-align: center;
  margin-bottom: var(--space-md);
  font-family: var(--font-ui);
  font-size: var(--font-size-base);
  letter-spacing: var(--tracking-ui);
  text-transform: uppercase;
  color: var(--color-mauve);
}

.ek-cal__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: var(--space-xl) var(--space-xs);
  text-align: center;
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  color: var(--color-midnight);
}

.ek-cal__day {
  appearance: none;
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 0;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xs);
  color: inherit;
  font: inherit;
}

.ek-cal__day--muted {
  color: rgba(141, 112, 113, 0.4);
  cursor: default;
}

.ek-cal__pill {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  transition: background-color var(--transition-base);
}

.ek-cal__day:hover .ek-cal__pill:not(.ek-cal__pill--today) {
  background-color: var(--color-pink-light);
}

.ek-cal__pill--today {
  width: 40px;
  height: 40px;
  background-color: var(--color-brand-red);
  color: var(--color-white);
  font-weight: 700;
  box-shadow: 0 6px 16px rgba(200, 49, 74, 0.3);
}

.ek-cal__dots {
  display: inline-flex;
  gap: 4px;
}

.ek-cal__dot {
  width: 6px;
  height: 6px;
  border-radius: var(--radius-full);
}

.ek-cal__dot--baby-pink { background-color: var(--color-baby-pink); }
.ek-cal__dot--mauve     { background-color: var(--color-mauve); }
.ek-cal__dot--red       { background-color: var(--color-brand-red); }
.ek-cal__dot--midnight  { background-color: var(--color-midnight); }

/* ---------- Event list ---------- */
.ek-events {
  display: flex;
  flex-direction: column;
}

.ek-events__heading {
  color: var(--color-mauve);
  padding-bottom: var(--space-md);
  margin-bottom: var(--space-2xl);
  border-bottom: 1px solid var(--mauve-light-30);
}

.ek-events__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xl);
}

/* The card sets display: flex, which would override the UA `[hidden]` rule —
   this restores the hide-on-filter behaviour. */
.ek-event[hidden] {
  display: none;
}

.ek-event {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  padding: var(--space-lg);
  background-color: var(--color-white);
  border-inline-start: 6px solid var(--color-baby-pink);
  cursor: pointer;
  transition: background-color var(--transition-base);
}

@media (min-width: 640px) {
  .ek-event {
    flex-direction: row;
    align-items: flex-start;
    padding: var(--space-xl);
    gap: var(--space-xl);
  }
}

.ek-event:hover {
  background-color: rgba(253, 232, 239, 0.5);
}

.ek-event--yoga      { border-inline-start-color: var(--color-baby-pink); }
.ek-event--cowork    { border-inline-start-color: var(--color-mauve); }
.ek-event--activity  { border-inline-start-color: var(--color-brand-red); }
.ek-event--community { border-inline-start-color: var(--color-midnight); }

.ek-event__when {
  flex-shrink: 0;
}

@media (min-width: 640px) {
  .ek-event__when {
    width: 8rem;
  }
}

.ek-event__date {
  font-family: var(--font-ui);
  font-size: var(--font-size-base);
  letter-spacing: var(--tracking-ui);
  text-transform: uppercase;
  color: var(--color-mauve);
}

.ek-event__time {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: var(--font-size-body);
  color: var(--color-midnight);
  margin-top: 2px;
}

.ek-event__body {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.ek-event__category {
  font-family: var(--font-ui);
  font-size: var(--font-size-eyebrow);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  margin-bottom: var(--space-sm);
}

.ek-event__category--yoga      { color: var(--color-baby-pink); }
.ek-event__category--cowork    { color: var(--color-mauve); }
.ek-event__category--activity  { color: var(--color-brand-red); }
.ek-event__category--community { color: var(--color-midnight); }

.ek-event__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(24px, 3vw, 32px);
  line-height: 1.1;
  color: var(--color-midnight);
  margin-bottom: var(--space-md);
  transition: color var(--transition-base);
}

.ek-event:hover .ek-event__title {
  color: var(--color-brand-red);
}

.ek-event__text {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: var(--font-size-body);
  line-height: 1.65;
  color: var(--color-mauve-dark);
  margin-bottom: var(--space-lg);
  max-width: 36rem;
}

.ek-event__cta {
  align-self: flex-start;
  gap: var(--space-sm);
}

.ek-event__cta .material-symbols-outlined {
  font-size: 16px;
}

/* ============== Closing tiles ============== */
.ek-tiles {
  background-color: var(--color-midnight);
  padding-block: var(--section-py-mobile);
}

@media (min-width: 768px) {
  .ek-tiles {
    padding-block: var(--section-py-desktop);
  }
}

.ek-tiles__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
}

@media (min-width: 768px) {
  .ek-tiles__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.ek-tile {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-2xl);
  min-height: 240px;
  padding: var(--space-xl);
  border-top: 4px solid var(--color-baby-pink);
  background-color: rgba(250, 240, 244, 0.04);
  text-decoration: none;
  color: inherit;
  transition: transform var(--transition-base), background-color var(--transition-base);
}

.ek-tile:hover {
  transform: translateY(-8px);
  background-color: rgba(250, 240, 244, 0.07);
}

.ek-tile--yoga     { border-top-color: var(--color-baby-pink); }
.ek-tile--activity { border-top-color: var(--color-brand-red); }
.ek-tile--cowork   { border-top-color: var(--color-mauve); }

.ek-tile__icon {
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  background-color: #000;
  border: 1px solid var(--baby-pink-35);
}

.ek-tile--activity .ek-tile__icon { border-color: rgba(200, 49, 74, 0.3); }
.ek-tile--cowork .ek-tile__icon   { border-color: rgba(136, 76, 94, 0.3); }

.ek-tile__icon .material-symbols-outlined {
  color: var(--color-baby-pink);
  font-size: 24px;
}

.ek-tile--activity .ek-tile__icon .material-symbols-outlined { color: var(--color-brand-red); }
.ek-tile--cowork .ek-tile__icon .material-symbols-outlined   { color: var(--color-mauve); }

.ek-tile__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 28px;
  line-height: 1.1;
  color: var(--color-off-white);
  margin-bottom: var(--space-sm);
}

.ek-tile__text {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: var(--font-size-body);
  line-height: 1.65;
  color: var(--off-white-55);
}
