/* ============================================================
   exam-dates.css — /important-dates (exam calendar + live countdowns).
   Breadcrumb + .section-ink CTA band come from course.css (loaded alongside).
   Tokens only, no hardcoded brand hex. Mobile-first.
   ============================================================ */

/* ---------- Hero ---------- */
.ed-hero { padding-block: clamp(36px, 6vw, 64px); }
.ed-note {
  margin-top: var(--sp-4);
  font-size: var(--fs-small);
  color: var(--c-ink-2);
  padding: var(--sp-3) var(--sp-4);
  border-left: 3px solid var(--c-accent);
  background: var(--ground);
  border-radius: var(--radius-sm);
}
.ed-note strong { color: var(--c-ink); }

/* ---------- Card grid ---------- */
.ed-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-3);
}
@media (min-width: 560px)  { .ed-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px)  { .ed-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1240px) { .ed-grid { grid-template-columns: repeat(4, 1fr); } }

.ed-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--sp-2);
  padding: var(--sp-4);
  background: var(--ground);
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  transition: box-shadow var(--speed) var(--ease), transform var(--speed) var(--ease);
}
.ed-card:hover { box-shadow: var(--shadow-pop); transform: translateY(-2px); }

.ed-card-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-2);
  width: 100%;
}

/* ---------- Category chip (colour via tokens) ---------- */
.ed-chip {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: var(--radius-pill);
  font-size: var(--fs-tiny);
  font-weight: var(--fw-heavy);
  letter-spacing: .04em;
  text-transform: uppercase;
  background: var(--c-tint-blue);
  color: var(--c-ink);
}
.ed-cat-jee       { background: var(--c-accent-soft); color: var(--c-accent-press); }
.ed-cat-neet      { background: var(--c-wa-bg);       color: var(--c-wa-ink); }
.ed-cat-ntse      { background: var(--c-tint-blue);   color: var(--c-ink); }
.ed-cat-board     { background: var(--c-dark);         color: #fff; }
.ed-cat-olympiad  { background: var(--c-tint-peach);  color: var(--c-accent-press); }
.ed-cat-catalyser { background: var(--c-accent);      color: #fff; }
.ed-cat-other     { background: var(--c-tint-blue);   color: var(--c-ink-2); }

/* ---------- Live countdown pill ---------- */
.ed-count {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: var(--radius-pill);
  font-size: var(--fs-tiny);
  font-weight: var(--fw-heavy);
  background: var(--c-tint-blue);
  color: var(--c-ink-2);
  white-space: nowrap;
}
.ed-count.is-soon  { background: var(--c-accent-soft); color: var(--c-accent-press); }
.ed-count.is-today { background: var(--c-accent);      color: #fff; }
.ed-count.is-past  { background: var(--c-line);        color: var(--c-ink-2); }

/* ---------- Card body ---------- */
.ed-name {
  margin: 0;
  font-size: 17px;
  font-weight: var(--fw-heavy);
  line-height: 1.28;
  color: var(--c-ink);
}
.ed-when {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--sp-2);
  margin-top: auto;
}
.ed-date {
  font-size: 16px;
  font-weight: var(--fw-heavy);
  color: var(--c-ink);
}
.ed-badge {
  font-size: var(--fs-tiny);
  font-weight: var(--fw-semi);
  color: var(--c-ink-2);
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  background: var(--c-tint-peach);
}
.ed-apply { margin-top: var(--sp-1); }

/* ---------- Closing CTA band ---------- */
.ed-cta-in {
  display: grid;
  gap: var(--sp-5);
}
.ed-cta-copy h2 { margin-bottom: var(--sp-3); }
.ed-cta-copy .lead { margin-bottom: var(--sp-5); }
.ed-cta .cluster { gap: var(--sp-3); }

/* ---------- Sections + hover details (Jul 2026) ---------- */
.ed-section + .ed-section { padding-top: 0; }
.ed-sec-head { margin-bottom: var(--sp-5); }
.ed-sec-head h2 { margin-bottom: 4px; }
.ed-card { transition: box-shadow var(--speed) var(--ease), transform var(--speed) var(--ease); }
.ed-card:hover, .ed-card:focus-within, .ed-card:focus { box-shadow: var(--shadow-pop); transform: translateY(-2px); outline: none; }
.ed-info {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  margin: 0;
  color: var(--c-ink-2);
  font-size: var(--fs-small);
  line-height: 1.5;
  transition: max-height .35s var(--ease), opacity .35s var(--ease), margin .35s var(--ease);
}
.ed-card:hover .ed-info, .ed-card:focus-within .ed-info, .ed-card:focus .ed-info {
  max-height: 180px;
  opacity: 1;
  margin: 8px 0 4px;
}
/* Touch screens have no hover — show the details always. */
@media (hover: none) {
  .ed-info { max-height: none; opacity: 1; margin: 8px 0 4px; }
}

/* ---------- Last-year line + official/soon states (Jul 2026) ---------- */
.ed-last {
  margin: 0;
  font-size: var(--fs-tiny);
  font-weight: var(--fw-semi);
  color: var(--c-ink-2);
}
.ed-date-soon { color: var(--c-accent-press); font-size: 15px; }
.ed-badge.is-official { background: var(--c-wa-bg); color: var(--c-wa-ink); }
