body {
    overflow-x: hidden
}

.background {
    width: 100%;
    height: 100%;
    background-size: 100%;
    background-repeat: no-repeat
}

.background.hukidashi {
    background-size: 100%;
    background-position: top 0;
    background-image: url("../img/top/bk_02.png")
}

@media screen and (max-width: 767px) {
    .background.hukidashi {
        background-image: url("../img/top/bk_02-sp.png")
    }
}

.mv {
    padding-top: 120px
}

@media screen and (max-width: 980px)and (min-width: 768px) {
    .mv {
        padding-top: 80px
    }
}

@media screen and (max-width: 767px) {
    .mv {
        padding-top: 20px
    }
}

.mv .title {
    z-index: 9
}

@media screen and (min-width: 768px) {
    .mv .title {
        position: absolute;
        left: 50%;
        transform: translateX(-50%)
    }
}

@media screen and (max-width: 980px)and (min-width: 768px) {
    .mv .title {
        position: relative;
        display: flex;
        justify-content: center
    }
}

@media screen and (max-width: 767px) {
    .mv .title {
        position: relative;
        padding-top: 20px;
        padding-left: 48px
    }
}

.mv .title h1 {
    position: relative
}

.mv .title h1::before,
.mv .title h1::after {
    content: "";
    display: block;
    position: absolute;
    opacity: 0;
    z-index: -1
}

.mv .title h1::before {
    top: -16px;
    left: 58%;
    transform: translateX(-58%);
    width: 104px;
    height: 104px;
    background: url("../img/top/img_title-mv-logo.png") top/contain no-repeat;
    animation: .4s ease-in-out 3s forwards hanko
}

@media screen and (max-width: 767px) {
    .mv .title h1::before {
        left: unset;
        right: -90px;
        width: 68px;
        height: 68px;
        transition: unset
    }
}

.mv .title h1::after {
    bottom: -80px;
    left: 40px;
    width: 344px;
    height: 328px;
    background: url("../img/top/img_title-mv-bk.png") top/contain no-repeat;
    animation: .4s ease-in-out forwards popup
}

@media screen and (max-width: 767px) {
    .mv .title h1::after {
        bottom: -40px;
        left: 20px;
        width: 156px;
        height: 148px
    }
}

.mv .title img {
    opacity: 0
}

@media screen and (max-width: 767px) {
    .mv .title img {
        margin-left: 0
    }
}

.mv .title .wrap {
    display: inline-block !important;
    width: auto !important;
    position: relative
}

.mv .title .text01 {
    width: 450px;
    height: auto;
    animation-name: popup;
    animation-fill-mode: forwards;
    animation: .4s ease-in-out .4s forwards popup
}

@media screen and (max-width: 767px) {
    .mv .title .text01 {
        width: 204px
    }
}

.mv .title .text02 {
    margin-top: 124px;
    width: 382px;
    height: auto;
    animation: .3s ease-in-out .8s forwards popup
}

@media screen and (max-width: 767px) {
    .mv .title .text02 {
        margin-top: 44px;
        width: 170px
    }
}

.mv .title .copy {
    display: none;
    position: absolute;
    z-index: 9999
}

.mv .title .copy.c01 {
    top: 280px;
    left: -70px;
    width: 324px
}

@media screen and (max-width: 767px) {
    .mv .title .copy.c01 {
        top: 86px;
        left: -30px;
        width: 144px
    }
}

.mv .title .copy.c02 {
    bottom: 296px;
    right: 4px;
    width: 240px;
    height: auto;
}

@media screen and (max-width: 1400px)and (min-width: 980px) {
    .mv .title .copy.c02 {
        bottom: 110px;
        right: 50px;
        width: 200px;
        height: 160px
    }
}

@media screen and (max-width: 767px) {
    .mv .title .copy.c02 {
        bottom: 124px;
        right: -10px;
        width: 100px;
    }
}

.mv .title .st0 {
    fill: #08b14b
}

@media screen and (max-width: 767px) {
    .mv .title .st0 {
        width: 136px
    }
}

.mv .title .st1 {
    stroke: #fff;
    stroke-width: 3px;
    stroke-linecap: round;
    stroke-linejoin: round
}

.mv .wrap-owan {
    opacity: 0;
    position: absolute;
    top: 150px;
    right: 8dvw;
    z-index: 9;
    animation-delay: .1s;
    animation: .6s ease-in-out forwards popup
}

@media screen and (max-width: 767px) {
    .mv .wrap-owan {
        display: none
    }
}

.mv .wrap-owan .owan {
    height: 124px
}

.mv .wrap-beer {
    opacity: 0;
    position: absolute;
    bottom: 120px;
    left: 2dvw;
    z-index: 2;
    animation-delay: .1s;
    animation: .4s ease-in-out forwards popup
}

@media screen and (max-width: 1400px) {
    .mv .wrap-beer {
        display: none
    }
}

@media screen and (max-width: 767px) {
    .mv .slide {
        display: flex;
        flex-direction: column
    }
}

.mv .slide>.wrap {
    width: 100%
}

@media screen and (max-width: 767px) {
    .mv .slide>.wrap {
        margin-top: 40px
    }
}

.mv .slide ul {
    padding: 0 0 100px
}

@media screen and (max-width: 980px)and (min-width: 768px) {
    .mv .slide ul {
        margin-top: 80px
    }
}

.mv .slide .link:not(.text) {
    width: 530px;
    height: 530px;
    border-radius: 100px;
    background-position: center;
    background-size: 100%
}

@media screen and (max-width: 767px) {
    .mv .slide .link:not(.text) {
        width: 215px;
        height: 215px;
        border-radius: 40px
    }
}

.mv .slide .text {
    position: absolute;
    bottom: -44px;
    right: 75px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 325px;
    min-height: 85px;
    padding: 12px 22px;
    background-color: rgba(255, 255, 255, .9);
    border-radius: 20px;
    font-size: 16px;
    color: #08b14b;
    line-height: 1.8;
    transition: .4s
}

@media screen and (max-width: 767px) {
    .mv .slide .text {
        right: 10px;
        width: calc(100dvw - 112px);
        max-width: unset;
        padding: 12px 18px;
        font-size: 14px;
        font-weight: 500
    }
}

@media screen and (max-width: 767px)and (min-width: 420px) {
    .mv .slide .text {
        right: 0;
        width: 100%
    }
}

.swiper-slide.swiper-slide-active,
.swiper-slide.swiper-slide-prev {
    display: flex;
    justify-content: flex-end
}

@media screen and (max-width: 980px)and (min-width: 768px) {
    .swiper-slide.swiper-slide-active {
        justify-content: center;
        margin-right: 40px
    }
}

@media screen and (max-width: 767px)and (min-width: 420px) {
    .swiper-slide.swiper-slide-active {
        margin-left: 22px;
        justify-content: center
    }
}

@media screen and (max-width: 767px) {

    .swiper-slide.swiper-slide-next .text,
    .swiper-slide.swiper-slide-prev .text {
        display: none
    }

    .swiper-slide.swiper-slide-prev .link {
        margin-right: -26px
    }
}

.swiper-button {
    content: "";
    position: absolute;
    display: flex;
    align-items: center;
    top: 50%;
    width: 65px;
    height: 80px;
    background-color: rgba(255, 255, 255, .9);
    transform: translateY(-50%);
    z-index: 10;
    cursor: pointer;
    transition: .2s
}

@media screen and (max-width: 767px) {
    .swiper-button {
        top: 102.5px;
        transform: unset;
        width: 32px;
        height: 42px
    }
}

.swiper-button.prev {
    justify-content: flex-start;
    padding-left: 14px;
    left: 0;
    border-radius: 0 40px 40px 0
}

@media screen and (max-width: 767px) {
    .swiper-button.prev {
        padding-left: 8px
    }
}

.swiper-button.prev img {
    transform: scale(-1, 1)
}

@media screen and (max-width: 767px) {
    .swiper-button.prev img {
        width: 10px;
        height: auto
    }
}

.swiper-button.next {
    justify-content: flex-end;
    padding-right: 14px;
    right: 0;
    border-radius: 40px 0 0 40px
}

@media screen and (max-width: 767px) {
    .swiper-button.next {
        padding-right: 8px
    }
}

@media screen and (max-width: 767px) {
    .swiper-button.next img {
        width: 10px;
        height: auto
    }
}

.swiper-button:hover {
    opacity: 1;
    background-color: #fff
}

.swiper-button:hover.prev {
    padding-left: 12px
}

.swiper-button:hover.next {
    padding-right: 12px
}

.about {
    margin-top: 160px
}

@media screen and (max-width: 980px)and (min-width: 768px) {
    .about {
        margin-top: 80px
    }
}

@media screen and (max-width: 767px) {
    .about {
        height: auto;
        margin-top: 40px
    }
}

.about .cont {
    position: relative
}

@media screen and (max-width: 980px)and (min-width: 768px) {
    .about .cont {
        padding-left: 40px
    }
}

@media screen and (max-width: 767px) {
    .about .cont {
        flex-direction: column;
        height: auto;
        padding: 20px 34px
    }
}

.about .title h2 {
    display: inline-block;
    font-size: 32px;
    font-weight: 900;
    color: #00507e
}

@media screen and (max-width: 767px) {
    .about .title h2 {
        font-size: 24px
    }
}

.overview {
    flex-direction: column;
    width: 100%
}

.overview .list {
    margin-top: 50px;
    width: 100%;
    background-color: #fff;
    border-radius: 20px
}

.overview .list li {
    display: flex;
    align-items: center;
    padding: 36px 24px;
    border-bottom: 5px solid #fffa7e
}

@media screen and (max-width: 767px) {
    .overview .list li {
        padding: 20px;
        flex-direction: column
    }
}

.overview .list h3 {
    font-size: 20px
}

@media screen and (max-width: 767px) {
    .overview .list h3 {
        padding: 5px 6px 6px;
        justify-content: flex-start;
        width: 100%;
        font-size: 16px
    }
}

.overview .list p {
    padding-left: 14px;
    font-size: 26px;
    font-weight: 700;
    color: #00507e
}

@media screen and (max-width: 767px) {
    .overview .list p {
        padding: 16px 0 0;
        width: 100%;
        font-size: 20px
    }
}

.sokai {
    margin-top: 160px
}

@media screen and (max-width: 767px) {
    .sokai {
        overflow-x: hidden;
        margin-top: 90px
    }
}

.sokai .title {
    width: 100%;
    margin-top: 50px
}

@media screen and (max-width: 767px) {
    .sokai .title {
        order: 1;
        margin-top: 0
    }
}

.sokai .title h2 {
    font-size: 40px;
    line-height: 1.4
}

.sokai .text {
    width: 600px
}

@media screen and (max-width: 767px) {
    .sokai .text {
        order: 3;
        width: 100%
    }
}

.sokai .text p {
    position: relative;
    margin-top: 70px;
    font-size: 20px;
    font-weight: 500;
    color: #00507e;
    line-height: 2;
    z-index: 10;
}

@media screen and (max-width: 767px) {
    .sokai .text p {
        margin-top: 24px;
        font-size: 14px
    }
}

.sokai .image {
    position: relative;
    width: calc(100% - 600px)
}

@media screen and (max-width: 767px) {
    .sokai .image {
        order: 2;
        width: 100%;
        height: 320px
    }

    .sokai .image img {
        position: absolute;
        top: 0;
        right: -60px;
        width: 380px
    }
}

.sokai .wrap-mofmof {
    position: absolute;
    top: 0;
    left: -30px;
    z-index: 9
}

@media screen and (max-width: 767px) {
    .sokai .wrap-mofmof {
        left: 0
    }

    .sokai .wrap-mofmof .mofmof {
        width: 140px;
        height: 140px
    }

    .sokai .wrap-mofmof .mofmof svg {
        height: 138px
    }
}

.sokai .list {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 22px 0;
    margin-top: 70px
}

@media screen and (max-width: 767px) {
    .sokai .list {
        margin-top: 36px
    }
}

.sokai dd {
    width: calc(100% - 106px);
    font-weight: 500;
    padding-left: 20px;
    font-size: 18px;
    color: #00507e;
    line-height: 1.6
}

.sokai dd span {
    font-weight: 500
}

@media screen and (max-width: 767px) {
    .sokai dd {
        padding-left: 14px;
        width: calc(100% - 70px);
        font-size: 16px;
        line-height: 1.4
    }
}

.sokai dd small {
    font-size: 16px
}

.sokai .link {
    margin-top: 40px
}

@media screen and (max-width: 767px) {
    .sokai .link {
        margin-top: 36px
    }
}

.news {
    position: relative;
    padding-top: 150px
}

@media screen and (max-width: 767px) {
    .news {
        padding-top: 100px
    }
}

.news::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    width: 100%;
    height: 600px;
    background: url(../img/top/bk_wave02.svg) no-repeat top left 100%;
    z-index: 2
}

.news .cont {
    position: relative;
    z-index: 4
}

@media screen and (max-width: 767px) {
    .news .cont {
        padding-right: 34px
    }
}

.news h2 {
    display: inline-block;
    width: 100%;
    font-size: 42px;
    font-weight: 900;
    color: #00507e
}

.news ul {
    margin-top: 50px;
    gap: 20px 0
}

@media screen and (max-width: 767px) {
    .news ul {
        margin-top: 56px;
        gap: 28px 0
    }
}

.news ul .title {
    max-width: calc(100% - 254px);
    width: 100%
}

@media screen and (max-width: 767px) {
    .news ul .title {
        max-width: unset
    }
}

.contents {
    position: relative;
    margin: 200px 0 0;
    padding-bottom: 200px
}

@media screen and (max-width: 767px) {
    .contents {
        margin: 0;
        padding: 100px 0 90px
    }
}

.contents .bk-image {
    display: block;
    position: absolute;
    top: -400px;
    left: 50%;
    transform: translateX(-50%);
    overflow-x: hidden;
    z-index: 1
}

@media screen and (max-width: 767px) {
    .contents .bk-image {
        width: 100%;
        top: -700px;
        left: 0;
        transform: translateX(0)
    }
}

.contents .cont {
    position: relative;
    z-index: 2
}

.contents h2 {
    font-size: 32px;
    color: #00507e
}

@media screen and (max-width: 767px) {
    .contents h2 {
        font-size: 24px
    }
}

.contents .line {
    margin: 100px 0 0
}

@media screen and (max-width: 767px) {
    .contents .line {
        padding-right: 34px
    }
}

.contents .line a,
.contents .line img {
    width: 100%
}

.contents .line a {
    display: block
}

.contents .line a:hover img {
    transform: scale(1.02)
}

.contents .line img {
    transition: .4s
}

.contents .line p {
    padding: 10px 10px 0;
    font-weight: 500
}

@media screen and (max-width: 767px) {
    .contents .line p {
        font-size: 14px;
        line-height: 1.4
    }
}

.contents-list {
    margin-top: 50px
}

@media screen and (max-width: 767px) {
    .contents-list {
        margin-top: 52px
    }
}

.timeschedule{
    padding-bottom: 200px;
}

.timeschedule h2 {
    display: inline-block;
    font-size: 32px;
    font-weight: 900;
    color: #00507e
}

.timeschedule ul {
    margin-top: 50px;
    width: 100%
}

@media screen and (max-width: 767px) {
    .timeschedule{
        padding-bottom: 80px;
    }
    .timeschedule ul {
        margin-top: 52px;
        padding-right: 34px
    }
}

.timeschedule ul li {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: 36px 0 34px;
    border-radius: 30px;
    background-color: #fff
}

.timeschedule ul li h3 {
    color: #00507e;
    font-size: 20px
}

.wrap-timetable {
    position: relative;
    z-index: 2;
    width: 100%
}

@media screen and (max-width: 767px) {
    .wrap-timetable {
        display: block;
        overflow-x: scroll;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 20px
    }
}

.timetable {
    table-layout: fixed;
    margin-top: 60px;
    width: 100%
}

.timetable thead th {
    padding: 30px 0;
    width: calc((100% - 60px)/3);
    background-color: #fff;
    border-radius: 38px 38px 0 0;
    border-right: 5px solid #fffa7e;
    border-left: 5px solid #fffa7e;
    text-align: center;
    vertical-align: middle
}

@media screen and (max-width: 767px) {
    .timetable thead th {
        width: 168px
    }
}

.timetable thead th.th-time {
    width: 60px;
    background-color: unset;
    border-radius: 0
}

@media screen and (max-width: 767px) {
    .timetable thead th.th-time {
        position: sticky;
        top: 0;
        left: -2px;
        background-color: #fffa7e;
        z-index: 4
    }
}

.timetable thead th .link {
    text-decoration: underline;
    color: #00507e
}

.timetable tbody td {
    position: relative;
    border-right: 5px solid #fffa7e;
    border-left: 5px solid #fffa7e;
    background-color: #fff;
    height: 100px
}

.timetable tbody td::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #00507e;
    z-index: 2
}

.timetable tbody td:nth-of-type(1) .plan {
    background-color: #f5adad
}

.timetable tbody td:nth-of-type(1)::before {
    left: 0;
    width: 100%
}

.timetable tbody td:nth-of-type(2) .plan {
    background-color: #d3fafd
}

.timetable tbody td:nth-of-type(3) .plan {
    background-color: #74ffab
}

.timetable tbody td:nth-of-type(4) .plan {
    background-color: #f5adad
}

.timetable tbody td.no-border::before {
    display: none
}

.timetable tbody th {
    position: relative;
    height: 100px
}

@media screen and (max-width: 767px) {
    .timetable tbody th {
        position: sticky;
        top: 0;
        left: -2px;
        background-color: #fffa7e;
        z-index: 4
    }

    .timetable tbody th.th-time span {
        display: block;
        width: 100%;
        background-color: #fffa7e
    }

    .timetable tbody th:last-of-type {
        height: 20px
    }
}

.timetable tbody .tb-time {
    position: relative;
    height: 100%
}

.timetable tbody .top {
    position: absolute;
    top: -10px;
    left: 0
}

.timetable tbody .half {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%)
}

.timetable tbody .schedule {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 10px;
    height: 100%;
    width: 100%
}

.timetable tbody .schedule p {
    display: flex;
    flex-grow: 1;
    height: 100%;
    margin-bottom: 4px
}

@media screen and (max-width: 767px) {
    .timetable tbody .schedule p {
        word-break: break-word !important
    }
}

.timetable tbody .schedule.half {
    top: 0;
    left: 0;
    transform: unset;
    height: 50%
}

.timetable tbody .schedule.half.bottom {
    top: unset;
    bottom: 0
}

.timetable tbody dl {
    display: flex;
    flex-wrap: wrap
}

.timetable tbody dl+p {
    margin-top: 8px
}

.timetable tbody dt {
    margin-bottom: 4px;
    width: 50px;
    font-weight: 500
}

.timetable tbody dt:last-of-type {
    margin-bottom: 0
}

.timetable tbody dd {
    margin-bottom: 4px;
    width: calc(100% - 50px);
    font-weight: 500;
    white-space: normal
}

.timetable tbody dd:last-of-type {
    margin-bottom: 0
}

.timetable tbody .allday {
    color: #00507e
}

.timetable tbody .allday p {
    color: #00507e;
    align-items: center;
    line-height: 2
}

.timetable tbody .bk-dousoukai {
    background-color: #74ffab !important;
    color: #00507e;
    font-size: 14px;
    justify-content: center;
    align-items: center
}

.timetable tbody .bk-sokai {
    background-color: #d3fafd !important;
    color: #00507e;
    justify-content: center;
    font-size: 14px;
    align-items: center
}

.timetable tbody .bk-hole {
    background-color: #ffe674 !important;
    color: #00507e;
    font-size: 14px;
    align-items: center;
    justify-content: center
}

.timetable tbody .bk-hole p {
    text-align: center
}

.timetable tbody .bk-animal {
    background-color: #ffb99c !important;
    color: #00507e;
    font-size: 14px;
    align-items: center;
    justify-content: center
}

.timetable tbody .bk-animal p {
    width: 100%;
    justify-content: flex-start;
    align-items: center;
    justify-content: center;
    line-height: 2
}

.timetable tbody .bottom-msg {
    position: absolute;
    bottom: 0;
    padding: 10px;
    text-indent: -12px;
    padding-left: 22px;
    flex-grow: unset !important;
    height: auto !important;
    word-break: break-word !important;
    white-space: pre-wrap
}

.reunion {
    position: relative;
    margin-top: 150px;
    padding: 150px 0 200px;
    color: #fff
}

@media screen and (max-width: 767px) {
    .reunion {
        padding-bottom: 100px
    }
}

.reunion h2 {
    font-size: 32px;
    color: #fff
}

@media screen and (max-width: 767px) {
    .reunion h2 {
        font-size: 24px;
        color: #fff
    }
}

.reunion .lists {
    width: 100%;
    margin-top: 50px;
    position: relative
}

@media screen and (min-width: 768px) {
    .reunion .image {
        position: absolute;
        top: 0;
        left: 390px
    }

    .reunion .image>img {
        width: 640px
    }
}

@media screen and (max-width: 767px) {
    .reunion .image {
        text-align: right;
        position: relative;
        right: 0
    }
}

.reunion .image .wrap-beer {
    position: absolute;
    top: -180px;
    left: 200px
}

@media screen and (max-width: 767px) {
    .reunion .image .wrap-beer {
        left: 0;
        top: unset;
        bottom: 0
    }

    .reunion .image .wrap-beer .beer {
        height: 108px;
        width: 88px
    }

    .reunion .image .wrap-beer svg {
        width: 100px
    }
}

.reunion .list {
    position: relative;
    z-index: 1;
    width: 430px;
    border: 1px solid #fff;
    border-radius: 10px
}

@media screen and (max-width: 767px) {
    .reunion .list {
        margin-top: 50px;
        width: calc(100% - 34px);
        border-color: #fff
    }
}

.reunion .list+.list {
    margin-top: 28px
}

.reunion dt {
    display: flex;
    align-items: center;
    padding: 10px 10px 0;
    font-size: 26px;
    color: #fff
}

@media screen and (max-width: 767px) {
    .reunion dt {
        font-size: 20px;
        color: #fff
    }
}

.reunion dd {
    margin-top: 10px;
    padding: 10px 0;
    border-top: 1px solid #fff
}

.reunion dd div {
    display: block;
    padding: 8px 20px;
    font-size: 20px;
    color: #fff;
    line-height: 2
}

@media screen and (max-width: 767px) {
    .reunion dd div {
        font-size: 14px
    }
}

.reunion dd div:nth-child(2) {
    color: #08b14b;
    background-color: #fff852
}

.reunion dd div:nth-child(3) {
    color: #fff852;
    background-color: #2bc3f3
}

.reunion dd div:nth-child(4) {
    color: #fff;
    background-color: #ffa775
}

.reunion dd div .link {
    display: block;
    width: 100%;
    text-align: left
}

.reunion dd .btn {
    margin: 10px 20px
}

.reunion .attention {
    margin: 0 20px;
    color: #fe7575;
    background-color: #fff
}

.reunion .attention::after {
    border: 2px solid #fff;
    background: #fe7575 url("../img/common/icon_arrow-bold.svg") center no-repeat
}

@media screen and (max-width: 767px) {
    .reunion .attention::after {
        background-size: 22px
    }
}

.reunion .icon {
    margin-right: 12px;
    width: 40px
}

.reunion dl+.link {
    margin-top: 50px
}

.meeting {
    padding-top: 200px;
    padding-bottom: 200px
}

@media screen and (max-width: 767px) {
    .meeting {
        padding-bottom: 200px
    }
}

.meeting .cont {
    position: relative
}

@media screen and (min-width: 768px) {
    .meeting .image {
        position: absolute;
        top: 0;
        right: -40px
    }
}

@media screen and (max-width: 767px) {
    .meeting .image {
        position: relative;
        text-align: right
    }
}

.meeting .image::before {
    content: "";
    position: absolute;
    top: -40px;
    left: -60px;
    display: block;
    width: 200px;
    height: 200px;
    background: url("../img/top/animal_mofmof.png") top/contain;
    z-index: 1
}

@media screen and (max-width: 767px) {
    .meeting .image::before {
        top: 10px;
        left: -30px;
        width: 160px;
        height: 160px
    }
}

.meeting h2 {
    font-size: 40px;
    color: #00507e;
    line-height: 1.2;
    font-weight: 900
}

@media screen and (max-width: 767px) {
    .meeting h2 {
        font-size: 24px
    }
}

.meeting .note {
    position: relative;
    margin-top: 50px;
    color: #00507e;
    z-index: 1
}

@media screen and (max-width: 767px) {
    .meeting .note {
        margin-top: 0
    }
}

.meeting h3 {
    font-size: 26px;
    line-height: 1.8
}

@media screen and (max-width: 767px) {
    .meeting h3 {
        font-size: 20px
    }
}

.meeting h3+p {
    margin-top: 58px;
    font-size: 20px;
    line-height: 1.8;
    font-weight: 500
}

@media screen and (max-width: 767px) {
    .meeting h3+p {
        margin-top: 36px;
        padding-right: 34px;
        font-size: 14px
    }
}

.meeting .date {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 0;
    margin-top: 60px;
    font-size: 20px
}

@media screen and (max-width: 767px) {
    .meeting .date {
        margin-top: 36px;
        padding-right: 34px;
        font-size: 14px;
        line-height: 2
    }
}

.meeting .date dt {
    font-weight: 500;
    width: 80px
}

.meeting .date dd {
    font-weight: 500;
    width: calc(100% - 80px);
    padding-left: 22px
}

@keyframes maguro {
    0% {
        transform: rotateY(0deg)
    }

    25% {
        transform: rotateY(15deg)
    }

    50% {
        transform: rotateY(0)
    }

    75% {
        transform: rotateY(-15deg)
    }

    100% {
        transform: rotateY(0deg)
    }
}

@keyframes wave {

    0%,
    100% {
        transform: translateY(0)
    }

    50% {
        transform: translateY(-40px)
    }
}

.fes {
    position: relative;
    margin-top: 30px;
    padding-bottom: 80px;
    color: #00507e;
    background-color: #d3fafd
}

@media screen and (max-width: 767px) {
    .fes {
        margin-top: 80px;
        padding-top: 0;
        padding-bottom: 0;
        overflow-x: hidden
    }
}

.fes::before {
    content: "";
    display: block;
    position: absolute;
    width: 100%;
    height: 600px;
    background: url(../img/top/bk_wave01.svg) no-repeat top left 100%
}

.fes .title {
    position: relative;
    display: flex;
    align-items: center;
    flex-direction: row;
    margin-top: 88px;
    z-index: 2
}

@media screen and (max-width: 767px) {
    .fes .title {
        order: 1;
        margin-top: 0
    }
}

.fes .title img {
    width: 250px
}

@media screen and (max-width: 767px) {
    .fes .title img {
        width: 220px
    }
}

.fes .link {
    margin-top: 70px
}

@media screen and (max-width: 767px) {
    .fes .link {
        margin-top: 38px
    }
}

.fes h2 {
    font-size: 40px;
    line-height: 1.4;
    font-weight: 900
}

@media screen and (max-width: 767px) {
    .fes h2 {
        font-size: 30px
    }
}

.fes .text {
    margin-top: 50px;
    width: 600px
}

@media screen and (max-width: 767px) {
    .fes .text {
        order: 3;
        width: 100%
    }
}

.fes .image {
    position: relative;
    width: calc(100% - 600px)
}

@media screen and (max-width: 767px) {
    .fes .image {
        order: 2;
        width: 100%;
        height: 270px
    }
}

.fes .image .ifes {
    position: absolute;
    top: -200px;
    left: -200px;
    width: 640px;
    z-index: 1
}

@media screen and (max-width: 767px) {
    .fes .image .ifes {
        top: 0;
        width: 110dvw;
        left: -54px
    }
}

.fes .image .maguro {
    position: absolute;
    bottom: -60px;
    left: -20px;
    width: 464px;
    animation: 2s ease-in-out infinite maguro
}

@media screen and (max-width: 767px) {
    .fes .image .maguro {
        bottom: -300px;
        left: auto;
        right: 20px;
        width: 210px
    }
}

.fes .wrap-owan {
    opacity: 0;
    position: absolute;
    top: 40px;
    left: 30px;
    z-index: 3;
    animation-delay: .1s
}

@media screen and (max-width: 767px) {
    .fes .wrap-owan {
        top: 180px;
        left: 110px
    }

    .fes .wrap-owan .owan {
        width: 114px;
        height: 114px
    }

    .fes .wrap-owan svg {
        width: 114px
    }
}

.fes .note {
    position: relative;
    margin-top: 54px;
    z-index: 2
}

@media screen and (max-width: 767px) {
    .fes .note {
        margin-top: 360px
    }
}

.fes h3 {
    font-size: 26px
}

@media screen and (max-width: 767px) {
    .fes h3 {
        font-size: 20px;
        font-weight: 900
    }
}

.fes .note {
    margin-top: 50px;
    font-size: 20px;
    line-height: 2;
    font-weight: 500
}

@media screen and (max-width: 767px) {
    .fes .note {
        position: relative;
        padding-right: 34px;
        margin-top: 46px;
        font-size: 14px;
        z-index: 3
    }
}

.fes .note ul {
    margin: 6px 0
}

.fes .note li {
    font-weight: 500
}

.fes .wave {
    position: absolute;
    top: 200px;
    right: 0;
    width: 500px;
    animation: 4s ease-in-out infinite wave
}

@media screen and (max-width: 767px) {
    .fes .wave {
        display: none
    }
}

.map .main-map {
    overflow-x: hidden
}

.map .main-map,
.map svg {
    width: 100%
}

.map .main-map,
.map .cont {
    position: relative
}

.map a,
.map a .svg-icon-num,
.map a .svg-icon-bk{
    transition: .4s;
}

.map a:active .svg-icon-bk,
.map a:hover .svg-icon-bk,
.map a.is-active .svg-icon-bk {
    fill: #08b14b
}

.map a:active .svg-icon-num,
.map a:hover .svg-icon-num,
.map a.is-active .svg-icon-num {
    fill: #fff
}

.map h2 {
    display: inline-block;
    font-size: 32px;
    font-weight: 900;
    color: #00507e;
}

@media screen and (max-width: 767px) {
    .map .cont {
        padding-left: 0
    }
}

.map .text {
    position: absolute;
    bottom: 60px;
    left: 0
}

@media screen and (max-width: 767px) {
    .map .text {
        position: static;
        padding-left: 34px;
        background-color: #fff;
        width: 100%;
        padding-bottom: 40px
    }
    .map .text h2{
        position: relative;
        top: -20px;
    }
}

.map .image-list {
    margin-top: 14px
}

@media screen and (max-width: 767px) {
    .map .image-list {
        padding-right: 34px
    }
}

.map .image-list li {
    display: none;
    width: 280px;
    aspect-ratio: 4 / 3;
    height: auto;
    background-color: #fff852;
    border: 4px solid #fff
}

@media screen and (max-width: 767px) {
    .map .image-list li {
        width: 100%;
        height: auto;
        aspect-ratio: 16/9
    }
}

.map .image-list li.is-active {
    display: block
}

.map .image-list li img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.map .text-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-top: 14px;
    gap: 10px;
    width: auto;
}

@media screen and (max-width: 767px) {
    .map .text-list {
        width: 100%;
        flex-direction: unset;
        gap: 14px 0;
        flex-wrap: wrap;
        margin-top: 0;
        padding-right: 34px;
    }
}

.map .text-list li {
    display: inline;
    cursor: pointer;
    font-weight: 500;
    padding: 2px 8px 4px 2px;
    background-color: #fff;
}

@media screen and (max-width: 767px) {
    .map .text-list li {
        display: block;
        width: 50%;
        font-size: 14px;
        padding: 0;
    }
}

.map .text-list li img {
    margin: 0 10px
}

.map .text-list li.is-active {
    font-weight: 700;
    color: #08b14b
}

.map a.is-active {
    transform: scale(1.4);
    transform-origin: bottom center;
}

.googlemap {
    overflow-x: hidden
}

.googlemap iframe {
    width: 100%;
    height: 800px
}

@media screen and (max-width: 767px) {
    .googlemap iframe {
        height: 375px
    }
}

.access {
    padding: 120px 0 170px;
    color: #00507e;
    overflow-x: hidden
}

@media screen and (max-width: 767px) {
    .access {
        padding: 44px 0 60px
    }
}

.access h2 {
    display: inline-block;
    font-size: 40px;
    line-height: 1.4;
    font-weight: 900
}

@media screen and (max-width: 767px) {
    .access h2 {
        font-size: 30px
    }
}

.access .note {
    width: 100%;
    margin-top: 54px
}

.access h3 {
    font-size: 26px
}

@media screen and (max-width: 767px) {
    .access h3 {
        font-size: 20px
    }
}

.access .text {
    font-size: 20px;
    margin-top: 18px;
    font-weight: 500;
    line-height: 1.8
}

@media screen and (max-width: 767px) {
    .access .text {
        font-size: 14px
    }
}

.access .text+.text {
    margin-top: 30px
}

.coming {
    margin-top: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: 60px;
    width: 100%;
    max-width: 320px;
    border-radius: 30px;
    font-size: 20px;
    background-color: #fff;
    color: #00507e
}

.coming-block{
    max-width: 100%;
    height: 120px;
}   

@media screen and (max-width: 767px) {
    .coming {
        font-size: 20px
    }
}

.mv .slide .link:not(.text):hover {
    opacity: 1;
}

.flex-colum{
 flex-direction: column;
}

.teaser2025 .reunion{
    margin-top: 50px;
}

@media screen and (max-width: 767px) {
    #ancTimeSchedule{
        padding-right: 34px;
    }
}

.fes.form{background:none;}
.fes.form::before{display:none;}
.fes.form .title{margin-top: 0;}
.fes.form .text{width: 100%;}
.form .title h2{
    font-size: 32px;
    color: #fff;
}
.form .image{
    position: absolute;
    top: 0;
    right: 0;
}

.form .image img{
    position: absolute;
    top: -80px;
    width: 500px;
    z-index: 0;
}

.form .image .wrap-mofmof{
    position: relative;
    top: 140px;
    left: 60px;
    z-index: 2;
}

@media screen and (max-width: 767px) {
    .fes.form{
        margin-top: 0;
        overflow: visible;
    }
    .form .title{
        order: 1;
        padding-right: 34px;
    }
    .form .title h2{
        font-size: 24px;
    }
    .form .text{
        order: 2;
    }
    .form .image{
        order: 3;
        position: relative;
        height: 300px;
        overflow: hidden;
    }
    .form .image img{
        position: absolute;
        top: 40px;
        width: 400px;
    }
    .form .image .wrap-mofmof{
        top: 0;
        left: 0;
    }
    .form .wrap-mofmof .mofmof {
        width: 140px;
        height: 140px;
        margin-left: auto;
    }
    .form .wrap-mofmof .mofmof svg{
        height: 138px;
    }
}

.main-map-pc{
    background-color: #fff;
}
.map-bk{
    position: relative;
    top: 0;
    left: 50%;
    height: 684px;
    width: 1500px;
    transform: translateX(-50%);
}

.map-bk::after,
.map-bk::before{
    content: "";
    position: absolute;
    top: 0;
    display:block;
    width: 100%;
    height: 100%;
    background: no-repeat url("/for-graduate/homecoming/2025/assets/img/top/map-bk_mask.svg") top right;
}

.map-bk::before{
    left: -100%;
    transform: scale(-1, 1);
}

.map-bk::after{
    right: -100%;
    background-position: top left;
    transform: scale(-1, 1);
}

.map-bk img{
    width: 100%;
}

.map-bk img[src$="map-bk_mask.svg"],
.map-bk img[src$="map-bk_mask-sp.svg"]{
    position: absolute;
    top: 0;
    left: 0;
}

.map-icons{
    position: absolute;
    top: 0;
    left: 50%;
    width: 1500px;
    height: 100%;
    transform: translateX(-50%);
}

.map-icons a{
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 78px;
    height: 78px;
}

.map-icons a::after{
    content: "";
    position: absolute;
    top: 15px;
    left: 0;
    display: inline-block;
    width: 76px;
    height: 40px;
    background: no-repeat url("/for-graduate/homecoming/2025/assets/img/top/icon_map-num01.svg") center/contain;
    z-index: 9;
}

.map-icons a:hover::after,
.map-icons a.is-active::after{
    height: 36px;
    filter: saturate(0) brightness(200%);
}

a.js-SvgIcon01 {
 top: 44%;
 left: 55.6%;
 z-index: 7;
}

a.js-SvgIcon02 {
 top: 48%;
 left: 65%;
 z-index: 8;
}

a.js-SvgIcon02::after {
   background-image: url("/for-graduate/homecoming/2025/assets/img/top/icon_map-num02.svg");
}

a.js-SvgIcon03 {
 top: 33%;
 left: 51%;
 z-index: 6;
}

a.js-SvgIcon03::after {
   background-image: url("/for-graduate/homecoming/2025/assets/img/top/icon_map-num03.svg");
}

a.js-SvgIcon04 {
 top: 28.6%;
 left: 59.5%;
 z-index: 2;
}

a.js-SvgIcon04::after {
   background-image: url("/for-graduate/homecoming/2025/assets/img/top/icon_map-num04.svg");
}

a.js-SvgIcon05 {
 top: 62%;
 left: 66%;
 z-index: 9;
}

a.js-SvgIcon05::after {
   background-image: url("/for-graduate/homecoming/2025/assets/img/top/icon_map-num05.svg");
}

a.js-SvgIcon06 {
 top: 65%;
 left: 70%;
 z-index: 10;
}

a.js-SvgIcon06::after {
   background-image: url("/for-graduate/homecoming/2025/assets/img/top/icon_map-num06.svg");
}

a.js-SvgIcon07 {
 top: 34%;
 left: 57%;
 z-index: 3;
}

a.js-SvgIcon07::after {
   background-image: url("/for-graduate/homecoming/2025/assets/img/top/icon_map-num07.svg");
}

a.js-SvgIcon08 {
 top: 14%;
 left: 42%;
}

a.js-SvgIcon08::after {
   background-image: url("/for-graduate/homecoming/2025/assets/img/top/icon_map-num08.svg");
}

a.js-SvgIcon09 {
 top: 15%;
 left: 36%;
}

a.js-SvgIcon09::after {
   background-image: url("/for-graduate/homecoming/2025/assets/img/top/icon_map-num09.svg");
}

a.js-SvgIcon10 {
 top: 38%;
 left: 62%;
 z-index: 5;
}

a.js-SvgIcon10::after {
   background-image: url("/for-graduate/homecoming/2025/assets/img/top/icon_map-num10.svg");
}

@media screen and (max-width: 767px) {
    .map-icons a::after{
        top: 65%;
        left: 50%;
        width: 20px;
        height: 20px;
        transform: translate(-50%);
    }
    
    .map-icons a:hover::after,
    .map-icons a.is-active::after{
        height: 20px;
    }
    .map-bk {
        height: auto;
        width: 100%;
    }
    .map-icons{
        left: 0;
        width: 100%;
        height: 100%;
        transform: unset;
    }
    .map-icons a{
        width: 40px;
        height: 40px;
    }
    
    a.js-SvgIcon01 {
     top: 49%;
     left: 54%;
    }
    
    a.js-SvgIcon02 {
     top: 50%;
     left: 75%;
    }
    
    a.js-SvgIcon03 {
     top: 38%;
     left: 47%;
    }
    
    a.js-SvgIcon04 {
     top: 29%;
     left: 61.5%;
    }
    
    a.js-SvgIcon05 {
     top: 65%;
     left: 75%;
    }
    
    a.js-SvgIcon06 {
     top: 67%;
     left: 84%;
    }
    
    a.js-SvgIcon07 {
     top: 36%;
     left: 56%;
    }
    
    a.js-SvgIcon08 {
     top: 17.2%;
     left: 30%;
    }
    
    a.js-SvgIcon09 {
     top: 18%;
     left: 18%;
    }
    
    a.js-SvgIcon10 {
     top: 39%;
     left: 69%;
    }
}