@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

/*****************************************************************************************
リセット
*****************************************************************************************/
html {
    scroll-behavior: smooth;
}
body,
h1,h2,h3,h4,h5,h6,
p,
ul,ol,li,
dl,dt,dd {
    margin: 0;
    padding: 0;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}
img {
    vertical-align: middle;
}

/*****************************************************************************************
テキスト
*****************************************************************************************/
body {
    font-family: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "sans-serif";
    line-height: 1.5;
    color: #222;
    overflow-wrap: break-word;
    -webkit-text-size-adjust: 100%;
}

h1,h2,h3,h4,h5,h6 {
    font-size: 100%;
}

a {
    color: #770532;
}
a:hover {
    text-decoration: none;
}







/*****************************************************************************************
ヘッダー PC
*****************************************************************************************/
.header_pc {
    background: #FFF;
    border-bottom: solid 8px #770532;
    width: 100%;
    position: absolute;
    top: 0;
    z-index: 10;
}
.header_pc.scrolled {
    position: fixed;
    top: -40px;
}

.header_pc > div {
    max-width: 1110px;
    margin: 0 auto;
    height: 110px;
    position: relative;
}

/* ホーム ************************************/
.header_pc_home {
    position: absolute;
    left: 15px;
    bottom: 20px;
}
.header_pc.scrolled .header_pc_home {
    bottom: 10px;
}

.header_pc_home img {
    height: 70px;
    transition: height 0.25s;
}
.header_pc.scrolled .header_pc_home img {
    height: 50px;
    transition: height 0.25s;
}

/* ナビ ***************************************/
.header_pc ul.nav {
    display: table;
    position: absolute;
    right: 0;
    bottom: 0;
}
.header_pc ul.nav > li {
    display: table-cell;
}
.header_pc ul.nav > li > a {
    display: block;
    box-sizing: border-box;
    text-decoration: none;
    color: #222;
    font-weight: 600;
    padding: 0 10px;
    margin: 0 5px;
    border-top: solid 4px transparent;
    border-bottom: solid 4px transparent;
    height: 70px;
    line-height: 62px;
}
.header_pc ul.nav > li > a:hover {
    border-bottom-color: #770532;
}
body.lang_en .header_pc ul.nav > li > a {
    margin-left: 0;
}

/* 現在位置 ***********************************/
body.page_program     li.nav_program > a,
body.page_proposal    li.nav_proposal > a,
body.page_team        li.nav_team > a,
body.page_project     li.nav_project > a,
body.page_information li.nav_information > a {
    border-bottom-color: #770532;
}

/* その他 **************************************/
.header_pc_other {
    display: table;
    position: absolute;
    right: 0;
    top: 12px;
}
.header_pc_other > div {
    display: table-cell;
    vertical-align: middle;
    height: 28px;
    padding: 0 15px;
}
.header_pc_other_search {
    width: 200px;
}
.header_pc_other_ristex img {
    width: 100px;
}

/*****************************************************************************************
ヘッダー SP
*****************************************************************************************/
.header_sp {
    display: none;
    background: #FFF;
    width: 100%;
    height: 60px;
    border-bottom: solid 8px #770532;
    position: fixed;
    top: 0;
    z-index: 10;
}

/* ホーム ***************************/
.header_sp_home {
    position: absolute;
    left: 15px;
    top: 5px;
}
.header_sp_home img {
    height: 50px;
}

/* メニュー **************************/
.header_sp_menu {
    cursor: pointer;
    width: 60px;
    height: 60px;
    position: absolute;
    right: 0;
    top: 0;
    background: url("../img/header_sp_menu.png") no-repeat left top / 120px 60px;
}
.header_sp_menu.opened {
    background-position: right top;
}

/*****************************************************************************************
オーバーレイ
*****************************************************************************************/
.overlay_menu {
    display: none;
    background: #770532;
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    z-index: 9;
    overflow: auto;
}
.overlay_menu > div {
    margin: 68px 0 20px 0;
}

/* 検索 ********************************/
.overlay_menu_search {
    padding: 20px;
    border-bottom: solid 1px #FFF;
}

/* ナビ ********************************/
.overlay_menu ul.nav > li {
    border-bottom: solid 1px #FFF;
}
.overlay_menu ul.nav > li > a {
    display: block;
    padding: 16px 20px;
    text-decoration: none;
    color: #FFF;
    font-weight: 600;
}

/* 言語 ********************************/
.overlay_menu_lang {
    padding: 20px;
    text-align: center;
}
.overlay_menu_lang a {
    color: #FFF;
}

/* ロゴ *********************************/
.overlay_menu_ristex {
    text-align: center;
}
.overlay_menu_ristex img {
    width: 100px;
}

/*****************************************************************************************
ヘッダースペース
*****************************************************************************************/
.header_space {
    height: 118px;
}

/*****************************************************************************************
ヘッダーチェンジ
*****************************************************************************************/
@media screen and (min-width: 1050px) {
    .overlay_menu {
        display: none !important;
    }
}
@media screen and (max-width: 1050px) {
    .header_pc {
        display: none;
    }
    .header_sp {
        display: block;
    }
    .header_space {
        height: 68px;
    }
}

/*****************************************************************************************
ヘッダー高オフセット
*****************************************************************************************/
html {
    scroll-padding-top: 78px;
}
@media screen and (max-width: 1050px) {
    html {
        scroll-padding-top: 68px;
    }
}

/*****************************************************************************************
ページトップ
*****************************************************************************************/
img.back-to-top {
    display: none;
    width: 60px;
    height: 60px;
    position: fixed;
    right: 0;
    bottom: 0;
    z-index: 8;
}







/*****************************************************************************************
Google カスタム検索
*****************************************************************************************/
.header_pc .gsc-control-cse,
.overlay_menu .gsc-control-cse {
    padding: 0 !important;
    border: none !important;
    background: none !important;
}
.header_pc .gsc-search-box,
.overlay_menu .gsc-search-box {
    margin: 0 !important;
}

.header_pc .gsc-input {
    padding: 0 !important;
}
.header_pc .gsib_a {
    padding: 0 0 0 5px !important;
}
.header_pc .gsc-search-button-v2 {
    padding: 6px !important;
    border: none !important;
    margin: 0 !important;
    background: #770532 !important;
}

.overlay_menu .gsc-search-button-v2 {
    border-color: #999 !important;
    background: #999 !important;
}







/*****************************************************************************************
フッター
*****************************************************************************************/
.footer {
    background: #EEE;
    border-top: solid 8px #770532;
}

/* 4 列 *************************************/
.footer_row {
    max-width: 1110px;
    margin: 0 auto;
    padding: 35px 0 25px 0;
    letter-spacing: -.4em;
}
.footer_col_1,
.footer_col_2,
.footer_col_3,
.footer_col_4 {
    letter-spacing: normal;
    display: inline-block;
    vertical-align: top;
    box-sizing: border-box;
    padding: 15px;
}
.footer_col_1 {
    width: 23%;
}
.footer_col_2 {
    width: 23%;
}
.footer_col_3 {
    width: 23%;
}
.footer_col_4 {
    width: 31%;
}

/* 1 列目 */
.footer_col_1 {
    text-align: center;
}
.footer_col_1 img {
    width: 100px;
}

/* 2, 3 列目 */
ul.footer_link li {
    list-style: none;
    margin-top: 0.5em;
}
ul.footer_link li:first-child {
    margin-top: 0;
}
ul.footer_link i.fa {
    margin-left: 0.5em;
}

/* 4 列目 */
.footer_col_4 h3 {
    font-size: 118.75%;/*19*/
}
.footer_col_4 h3 span {
    display: block;
    font-weight: normal;
    font-size: 70%;
}
.footer_col_4 p {
    font-size: 87.5%;/*14*/
    margin-top: 1em;
}

@media screen and (max-width: 900px) {
    .footer_col_1 {
        width: 100%;
    }
    .footer_col_2 {
        width: 50%;
    }
    .footer_col_3 {
        width: 50%;
    }
    .footer_col_4 {
        width: 100%;
    }
}

/* ライン ***********************************/
.footer_line {
    padding: 0 15px;
}
.footer_line > div {
    background: #770532;
    max-width: 1080px;
    margin: 0 auto;
    height: 3px;
}

/* ロゴ *************************************/
ul.footer_logo {
    text-align: center;
    padding: 20px 0;
    letter-spacing: -.4em;
}
ul.footer_logo li {
    letter-spacing: normal;
    display: inline-block;
    vertical-align: middle;
    padding: 20px 25px;
}

li.footer_logo_ristex img {
    width: 150px;
}
li.footer_logo_jst img {
    width: 200px;
}
body.lang_en li.footer_logo_jst img {
    width: 250px;
}

/* コピーライト ******************************/
.footer_copyright {
    text-align: center;
    padding-bottom: 40px;
}




