/* 時間割セクション */
.schedule-section-boxed {
    background-color: transparent;
}

/* 時間割親セクション */
.schedule-parent-section {
    margin-bottom: 4%;
}


/* widget間のmargin */
.schedule-element.schedule-widget:not(:last-child) {
    margin-block-end: 20px;
    margin-bottom: 20px;
}

.schedule-bg {
    background-image: url('/school/img/back-green-title.png');
    background-size: cover;
}

/* タイトルセクションのpadding */
.schedule-section[data-id="fd57d84"] {
    padding: 0 !important;
    margin-bottom: 4%;
}

.schedule-content-bg {
    background-color: transparent;
}

.schedule-container {
    max-width: 1140px;
    margin: 0 auto;
    padding: 0;
}

/* PC/タブレット版のみ - 子要素にpadding適用 */
.schedule-column-gap-default > .schedule-column > .schedule-element-populated {
    padding: 0 10px;
}

.schedule-column-gap-default {
    gap: 20px;
}

.schedule-column {
    text-align: center;
}

.schedule-col-100 {
    width: 100%;
    text-align: center;
    display: block;
}

/* タイトル画像 */
.schedule-widget-container {
    text-align: center;
    width: 100%;
}

.schedule-widget-image {
    text-align: center;
}

.schedule-widget-image .schedule-widget-container {
    text-align: center;
    display: block;
    width: 100%;
}

/* タイトル画像 */
.schedule-widget-image img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* タイトル画像のwidget-containerのpadding */
.schedule-element[data-id="75a52201"] > .schedule-widget-container {
    padding: 22px 0;
}

/* テーブル背景 */
.schedule-table-bg {
    background-color: #FFFFFF;
    border: 25px solid #23A455;
    padding: 0 3%;
}

/* テーブルヘッダー（通常時間割タイトル） */
.schedule-inner-section {
    width: 100%;
}

.schedule-inner-section .schedule-container {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    padding: 0;
}

/* カラム */
.schedule-col-33 {
    display: flex;
    align-items: center;
}

/* カラム内のpadding */
.schedule-column-gap-default > .schedule-column > .schedule-widget-wrap {
    padding: 10px;
}

.schedule-widget-wrap.schedule-element-populated {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
}

/* 見出し */
.schedule-heading-title {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 600;
    text-align: center;
    color: #333;
}

.schedule-inner-section:first-child .schedule-heading-title {
    font-size: 40px;
    font-weight: 900;
    color: #000000;
}

/* 時間割行 */
.schedule-col-33:nth-child(1) .schedule-heading-title {
    font-size: 2rem;
}

/* 時間割行の幅設定 */
@media (min-width: 768px) {
    /* コンテンツセクションのpadding */
    .schedule-section[data-id="900eb24"] {
        padding: 57px 0 76px !important;
    }
    
    .schedule-section[data-id="4ec03013"] {
        padding: 0 0 76px !important;
    }
    
    .schedule-col-33:nth-child(1) {
        width: 11.5%;
    }
    
    .schedule-col-33:nth-child(2) {
        width: 47.833%;
    }
    
    .schedule-col-33:nth-child(3) {
        width: 40%;
    }
}

/* 見出し行の幅設定（dividerがあるため別設定） */
@media (min-width: 768px) {
    .schedule-header-row .schedule-col-33:nth-child(1) {
        width: 17.411%;
    }
    
    .schedule-header-row .schedule-col-33:nth-child(2) {
        width: 63.928%;
    }
    
    .schedule-header-row .schedule-col-33:nth-child(3) {
        width: 17.994%;
    }
}

.schedule-col-33:nth-child(3) .schedule-heading-title {
    font-size: 28px;
    line-height: 1.5em;
    color: #000000;
    text-align: left;
    margin-bottom: 0;
}

/* 時間セル背景 */
.schedule-time-bg {
    display: flex;
    align-items: center;
    justify-content: center;
}

.schedule-time-bg .schedule-heading-title {
    font-size: 38px;
    font-weight: 900;
    color: #138942;
}

/* 注意書きセクション */
.schedule-note-content-bg {
    padding: 0;
}

.schedule-note-content-bg .schedule-widget-heading:first-child {
    margin-bottom: 20px;
}

.schedule-note-content-bg .schedule-heading-title {
    font-size: 20px;
    font-weight: 400;
    color: #000000;
    text-align: center;
    margin-bottom: 0;
}

/* ディバイダーパターン */
.schedule-widget-divider {
    --divider-border-style: none;
    --divider-border-width: 1px;
    --divider-color: #138942;
    --divider-icon-size: 20px;
    --divider-element-spacing: 10px;
    --divider-pattern-height: 24px;
    --divider-pattern-size: 20px;
    --divider-pattern-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='xMidYMid meet' overflow='visible' height='100%' viewBox='0 0 126 26' fill='black' stroke='none'%3E%3Cpath d='M3,10.2c2.6,0,2.6,2,2.6,3.2S4.4,16.5,3,16.5s-3-1.4-3-3.2S0.4,10.2,3,10.2z M18.8,10.2c1.7,0,3.2,1.4,3.2,3.2s-1.4,3.2-3.2,3.2c-1.7,0-3.2-1.4-3.2-3.2S17,10.2,18.8,10.2z M34.6,10.2c1.5,0,2.6,1.4,2.6,3.2s-0.5,3.2-1.9,3.2c-1.5,0-3.4-1.4-3.4-3.2S33.1,10.2,34.6,10.2z M50.5,10.2c1.7,0,3.2,1.4,3.2,3.2s-1.4,3.2-3.2,3.2c-1.7,0-3.3-0.9-3.3-2.6S48.7,10.2,50.5,10.2z M66.2,10.2c1.5,0,3.4,1.4,3.4,3.2s-1.9,3.2-3.4,3.2c-1.5,0-2.6-0.4-2.6-2.1S64.8,10.2,66.2,10.2z M82.2,10.2c1.7,0.8,2.6,1.4,2.6,3.2s-0.1,3.2-1.6,3.2c-1.5,0-3.7-1.4-3.7-3.2S80.5,9.4,82.2,10.2zM98.6,10.2c1.5,0,2.6,0.4,2.6,2.1s-1.2,4.2-2.6,4.2c-1.5,0-3.7-0.4-3.7-2.1S97.1,10.2,98.6,10.2z M113.4,10.2c1.2,0,2.2,0.9,2.2,3.2s-0.1,3.2-1.3,3.2s-3.1-1.4-3.1-3.2S112.2,10.2,113.4,10.2z'/%3E%3C/svg%3E");
    --divider-pattern-repeat: repeat-x;
    width: 100%;
}

.schedule-widget-divider .schedule-divider {
    display: flex;
}

.schedule-widget-divider .schedule-divider-separator {
    direction: ltr;
    display: flex;
    margin: 0;
    width: 100%;
    background-color: #138942;
}

.schedule-widget-divider--view-line .schedule-divider-separator {
    align-items: center;
}

.schedule-widget-divider--view-line .schedule-divider-separator:after,
.schedule-widget-divider--view-line .schedule-divider-separator:before {
    border-block-end: 0;
    border-block-start: var(--divider-border-width) var(--divider-border-style) var(--divider-color);
    content: "";
    display: block;
    flex-grow: 1;
}

.schedule-widget-divider:not(.schedule-widget-divider--view-line) .schedule-divider-separator {
    border-block-start: var(--divider-border-width) var(--divider-border-style) var(--divider-color);
}

.schedule-widget-divider--separator-type-pattern {
    --divider-border-style: none;
}

.schedule-widget-divider--separator-type-pattern.schedule-widget-divider--view-line .schedule-divider-separator,
.schedule-widget-divider--separator-type-pattern:not(.schedule-widget-divider--view-line) .schedule-divider-separator:after,
.schedule-widget-divider--separator-type-pattern:not(.schedule-widget-divider--view-line) .schedule-divider-separator:before {
    background-color: var(--divider-color);
    -webkit-mask-image: var(--divider-pattern-url);
    mask-image: var(--divider-pattern-url);
    -webkit-mask-repeat: var(--divider-pattern-repeat);
    mask-repeat: var(--divider-pattern-repeat);
    -webkit-mask-size: var(--divider-pattern-size) 100%;
    mask-size: var(--divider-pattern-size) 100%;
    min-height: var(--divider-pattern-height);
    width: 100%;
}

.schedule-widget-divider--no-spacing {
    --divider-pattern-size: auto;
}

/* レスポンシブ - タブレット */
@media (max-width: 1100px) {
    .schedule-table-bg {
        border-width: 15px;
        padding: 0 1%;
    }
    
    .schedule-inner-section:first-child .schedule-heading-title {
        font-size: 26px;
    }
    
    .schedule-hidden-tablet {
        display: none !important;
    }
    
    .schedule-title-column {
        width: 100% !important;
    }
    
    .schedule-col-33:nth-child(1) {
        width: 10%;
    }
    
    .schedule-col-33:nth-child(1) .schedule-heading-title {
        font-size: 20px;
    }
    
    .schedule-time-bg .schedule-heading-title {
        font-size: 26px;
    }
    
    .schedule-col-33:nth-child(3) .schedule-heading-title {
        font-size: 20px;
    }
    
    .schedule-note-content-bg .schedule-heading-title {
        font-size: 14px;
    }
}

/* レスポンシブ - モバイル */
@media (max-width: 767px) {
    /* モバイルでは子要素のpaddingを削除 */
    .schedule-column-gap-default > .schedule-column > .schedule-element-populated {
        padding: 0;
    }
    
    /* 時間割の各行（1部、2部など）にpadding 10px */
    .schedule-inner-section .schedule-column-gap-default > .schedule-column > .schedule-element-populated {
        padding: 10px;
    }
    
    /* 注意書きセクションだけpadding変更（上記ルールを上書き） */
    .schedule-inner-section.schedule-note-bg .schedule-widget-wrap {
        padding: 5% 0% 8% 0% !important;
    }
    
    /* 注意書きのテキストを左寄せ */
    .schedule-inner-section.schedule-note-bg .schedule-heading-title {
        text-align: left !important;
    }
    
    .schedule-table-bg {
        border-width: 25px;
        padding: 0 2%;
    }
    
    .schedule-widget-image img {
        width: 200px;
        height: auto;
        padding: 7% 0 5% 0;
    }
    
    .schedule-element[data-id="75a52201"] > .schedule-widget-container {
        padding: 10px;
    }
    
    .schedule-section[data-id="fd57d84"] {
        margin-bottom: 4%;
    }
    
    .schedule-section[data-id="900eb24"] {
        margin-bottom: 4%;
    }
    
    .schedule-section[data-id="4ec03013"] {
        margin-bottom: 4%;
    }
    
    .schedule-inner-section:first-child .schedule-heading-title {
        font-size: 20px;
        margin: 0;
    }
    
    .schedule-hidden-phone {
        display: none !important;
    }
    
    .schedule-title-column {
        width: 100% !important;
        padding: 20px 0;
    }
    
    .schedule-col-33:nth-child(1) {
        width: 15%;
        align-items: center;
    }
    
    .schedule-col-33:nth-child(2) {
        width: 55%;
        align-items: center;
    }
    
    .schedule-col-33:nth-child(3) {
        width: 30%;
    }
    
    .schedule-col-33:nth-child(1) .schedule-heading-title {
        font-size: 15px;
    }
    
    .schedule-time-bg .schedule-heading-title {
        font-size: 20px;
    }
    
    .schedule-col-33:nth-child(3) .schedule-heading-title {
        font-size: 13px;
    }
    
    .schedule-note-content-bg .schedule-heading-title {
        font-size: 12px;
    }
}

