.exan-card {
  --exan-gold: #f9c47d;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 340px;
  padding: 23px 20px 17px;
  border: 1px solid rgba(249,196,125,.64);
  border-radius: 18px;
  background: linear-gradient(155deg,#3b4860 0%,#293b4b 100%);
  box-shadow: 0 0 16px rgba(249,196,125,.15);
  color: #fff;
  font-family: inherit;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 18px;
  overflow-wrap: anywhere;
}
.exan-card *, .exan-card *::before, .exan-card *::after { box-sizing: border-box; }
.exan-card .exan-header { padding-bottom: 16px; border-bottom: 1px solid rgba(249,196,125,.25); }
.exan-card .exan-eyebrow { display: block; margin: 0 0 6px; color: #dbe6f1; font-size: 11px; font-weight: 600; letter-spacing: .14em; line-height: 1.4; text-transform: uppercase; }
.exan-card .exan-heading { margin: 0; padding: 0; color: var(--exan-gold); font: inherit; font-size: clamp(17px,1.5vw,21px); line-height: 1.25; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; }
.exan-card .exan-slides { flex: 1; display: grid; align-items: stretch; }
.exan-card .exan-slide { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 6px 0 12px; gap: 13px; min-width: 0; }
.exan-card.exan-ready .exan-slide { grid-area: 1 / 1; }
.exan-card .exan-slide.exan-inactive { visibility: hidden; pointer-events: none; }
.exan-card img.exan-image { display: block; width: auto; max-width: 100%; height: auto; max-height: 220px; object-fit: contain; border-radius: 9px; margin: 0; padding: 0; box-shadow: none; }
.exan-card .exan-title { margin: 0; padding: 0; color: #fff; font: inherit; font-size: 25px; font-weight: 700; line-height: 1.2; letter-spacing: -.02em; }
.exan-card .exan-message { margin: 0; padding: 0; color: #f3f6fb; font: inherit; font-size: 16px; font-weight: 400; line-height: 1.55; }
.exan-card a.exan-cta { display: inline-block; align-self: center; max-width: 100%; margin-top: 3px; padding: 10px 16px; border: 1px solid var(--exan-gold); border-radius: 8px; background: var(--exan-gold); color: #203247; font-size: 14px; font-weight: 700; line-height: 1.35; text-decoration: none; box-shadow: none; }
.exan-card a.exan-cta:hover { background: #ffdaa7; color: #203247; }
.exan-card .exan-controls { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: center; padding-top: 12px; border-top: 1px solid rgba(249,196,125,.2); }
.exan-card [hidden] { display: none !important; }
.exan-card button { appearance: none; margin: 0; border: 1px solid rgba(249,196,125,.5); border-radius: 8px; background: transparent; color: var(--exan-gold); font-family: inherit; font-weight: 600; text-transform: none; letter-spacing: normal; box-shadow: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.exan-card button:hover { background: rgba(249,196,125,.12); color: #ffdaa7; }
.exan-card button:focus-visible, .exan-card a:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.exan-card .exan-arrow { min-width: 38px; min-height: 38px; padding: 0 8px; font-size: 28px; line-height: 1; }
.exan-card .exan-count { color: #e2ebf5; min-width: 40px; font-size: 12px; line-height: 1.5; font-variant-numeric: tabular-nums; }
.exan-card .exan-toggle { min-width: 58px; min-height: 38px; padding: 6px 9px; font-size: 12px; line-height: 1.2; }
@media (max-width: 767px) { .exan-card { padding: 22px 20px 17px; } .exan-card .exan-heading { font-size: 20px; } }


/* =========================================================
   v1.1.1 - Quiet polish: small accents, images, controls
   Keeps card sizing, slide centering, and playback unchanged.
   ========================================================= */
.exan-card .exan-heading {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  overflow-wrap: normal;
}
.exan-card .exan-heading::before,
.exan-card .exan-heading::after {
  content: "✦";
  color: var(--exan-gold);
  font-size: 10px;
  font-weight: 400;
  opacity: .72;
  flex: 0 0 auto;
}
.exan-card img.exan-image {
  border: 1px solid rgba(249,196,125,.36);
  border-radius: 11px;
  box-shadow: 0 3px 12px rgba(8,18,32,.18);
}
.exan-card .exan-controls {
  gap: 7px;
  padding-top: 11px;
  border-top-color: rgba(249,196,125,.17);
}
.exan-card .exan-controls button {
  background: rgba(26,42,61,.30);
  border-color: rgba(249,196,125,.30);
  border-radius: 9px;
  box-shadow: 0 2px 6px rgba(10,22,38,.10);
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
.exan-card .exan-controls button:hover {
  background: rgba(249,196,125,.13);
  border-color: rgba(249,196,125,.62);
}
.exan-card .exan-arrow {
  min-width: 35px;
  min-height: 35px;
  font-size: 25px;
}
.exan-card .exan-toggle {
  min-height: 35px;
  min-width: 54px;
  font-size: 12px;
}
.exan-card .exan-count { min-width: 34px; }
@media (max-width: 767px) {
  .exan-card .exan-heading { gap: 5px; }
  .exan-card .exan-heading::before,
  .exan-card .exan-heading::after { font-size: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .exan-card .exan-controls button { transition: none; }
}

/* v1.2.0: compact birthday slide inside the existing carousel */
.exan-card .exan-birthday-slide { width:100%; min-width:0; }
.exan-card .exan-birthday-slide .cbc-weekly { background:transparent!important; border:0!important; box-shadow:none!important; padding:0!important; margin:0!important; min-height:0!important; width:100%!important; }
.exan-card .exan-birthday-slide .cbc-weekly h2 { font-size:clamp(16px,1.5vw,21px)!important; margin:0 0 4px!important; }
.exan-card .exan-birthday-slide .cbc-weekly-range { margin:0 0 9px!important; }
.exan-card .exan-birthday-slide .cbc-weekly-grid { display:flex!important; flex-wrap:wrap!important; justify-content:center!important; gap:7px!important; }
.exan-card .exan-birthday-slide .cbc-weekly-person { min-width:95px!important; max-width:140px!important; padding:8px!important; flex:0 1 auto!important; }
.exan-card .exan-birthday-slide .cbc-weekly-footer { margin:9px 0 0!important; font-size:12px!important; }

/* v1.2.2: birthday slide optimized for narrow announcement columns. */
.exan-card .exan-slide:has(.exan-birthday-slide) { gap:0; padding:4px 0 8px; }
.exan-card .exan-birthday-slide { width:100%; max-width:100%; }
.exan-card .exan-birthday-slide .cbc-weekly { padding:0!important; }
.exan-card .exan-birthday-slide .cbc-weekly h2 { font-size:clamp(15px,1.35vw,19px)!important; line-height:1.2!important; margin:0 0 3px!important; }
.exan-card .exan-birthday-slide .cbc-weekly-range { font-size:11px!important; margin:0 0 8px!important; }
.exan-card .exan-birthday-slide .cbc-weekly-grid { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:6px!important; align-items:stretch!important; }
.exan-card .exan-birthday-slide .cbc-weekly-person { width:100%!important; min-width:0!important; max-width:none!important; min-height:0!important; padding:8px 4px!important; gap:3px!important; border-radius:10px!important; overflow-wrap:anywhere; }
.exan-card .exan-birthday-slide .cbc-weekly-person > span { font-size:19px!important; line-height:1.1!important; }
.exan-card .exan-birthday-slide .cbc-weekly-person strong { font-size:13px!important; line-height:1.2!important; }
.exan-card .exan-birthday-slide .cbc-weekly-person small { font-size:10px!important; line-height:1.25!important; }
.exan-card .exan-birthday-slide .cbc-weekly-footer { font-size:10px!important; line-height:1.35!important; margin:8px 0 0!important; }
@media(max-width:350px) { .exan-card .exan-birthday-slide .cbc-weekly-grid { gap:4px!important; } }

/* v1.3.1: Center a single birthday without changing multi-card layout. */
.exan-card .exan-birthday-slide .cbc-weekly-grid > .cbc-weekly-person:only-child {
  grid-column: 1 / -1 !important;
  justify-self: center !important;
  width: min(140px, 100%) !important;
}

/* v1.3.2: Anonymous-safe generic birthday announcement. */
.exan-card .exan-public-birthday { text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; padding:12px 8px; }
.exan-card .exan-public-birthday-icon { font-size:32px; line-height:1.2; }
.exan-card .exan-public-birthday h3 { font-size:clamp(17px,1.7vw,23px); line-height:1.25; margin:0; }
.exan-card .exan-public-birthday p { margin:0; font-size:clamp(12px,1.1vw,15px); line-height:1.4; }
.exan-card .exan-public-birthday .exan-birthday-login { opacity:.8; font-size:12px; }

/* v1.3.3: Keep the original birthday card styling while ensuring names,
   weekday and dates cannot run together in narrow announcement columns. */
.exan-card .exan-birthday-slide .cbc-weekly-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  justify-content: center !important;
  align-items: stretch !important;
  width: 100% !important;
}
.exan-card .exan-birthday-slide .cbc-weekly-person {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  gap: 5px !important;
  padding: 10px 8px !important;
  min-width: 0 !important;
  max-width: none !important;
  overflow-wrap: anywhere !important;
  line-height: 1.3 !important;
}
.exan-card .exan-birthday-slide .cbc-weekly-person > span,
.exan-card .exan-birthday-slide .cbc-weekly-person > strong,
.exan-card .exan-birthday-slide .cbc-weekly-person > small {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.3 !important;
  text-align: center !important;
}
.exan-card .exan-birthday-slide .cbc-weekly-person strong {
  font-size: 13px !important;
  font-weight: 700 !important;
}
.exan-card .exan-birthday-slide .cbc-weekly-person small {
  font-size: 11px !important;
  opacity: .9;
}
.exan-card .exan-birthday-slide .cbc-weekly-grid > .cbc-weekly-person:only-child {
  grid-column: 1 / -1 !important;
  width: min(220px, 100%) !important;
  justify-self: center !important;
}
.exan-card .exan-birthday-slide .cbc-weekly-grid > .cbc-weekly-person:last-child:nth-child(odd):not(:first-child) {
  grid-column: 1 / -1 !important;
  width: min(220px, 100%) !important;
  justify-self: center !important;
}
@media (max-width: 340px) {
  .exan-card .exan-birthday-slide .cbc-weekly-grid { gap: 6px !important; }
  .exan-card .exan-birthday-slide .cbc-weekly-person { padding: 8px 5px !important; }
}
