.schedule-page {
    background: #f1f1f1;
    color: #231815
}

.lower-main {
    padding: 72px 0 0;
    background: #f1f1f1
}

.lower-container {
    width: min(1200px,calc(100% - 40px));
    margin-inline:auto}

.breadcrumb {
    margin: 0 0 24px;
    font-size: 16px;
    font-weight: 700
}

.breadcrumb a::after {
    content: ">";
    margin-inline:3px}

.breadcrumb span {
    font-weight: 500
}

.lower-visual {
    position: relative;
    height: 300px;
    border-radius: 20px;
    overflow: hidden;
    color: #fff;
    box-shadow: 0 3px 10px rgba(0,0,0,.12)
}

.lower-visual>img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.lower-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.13)
}

.lower-visual>div {
    position: absolute;
    z-index: 1;
    inset: 0;
    display: grid;
    place-content: center;
    text-align: center;
    text-shadow: 0 2px 5px rgba(0,0,0,.75)
}

.lower-visual small {
    font-family: Jost,sans-serif;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: .08em
}

.lower-visual h1 {
    margin: 0;
    font-size: 36px;
    line-height: 1.3
}

.schedule-content {
    padding: 48px 0 0;
}

.schedule-content h2 {
    margin: 0 0 10px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: #158e00;
    font-size: 26px;
}

.schedule-content h2 img {
    width: 26px;
    height: 26px
}

.schedule-content>p {
    margin: 0;
    color: #676767;
    font-size: 22px;
    font-weight: 500
}

.schedule-tabs {
    margin: 16px 0 12px;
    display: flex;
    gap: 20px;
}

.schedule-tabs a {
    min-width: 144px;
    height: 48px;
    display: grid;
    padding: 0 60px;
    line-height: 48px;
    place-items: center;
    border-radius: 16px;
    background: #c4c4c4;
    color: #fff;
    font: 700 16px "Noto Sans JP",sans-serif;
    cursor: pointer;
    transition: filter .18s,transform .18s
}

.schedule-tabs a:hover {
    filter: brightness(.94);
    transform: translateY(-2px)
}

.schedule-tabs .is-active {
    background: linear-gradient(#158e00,#77c600)
}

.schedule-color-key {
    display: flex;
    gap: 24px;
    margin-bottom: 20px;
    font-size: 18px;
    font-weight: 700
}

.calendar-legend span,.schedule-color-key span {
    display: flex;
    align-items: center;
    gap: 6px
}

.calendar-legend i,.schedule-color-key i {
    width: 28px;
    height: 28px;
    border: 1px solid #ddd;
    border-radius: 2px
}

.calendar-legend .home {
    background: #FDF2C3;
    border-color: #c3a000
}

.schedule-color-key .home {
    background: #a98c00;
    border-color: #c3a000
}

.calendar-legend .away {
    background: #fff
}

.calendar-legend .away {
    background: #fff
}

.schedule-color-key .away {
    background: #B9B9B9
}

.schedule-color-key .jra {
    background: #158e00;
    border-color: #158e00
}

.schedule-color-key .night {
    background: #a58500;
    border-color: #a58500
}

.calendar-month-nav {
    height: 60px;
    margin-bottom: 36px;
    padding: 0 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: 8px;
    background: #fff;
}

.calendar-month-nav button {
    width: 48px;
    height: 48px;
    border: 0;
    background: 0 0;
    color: #158e00;
    font-size: 48px;
    line-height: 1;
    cursor: pointer
}

.calendar-month-title {
    font-size: 24px;
}

.calendar-scroll {
    width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-color: #aaa transparent
}

.calendar-scroll .scroll-hint-icon {
    top: 50px
}

.race-calendar {
    width: 100%;
    min-width: 900px;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
    background: #fff;
    border-radius: 8px;
    overflow: hidden
}

.race-calendar th {
    height: 60px;
    border-right: 1px solid #d8e8d8;
    background: #dcffd9;
    font-size: 24px;
}

.race-calendar th.sat {
    background: #172551;
    color: #fff
}

.race-calendar th.sun {
    background: #d8230c;
    color: #fff
}

.race-calendar th:last-child {
    border-right: 0
}

.race-calendar td {
    height: 240px;
    padding: 16px 12px;
    vertical-align: top;
    border-top: 1px solid #ddd;
    border-right: 1px solid #ddd;
    background: #FFF;
}

.race-calendar td:last-child {
    border-right: 0
}

.race-calendar td.is-empty {
    background: #fff;
}

.race-calendar tr:last-of-type td.is-empty{
    background: #F4F4F4;
}

.jplace-page .race-calendar td.is-empty{
    background: #F4F4F4F4;
}

.jplace-page .race-calendar td.is-no-schedule {
    background: #F4F4F4;
}

.race-calendar td.is-home {
    background: #fff3b8
}

.race-calendar td.is-featured {
    outline: #b28f00 solid 2px;
    outline-offset: -2px
}

.calendar-day {
    display: block;
    margin-bottom: 20px;
    font-size: 24px;
    line-height: 1
}

.calendar-day.sun {
    color: #d8230c
}

.calendar-time {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: -20px;
    margin-bottom: 7px;
    color: #bbb;
    font-size: 18px;
    font-weight: 700
}

.calendar-time img {
    width: 24px;
    height: 24px;
    opacity: .55
}

.calendar-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px
}

.calendar-tag {
    padding: 2px 6px;
    border-radius: 2px;
    background: #707070;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.35;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.calendar-tag img{
    width: 16px;
}

.calendar-tag.gold {
    background: #a98c00
}

.calendar-tag.green {
    background: #158e00
}

.calendar-event {
    margin-top: 8px;
    color: #a58500;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.35
}

.calendar-legend {
    margin-top: 28px;
    display: flex;
    gap: 28px;
    font-size: 20px;
    font-weight: 700
}

.calendar-legend img {
    width: 20px;
    height: 20px;
    opacity: .5
}

.calendar-note {
    margin-top: 16px!important;
    font-size: 18px!important;
}

.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
}

.sp-only {
    display: none
}

.schedule-page .site-footer {
    padding-top: 100px
}

@media(max-width: 767px) {
    .lower-main {
        padding-top:24px
    }

    .lower-container {
        width: calc(100% - 40px)
    }

    .breadcrumb {
        margin-bottom: 18px;
        font-size: 12px
    }

    .lower-visual {
        height: 120px;
        border-radius: 10px
    }

    .lower-visual small {
        font-size: 13px
    }

    .lower-visual h1 {
        font-size: 24px;
    }

    .schedule-content {
        padding: 18px 0 0
    }

    .schedule-content h2 {
        font-size: 18px
    }

    .schedule-content h2 img {
        width: 20px;
        height: 20px
    }

    .schedule-content>p {
        font-size: 14px;
        line-height: 1.6
    }

    .sp-only {
        display: block
    }

    .schedule-tabs {
        margin: 12px 0 10px;
        gap: 10px
    }

    .schedule-tabs a {
        height: 30px;
        font-size: 14px;
        padding: 0 36px;
        min-width: unset;
    }

    .schedule-color-key {
        gap: 12px;
        margin-bottom: 18px;
        font-size: 11px;
        white-space: nowrap
    }

    .schedule-color-key i {
        width: 13px;
        height: 13px
    }

    .calendar-month-nav {
        height: 40px;
        margin-bottom: 20px;
        padding-inline:4px}

    .calendar-month-title {
        font-size: 16px
    }

    .calendar-month-nav button {
        font-size: 34px
    }

    .calendar-scroll {
        margin-right: -20px;
        width: calc(100% + 20px);
        padding-right: 20px
    }

    .race-calendar {
        min-width: 820px;
    }

    .race-calendar th {
        height: 42px;
        font-size: 16px
    }

    .race-calendar td {
        height: 160px;
        padding: 10px 7px;
    }

    .calendar-day {
        font-size: 18px
    }

    .calendar-time {
        font-size: 14px;
    }

    .calendar-time img{
        width: 16px;
        height: 16px;
    }

    .calendar-event,.calendar-tag {
        font-size: 14px;
        font-weight: 400;
    }

    .calendar-legend {
        gap: 20px;
        margin-top: 22px;
        font-size: 16px;
        white-space: nowrap
    }

    .calendar-legend i, .schedule-color-key i{
        width: 20px;
        height: 20px;
    }

    .calendar-note {
        font-size: 10px!important
    }

    .schedule-page .site-footer {
        padding-top: 55px
    }
}
