#kv {
    background: #102d7e;
    position: relative;
    height: 100vh;
    overflow: hidden;
}
#kv::after {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    background: #162e7e;
    opacity: 0.8;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
}
#kv-slider .slick-slide {
    height: 100vh;
}
#kv-slider .slick-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.kv-inner {
    position: relative;
    z-index: 2;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.kv-logo {
    width: 400px;
    margin: 0 auto;
}
.kv-nav {
    display: flex;
    justify-content: center;
    gap: 70px;
    margin-top: 100px;
}
.kv-nav a {
    font-size: 2rem;
    font-weight: 600;
    color: #fff;
    text-align: center;
    text-decoration: none;
}
.kv-nav a::after {
    content: attr(data-en);
    display: block;
    font-size: 1.2rem;
    font-weight: 500;
    color: #fff;
    letter-spacing: 0.05em;
    font-family: inherit;
}
.kv-nav a:hover {
    opacity: .6;
}

@media screen and (max-width:640px) {
    #kv {
        height: 70vh;
    }
    #kv-slider .slick-slide {
        height: 70vh;
    }
    .kv-logo {
        width: 220px;
    }
    .kv-nav {
        flex-direction: column;
        gap: 20px;
        margin-top: 60px;
    }
    .kv-nav a {
        font-size: 1.7rem;
        font-weight: 600;
        color: #fff;
        text-align: center;
        text-decoration: none;
    }
    .kv-nav a::after {
        content: attr(data-en);
        display: block;
        font-size: 1.2rem;
        font-weight: 500;
        color: #fff;
        letter-spacing: 0.05em;
        font-family: inherit;
    }
}

#concept {
    padding: 120px 0;
    background-color: #102d7e;
}
.concept-logo {
    margin: 0 auto;
    width: 560px;
    margin-bottom: 90px;
}
.description-jp {
    font-size: 1.6rem;
    color: #fff;
    font-weight: 400;
    line-height: 2;
}
.description-en {
    font-size: 1.4rem;
    color: #fff;
    font-weight: 300;
    line-height: 2;
    margin-top: 40px;
}

@media screen and (max-width:640px) {
    #concept {
        padding: 60px 0;
    }
    .concept-logo {
        width: 100%;
        margin-bottom: 30px;
    }
    .description-jp {
        font-size: 1.5rem;
    }
    .description-en {
        margin-top: 25px;
    }
}

.section-title {
    text-align: center;
    color: #102d7e;
    margin-bottom: 60px;
}
.section-title-jp {
    font-size: 2.4rem;
    font-weight: 700;
    padding-bottom: 10px;
    margin-bottom: 10px;
    position: relative;
}
.section-title-jp::after {
    content: "";
    display: block;
    width: 20px;
    height: 1px;
    background-color: #102d7e;
    position: absolute;
    bottom: -1px;
    left: 50%;
    transform: translateX(-50%);
}
.section-title-en {
    font-size: 1.5rem;
    font-weight: 600;
}

@media screen and (max-width:640px) {
    .section-title {
        margin-bottom: 30px;
    }
    .section-title-jp {
        font-size: 2rem;
    }
    .section-title-en {
        font-size: 1.4rem;
    }
}

#intro01 {
    padding: 120px 0 0;
    background-color: #f2f4f9;
}
#intro01 .description-jp,
#intro01 .description-en,
#intro02 .description-jp,
#intro02 .description-en {
    color: #252525;
}
#intro-slider {
    transform: translateY(100px);
}
.intro-slider-item {
    margin: 0 15px;
    border-radius: 10px;
    overflow: hidden;
    position: relative;
}
.intro-slider-item::after {
    content: "";
    width: 100%;
    height: 100%;
    background-color: #000;
    opacity: .5;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
}
.intro-slider-content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    text-align: center;
    color: #fff;
    z-index: 3;
}
.intro-slider-content .text-jp {
    font-size: 2rem;
    font-weight: 600;
    position: relative;
    padding-bottom: 5px;
    margin-bottom: 5px;
}
.intro-slider-content .text-jp::after {
    content: "";
    display: block;
    width: 20px;
    height: 1px;
    background-color: #fff;
    position: absolute;
    bottom: -1px;
    left: 50%;
    transform: translateX(-50%);
}
.intro-slider-content .text-en {
    font-size: 1.2rem;
    font-weight: 400;
}

#intro02 {
    padding: 180px 0 120px;
    background-color: #fff;
}
.intro-image {
    width: 600px;
    margin: 60px auto 0;
}

@media screen and (max-width:640px) {
    #intro01 {
        padding: 60px 0 0;
        background-color: #f2f4f9;
    }
    #intro-slider {
        transform: translateY(30px);
    }
    #intro02 {
        padding: 90px 0 60px;
    }
    .intro-image {
        width: 100%;
        margin-top: 30px;
    }
}

#top-blog-list {
    background-color: #102d7e;
    padding: 120px 0;
}
#top-blog-list .section-title {
    color: #fff;
}
#top-blog-list .section-title-jp::after {
    background-color: #fff;
}

.blog-list {
    display: flex;
    justify-content: center;
    gap: 30px;
    width: 100%;
}
.blog-item {
    width: calc(50% - 15px);
    color: #fff;
}
.blog-item .blog-thumbnail {
    border-radius: 10px;
    overflow: hidden;
}
.blog-item .blog-thumbnail img {
    transition: all .2s;
}
.blog-item:hover .blog-thumbnail img {
    transform: scale(1.02);
}
.blog-item .meta-info {
    display: flex;
    gap: 10px;
    margin-top: 20px;
    font-size: 1.3rem;
}
.blog-item .blog-title {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 15px;
}
.blog-item .excerpt {
    font-size: 1.3rem;
}

@media screen and (max-width:640px) {
    #top-blog-list {
        padding: 60px 0;
    }
    .blog-list {
        flex-direction: column;
    }
    .blog-item {
        width: 100%;
    }
    .blog-item .blog-title {
        font-size: 1.7rem;
    }
}

#programme-goals {
    padding: 120px 0;
    background-color: #bcbdbf;
}
#programme-goals .wide_inner {
    display: flex;
    justify-content: space-between;
    gap: 40px;
}
#programme-goals .textarea {
    width: 50%;
}
#programme-goals .section-title {
    text-align: left;
    color: #fff;
    margin-bottom: 50px;
}
#programme-goals .section-title-jp::after {
    left: 0;
    transform: unset;
    background-color: #fff;
}
#programme-goals .goals-img {
    width: calc(45% - 40px);
}
#programme-goals .goals-headline {
    color: #fff;
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 20px;
}

@media screen and (max-width:640px) {
    #programme-goals {
        padding: 60px 0;
    }
    #programme-goals .wide_inner {
        display: block;
    }
    #programme-goals .textarea {
        width: 100%;
    }
    #programme-goals .section-title {
        text-align: center;
        margin-bottom: 30px;
    }
    #programme-goals .section-title-jp::after {
        left: 50%;
        transform: translateX(-50%);
    }
    #programme-goals .goals-img {
        width: 80%;
        margin: 40px auto 0;
    }
}

#hybrid {
    padding: 120px 0;
    background-color: #fff;
}
#hybrid .description-jp,
#hybrid .description-en {
    color: #252525;
}
.pillers-block {
    position: relative;
}
.piller-img {
    width: 400px;
    padding: 100px;
    margin: 60px auto 0;
}
.pillers-title-wrap {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}
.pillers-title-wrap .piller-title {
    text-align: center;
    position: absolute;
    cursor: pointer;
}
.pillers-title-wrap .piller-title .title-en {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.2;
}
.pillers-title-wrap .piller-title .title-jp {
    font-size: 1.7rem;
    font-weight: 600;
    margin-top: 10px;
    line-height: 1;
}
.pillers-title-wrap .piller-title:nth-child(1) {
    top: 5%;
    left: 50%;
    transform: translateX(-50%);
}
.pillers-title-wrap .piller-title:nth-child(2) {
    top: 20%;
    right: calc(50% - 200px);
    transform: translateX(50%);
}
.pillers-title-wrap .piller-title:nth-child(3) {
    top: 60%;
    right: calc(50% - 200px);
    transform: translateX(50%);
}
.pillers-title-wrap .piller-title:nth-child(4) {
    bottom: 5%;
    left: 50%;
    transform: translateX(-50%);
}
.pillers-title-wrap .piller-title:nth-child(5) {
    top: 60%;
    left: calc(50% - 200px);
    transform: translateX(-50%);
}
.pillers-title-wrap .piller-title:nth-child(6) {
    top: 20%;
    left: calc(50% - 200px);
    transform: translateX(-50%);
}

.modal {
    display: none;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 999;
}
.modal__bg {
    background: rgba(0, 0, 0, 0.8);
    height: 100vh;
    position: absolute;
    width: 100%;
}
.modal__content {
    background: #fff;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 800px;
    min-height: 300px;
    padding: 60px;
    overflow: hidden;
    border-radius: 20px;
}
.modal__content .piller-name-en {
    text-align: center;
    font-size: 1.4rem;
    font-weight: 600;
    line-height: 1.2;
}
.modal__content .piller-name-en br {
    display: none;
}
.modal__content .piller-name-jp {
    text-align: center;
    font-size: 1.8rem;
    font-weight: 600;
    margin-top: 10px;
    line-height: 1;
    padding-bottom: 30px;
    border-bottom: solid 1px #b8b8b8;
    margin-bottom: 30px;
}
.modal__content .piller-desc-jp {
    font-size: 1.5rem;
    font-weight: 400;
    margin-bottom: 20px;
}
.modal__content .piller-desc-en {
    font-size: 1.4rem;
    font-weight: 300;
}
.close-btn {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: solid 1px #252525;
    background-color: #fff;
    position: absolute;
    top: calc(50% - 220px);
    right: calc(50% - 460px);
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 2.2rem;
    font-weight: 600;
    cursor: pointer;
}

@media screen and (max-width:640px) {
    #hybrid {
        padding: 60px 0;
    }
    .pillers-block {
        padding: 80px 0;
        margin-top: 30px;
    }
    .piller-img {
        padding: 0;
        width: 50%;
        margin: 0 auto;
    }
    .pillers-title-wrap .piller-title .title-en {
        font-size: 1.3rem;
    }
    .pillers-title-wrap .piller-title .title-jp {
        font-size: 1.5rem;
    }
    .pillers-title-wrap .piller-title:nth-child(2) {
        right: 5%;
        transform: unset;
    }
    .pillers-title-wrap .piller-title:nth-child(3) {
        right: 5%;
        transform: unset;
    }
    .pillers-title-wrap .piller-title:nth-child(5) {
        left: 5px;
        transform: unset;
    }
    .pillers-title-wrap .piller-title:nth-child(6) {
        left: 5px;
        transform: unset;
    }
    .modal__content {
        width: 90%;
        padding: 30px;
    }
    .close-btn {
        top: calc(50% - 210px);
        right: calc(50% - 190px);
    }
}

#hi-session {
    padding: 120px 0;
    background-color: #102d7e;
}
#hi-session .section-title {
    color: #fff;
}
#hi-session .section-title-jp::after {
    background-color: #fff;
}
.section-images {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
    margin-top: 60px;
}
.section-images .section-image {
    border-radius: 10px;
    overflow: hidden;
    width: calc(50% - 10px);
}

@media screen and (max-width:640px) {
    #hi-session {
        padding: 60px 0;
    }
    .section-images {
        margin-top: 30px;
        gap: 10px;
    }
    .section-images .section-image {
        width: calc(50% - 5px);
    }

}

#hi-practice {
    padding: 120px 0;
    background-color: #c21521;
}
#hi-practice .section-title {
    color: #fff;
}
#hi-practice .section-title-jp::after {
    background-color: #fff;
}

@media screen and (max-width:640px) {
    #hi-practice {
        padding: 60px 0;
    }
}

#schedule {
    padding: 120px 0;
    background-color: #bcbdbf;
}
#schedule .section-title {
    color: #fff;
}
#schedule .section-title-jp::after {
    background-color: #fff;
}
.schedule-image {
    margin-bottom: 60px;
}

@media screen and (max-width:640px) {
    #schedule {
        padding: 60px 0;
    }
    .schedule-image {
        margin-bottom: 30px;
    }
}

#core-team {
    padding: 120px 0;
    background-color: #fff;
}
#core-team .section-title {
    color: #252525;
}
#core-team .main-title {
    font-size: 4.2rem;
    font-weight: 800;
}
#core-team .sub-title {
    font-size: 1.8rem;
    font-weight: 700;
}
.core-member-list {
    display: flex;
    gap: 15px;
}
.core-member-list .member-item {
    width: calc((100% - 45px) / 4);
}
.core-member-list .member-item .member-name-jp {
    font-size: 1.6rem;
    font-weight: 700;
    margin-top: 10px;
    line-height: 1.2;
}
.core-member-list .member-item .member-name-en {
    font-size: 1.2rem;
    font-weight: 400;
    color: #bcbdbf;
}
.core-member-list .member-item .member-position-jp {
    font-size: 1.3rem;
    font-weight: 400;
    margin: 10px 0;
    line-height: 1.3;
}
.core-member-list .member-item .member-position-en {
    font-size: 1rem;
    font-weight: 400;
    color: #bcbdbf;
    margin-bottom: 10px;
}
#core-team .team-wrap {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-top: 40px;
}
.team-wrap .team-container {
    width: calc((100% - 15px) / 2);
    padding: 30px;
}
.team-wrap .team-container.hi-contributors {
    background-color: #c21521;
}
.team-wrap .team-container.industry-partners {
    background-color: #102d7e;
}
.team-wrap .team-container .team-title {
    font-size: 2.4rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 20px;
}
.team-wrap .team-container .team-text {
    color: #fff;
}
.team-wrap .team-container .team-text h4 {
    font-size: 1.7rem;
    font-weight: 700;
    margin: 20px 0 10px;
}
.team-wrap .team-container .team-text p {
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 2;
}
.team-wrap .team-container .team-text p span {
    font-size: 1.2rem;
}

@media screen and (max-width:640px) {
    #core-team {
        padding: 60px 0;
    }
    #core-team .main-title {
        font-size: 2.6rem;
    }
    #core-team .sub-title {
        font-size: 1.6rem;
    }
    .core-member-list {
        gap: 10px;
        flex-wrap: wrap;
    }
    .core-member-list .member-item {
        width: calc(50% - 5px);
    }
    #core-team .team-wrap {
        flex-wrap: wrap;
    }
    .team-wrap .team-container {
        width: 100%;
    }
    .team-wrap .team-container .team-title {
        font-size: 2rem;
        margin-bottom: 10px;
    }
    .team-wrap .team-container .team-text h4 {
        font-size: 1.6rem;
        margin: 10px 0 5px;
    }
    .team-wrap .team-container .team-text p {
        line-height: 1.8;
    }
}

#contact {
    background-color: #f2f4f9;
    padding: 120px 0;
}
#contact .section-title {
    color: #252525;
}
.contact-form {
    width: 650px;
    margin: 0 auto;
}
.contact-form .row {
    display: flex;
    justify-content: space-between;
    padding: 10px 0;
}
.contact-form .row .th {
    font-size: 1.5rem;
    font-weight: 700;
    width: 150px;
}
.contact-form .row .th .en {
    font-size: 1.2rem;
    font-weight: 400;
    color: #727272;
}
.contact-form .row .th .required {
    color: #c21521;
}
.contact-form .row .td {
    width: calc(100% - 170px);
}
.contact-form .row .td input {
    background-color: #fff;
    width: 100%;
    padding: 17px 5px;
    border: none;
    border-radius: 4px;
}
.contact-form .row .td textarea {
    background-color: #fff;
    width: 100%;
    padding: 17px 5px;
    border: none;
    border-radius: 4px;
}
.contact-form .submit-wrap {
    margin-top: 20px;
    text-align: center;
}
.contact-form .submit-wrap input[type="submit"] {
    background-color: #102d7e;
    width: 250px;
    margin: 0 auto;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 600;
    text-align: center;
    padding: 15px 0;
    border-radius: 8px;
    border: none;
    cursor: pointer;
}
.contact-form .submit-wrap .wpcf7-spinner {
    display: block;
    margin: 10px auto 0;
}

@media screen and (max-width:640px) {
    #contact {
        padding: 60px 0;
    }
    .contact-form {
        width: 100%;
    }
    .contact-form .row {
        flex-wrap: wrap;
    }
    .contact-form .row .th {
        width: 100%;
        margin-bottom: 10px;
    }
    .contact-form .row .td {
        width: 100%;
    }
}

#about-us {
    padding: 120px 0;
    background-color: #fff;
}
#about-us .section-title {
    color: #252525;
}
.unit-item {
    width: 100%;
    display: flex;
    gap: 80px;
    align-items: center;
    padding-bottom: 30px;
    margin-bottom: 30px;
    border-bottom: solid 1px #e9e9e9;
}
.unit-item .unit-img {
    display: block;
    width: calc(50% - 80px);
}
.unit-item .txtarea {
    width: 50%;
}
.unit-item .txtarea .description-jp {
    font-size: 1.5rem;
    font-weight: 400;
    color: #252525;
}
.unit-item .txtarea .description-en {
    font-size: 1.3rem;
    font-weight: 400;
    color: #252525;
    margin-top: 20px;
}

@media screen and (max-width:640px) {
    #about-us {
        padding: 60px 0;
    }
    .unit-item {
        flex-wrap: wrap;
        gap: 20px;
    }
    .unit-item .unit-img {
        width: 90%;
        margin: 0 auto;
    }
    .unit-item .txtarea {
        width: 100%;
    }
}