@charset "UTF-8";



/*  ----------------------------------------------------------

kv

----------------------------------------------------------  */
.top-kv {
    position: relative;
}

.top-kv ul {
    position: absolute;
    bottom: 20%;
    left: 6%;
    display: flex;
    justify-content: center;
    z-index: 10;
    gap: 2rem;
}

.top-kv ul li a {
    display: flex;
    justify-content: center;
    align-items: center;
    padding-bottom: 0.2rem;
    width: 32rem;
    background: var(--main-color);
    color: #fff;
    height: 7.2rem;
    border-radius: 10rem;
    font-weight: bold;
}

@media screen and (max-width: 767px) {
    .top-kv ul {
        position: relative;
        bottom: auto;
        left: auto;
        transform: none;
        -webkit-transform: none;
        display: block;
        background: var(--bg-color);
        padding: 3rem;
    }

    .top-kv ul li a {
        width: 100%;
        font-weight: bold;
        font-size: 1.8rem;
    }

    .top-kv ul li:not(:last-child) {
        margin-right: 0;
        margin-bottom: 1.5rem;
    }
}



/*  ----------------------------------------------------------

about

----------------------------------------------------------  */
.top-about {
    margin-top: 4rem;
    padding: 0 0 5rem 0;
    background: linear-gradient(to right, var(--bg-color) 15%, transparent 15%);
}

.top-about .wrap {
    display: flex;
    align-items: center;
    padding: 15rem 10rem;
}

.top-about .wrap>* {
    width: 50%;
}

.top-about h2 {
    color: var(--main-color);
    display: flex;
    flex-direction: column;
    font-size: 6.4rem;
    line-height: 1.2;
    margin-top: -2rem;
}

.top-about h2 span {
    display: flex;
    align-items: center;
    font-size: 1.4rem;
    color: #000;
    margin-top: 1.5rem;
}

.top-about h2 span::before {
    content: "";
    width: 6rem;
    height: 0.2rem;
    background: var(--main-color);
    margin-right: 3rem;
    margin-top: 0.25rem;
}

.top-about h3 {
    font-size: 2.2rem;
    margin-bottom: 3rem;
}

.top-about ul {
    display: flex;
    flex-wrap: wrap;
    padding: 0 5rem;
}

.top-about ul li {
    width: calc((100% - 4rem) / 3);
    margin-right: 2rem;
}

.top-about ul li:nth-child(3n) {
    margin-right: 0;
}

.top-about ul li:nth-child(n + 4) {
    margin-top: 4rem;
}

.top-about ul li dl dt {
    font-weight: bold;
    font-size: 1.6rem;
    margin: 2rem 0 1rem 0;
}

@media screen and (max-width: 767px) {
    .top-about {
        padding: 0 0 8rem 0;
        background: linear-gradient(to right, var(--bg-color) 40%, transparent 40%);
    }

    .top-about .wrap {
        display: block;
        padding: 10rem 3rem;
    }

    .top-about .wrap>* {
        width: 100%;
    }

    .top-about h2 {
        font-size: 5.6rem;
        margin-top: 0;
        margin-bottom: 4rem;
    }

    .top-about h3 {
        font-size: 2.0rem;
        margin-bottom: 2rem;
    }

    .top-about ul {
        display: block;
        padding: 0 3rem;
    }

    .top-about ul li {
        width: 100%;
        margin-right: 0;
    }

    .top-about ul li:nth-child(3n) {
        margin-right: 0;
    }

    .top-about ul li:nth-child(n + 4) {
        margin-top: 0;
    }

    .top-about ul li:nth-child(n + 2) {
        margin-top: 4rem;
    }

    .top-about ul li dl dt {
        margin: 1.5rem 0 0.5rem 0;
    }
}



/*  ----------------------------------------------------------

guest

----------------------------------------------------------  */
.top-guest {
    background: var(--bg-color);
    padding: 8rem 5rem;
    margin-top: 0.4rem;
}

.top-guest p {
    margin-bottom: 6rem;
}

.top-guest>ul {
    display: flex;
    flex-wrap: wrap;
}

.top-guest>ul>li {
    width: 25%;
    display: flex;
    align-items: center;
    font-size: 1.2rem;
}

.top-guest>ul>li figure {
    width: 8rem;
}

.top-guest>ul>li figure img {
    width: 8rem;
    height: 8rem;
    object-fit: cover;
    border-radius: 50%;
}

.top-guest>ul>li>ul {
    width: calc(100% - 8rem);
    padding: 0 3rem 0 1rem;
    font-size: 1rem;
    font-weight: bold;
}

.top-guest>ul>li:nth-child(n + 5) {
    margin-top: 3rem;
}

@media screen and (max-width: 767px) {
    .top-guest {
        padding: 8rem 3rem;
    }

    .top-guest p {
        margin-bottom: 4rem;
    }

    .top-guest>ul>li {
        width: 50%;
        display: block;
    }

    .top-guest>ul>li figure {
        width: 12rem;
        margin: 0 auto 1rem auto;
    }

    .top-guest>ul>li figure img {
        width: 12rem;
        height: 12rem;
    }

    .top-guest>ul>li>ul {
        width: 100%;
        padding: 0;
    }

    .top-guest>ul>li>ul li {
        text-align: center;
    }

    .top-guest>ul>li:nth-child(n + 5) {
        margin-top: 0;
    }

    .top-guest>ul>li:nth-child(n + 3) {
        margin-top: 3rem;
    }
}



/*  ----------------------------------------------------------

session

----------------------------------------------------------  */
.top-session {
    padding: 8rem 5rem;
}

.top-session p {
    margin-bottom: 6rem;
}

.top-session .date {
    background: var(--main-color);
    color: #fff;
    display: inline-block;
    font-weight: bold;
    font-size: 1.6rem;
    padding: 0.5rem 2rem 0.6rem 2rem;
    margin-bottom: 2rem;
}

.top-session ul {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-bottom: 6rem;
}

.top-session ul li {
    width: 48%;
}

.top-session ul li:nth-child(n + 3) {
    margin-top: 4%;
}

.top-session .area {
    border: solid 0.3rem var(--main-color);
    background: var(--bg-color);
    width: 56rem;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    padding: 2.5rem 5rem;
}

.top-session .area dl {
    display: flex;
    flex-wrap: wrap;
}

.top-session .area dl dt {
    width: 30%;
    font-weight: bold;
}

.top-session .area dl dd {
    width: 70%;
}

.top-session .area dl dt:nth-of-type(1) {
    color: var(--main-color);
    font-size: 2rem;
}

.top-session .area dl dd:nth-of-type(1) {
    color: var(--main-color);
    font-size: 2rem;
    font-weight: bold;
}

.top-session .area dl dt:not(:last-of-type) {
    margin-bottom: 0.5rem;
}

.top-session .area dl dd:not(:last-of-type) {
    margin-bottom: 0.5rem;
}

@media screen and (max-width: 767px) {
    .top-session {
        padding: 8rem 3rem;
    }

    .top-session p {
        margin-bottom: 4rem;
    }

    .top-session ul {
        display: block;
        margin-bottom: 4rem;
    }

    .top-session ul li {
        width: 100%;
    }

    .top-session ul li:nth-child(n + 3) {
        margin-top: 0;
    }

    .top-session ul li:nth-child(n + 2) {
        margin-top: 2rem;
    }

    .top-session .area {
        width: 100%;
        padding: 2rem;
        display: block;
    }

    .top-session .area dl {
        display: block;
    }

    .top-session .area dl dt {
        width: 100%;
    }

    .top-session .area dl dd {
        width: 100%;
    }

    .top-session .area dl dt:not(:last-of-type) {
        margin-bottom: 0;
    }

    .top-session .area dl dd:not(:last-of-type) {
        margin-bottom: 2rem;
    }
}



/*  ----------------------------------------------------------

access

----------------------------------------------------------  */
.top-access {
    padding: 8rem 5rem;
    background: var(--bg-color);
}

.top-access>p {
    margin-bottom: 6rem;
}

.top-access h3 {
    font-size: 1.6rem;
    margin-bottom: 1rem;
}

.top-access ul li:not(:last-child) {
    margin-bottom: 4rem;
}

.top-access ul li>div {
    display: flex;
    justify-content: space-between;
}

.top-access ul li>div figure {
    width: 35%;
}

.flex_img {
    display: flex;
    justify-content: space-between;
}

.flex_img img {
    width: 48%;
}

.top-access ul li>div>div {
    width: 60%;
}

.top-access ul li dl {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 2.5rem;
}

.top-access ul li dl dt {
    width: 15%;
}

.top-access ul li dl dd {
    width: 85%;
}

.top-access ul li dl dt:not(:last-of-type) {
    margin-bottom: 1rem;
}

.top-access ul li dl dd:not(:last-of-type) {
    margin-bottom: 1rem;
}

@media screen and (max-width: 767px) {
    .top-access {
        padding: 8rem 3rem;
    }

    .top-access>p {
        margin-bottom: 4rem;
    }

    .top-access ul li>div {
        display: block;
    }

    .top-access ul li>div figure {
        width: 100%;
        margin-bottom: 1.5rem;
    }

    .top-access ul li>div>div {
        width: 100%;
    }

    .top-access ul li dl dt {
        width: 25%;
    }

    .top-access ul li dl dd {
        width: 75%;
    }
}



/*  ----------------------------------------------------------

participation

----------------------------------------------------------  */
.top-participation {
    padding: 8rem 5rem;
}

.top-participation>p {
    margin-bottom: 6rem;
}

.top-participation ul {
    display: flex;
    flex-wrap: wrap;
}

.top-participation ul li {
    width: calc((100% - 16rem) / 8);
    margin-right: 2rem;
}

.top-participation ul li:nth-child(8n) {
    margin-right: 0;
}

.top-participation ul li:nth-child(n + 9) {
    margin-top: 2rem;
}

@media screen and (max-width: 767px) {
    .top-participation {
        padding: 8rem 3rem;
    }

    .top-participation>p {
        margin-bottom: 4rem;
    }

    .top-participation .heading-1 span:first-of-type {
        font-size: 4rem;
    }

    .top-participation ul {
        justify-content: space-between;
    }

    .top-participation ul li {
        width: 48%;
        margin-right: 0;
    }

    .top-participation ul li:nth-child(8n) {
        margin-right: 0;
    }

    .top-participation ul li:nth-child(n + 9) {
        margin-top: 0;
    }

    .top-participation ul li:nth-child(n + 3) {
        margin-top: 4%;
    }
}



/*  ----------------------------------------------------------

apply

----------------------------------------------------------  */
.top-apply {
    padding: 8rem 5rem;
    background: var(--bg-color);
}

.top-apply .ttl-wrap {
    display: flex;
    justify-content: center;
}

.top-apply ul {
    display: flex;
    justify-content: center;
}

.top-apply ul li {
    width: 40rem;
}

.top-apply ul li:first-child {
    margin-right: 6rem;
}

.top-apply h3 {
    text-align: center;
    font-size: 1.8rem;
}

.top-apply p {
    margin-top: 2rem;
    height: 16rem;
}

.top-apply ul li a {
    display: flex;
    justify-content: center;
    align-items: center;
    padding-bottom: 0.2rem;
    width: 32rem;
    background: var(--main-color);
    color: #fff;
    height: 7.2rem;
    border-radius: 10rem;
    font-weight: bold;
    margin: 0 auto;
}

@media screen and (max-width: 767px) {
    .top-apply {
        padding: 8rem 3rem;
    }

    .top-apply ul {
        display: block;
    }

    .top-apply ul li {
        width: 100%;
    }

    .top-apply ul li:first-child {
        margin-right: 0;
        margin-bottom: 8rem;
    }

    .top-apply p {
        margin-bottom: 2rem;
        height: auto;
    }

    .top-apply ul li a {
        width: 100%;
    }
}



/*  ----------------------------------------------------------

coming soon

----------------------------------------------------------  */
.comingsoon {
    display: flex;
    align-items: center;
    flex-direction: column;
    padding: 4rem 0 8rem 0;
    line-height: 1;
}

.comingsoon span {
    font-weight: bold;
    font-size: 2.4rem;
    margin-bottom: 1.5rem;
}