@charset "UTF-8";
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.clinic-calendar .l-container {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}
@media screen and (min-width: 768px) {
  .clinic-calendar .l-container {
    padding-left: 32px;
    padding-right: 32px;
  }
}
.clinic-calendar .l-container--narrow {
  width: 100%;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}
@media screen and (min-width: 768px) {
  .clinic-calendar .l-container--narrow {
    padding-left: 32px;
    padding-right: 32px;
  }
}
.clinic-calendar .l-container--wide {
  width: 100%;
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}
@media screen and (min-width: 768px) {
  .clinic-calendar .l-container--wide {
    padding-left: 32px;
    padding-right: 32px;
  }
}
.clinic-calendar .l-container--fluid {
  width: 100%;
  padding-left: 24px;
  padding-right: 24px;
}
@media screen and (min-width: 768px) {
  .clinic-calendar .l-container--fluid {
    padding-left: 32px;
    padding-right: 32px;
  }
}
.clinic-calendar .l-calendar {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  padding: 32px;
}
@media screen and (max-width: 767px) {
  .clinic-calendar .l-calendar {
    padding: 24px;
  }
}
@media screen and (max-width: 479px) {
  .clinic-calendar .l-calendar {
    padding: 16px;
  }
}
.clinic-calendar .l-calendar__wrapper {
  background: #FFFFFF;
  border-radius: 12px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);
  overflow: hidden;
  transition: all 0.3s ease;
}
@media (prefers-reduced-motion: no-preference) {
  .clinic-calendar .l-calendar__wrapper:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.16);
  }
}
.clinic-calendar .l-calendar__header {
  padding: 32px;
  background: linear-gradient(135deg, #7FA670 0%, #A5C393 100%);
}
@media screen and (max-width: 767px) {
  .clinic-calendar .l-calendar__header {
    padding: 24px;
  }
}
.clinic-calendar .l-calendar__body {
  padding: 32px;
}
@media screen and (max-width: 767px) {
  .clinic-calendar .l-calendar__body {
    padding: 24px;
  }
}
@media screen and (max-width: 479px) {
  .clinic-calendar .l-calendar__body {
    padding: 16px;
  }
}
.clinic-calendar .l-calendar__footer {
  padding: 24px 32px;
  background: #F3F4F6;
  border-top: 1px solid #EEEEEE;
}
@media screen and (max-width: 767px) {
  .clinic-calendar .l-calendar__footer {
    padding: 16px 24px;
  }
}
.clinic-calendar .c-calendar {
  width: 100%;
}
.clinic-calendar .c-calendar__header {
  padding: 8px 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
  background-color: var(--cc-nav-header-bg, transparent);
  color: var(--cc-nav-header-text, #FFFFFF);
}
.clinic-calendar .c-calendar__month {
  font-size: 1.5rem;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .clinic-calendar .c-calendar__month {
    font-size: 1.25rem;
  }
}
.clinic-calendar .c-calendar__nav {
  display: flex;
  gap: 16px;
}
.clinic-calendar .c-calendar__nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  min-height: 30px;
  width: 30px;
  height: 30px;
  background: rgba(255, 255, 255, 0.2);
  border: none;
  border-radius: 50%;
  color: var(--cc-nav-header-text, #FFFFFF);
  transition: background 0.3s ease;
}
.clinic-calendar .c-calendar__nav-btn:hover {
  background: rgba(255, 255, 255, 0.3);
}
.clinic-calendar .c-calendar__nav-btn:active {
  background: rgba(255, 255, 255, 0.4);
}
.clinic-calendar .c-calendar__nav-btn:disabled, .clinic-calendar .c-calendar__nav-btn.is-disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}
.clinic-calendar .c-calendar__nav-btn:disabled:hover, .clinic-calendar .c-calendar__nav-btn:disabled:active, .clinic-calendar .c-calendar__nav-btn.is-disabled:hover, .clinic-calendar .c-calendar__nav-btn.is-disabled:active {
  background: rgba(255, 255, 255, 0.2);
}
@media screen and (max-width: 767px) {
  .clinic-calendar .c-calendar__nav-btn {
    width: 24px;
    height: 24px;
  }
}
.clinic-calendar .c-calendar__table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
}
.clinic-calendar .c-calendar__thead {
  background: var(--cc-header-bg, #F3F4F6);
}
.clinic-calendar .c-calendar__th {
  padding: 16px !important;
  font-size: 0.875rem;
  font-weight: 600;
  text-align: center;
  color: var(--cc-header-text, #666666) !important;
  background-color: var(--cc-header-bg, #F3F4F6) !important;
  border-bottom: 2px solid #E5E7EB !important;
  border-left: none !important;
  vertical-align: middle !important;
  word-break: normal !important;
}
.clinic-calendar .c-calendar__th--sunday {
  color: var(--cc-header-sunday-text, #E85A5A) !important;
}
.clinic-calendar .c-calendar__th--saturday {
  color: var(--cc-header-saturday-text, #5DADE2) !important;
}
@media screen and (max-width: 479px) {
  .clinic-calendar .c-calendar__th {
    padding: 8px;
    font-size: 0.75rem;
  }
}
.clinic-calendar .c-calendar__day {
  position: relative;
  padding: 0 !important;
  border: 1px solid #EEEEEE !important;
  height: 70px;
  background: var(--cc-status-open-bg, #FFFFFF);
  transition: all 0.15s ease;
  cursor: pointer;
  vertical-align: top !important;
  word-break: normal !important;
  transition: transform 0.15s ease;
}
@media (prefers-reduced-motion: no-preference) {
  .clinic-calendar .c-calendar__day:hover {
    transform: scale(1.03);
  }
}
.clinic-calendar .c-calendar__day:hover {
  z-index: 10;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);
}
@media screen and (max-width: 767px) {
  .clinic-calendar .c-calendar__day {
    height: 60px;
  }
}
@media screen and (max-width: 479px) {
  .clinic-calendar .c-calendar__day {
    height: 50px;
  }
}
.clinic-calendar .c-calendar__day-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 0;
  padding: 24px 0 0 !important;
  position: relative;
}
@media screen and (max-width: 575px) {
  .clinic-calendar .c-calendar__day-inner {
    justify-content: flex-start;
    gap: 2px;
  }
}
.clinic-calendar .c-calendar__day-number {
  position: absolute;
  top: 2px;
  left: 8px;
  font-size: 1rem;
  font-weight: 500;
}
@media screen and (max-width: 479px) {
  .clinic-calendar .c-calendar__day-number {
    font-size: 0.75rem;
    line-height: 1;
    margin-bottom: 0;
  }
}
.clinic-calendar .c-calendar__day-note {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.clinic-calendar .c-calendar__day-status {
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.2;
}
@media screen and (max-width: 767px) {
  .clinic-calendar .c-calendar__day-status {
    font-size: 0.625rem;
  }
}
@media screen and (max-width: 479px) {
  .clinic-calendar .c-calendar__day-status {
    font-size: 0;
  }
  .clinic-calendar .c-calendar__day-status::after {
    content: attr(data-short);
    font-size: 0.65rem;
    letter-spacing: -0.02em;
  }
}
.clinic-calendar .c-calendar__day-icon {
  width: 20px;
  height: 20px;
}
@media screen and (max-width: 767px) {
  .clinic-calendar .c-calendar__day-icon {
    width: 16px;
    height: 16px;
  }
}
.clinic-calendar .c-calendar__day-split {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
}
.clinic-calendar .c-calendar__day-split--am {
  position: relative;
}
.clinic-calendar .c-calendar__day-split--am .c-calendar__day-split-top {
  background: var(--cc-status-am-closed-bg, #FFEBEE);
}
.clinic-calendar .c-calendar__day-split--am .c-calendar__day-split-top .c-calendar__day-status {
  color: var(--cc-status-am-closed-text, #E85A5A);
}
.clinic-calendar .c-calendar__day-split--am .c-calendar__day-split-bottom {
  background: var(--cc-status-open-bg, #FFFFFF);
}
.clinic-calendar .c-calendar__day-split--pm {
  position: relative;
}
.clinic-calendar .c-calendar__day-split--pm .c-calendar__day-split-top {
  background: var(--cc-status-open-bg, #FFFFFF);
}
.clinic-calendar .c-calendar__day-split--pm .c-calendar__day-split-bottom {
  background: var(--cc-status-pm-closed-bg, #FFEBEE);
}
.clinic-calendar .c-calendar__day-split--pm .c-calendar__day-split-bottom .c-calendar__day-status {
  color: var(--cc-status-pm-closed-text, #D32F2F);
  font-weight: 700;
}
.clinic-calendar .c-calendar__day-split--am-director {
  position: relative;
}
.clinic-calendar .c-calendar__day-split--am-director .c-calendar__day-split-top {
  background: var(--cc-status-am-director-absent-bg, #FFFFFF);
}
.clinic-calendar .c-calendar__day-split--am-director .c-calendar__day-split-top .c-calendar__day-status {
  color: var(--cc-status-am-director-absent-text, #E85A5A);
  font-weight: 700;
}
.clinic-calendar .c-calendar__day-split--am-director .c-calendar__day-split-bottom {
  background: var(--cc-status-open-bg, #FFFFFF);
}
.clinic-calendar .c-calendar__day-split--pm-director {
  position: relative;
}
.clinic-calendar .c-calendar__day-split--pm-director .c-calendar__day-split-top {
  background: var(--cc-status-open-bg, #FFFFFF);
}
.clinic-calendar .c-calendar__day-split--pm-director .c-calendar__day-split-bottom {
  background: var(--cc-status-pm-director-absent-bg, #FFFFFF);
}
.clinic-calendar .c-calendar__day-split--pm-director .c-calendar__day-split-bottom .c-calendar__day-status {
  color: var(--cc-status-pm-director-absent-text, #E85A5A);
  font-weight: 700;
}
.clinic-calendar .c-calendar__day-split-top, .clinic-calendar .c-calendar__day-split-bottom {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  width: 100%;
}
@media screen and (max-width: 479px) {
  .clinic-calendar .c-calendar__day-split-top, .clinic-calendar .c-calendar__day-split-bottom {
    padding: 2px 0;
  }
}
.clinic-calendar .c-calendar__day--today .c-calendar__day-inner {
  background: var(--cc-today-bg, #FFF4E6);
}
.clinic-calendar .c-calendar__day--today .c-calendar__day-number {
  font-weight: 700;
  color: #F7B98E;
}
.clinic-calendar .c-calendar__day--closed {
  background: var(--cc-status-closed-bg, #FFEBEE);
  color: #333333;
  cursor: not-allowed;
}
.clinic-calendar .c-calendar__day--closed:hover {
  transform: none;
  box-shadow: none;
}
.clinic-calendar .c-calendar__day--closed .c-calendar__day-number {
  font-weight: 700;
}
.clinic-calendar .c-calendar__day--closed .c-calendar__day-status {
  color: var(--cc-status-closed-text, #E85A5A);
  font-weight: 700;
}
.clinic-calendar .c-calendar__day--am-closed {
  background: #fff;
}
.clinic-calendar .c-calendar__day--am-closed .c-calendar__day-inner {
  padding: 0;
}
.clinic-calendar .c-calendar__day--am-closed .c-calendar__day-number {
  font-weight: 700;
  z-index: 1;
}
.clinic-calendar .c-calendar__day--pm-closed {
  background: #fff;
}
.clinic-calendar .c-calendar__day--pm-closed .c-calendar__day-inner {
  padding: 0;
  background: #fff;
}
.clinic-calendar .c-calendar__day--pm-closed .c-calendar__day-number {
  font-weight: 700;
  z-index: 1;
}
.clinic-calendar .c-calendar__day--director-absent .c-calendar__day-number {
  font-weight: 700;
}
.clinic-calendar .c-calendar__day--director-absent .c-calendar__day-status {
  color: var(--cc-status-director-absent-text, #E85A5A);
}
.clinic-calendar .c-calendar__day--am-director-absent {
  background: #fff;
}
.clinic-calendar .c-calendar__day--am-director-absent .c-calendar__day-inner {
  padding: 0;
}
.clinic-calendar .c-calendar__day--am-director-absent .c-calendar__day-number {
  font-weight: 700;
  z-index: 1;
}
.clinic-calendar .c-calendar__day--pm-director-absent {
  background: #fff;
}
.clinic-calendar .c-calendar__day--pm-director-absent .c-calendar__day-inner {
  padding: 0;
  background: #fff;
}
.clinic-calendar .c-calendar__day--pm-director-absent .c-calendar__day-number {
  font-weight: 700;
  z-index: 1;
}
.clinic-calendar .c-calendar__day-overlay {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.clinic-calendar .c-calendar__day-overlay--director {
  flex-direction: column;
  gap: 2px;
}
.clinic-calendar .c-calendar__day-icon--bg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 20px;
  height: 20px;
  opacity: 0.8;
  z-index: 0;
}
@media screen and (max-width: 767px) {
  .clinic-calendar .c-calendar__day-icon--bg {
    width: 28px;
    height: 28px;
  }
}
@media screen and (max-width: 479px) {
  .clinic-calendar .c-calendar__day-icon--bg {
    width: 24px;
    height: 24px;
    opacity: 0.25;
  }
}
.clinic-calendar .c-calendar__day-icon--bg-sm {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 16px;
  height: 16px;
  opacity: 0.25;
  z-index: 0;
}
@media screen and (max-width: 479px) {
  .clinic-calendar .c-calendar__day-icon--bg-sm {
    width: 12px;
    height: 12px;
    opacity: 0.2;
  }
}
.clinic-calendar .c-calendar__day-status--overlay {
  position: relative;
  z-index: 1;
  opacity: 0.75;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--cc-status-director-absent-text, #E85A5A);
  text-shadow: 0 0 2px rgba(255, 255, 255, 0.8);
}
@media screen and (max-width: 767px) {
  .clinic-calendar .c-calendar__day-status--overlay {
    font-size: 0.625rem;
  }
}
@media screen and (max-width: 479px) {
  .clinic-calendar .c-calendar__day-status--overlay {
    font-size: 0;
  }
  .clinic-calendar .c-calendar__day-status--overlay::after {
    content: attr(data-short);
    font-size: 0.65rem;
    letter-spacing: -0.02em;
  }
}
.clinic-calendar .c-calendar__day-status--pm {
  color: #d74444;
  font-weight: 700;
  padding: 2px 4px;
  border-radius: 4px;
}
.clinic-calendar .c-calendar__day-status--am {
  color: #6268d2;
  font-weight: 700;
  padding: 2px 4px;
  border-radius: 4px;
}
.clinic-calendar .c-calendar__day-split-overlay {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.clinic-calendar .c-calendar__day--other-month {
  background: #F3F4F6;
  color: #999999;
  cursor: default;
}
.clinic-calendar .c-calendar__day--other-month:hover {
  transform: none;
  box-shadow: none;
}
.clinic-calendar .c-calendar__day:focus-visible {
  outline: 2px solid #E8A87C;
  outline-offset: 2px;
}
.clinic-calendar .c-calendar__day:focus-visible {
  z-index: 20;
}
@media (hover: none) and (pointer: coarse) {
  .clinic-calendar .c-calendar__day {
    min-height: 30px;
  }
  .clinic-calendar .c-calendar__nav-btn {
    min-width: 30px;
    min-height: 30px;
  }
}
.clinic-calendar .c-calendar__note-indicator {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 6px;
  height: 6px;
  background: #E8A87C;
  border-radius: 50%;
}
@media screen and (max-width: 479px) {
  .clinic-calendar .c-calendar__note-indicator {
    width: 4px;
    height: 4px;
    top: 2px;
    right: 2px;
  }
}
.clinic-calendar .c-calendar__tooltip {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(-8px);
  z-index: 600;
  background: #fff;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
  .clinic-calendar .c-calendar__tooltip {
    transition: opacity 0.15s ease, visibility 0.15s ease;
  }
}
.clinic-calendar .c-calendar__tooltip-text {
  display: block;
  max-width: 300px;
  min-width: 250px;
  padding: 8px 16px;
  background: #fff;
  color: #333;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.6;
  text-align: center;
  white-space: normal;
  word-wrap: break-word;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);
}
.clinic-calendar .c-calendar__tooltip-text::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-width: 6px;
  border-style: solid;
  border-color: #fff transparent transparent transparent;
}
@media (hover: hover) and (pointer: fine) {
  .clinic-calendar .c-calendar__day--has-note:hover .c-calendar__tooltip {
    visibility: visible;
    opacity: 1;
  }
}
@media (hover: none) and (pointer: coarse) {
  .clinic-calendar .c-calendar__day--has-note:focus .c-calendar__tooltip, .clinic-calendar .c-calendar__day--has-note:focus-within .c-calendar__tooltip {
    visibility: visible;
    opacity: 1;
  }
}
.clinic-calendar .c-calendar__day--sunday .c-calendar__tooltip {
  left: 0;
  transform: translateX(0) translateY(-8px);
}
.clinic-calendar .c-calendar__day--sunday .c-calendar__tooltip .c-calendar__tooltip-text::after {
  left: 16px;
  transform: none;
}
.clinic-calendar .c-calendar__day--saturday .c-calendar__tooltip {
  left: auto;
  right: 0;
  transform: translateX(0) translateY(-8px);
}
.clinic-calendar .c-calendar__day--saturday .c-calendar__tooltip .c-calendar__tooltip-text::after {
  left: auto;
  right: 16px;
  transform: none;
}
@media screen and (max-width: 479px) {
  .clinic-calendar .c-calendar__tooltip {
    bottom: auto;
    top: 100%;
    transform: translateX(-50%) translateY(4px);
  }
  .clinic-calendar .c-calendar__tooltip-text {
    max-width: 140px;
    font-size: 0.625rem;
    padding: 4px 8px;
  }
  .clinic-calendar .c-calendar__tooltip-text::after {
    top: auto;
    bottom: 100%;
    border-color: transparent transparent #374151 transparent;
  }
  .clinic-calendar .c-calendar__day--sunday .c-calendar__tooltip, .clinic-calendar .c-calendar__day--saturday .c-calendar__tooltip {
    left: 50%;
    right: auto;
    transform: translateX(-50%) translateY(4px);
  }
  .clinic-calendar .c-calendar__day--sunday .c-calendar__tooltip .c-calendar__tooltip-text::after, .clinic-calendar .c-calendar__day--saturday .c-calendar__tooltip .c-calendar__tooltip-text::after {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
  }
}
@media print {
  .clinic-calendar .c-calendar__nav {
    display: none;
  }
  .clinic-calendar .c-calendar__day {
    page-break-inside: avoid;
  }
}
.clinic-calendar .c-calendar-description {
  padding: 8px;
  background: #fff;
  font-size: 0.875rem;
  line-height: 1.8;
  color: #333333;
}
.clinic-calendar .c-calendar-description p {
  margin: 0 0 16px;
}
.clinic-calendar .c-calendar-description p:last-child {
  margin-bottom: 0;
}
.clinic-calendar .c-calendar-description a {
  color: #7FA670;
  text-decoration: underline;
}
.clinic-calendar .c-calendar-description a:hover {
  text-decoration: none;
}
.clinic-calendar .c-calendar-description strong {
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .clinic-calendar .c-calendar-description {
    margin-top: 24px;
    padding: 16px 24px;
  }
}
@media screen and (max-width: 479px) {
  .clinic-calendar .c-calendar-description {
    margin-top: 16px;
    padding: 8px 16px;
    font-size: 0.75rem;
  }
}
.clinic-calendar .c-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
  margin-top: 32px;
  padding: 16px;
  background: #F3F4F6;
  border-radius: 8px;
}
@media screen and (max-width: 479px) {
  .clinic-calendar .c-legend {
    gap: 16px;
    padding: 8px;
  }
}
.clinic-calendar .c-legend__item {
  display: flex;
  align-items: center;
  gap: 8px;
}
.clinic-calendar .c-legend__color {
  display: inline-block;
  width: 24px;
  height: 24px;
  border-radius: 4px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  flex-shrink: 0;
}
.clinic-calendar .c-legend__color--open {
  background: var(--cc-status-open-bg, #FFFFFF);
  border: 2px solid #E5E7EB;
}
.clinic-calendar .c-legend__color--closed {
  background: var(--cc-status-closed-bg, #FFEBEE);
}
.clinic-calendar .c-legend__color--am-closed {
  background: var(--cc-status-am-closed-bg, #FFEBEE);
}
.clinic-calendar .c-legend__color--pm-closed {
  background: var(--cc-status-pm-closed-bg, #FFEBEE);
}
.clinic-calendar .c-legend__color--director-absent, .clinic-calendar .c-legend__color--am-director-absent, .clinic-calendar .c-legend__color--pm-director-absent {
  background: #FFFFFF;
  border: 2px solid #E5E7EB;
}
@media screen and (max-width: 479px) {
  .clinic-calendar .c-legend__color {
    width: 20px;
    height: 20px;
  }
}
.clinic-calendar .c-legend__label {
  font-size: 0.875rem;
  color: #666666;
}
@media screen and (max-width: 479px) {
  .clinic-calendar .c-legend__label {
    font-size: 0.75rem;
  }
}
@media print {
  .clinic-calendar .c-legend {
    page-break-before: avoid;
    background: none;
    border: 1px solid #E5E7EB;
  }
}
.clinic-calendar .p-home-calendar {
  padding: 48px 0;
  background: #f0f4e8;
}
@media screen and (max-width: 767px) {
  .clinic-calendar .p-home-calendar {
    padding: 32px 0;
  }
}
@media screen and (max-width: 479px) {
  .clinic-calendar .p-home-calendar {
    padding: 24px 0;
  }
}
.clinic-calendar .p-home-calendar__title {
  text-align: center;
  margin-bottom: 32px;
  font-size: 2rem;
  font-weight: 700;
  color: #333333;
}
@media screen and (max-width: 767px) {
  .clinic-calendar .p-home-calendar__title {
    font-size: 1.5rem;
    margin-bottom: 24px;
  }
}
.clinic-calendar .p-home-calendar__subtitle {
  text-align: center;
  margin-bottom: 48px;
  font-size: 1rem;
  color: #666666;
}
@media screen and (max-width: 767px) {
  .clinic-calendar .p-home-calendar__subtitle {
    margin-bottom: 32px;
  }
}
.clinic-calendar .p-home-calendar__content {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}
@media screen and (min-width: 1024px) {
  .clinic-calendar .p-home-calendar__content {
    padding-left: 32px;
    padding-right: 32px;
  }
}
.clinic-calendar .p-home-calendar__info {
  margin-top: 32px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .clinic-calendar .p-home-calendar__info {
    margin-top: 24px;
  }
}
.clinic-calendar .p-home-calendar__info-text {
  font-size: 0.875rem;
  color: #6B7280;
  line-height: 1.8;
}
.clinic-calendar .p-home-calendar__cta {
  display: flex;
  justify-content: center;
  margin-top: 32px;
}
.clinic-calendar .p-home-calendar__cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 24px;
  border: none;
  border-radius: 8px;
  font-family: "M PLUS Rounded 1c", "LINE Seed JP", "Noto Sans JP", "Hiragino Sans", "ヒラギノ角ゴ ProN", "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.3s ease;
}
.clinic-calendar .p-home-calendar__cta-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.clinic-calendar .p-home-calendar__cta-btn {
  background: #7FA670;
  color: #FFFFFF;
}
.clinic-calendar .p-home-calendar__cta-btn:hover:not(:disabled) {
  background: #57754C;
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);
}
.clinic-calendar .p-home-calendar__cta-btn {
  padding: 16px 32px;
  font-size: 1rem;
}
.clinic-calendar .p-home-calendar__cta-btn:focus-visible {
  outline: 2px solid #E8A87C;
  outline-offset: 2px;
}
@media print {
  .clinic-calendar .p-home-calendar {
    padding: 24px 0;
    background: #FFFFFF;
  }
  .clinic-calendar .p-home-calendar__cta {
    display: none;
  }
}
.clinic-calendar .u-mt-0 {
  margin-top: 0 !important;
}
.clinic-calendar .u-mt-xs {
  margin-top: 8px !important;
}
.clinic-calendar .u-mt-sm {
  margin-top: 16px !important;
}
.clinic-calendar .u-mt-md {
  margin-top: 24px !important;
}
.clinic-calendar .u-mt-lg {
  margin-top: 32px !important;
}
.clinic-calendar .u-mt-xl {
  margin-top: 48px !important;
}
.clinic-calendar .u-mt-2xl {
  margin-top: 64px !important;
}
.clinic-calendar .u-mb-0 {
  margin-bottom: 0 !important;
}
.clinic-calendar .u-mb-xs {
  margin-bottom: 8px !important;
}
.clinic-calendar .u-mb-sm {
  margin-bottom: 16px !important;
}
.clinic-calendar .u-mb-md {
  margin-bottom: 24px !important;
}
.clinic-calendar .u-mb-lg {
  margin-bottom: 32px !important;
}
.clinic-calendar .u-mb-xl {
  margin-bottom: 48px !important;
}
.clinic-calendar .u-mb-2xl {
  margin-bottom: 64px !important;
}
.clinic-calendar .u-ml-0 {
  margin-left: 0 !important;
}
.clinic-calendar .u-ml-xs {
  margin-left: 8px !important;
}
.clinic-calendar .u-ml-sm {
  margin-left: 16px !important;
}
.clinic-calendar .u-ml-md {
  margin-left: 24px !important;
}
.clinic-calendar .u-ml-lg {
  margin-left: 32px !important;
}
.clinic-calendar .u-ml-auto {
  margin-left: auto !important;
}
.clinic-calendar .u-mr-0 {
  margin-right: 0 !important;
}
.clinic-calendar .u-mr-xs {
  margin-right: 8px !important;
}
.clinic-calendar .u-mr-sm {
  margin-right: 16px !important;
}
.clinic-calendar .u-mr-md {
  margin-right: 24px !important;
}
.clinic-calendar .u-mr-lg {
  margin-right: 32px !important;
}
.clinic-calendar .u-mr-auto {
  margin-right: auto !important;
}
.clinic-calendar .u-mx-auto {
  margin-left: auto !important;
  margin-right: auto !important;
}
.clinic-calendar .u-mx-sm {
  margin-left: 16px !important;
  margin-right: 16px !important;
}
.clinic-calendar .u-mx-md {
  margin-left: 24px !important;
  margin-right: 24px !important;
}
.clinic-calendar .u-my-0 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.clinic-calendar .u-my-sm {
  margin-top: 16px !important;
  margin-bottom: 16px !important;
}
.clinic-calendar .u-my-md {
  margin-top: 24px !important;
  margin-bottom: 24px !important;
}
.clinic-calendar .u-my-lg {
  margin-top: 32px !important;
  margin-bottom: 32px !important;
}
.clinic-calendar .u-mt-n-xs {
  margin-top: -8px !important;
}
.clinic-calendar .u-mt-n-sm {
  margin-top: -16px !important;
}
.clinic-calendar .u-mb-n-xs {
  margin-bottom: -8px !important;
}
.clinic-calendar .u-mb-n-sm {
  margin-bottom: -16px !important;
}
.clinic-calendar .u-pt-0 {
  padding-top: 0 !important;
}
.clinic-calendar .u-pt-xs {
  padding-top: 8px !important;
}
.clinic-calendar .u-pt-sm {
  padding-top: 16px !important;
}
.clinic-calendar .u-pt-md {
  padding-top: 24px !important;
}
.clinic-calendar .u-pt-lg {
  padding-top: 32px !important;
}
.clinic-calendar .u-pt-xl {
  padding-top: 48px !important;
}
.clinic-calendar .u-pt-2xl {
  padding-top: 64px !important;
}
.clinic-calendar .u-pb-0 {
  padding-bottom: 0 !important;
}
.clinic-calendar .u-pb-xs {
  padding-bottom: 8px !important;
}
.clinic-calendar .u-pb-sm {
  padding-bottom: 16px !important;
}
.clinic-calendar .u-pb-md {
  padding-bottom: 24px !important;
}
.clinic-calendar .u-pb-lg {
  padding-bottom: 32px !important;
}
.clinic-calendar .u-pb-xl {
  padding-bottom: 48px !important;
}
.clinic-calendar .u-pb-2xl {
  padding-bottom: 64px !important;
}
.clinic-calendar .u-pl-0 {
  padding-left: 0 !important;
}
.clinic-calendar .u-pl-xs {
  padding-left: 8px !important;
}
.clinic-calendar .u-pl-sm {
  padding-left: 16px !important;
}
.clinic-calendar .u-pl-md {
  padding-left: 24px !important;
}
.clinic-calendar .u-pl-lg {
  padding-left: 32px !important;
}
.clinic-calendar .u-pr-0 {
  padding-right: 0 !important;
}
.clinic-calendar .u-pr-xs {
  padding-right: 8px !important;
}
.clinic-calendar .u-pr-sm {
  padding-right: 16px !important;
}
.clinic-calendar .u-pr-md {
  padding-right: 24px !important;
}
.clinic-calendar .u-pr-lg {
  padding-right: 32px !important;
}
.clinic-calendar .u-px-0 {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.clinic-calendar .u-px-xs {
  padding-left: 8px !important;
  padding-right: 8px !important;
}
.clinic-calendar .u-px-sm {
  padding-left: 16px !important;
  padding-right: 16px !important;
}
.clinic-calendar .u-px-md {
  padding-left: 24px !important;
  padding-right: 24px !important;
}
.clinic-calendar .u-px-lg {
  padding-left: 32px !important;
  padding-right: 32px !important;
}
.clinic-calendar .u-py-0 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.clinic-calendar .u-py-xs {
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}
.clinic-calendar .u-py-sm {
  padding-top: 16px !important;
  padding-bottom: 16px !important;
}
.clinic-calendar .u-py-md {
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}
.clinic-calendar .u-py-lg {
  padding-top: 32px !important;
  padding-bottom: 32px !important;
}
.clinic-calendar .u-p-0 {
  padding: 0 !important;
}
.clinic-calendar .u-p-xs {
  padding: 8px !important;
}
.clinic-calendar .u-p-sm {
  padding: 16px !important;
}
.clinic-calendar .u-p-md {
  padding: 24px !important;
}
.clinic-calendar .u-p-lg {
  padding: 32px !important;
}
.clinic-calendar .u-p-xl {
  padding: 48px !important;
}
.clinic-calendar .u-block {
  display: block !important;
}
.clinic-calendar .u-inline {
  display: inline !important;
}
.clinic-calendar .u-inline-block {
  display: inline-block !important;
}
.clinic-calendar .u-flex {
  display: flex !important;
}
.clinic-calendar .u-inline-flex {
  display: inline-flex !important;
}
.clinic-calendar .u-grid {
  display: grid !important;
}
.clinic-calendar .u-none {
  display: none !important;
}
.clinic-calendar .u-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.clinic-calendar .u-hidden {
  display: none !important;
}
@media screen and (max-width: 479px) {
  .clinic-calendar .u-hidden-mobile {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .clinic-calendar .u-hidden-tablet {
    display: none !important;
  }
}
@media screen and (min-width: 1024px) {
  .clinic-calendar .u-hidden-desktop {
    display: none !important;
  }
}
.clinic-calendar .u-show-mobile {
  display: none !important;
}
@media screen and (max-width: 479px) {
  .clinic-calendar .u-show-mobile {
    display: block !important;
  }
}
.clinic-calendar .u-show-tablet {
  display: none !important;
}
@media screen and (max-width: 767px) {
  .clinic-calendar .u-show-tablet {
    display: block !important;
  }
}
.clinic-calendar .u-show-desktop {
  display: none !important;
}
@media screen and (min-width: 1024px) {
  .clinic-calendar .u-show-desktop {
    display: block !important;
  }
}
.clinic-calendar .u-flex-center {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.clinic-calendar .u-flex-between {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}
.clinic-calendar .u-flex-wrap {
  flex-wrap: wrap !important;
}
.clinic-calendar .u-flex-column {
  flex-direction: column !important;
}
.clinic-calendar .u-text-left {
  text-align: left !important;
}
.clinic-calendar .u-text-center {
  text-align: center !important;
}
.clinic-calendar .u-text-right {
  text-align: right !important;
}
.clinic-calendar .u-w-full {
  width: 100% !important;
}
.clinic-calendar .u-w-auto {
  width: auto !important;
}
.clinic-calendar .u-max-w-full {
  max-width: 100% !important;
}
.clinic-calendar .u-h-full {
  height: 100% !important;
}
.clinic-calendar .u-h-auto {
  height: auto !important;
}
.clinic-calendar .u-overflow-hidden {
  overflow: hidden !important;
}
.clinic-calendar .u-overflow-auto {
  overflow: auto !important;
}
.clinic-calendar .u-overflow-scroll {
  overflow: scroll !important;
}
.clinic-calendar .u-relative {
  position: relative !important;
}
.clinic-calendar .u-absolute {
  position: absolute !important;
}
.clinic-calendar .u-fixed {
  position: fixed !important;
}
.clinic-calendar .u-sticky {
  position: sticky !important;
}
@media print {
  .clinic-calendar .u-print-hidden {
    display: none !important;
  }
  .clinic-calendar .u-print-show {
    display: block !important;
  }
}

/*# sourceMappingURL=style.css.map */
