body {
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
}

.container {
    margin-bottom: 75px;
}

.calendar-day {
    aspect-ratio: 1 / 1;
}

#scheduleModal {
    z-index: 300;
}

/* モーダルのアニメーション */
.modal-backdrop {
    transition: opacity 0.2s ease-in-out;
}

.modal-content {
    transition: transform 0.2s ease-in-out;
}

/* タイムライン用のスタイルを追加 */
/* .timeline-item::before {
    content: '';
    position: absolute;
    left: 14px;
    top: 8px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: white;
    border: 3px solid #6366f1;
}

.timeline-break::before {
    content: '';
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: #9ca3af;
} */

.loader {
    border: 4px solid #f3f3f3;
    border-top: 4px solid #3498db;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    animation: spin 2s linear infinite;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* お知らせセクションが展開可能な場合、カーソルをポインターにする */
#announcements-section.is-expandable {
    cursor: pointer;
}

/* 折りたたまれたリストのスタイル */
#announcements-section.is-collapsed #announcements-list {
    max-height: 1.2em; /* 1行分の高さ (line-height) */
    overflow: hidden;
    position: relative;
    /* 続きがあることを示すため、末尾をフェードアウトさせます */
    mask-image: linear-gradient(to bottom, black 50%, transparent 100%);
    -webkit-mask-image: linear-gradient(to bottom, black 50%, transparent 100%);
}

/* リストの展開・折りたたみアニメーション */
#announcements-list {
    max-height: 500px; /* 展開時の十分な高さ */
    transition: max-height 0.3s ease-in-out;
}

/* Chevronアイコンの回転 (展開時) */
#announcement-chevron.is-expanded svg {
    transform: rotate(180deg);
}