.clinic-calendar-section {
  background: linear-gradient(180deg, #fff 0%, #f4fbfe 100%);
}

.clinic-calendar-heading {
  max-width: 760px;
}

.clinic-calendar__loading {
  padding: 32px;
  border: 1px solid #cfe6ef;
  border-radius: 18px;
  background: #fff;
  color: #537284;
  text-align: center;
}

.clinic-calendar__months {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(24px, 4vw, 42px);
  max-width: 980px;
  margin-inline: auto;
}

.clinic-calendar-month {
  padding: clamp(18px, 2.5vw, 28px);
  border: 1px solid #cce4ee;
  border-radius: 22px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 14px 34px rgba(31, 93, 126, .08);
}

.clinic-calendar-month h3 {
  margin: 0 0 18px;
  color: #0b5472;
  font-size: clamp(1.45rem, 2.4vw, 2rem);
  text-align: center;
}

.clinic-calendar-month h3 span {
  margin-right: 8px;
  color: #5d7d8c;
  font-size: .72em;
  font-weight: 700;
}

.clinic-calendar-weekdays,
.clinic-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 5px;
}

.clinic-calendar-weekdays {
  margin-bottom: 6px;
}

.clinic-calendar-weekdays span {
  padding: 5px 0;
  color: #668291;
  font-size: .72rem;
  font-weight: 800;
  text-align: center;
}

.clinic-calendar-weekdays span:first-child { color: #c65b5b; }
.clinic-calendar-weekdays span:last-child { color: #2179aa; }

.clinic-calendar-day {
  min-width: 0;
  min-height: 118px;
  padding: 9px 7px;
  border: 1px solid #dfedf2;
  border-radius: 9px;
  background: #fff;
}

.clinic-calendar-day.is-empty {
  border-color: transparent;
  background: transparent;
}

.clinic-calendar-day.is-today {
  border: 3px solid #e66f51;
  box-shadow: 0 0 0 4px rgba(230, 111, 81, .2);
}

.clinic-calendar-day.is-closed-day {
  border-color: #e0e4e7;
  background: #f4f5f6;
}

.clinic-calendar-day.is-clinic-day {
  border-color: #c3dfe8;
  background: #eef9fc;
}

.clinic-calendar-day.is-surgery-day {
  border-color: #68a8c8;
}

.clinic-calendar-day.is-holiday {
  border-color: #d8dde1;
  background: #f2f3f4;
}

.clinic-calendar-day.is-closed-day.has-change {
  border-color: #ddc28b;
  background: #fff6e7;
}

.clinic-calendar-day.has-change:not(.is-closed-day) {
  border-color: #e2c98f;
  background: #fffaf2;
}

.clinic-calendar-day.is-today {
  border-color: #e66f51;
}

.clinic-calendar-day__date {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 6px;
  color: #173f55;
}

.clinic-calendar-day__date b { font-size: .95rem; }
.clinic-calendar-day__date span { color: #78909b; font-size: .58rem; font-weight: 700; }
.clinic-calendar-day__date em {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  margin-left: auto;
  margin-right: 5px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #e66f51;
  color: #fff;
  font-size: .52rem;
  font-style: normal;
  font-weight: 800;
  line-height: 1.35;
  white-space: nowrap;
  writing-mode: horizontal-tb;
}
.clinic-calendar-day.is-sunday .clinic-calendar-day__date b { color: #677b85; }
.clinic-calendar-day.is-saturday .clinic-calendar-day__date b { color: #1875a8; }

.clinic-calendar-day__sessions {
  display: grid;
  gap: 4px;
}

.clinic-calendar-day__sessions > span {
  display: block;
  min-width: 0;
  padding: 4px 3px;
  border-radius: 5px;
  font-size: .58rem;
  font-weight: 800;
  line-height: 1.25;
  text-align: center;
  overflow-wrap: anywhere;
}

.clinic-calendar-day__sessions small {
  display: block;
  margin-bottom: 1px;
  font-size: .48rem;
  font-weight: 700;
  opacity: .72;
}

.clinic-calendar-combined-label,
.clinic-calendar-combined-label > span {
  display: inline;
}

.clinic-calendar-combined-label i {
  font-style: normal;
}

.clinic-calendar .clinic-calendar-day__sessions .is-open { background: #d6f0f8; color: #06769f; }
.clinic-calendar .clinic-calendar-day__sessions .is-surgery { background: #087cac; color: #fff !important; }
.clinic-calendar .clinic-calendar-day__sessions .is-closed { background: #eceff1; color: #37454d !important; }
.clinic-calendar .clinic-calendar-day__sessions .is-changed { background: #fff0d7; color: #a56200; }

.clinic-calendar-day__note {
  margin: 5px 0 0;
  color: #747e84;
  font-size: .52rem;
  font-weight: 700;
  line-height: 1.35;
}

.clinic-calendar-day.has-change .clinic-calendar-day__note {
  color: #835b1d;
}

.clinic-calendar-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 20px;
  margin-top: 20px;
  color: #4d6f7f;
  font-size: .72rem;
  font-weight: 700;
}

.clinic-calendar-legend span { display: inline-flex; align-items: center; gap: 6px; }
.clinic-calendar-legend i { width: 12px; height: 12px; border-radius: 3px; }
.clinic-calendar-legend .is-open { background: #a9e0ef; }
.clinic-calendar-legend .is-surgery { background: #087cac; }
.clinic-calendar-legend .is-closed { background: #cdd3d7; }
.clinic-calendar-legend .is-changed { background: #f2ce8e; }

.clinic-calendar-note {
  margin: 12px 0 0;
  color: #6f8792;
  font-size: .7rem;
  text-align: center;
}

@media (max-width: 560px) {
  .clinic-calendar-month { padding: 14px 9px 16px; border-radius: 16px; }
  .clinic-calendar-weekdays,
  .clinic-calendar-grid { gap: 3px; }
  .clinic-calendar-day { min-height: 86px; padding: 5px 3px; border-radius: 7px; }
  .clinic-calendar-day__date { margin-bottom: 4px; }
  .clinic-calendar-day__date b { font-size: .78rem; }
  .clinic-calendar-day__date em { min-width: 25px; margin-right: 0; padding: 2px 3px; font-size: .4rem; line-height: 1.2; }
  .clinic-calendar-day__date span { display: none; }
  .clinic-calendar-day__sessions > span { padding: 3px 1px; font-size: .49rem; }
  .clinic-calendar-day__sessions small { font-size: .42rem; }
  .clinic-calendar-combined-label { display: flex; flex-direction: column; align-items: center; line-height: 1.1; }
  .clinic-calendar-combined-label > span { display: block; }
  .clinic-calendar-combined-label i { display: none; }
  .clinic-calendar-day__note { font-size: .45rem; }
  .clinic-calendar-legend { justify-content: flex-start; gap: 8px 14px; }
}
