/*

■このCSSの役割＝複数ページにわたるCSS基本ファイル
②/css/top.css（TOPページのみ使用css）

■CSSファイル区分メモ
①/css/main.css（サイト全体使用基本css）
②/css/top.css（TOPページのみ使用css）
③/css/under.css（下層ページ共通css）
④/css/archive.css（検索付き一覧ページのみcss）
⑤/css/single.css（子ページ関連のみcss）
⑥/css/page.css（その他ページ分css）（about、rd、rd子ページ）

※基本的には①、③に書いて、追加分やオリジナルなcssはそのほかに書くような形

*/


@charset 'UTF-8';


/*------------------------------------------------------------
	#top-visual
------------------------------------------------------------*/

#top-visual {
    background: rgb(242,242,242);
    background: linear-gradient(180deg, rgba(242,242,242,1) 0%, rgba(244,244,246,1) 80%, rgba(245,245,247,1) 100%);
    padding: 56px 0 0;
}
#top-visual-max {
    max-width: 1470px;
    margin: auto;
    position: relative;
}
#top-visual .unicom-container{
    position: relative;
}

/* top-visual-ripples */
.top-visual-ripples {
    position: absolute;
    top: -372px;
    right: -512px;
    width: 1100px;
    height: 1100px;
}


/* #top-visual-text */
#top-visual-text{
    position: relative;
    z-index: 2;
}
.top-visual-text-sub {
    font-size: 22px;
    line-height: 1.6;
    font-weight: 500;
    margin-bottom: 20px;
}
.top-visual-text-main span{
    display: block;
}
.top-visual-text-main-lg{
    line-height: 1.56;
    font-size: 34px;
    font-weight: 800;
}
.top-visual-text-main-sm {
    line-height: 1;
    font-size: 18px;
    font-weight: 600;
    margin-top: 20px;
}


/* #top-visual-banner｜2025.03追記 */
#top-visual-banner{
    margin-top: 72px;
    max-width: 355px;
    position: relative;
}
#top-visual-banner .swiper-btn-prev{
    position: absolute;
    top: 50%;
    left: 0%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    z-index: 9;
}
#top-visual-banner .swiper-btn-prev{
    position: absolute;
    top: 50%;
    left: -64px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    z-index: 2;
    background: rgb(0, 65, 192);
    background: linear-gradient(90deg, rgba(0, 65, 192, 1) 0%, rgba(8, 159, 206, 1) 100%);
}
#top-visual-banner .swiper-btn-prev:hover{
    background: #fff;
    color: #089FCE;
}
#top-visual-banner .swiper-btn-next{
    position: absolute;
    top: 50%;
    right: -64px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    z-index: 2;
    background: rgb(0, 65, 192);
    background: linear-gradient(90deg, rgba(0, 65, 192, 1) 0%, rgba(8, 159, 206, 1) 100%);
}
#top-visual-banner .swiper-btn-next:hover{
    background: #fff;
    color: #089FCE;
}



/* #top-visual-news */
#top-visual-news-box {
    background: #fff;
    border-radius: 32px;
    box-sizing: border-box;
    padding: 30px 0 40px 0;
    position: relative;
    z-index: 2;
    box-shadow: rgba(9, 35, 64, 0.1) 4px 6px 16px 4px;
}
.top-visual-news-box-inner {
    width: 980px;
    margin: auto;
}
.top-visual-news-head {
    border-bottom: 1px solid #D7E8F0;
    padding-bottom: 20px;
    margin-bottom: 28px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
}
.top-visual-news-title {
    line-height: 1;
    font-size: 30px;
    font-family: "quasimoda", sans-serif;
    font-weight: 700;
    font-style: normal;
    line-height: 30px;
    position: relative;
    color: #0041C0;
}
a.banner-card {
    display: block;
    border-radius: 16px;
    box-shadow: rgba(9, 35, 64, 0.1) 4px 6px 16px 4px;
    overflow: hidden;
}
a.banner-card img{
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    transition: all .3s;
    transform: scale(1);
}
a.banner-card:hover{
    box-shadow: none;
    opacity: 0.6;
}
a.banner-card:hover img{
    transform: scale(1.1);
}

#top-visual-news .main-btn{
    margin-top: 0;
}
#top-visual-news .main-btn a{
    font-size: 14px;
    line-height: 1;
    padding: 8px 16px;
    font-weight: 500;
}
.news-item {
    transition: background-color 0.3s ease;
    position: relative;
}
.news-item:before{
    content: none;
    transition: all .3s;
}
ul.sm-news-list > li.news-item.active {
    padding-right: 0;
    padding-left: 24px;
    color: #007AC7;
}
ul.sm-news-list > li.news-item.active:before{
    font-family: 'Material Symbols Outlined';
    content: '\e5cc'; /* ← chevron_left の Unicode */
    font-size: 24px;
    font-weight: 500;
    line-height: 1;
    vertical-align: middle;
    display: block;
    position: absolute;
    left: -4px;
    top: 0;
    color: #007AC7;
}
ul.sm-news-list > li.news-item.active .news-list-date{
    color: #007AC7;
}
ul.sm-news-list > li.news-item.active .news-list-category{
    background: #007AC7;
}
ul.sm-news-list > li.news-item.active .news-list-title a{
    color: #007AC7;
    font-weight: 500;
}

@media only screen and (max-width:640px) and (max-device-width:1280px){

    .top-visual-ripples {
        position: absolute;
        top: -316px;
        right: -316px;
        width: 560px;
        height: 560px;
    }

    #top-visual{
        padding: 40px 0 0;
    }
    .top-visual-text-sub {
        font-size: 17px;
        margin-bottom: 16px;
    }
    .top-visual-text-main-lg {
        font-size: 28px;
    }
    .top-visual-text-main-sm {
        font-size: 15px;
        margin-top: 16px;
    }

    #top-visual-news {
        margin-top: 36px;
        border-radius: 24px;
        /*padding: 14px 20px 20px;*/
        padding: 18px 24px 24px;
        left: 0;
    }

    .top-visual-news-head {
        padding-bottom: 2px;
        margin-bottom: 0;
        border-bottom: none;
    }
    .top-visual-news-title {
        font-size: 20px;
        line-height: 22px;
        padding-left: 34px;
    }
    .top-visual-news-title:before {
        width: 22px;
        height: 22px;
    }
    .top-visual-news-title:after {
        width: 12px;
        height: 12px;
        top: 6px;
        left: 6px;
    }

    #top-visual-news .main-btn a {
        font-size: 12px;
        padding: 8px 16px;
    }

    #top-visual-banner{
        margin: 48px auto 0;
        width: 75vw;
    }
    a.banner-card img{
        height: calc(75vw / 1.8);
    }
    #top-visual-banner .swiper-btn-prev{
        left: -34px;
    }
    #top-visual-banner .swiper-btn-next{
        right: -34px;
    }
    #top-visual-news{
        margin-top: 0;
        padding: 0;
    }
    #top-visual-news .unicom-container-md{
        padding: 0;
    }
    #top-visual-news-box{
        padding: 32px 15px 24px;
    }

    .top-visual-news-title{
        padding-left: 0;
    }
    .top-visual-news-title img{
        height: 20px;
    }
    .top-visual-news-box-inner{
        width: 100%;
    }
    ul.sm-news-list > li.news-item.active{
        padding-left: 16px;
    }

    ul.sm-news-list > li.news-item.active:before{
        top: 16px;
        left: -10px;
    }

}



/*------------------------------------------------------------
  article#top-article
------------------------------------------------------------*/

article#top-article{
    background: #f5f5f7;
}
article#top-article section{
    padding: 108px 0;
}
article#top-article section:last-of-type{
    padding-bottom: 0;
}


/* top-section-parts */
.top-section-head{
    margin-bottom: 40px;
    position: relative;
    z-index: 2;
}
.top-section-title{
    line-height: 1;
    font-size: 28px;
    font-weight: 700;
    font-style: normal;
    line-height: 28px;
    padding-left: 45px;
    position: relative;
}
.top-section-title:before {
    content: "";
    border: 1px solid #202020;
    border-radius: 2px;
    position: absolute;
    top: 0;
    left: 0;
    width: 30px;
    height: 30px;
    border-radius: 50%;
}
.top-section-title:after {
    content: "";
    display: block;
    width: 16px;
    height: 16px;
    position: absolute;
    top: 8px;
    left: 8px;
    background: rgb(0,65,192);
    background: linear-gradient(90deg, rgba(0,65,192,1) 0%, rgba(8,159,206,1) 100%);
    border-radius: 50%;
}
.top-section-description {
    font-weight: 500;
    margin-top: 20px;
    line-height: 2;
}
.top-section-head .text-btn{
    margin-top: 16px;
}


/* .top-media-section｜parts */
.top-media-section-head{
    margin-bottom: 40px;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
}
.top-media-section-head .top-section-head{
    margin-bottom: 0;
}


/* .top-second-layer-title｜parts */
.top-second-layer-title{

}
.second-layer-title-jp{
    line-height: 1;
    font-size: 20px;
    font-weight: 700;
    color: #0041C0;
    position: relative;
    padding-left: 64px;
}
.second-layer-title-jp:before{
    content: "";
    display: block;
    width: 48px;
    height: 1px;
    background: #0041C0;
    position: absolute;
    top: 50%;
    left: 0%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
}
.second-layer-title-en {
    line-height: 1;
    font-size: 72px;
    letter-spacing: 0.05em;
    font-family: "quasimoda", sans-serif;
    font-weight: 700;
    font-style: normal;
    color: #0041C0;
    margin-top: 24px;
}
.second-layer-title-en img{
    height: 52px;
    width: auto;
    display: block;
}


@media only screen and (max-width:640px) and (max-device-width:1280px){

    article#top-article section{
        padding: 72px 0;
    }
    .top-section-title{
        line-height: 1.56;
        font-size: 22px;
        padding-left: 34px;
    }
    .top-section-title:before{
        width: 22px;
        height: 22px;
        top: 7px;
    }
    .top-section-title:after{
        width: 12px;
        height: 12px;
        top: 13px;
        left: 6px;
    }
    .top-section-description{
        margin-top: 16px;
    }
    .top-media-section-head{
        margin-bottom: 32px;
    }

    .second-layer-title-en img{
        height: 40px;
    }
    .second-layer-title-jp{
        font-size: 16px;
        padding-left: 48px;
    }
    .second-layer-title-jp:before{
        width: 32px;
    }

}




/*------------------------------------------------------------
  #top-about
------------------------------------------------------------*/

article#top-article section#top-about {
    margin: -40px auto 0;
    max-width: 1510px;
    box-sizing: border-box;
    padding: 0 20px 80px;
    padding-top: calc(120px + 40px);
}
section#top-about .top-section-description{
    margin-top: 28px;
    line-height: 2;
}
.top-about-box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    position: relative;
    background: #fff;
    border-radius: 32px;
}
.top-about-box-content {
    width: 480px;
    /* background: #fff; */
    /* border-radius: 32px; */
    box-sizing: border-box;
    padding: 40px 0px 45px 48px;
}
.top-about-box-caption {
    /*line-height: 1.45;*/
    line-height: 1.56;
    font-size: 17px;
    font-weight: 500;
}
.top-about-box-caption .brackets {
    margin-left: -10px;
}
.top-about-box-copy {
    font-size: 28px;
    line-height: 1.5;
    font-weight: 700;
    /*margin-top: 20px;*/
    margin-top: 16px;
}
.top-about-box-description {
    margin-top: 16px;
}
.top-about-box-img {
    text-align: center;
}
.top-about-box-img img{
    display: block;
    margin: auto;
}
.top-about-box .text-btn{
    margin-top: 24px;
}
.top-about-box .text-btn a{
    margin-right: -12px;
}

section#top-about .main-btn{
    margin-top: 32px;
    text-align: left;
}


/* 先方指示修正分 */
section#top-about.top-section-head{
    margin-bottom: 48px;
}


/* 2025.03追記 */
#top-about-box{
    display: flex;
    flex-wrap: wrap;
}
#top-about-box .top-section-head{
    margin-bottom: 64px;
}
.top-about-content{
    width: 51.5%;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    box-sizing: border-box;
}
.top-about-content-inner{
    width: 510px;
}
.top-future-vision{
    width: 48.5%;
    box-sizing: border-box;
    padding-left: 40px;
}
.top-future-vision-inner {
    background: #fff;
    border-radius: 32px;
    padding: 40px 48px;
}
.top-future-vision .text-btn{
    margin-top: 0;
}

@media only screen and (max-width:1470px){

    article#top-article section#top-about{
        padding: 0 0 80px;
        padding-top: calc(120px + 40px);
    }
    .top-future-vision-inner{
        border-radius: 32px 0 0 32px;
    }

}

@media only screen and (max-width:640px) and (max-device-width:1280px){

    section#top-about .top-section-description {
        font-size: 15px;
        margin-top: 24px;
    }
    .top-about-box-img{
        width: 100%;
        position: relative;
        right: 0;
        top: 0;
        -webkit-transform: none;
        margin-top: 0;
        padding: 0;
    }
    .top-about-box-content {
        width: 100%;
        border-radius: 24px;
        padding: 32px 24px 32px;
    }
    .top-about-box-caption {
        line-height: 1.6;
        font-size: 15px;
    }
    .top-about-box-copy {
        font-size: 22px;
        line-height: 1.56;
        margin-top: 16px;
    }
    .top-about-box .text-btn {
        margin-top: 16px;
    }
    section#top-about .main-btn {
        margin-top: 32px;
    }
    .top-about-box .text-btn a {
        margin-right: -8px;
        position: relative;
        z-index: 1;
    }

    /* 先方指示修正分 */
    .top-about-box2-content {
        width: 100%;
        padding: 0;
    }
    .top-about-box2-img{
        width: 100%;
        position: relative;
        right: 0;
        top: 0;
        transform: none;
        -webkit-transform: none;
        -ms-transform: none;
        margin-top: 32px;
        margin-bottom: 0;
        bottom: unset;
        padding-top: 0;
    }
    .top-section-head #top-about-box2 .text-btn {
        margin-top: 16px;
    }

    article#top-article section#top-about {
        padding: 0 0 72px;
        padding-top: calc(88px + 40px);
    }
    #top-about-box{
        display: block;
        padding: 0 15px;
    }
    .top-about-content{
        width: 100%;
        display: block;
    }
    .top-future-vision{
        width: 100%;
        padding-left: 0;
        margin-top: 48px;
    }

    #top-about-box .top-section-head{
        margin-bottom: 40px;
    }
    .top-about-content-inner{
        width: 100%;
    }

    .top-future-vision-inner{
        padding: 32px 24px;
        border-radius: 32px;
    }
    .top-about-box-caption .brackets{
        display: block;
    }

    .top-future-vision .text-btn {
        margin-top: 12px;
    }


}



/*------------------------------------------------------------
  #top-rd
------------------------------------------------------------*/

section#top-rd{
    background: #fff;
}
section#top-rd .top-section-head .unicom-container{
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
}
#top-rd-area{

}
#top-rd-area > .top-rd-area-box:not(:first-of-type){
    margin-top: 40px;
}
.top-rd-area-box {
    background: #F5F5F7;
    border-radius: 32px;
    padding: 64px 0 80px;
}
.top-rd-area-box-head{
    text-align: center;
    margin-bottom: 40px;
}
.top-rd-area-box-caption {
    font-size: 32px;
    line-height: 1.5;
    font-weight: 700;
}
.top-rd-area-box-description{
    margin-top: 20px;
}

.top-rd-area-box-body{
    max-width: 960px;
    margin: 0 auto;
}
/*#top-business-field-box .top-rd-area-box-body{
    max-width: 1000px;
}*/

section#top-rd .main-btn{
    margin-top: 48px;
}

/* 先方指示修正分 */
.top-section-head .top-rd-section-head-link.text-btn {
    margin-top: 32px;
}


@media only screen and (max-width:640px) and (max-device-width:1280px){

    section#top-rd .main-btn{
        margin-top: 40px;
    }
    section#top-rd .unicom-container-lg{
        padding: 0;
    }
    .top-rd-area-box {
        padding: 48px 16px 48px;
        border-radius: 24px;
    }
    .top-rd-area-box-head{
        margin-bottom: 24px;
    }
    .top-rd-area-box-caption {
        font-size: 24px;
        line-height: 1.56;
    }
    .top-rd-area-box-description {
        margin-top: 16px;
        text-align: left;
        padding: 0 8px;
    }

    /* 先方指示修正分 */
    .top-section-head .top-rd-section-head-link.text-btn{
        margin-top: 24px;
    }

    section#top-rd .top-section-head .unicom-container {
        align-items: flex-start;
        flex-direction: column;
    }

}






/*------------------------------------------------------------
  #top-topics
------------------------------------------------------------*/

article#top-article section#top-topics {
    background: #F5F5F7;
    padding-bottom: 0;
}

#topics-slider ul.sm-topics-list{
    flex-wrap: nowrap;
    margin: 0;
    margin: 0;
}
#topics-slider ul.sm-topics-list li{
    width: auto;
    padding: 0;
}
.topics-swiper {
    overflow: visible;
}



@media only screen and (max-width:640px) and (max-device-width:1280px){

    article#top-article section#top-topics .top-section-description {
        margin-top: 24px;
    }
    #topics-slider ul.sm-topics-list li{
        width: 320px;
    }
    .topics-list-thumb img{
        height: 198px;
    }
    .topics-list-thumb iframe {
        height: 198px;
    }
    ul#top-topics-list .topics-list-content {
        padding: 16px 16px 24px;
    }

}



/*------------------------------------------------------------
  #people-workstyle　｜新規追記2025.03
------------------------------------------------------------*/

#people-workstyle{
    margin-top: 108px;
}
#people-workstyle-head{
    padding: 108px 0 72px;
    padding-bottom: calc(72px + 88px);
    background: rgb(0, 65, 192);
    background: linear-gradient(90deg, rgba(0, 65, 192, 1) 0%, rgba(8, 159, 206, 1) 100%);
    color: #fff;
}

#people-workstyle-head .second-layer-title-jp{
    color: #fff;
}
#people-workstyle-head .second-layer-title-jp:before{
    background: #fff;
}
#people-workstyle-head .second-layer-title-en{
    color: #fff;
    margin-top: 32px;
}
#people-workstyle-head .top-section-description{
    margin-top: 32px;
}

#people-workstyle-body {
    margin-top: -88px;
}


@media only screen and (max-width:640px) and (max-device-width:1280px){

    #people-workstyle{
        margin-top: 72px;
    }
    #people-workstyle-head{
        padding: 72px 0 48px;
        padding-bottom: calc(48px + 72px)
    }
    #people-workstyle-body{
        margin-top: -72px;
    }
    #people-workstyle-body > .unicom-container-md{
        padding: 0;
    }
    #people-workstyle-head .top-section-description{
        margin-top: 24px;
    }

}


/*------------------------------------------------------------
  #top-interview
------------------------------------------------------------*/

article#top-article section#top-interview {
    background: #F5F5F7;
    padding-bottom: 0;
}

#interview-slider ul.sm-interview-list{
    flex-wrap: nowrap;
    margin: 0;
    margin: 0;
}
#interview-slider ul.sm-interview-list li{
    width: auto;
    padding: 0;
}
.interview-swiper {
    overflow: visible;
}




@media only screen and (max-width:640px) and (max-device-width:1280px){

    #interview-slider ul.sm-interview-list li{
        width: 320px;
    }

}





/*------------------------------------------------------------
  #top-work-style　｜2025.03新規追記
------------------------------------------------------------*/

article#top-article section#top-work-style{
    padding-bottom: 0;
}
#top-work-style-box{
    display: flex;
    flex-wrap: wrap;
}
.top-work-style-content{
    width: calc(100% - 420px);
    box-sizing: border-box;
    padding-right: 48px;
}
.top-work-style-copy {
    font-size: 24px;
    line-height: 1.6;
    font-weight: 600;
}
.top-work-style-description {
    margin-top: 20px;
    line-height: 2;
    font-weight: 500;
}

.top-work-style-banner{
    width: 420px;
}
.banner-future-work{
    position: relative;
}
.banner-future-work img{
    display: block;
}
.banner-future-work a{
    display: block;
    box-shadow: rgba(9,35,64,0.1) 4px 6px 16px 4px;
    border-radius: 16px;
}
.banner-future-work .material-symbols-outlined{
    font-size: 20px;
    color: #089FCE;
    position: absolute;
    top: 16px;
    right: 16px;
}
.banner-future-work a:hover{
    opacity: 0.6;
    box-shadow: none;
}
#top-work-style-box .main-btn{
    text-align: left;
}

img.second-layer-title-pc{
    display: block;
}
img.second-layer-title-sp{
    display: none;
}

@media only screen and (max-width:640px) and (max-device-width:1280px){

    section#top-work-style .top-section-head{
        margin-bottom: 32px;
    }
    #top-work-style-box{
        display: block;
    }
    .top-work-style-content{
        width: 100%;
        padding-right: 0;
    }
    .top-work-style-banner{
        width: 100%;
        margin-top: 40px;
    }

    .top-work-style-copy{
        font-size: 22px;
        line-height: 1.56;
    }

    img.second-layer-title-pc{
        display: none;
    }
    img.second-layer-title-sp{
        display: block;
    }
    #people-workstyle img.second-layer-title-sp{
        max-width: 362px;
        height: auto;
        width: 100%;
    }

}



/*------------------------------------------------------------
  #top-member
------------------------------------------------------------*/

article#top-article section#top-member {
    background: #F5F5F7;
    padding-bottom: 0;
    padding-top: 56px;
    border-radius: 32px 32px 0 0;
}
#member-slider.swiper {
    overflow: unset;
}


@media only screen and (max-width:640px) and (max-device-width:1280px){

    article#top-article section#top-member{
        padding-top: 48px;
    }
    article#top-article section#top-member .top-section-head{
        margin-bottom: 32px;
    }
    ul#top-member-list.sm-member-list{
        flex-wrap: unset;
        margin: 0;
    }
    ul#top-member-list.sm-member-list > li{
        width: 320px;
        padding: 0;
    }

}











/*------------------------------------------------------------
  #top-project
------------------------------------------------------------*/

article#top-article section#top-project {
    background: #F5F5F7;
}





@media only screen and (max-width:640px) and (max-device-width:1280px){

    article#top-article section#top-project .top-section-head{
        margin-bottom: 24px;
    }

}






/*------------------------------------------------------------
  colorful_ver
------------------------------------------------------------*/

.top-visual-colorful {
    content: "";
    display: block;
    width: 650px;
    height: 650px;
    background-image: url(/jp/phd/img/top/top_visual_colorful.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    top: 0;
    right: 0;
}
.colorful #top-visual{
    background: #fff;
    padding: 0;
}
.colorful #top-visual .unicom-container{
    padding: 72px 0 40px;
}
/*.colorful #top-visual-news{
    box-shadow: rgba(9,35,64,0.1) 4px 6px 16px 4px;
}*/



@media only screen and (max-width:640px) and (max-device-width:1280px){

    .colorful #top-visual .unicom-container{
        padding: 56px 15px 32px;
    }
    .top-visual-colorful {
        top: -56px;
        width: 360px;
        height: 360px;
        background-size: contain;
        background-position: top right;
        right: -172px;
    }
    .colorful section#top-about {
        padding-top: 72px;
    }



}




