/* =========================================================
   CALENDARIO PAGE
   ========================================================= */

.page-content--calendar {
  width: min(1320px, calc(100% - 120px));
  margin: 60px auto 104px;
}

.calendar-page-hero {
  padding-top: 46px;
  text-align: center;
}

.calendar-page-title {
  margin: 0 0 32px;
  color: #0b7ab7;
  line-height: 1;
  letter-spacing: -0.035em;
}

.calendar-page-title strong {
  font-weight: 700;
}

.calendar-page-lead {
  width: min(720px, 100%);
  margin: 0 auto 28px;
  color: #0b7ab7;
  font-style: italic;
  font-weight: 300;
  line-height: 1.25;
  text-align: left;
}

.calendar-page-lead strong {
  font-weight: 700;
}

.calendar-page-copy {
  width: min(720px, 100%);
  margin: 0 auto;
  color: #6d6d6d;
  font-size: 1.16rem;
  font-weight: 300;
  line-height: 1.54;
  text-align: left;
}

.calendar-page-copy p {
  margin: 0;
}

.calendar-page-copy p + p {
  margin-top: 6px;
}

.calendar-pattern {
  width: min(1240px, 100%);
  margin: 58px auto 0;
  padding: 22px 20px 28px;
  background: #eef4f9;
}

.calendar-wrap {
  width: min(1200px, 100%);
  margin: 0 auto;
  overflow-x: auto;
}

.calendar-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 4px 0;
  table-layout: fixed;
}

/* Month-name header row — no borders, month label sits above the first separator */
.cal-month-row td {
  border: none !important;
  border-top: none !important;
  padding: 6px 10px 10px;
  vertical-align: bottom;
  background: transparent !important;
}

.cal-month-label {
  display: block;
  font-size: 3.2rem;
  font-weight: 300;
  color: #0b84b7;
  text-transform: lowercase;
  text-align: center;
  white-space: nowrap;
  line-height: 0.86;
}

.cal-month-label--side {
  font-size: 2.75rem;
  font-style: italic;
  font-weight: 300;
  line-height: 0.86;
  letter-spacing: -0.04em;
}

.cal-month-label--main {
  font-size: 3.1rem;
  font-weight: 700;
  line-height: 0.84;
  letter-spacing: -0.045em;
}

/* Date cells: only a top separator, no other borders */
.calendar-table td {
  position: relative;
  --cal-line-left: 16px;
  --cal-line-right: 16px;
  vertical-align: top;
  padding: 12px 8px 18px;
  border: none !important;
  border-top: none !important;
  background: transparent;
}

.calendar-table tr:not(.cal-month-row) td::before {
  content: "";
  position: absolute;
  top: 0;
  left: var(--cal-line-left);
  right: var(--cal-line-right);
  border-top: 1px solid #aac3d4;
}

.cal-month-row + tr td {
  background: #fff;
}

.calendar-table tr:not(.cal-month-row) td:nth-child(6) {
  --cal-line-left: 36px;
  padding-left: 36px;
}

/* Weekend separator — gap via padding on the 6th column (sábado) */
/* Day number: blue, centered */
.cal-day-num {
  display: block;
  font-size: 1rem;
  font-weight: 700;
  color: #0b84b7;
  text-align: center;
  margin-bottom: 8px;
}

/* Greyed-out days from adjacent months */
.cal-day-num--other {
  color: #c5d3de;
  font-weight: 400;
}

.calendar-table td.cal-day-cell--other,
.calendar-table td.is-outside-month,
.calendar-table td[data-outside-month="true"] {
  background: rgba(255, 255, 255, 0.42);
}

.calendar-table td.cal-day-cell--other .cal-day-num,
.calendar-table td.is-outside-month .cal-day-num,
.calendar-table td[data-outside-month="true"] .cal-day-num {
  color: #c5d3de;
  font-weight: 400;
}

/* Events: time + description, centered */
.cal-event {
  display: block;
  font-size: 0.75rem;
  line-height: 1.4;
  margin-bottom: 4px;
  text-align: center;
}

.cal-event-time {
  font-weight: 700;
}

.cal-event--blue   { color: #0b84b7; }
.cal-event--orange { color: #ee8f36; }
.cal-event--green  { color: #57c591; }
.cal-event--purple { color: #8a6db7; }
.cal-event--gray   { color: #888; }