/* 診療日カレンダー表示用CSS */
.clinicCalendarPage,
.clinicCalendarPage * {
  box-sizing: border-box;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", system-ui, sans-serif;
}

.clinicCalendarPage {
      --cal-brown: #62534c;
      --cal-border: #d8d0ca;
      --cal-text: #4b3f3a;
      --cal-muted: #8d817b;
      --cal-bg: #fffdf9;
      --cal-sunday: #d85c65;
      --cal-saturday: #3f7bb7;

      --cal-normal: #ffffff;
      --cal-closed: #f8ccd0;
      --cal-temp-closed: #f8ccd0;
      --cal-exam: #dbe5f3;
      --cal-mammo: #fff1c9;
      --cal-undecided: #d6a4f2;

      width: min(980px, calc(100% - 32px));
      margin: 0 auto;
      padding: 32px 0 10px;
    }

    .clinicCalendarHero {
      margin-bottom: 28px;
      text-align: center;
    }

    .clinicCalendarHero__title {
      margin: 0;
      font-size: clamp(24px, 3.5vw, 34px);
      line-height: 1.35;
      letter-spacing: 0.04em;
    }

    .clinicCalendarHero__lead {
      margin: 10px 0 0;
      font-size: 13px;
      line-height: 1.8;
    }

    .clinicCalendarNav {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: center;
      gap: 8px 12px;
      margin: 18px 0 28px;
    }

    .clinicCalendarNav__link,
    .clinicCalendarNav__today {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 86px;
      min-height: 34px;
      padding: 7px 14px;
      border: 1px solid var(--cal-border);
      border-radius: 999px;
      background: #fff;
      color: var(--cal-text);
      font-size: 13px;
      font-weight: 700;
      line-height: 1.3;
      text-decoration: none;
      box-shadow: 0 3px 10px rgba(84, 67, 58, 0.06);
    }

    .clinicCalendarNav__link:hover {
      border-color: var(--dept-color);
      background: var(--dept-color-soft);
    }

    .clinicCalendarNav__current {
      min-width: 180px;
      padding: 7px 12px;
      color: var(--dept-color-dark);
      font-size: 14px;
      font-weight: 700;
      line-height: 1.4;
      text-align: center;
    }

    .clinicCalendarNav__today {
      min-width: auto;
      border-color: var(--dept-color);
      background: var(--dept-color);
      color: #fff;
    }

    .clinicCalendarNav__today:hover {
      border-color: var(--dept-color-dark);
      background: var(--dept-color-dark);
    }

    .clinicCalendarBlock {
      margin-top: 30px;
      padding: 20px;
      border-radius: 18px;
      background: var(--cal-bg);
      box-shadow: 0 8px 24px rgba(84, 67, 58, 0.08);
    }

    .clinicCalendarBlock:first-of-type {
      margin-top: 0;
    }

    .clinicCalendarBlock--internal {
      --dept-color: #02B3BD;
      --dept-color-dark: #018891;
      --dept-color-soft: rgba(2, 179, 189, 0.12);
    }

    .clinicCalendarBlock--breast {
      --dept-color: #EC686B;
      --dept-color-dark: #c94c50;
      --dept-color-soft: rgba(236, 104, 107, 0.12);
    }

    .clinicCalendarBlock__head {
      margin-bottom: 16px;
    }

    .clinicCalendarBlock__title {
      position: relative;
      margin: 0;
      padding-left: 15px;
      font-size: clamp(19px, 2.6vw, 26px);
      line-height: 1.4;
      font-weight: bold;
    }

    .clinicCalendarBlock__title::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0.26em;
      width: 5px;
      height: 1.15em;
      border-radius: 99px;
      background: var(--dept-color);
    }

    .clinicCalendarBlock__months {
      display: grid;
      grid-template-columns: repeat(2, minmax(300px, 1fr));
      gap: 18px;
      align-items: start;
    }

    .clinicCal {
      overflow: hidden;
      border: 1px solid var(--cal-border);
      border-radius: 13px;
      background: #fff;
    }

    .clinicCal__monthTitle {
      margin: 0;
      padding: 8px 10px;
      background: var(--dept-color);
      color: #fff;
      font-size: 16px;
      line-height: 1.4;
      text-align: center;
      letter-spacing: 0.06em;
      font-weight: bold;
    }

    .clinicCal__table {
      width: 100%;
      border-collapse: collapse;
      table-layout: fixed;
      background: #fff;
    }

    .clinicCal__week {
      padding: 5px 2px;
      border: 1px solid var(--cal-brown);
      background: #faf7f4;
      font-size: 12px;
      font-weight: 700;
      text-align: center;
    }

    .clinicCal__week--0 {
      color: var(--cal-sunday);
    }

    .clinicCal__week--6 {
      color: var(--cal-saturday);
    }

    .clinicCal__day,
    .clinicCal__empty {
      position: relative;
      height: 54px;
      padding: 0;
      border: 1px solid var(--cal-brown);
      text-align: center;
      vertical-align: top;
    }

    .clinicCal__empty {
      background: #fafafa;
    }

    .clinicCal__num {
      position: absolute;
      top: 50%;
      left: 4px;
      z-index: 2;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 24px;
      height: 24px;
      transform: translateY(-50%);
      border-radius: 99px;
      background: rgba(255, 255, 255, 0.82);
      box-shadow: 0 0 0 1px rgba(80, 60, 50, 0.12);
      font-size: 14px;
      font-weight: 700;
      line-height: 1;
    }

    .clinicCal__day--week0 .clinicCal__num {
      color: var(--cal-sunday);
    }

    .clinicCal__day--week6 .clinicCal__num {
      color: var(--cal-saturday);
    }

    .clinicCal__day.is-today .clinicCal__num {
      background: #fff;
      box-shadow: 0 0 0 2px rgba(80, 60, 50, 1);
    }

    .clinicCal__day.is-past-date .clinicCal__part {
      background: #ededed !important;
      color: #8a8a8a;
    }

    .clinicCal__day.is-past-date .clinicCal__num {
      color: #8a8a8a;
      background: rgba(255, 255, 255, 0.76);
      box-shadow: 0 0 0 1px rgba(80, 60, 50, 0.12);
    }

    .clinicCal__day.is-past-date .clinicCal__status,
    .clinicCal__day.is-past-date .clinicCal__part.is-temp-closed .clinicCal__status {
      color: #8a8a8a;
    }

    .clinicCal__parts {
      display: grid;
      grid-template-rows: 1fr 1fr;
      height: 100%;
    }

    .clinicCal__part {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 3px;
      min-width: 0;
      padding: 0 3px 0 22px;
      font-size: 9px;
      line-height: 1.1;
    }

    .clinicCal__part + .clinicCal__part {
      border-top: 1px solid rgba(80, 60, 50, 0.14);
    }

    .clinicCal__time {
      color: rgba(73, 59, 51, 0.62);
      font-size: 8px;
      font-weight: 700;
      white-space: nowrap;
    }

    .clinicCal__status {
      display: inline-block;
      max-width: 100%;
      font-weight: 700;
      white-space: nowrap;
    }

    .clinicCal__status--custom {
      font-size: 9px;
      letter-spacing: -0.04em;
      line-height: 1;
    }

    .clinicCal__part.is-normal {
      background: var(--cal-normal);
    }

    .clinicCal__part.is-closed {
      background: var(--cal-closed);
    }
    .clinicCal__part.is-closed .clinicCal__status {
      color: #d73643;
      font-size: 9px;
      line-height: 1;
    }


    .clinicCal__part.is-temp-closed {
      background: var(--cal-temp-closed);
    }

    .clinicCal__part.is-temp-closed .clinicCal__status {
      color: #d73643;
      font-size: 9px;
      line-height: 1;
    }

    .clinicCal__part.is-exam {
      background: var(--cal-exam);
    }

    .clinicCal__part.is-mammo {
      background: var(--cal-mammo);
    }

    .clinicCal__part.is-undecided {
      background: var(--cal-undecided);
      color: #fff;
    }

    .clinicCal__part.is-undecided .clinicCal__time {
      color: rgba(255, 255, 255, 0.8);
    }

    .clinicCalendarLegend {
      display: flex;
      flex-wrap: wrap;
      gap: 8px 16px;
      margin: 14px 0 0;
      padding: 20px 0 0 0;
      list-style: none;
      font-size: 12px;
      line-height: 1.5;
      border-top: 1px solid #ddd;
    }

    .clinicCalendarLegend li {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-weight: bold;
    }

    .clinicCalendarLegend__chip {
      display: inline-block;
      width: 15px;
      height: 15px;
      border: 1px solid rgba(80, 60, 50, 0.18);
      border-radius: 4px;
    }

    .clinicCalendarLegend__chip.is-closed {
      background: var(--cal-closed);
    }

    .clinicCalendarLegend__chip.is-exam {
      background: var(--cal-exam);
    }

    .clinicCalendarLegend__chip.is-mammo {
      background: var(--cal-mammo);
    }

    .clinicCalendarLegend__chip.is-undecided {
      background: var(--cal-undecided);
    }


    .clinicCalendarJsonNotice {
      margin: 0 0 18px;
      padding: 10px 14px;
      border-radius: 10px;
      background: #fff4d6;
      color: #66512a;
      font-size: 12px;
      line-height: 1.6;
      text-align: center;
    }

    .clinicCalendarNote {
      margin: 14px 0 0;
      color: var(--cal-muted);
      font-size: 12px;
      line-height: 1.7;
    }

  .clinicCal__day.is-all-closed:not(.is-past-date) .clinicCal__num {
    color: var(--cal-sunday);
  }

    @media (max-width: 767px) {
      .clinicCalendarPage {
        width: min(100% - 24px, 560px);
        padding: 24px 0 44px;
      }

      .clinicCalendarHero {
        margin-bottom: 22px;
      }

      .clinicCalendarNav {
        margin: 14px 0 22px;
        gap: 7px;
      }

      .clinicCalendarNav__link,
      .clinicCalendarNav__today {
        min-width: 78px;
        min-height: 32px;
        padding: 6px 10px;
        font-size: 12px;
      }

      .clinicCalendarNav__current {
        order: -1;
        width: 100%;
        min-width: 0;
        padding: 2px 8px;
        font-size: 13px;
      }

      .clinicCalendarBlock {
        margin-top: 22px;
        padding: 7px;
        border-radius: 14px;
      }

      .clinicCalendarBlock__months {
        grid-template-columns: 1fr;
        gap: 14px;
      }

      .clinicCal {
        border-radius: 10px;
      }

      .clinicCal__monthTitle {
        font-size: 15px;
      }

      .clinicCal__week {
        font-size: 11px;
      }

      .clinicCal__day,
      .clinicCal__empty {
        height: 48px;
      }

      .clinicCal__num {
        left: 3px;
        width: 18px;
        height: 18px;
        font-size: 10px;
      }

      .clinicCal__part {
        padding-left: 5px;
        font-size: 8px;
      }

      .clinicCal__time {
        display: none;
      }
    }

/* 単体embed用の微調整 */
.clinicCalendarPage--embed .clinicCalendarBlock {
  margin-top: 0;
}
