/* Page specific styles for top page */
.main-visual {
    position: relative;
    margin: 0 0 20px;
    padding: 0;
    height: auto;
}

.main-visual img {
    margin: 30px;
    width: calc(100% - 60px);
    object-fit: scale-down;
    object-position: center;
    background: rgba(226, 153, 0, 0.3);
}

.main-visual div.subtitle {
    position: absolute;
    display: flex;
    flex-wrap: wrap;
    top: 25px;
    right: 15px;
    margin: 0;
    height: 300px;
    font-size: 18px;
    font-weight: 700;
    writing-mode: vertical-rl;
    text-orientation: upright;
    gap: 5px;
}
.main-visual div.subtitle > span {
    display: inline-block;
    margin: 0 0 8px;
    padding: 10px 0;
    color: #fff;
    background: rgba(211, 95, 2, 1);
    line-height: 26px;
    letter-spacing: 0.1em;
}   

.main-visual div.schedule {
    display: flex;
    flex-wrap: wrap;
    position: absolute;
    bottom: 10px;
    left: 40px;
    margin: 0;
    width: calc(100% - 32px);
    font-size: 17px;
    font-weight: 700;
    align-content: flex-start;
    gap: 20px;
}

.main-visual div.schedule dl {
    display: flex;
    flex-direction: column;
    margin: 0;
    gap: 5px;
}

.main-visual div.schedule dl > * {
    flex: 0 0 auto;
    margin: 0;
    text-align: left;
}  

.main-visual div.schedule dl > * > span {
    display: inline-block;
    padding: 0 5px;
    width: auto;
    background: rgba(224, 143, 78, 1);
    line-height: 26px;
}

@media (max-width: 800px) {
.main-visual img {
    height: 55vw;
}
.main-visual div.schedule {
    flex-direction: column;
    font-size: 14px;
    gap: 5px
}
.main-visual div.schedule dl {
    flex-direction: row;
    gap: 0;
}
.main-visual div.schedule dl > dt > span {
    padding-right: 0;
}
.main-visual div.schedule dl > dd > span {
    padding-left: 0;
}
.main-visual div.schedule dl > dd > span:before {
    content: '|';
    display: inline-block;
    padding: 0 2px;
    font-weight: normal;
}


.content-grid > .card:first-child {
    border-color: #b9c8d7;
}
