@charset "UTF-8";

/*
※※※※※※※※※※※※※※※※

共通

※※※※※※※※※※※※※※※※
*/
.cf:after {
    content: "";
    display: block;
    clear: both;
}

* {
        box-sizing: border-box;
}

html {
        font-size:62.5%;
        }

body {
        font-size: 16px;
  font-size: 1.6rem;
        font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
        color: #333;
}

a {
        text-decoration: none;
        color:inherit;
                -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

a:hover{
        filter: alpha(opacity=70);
        -ms-filter: "alpha(opacity=70)";
        -moz-opacity:0.7;
        -khtml-opacity: 0.7;
        opacity:0.7;
        zoom:1;
}

p {
        margin-bottom:1.2em;
        line-height: 1.6em;
}

.mincho {
        font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

.flex {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
}
.flex_top {
  justify-content: center;
}

img {
        vertical-align: bottom;
}

.pc {
        display:block;
}

.sp {
        display:none;
}

.inline_pc {
        display:inline;
}

.inline_sp {
        display: none;
}

@media screen and (max-width:767px) {
        .pc {
                display: none;
        }
        .sp {
                display: block;
        }

        .inline_pc {
                display: none;
        }

        .inline_sp {
                display: inline;
        }
}
/*
※※※※※※※※※※※※※※※※

構造

※※※※※※※※※※※※※※※※
*/
.inner {
        width: 100%;
        max-width: 1000px;
        margin: 0 auto;
}
.header_inner {
  max-width: 1210px;
}

@media screen and (max-width:1324px) {
        .inner {
                padding: 0 5%;
        }

        .header_inner {
                padding: 0;
        }
}
/*
※※※※※※※※※※※※※※※※

ヘッダー

※※※※※※※※※※※※※※※※
*/
header {
        height: 130px;
        position: fixed;
        top:0;
        width:100%;
        z-index: 999;
        background-color: #fff;
}

.h_logo {
        width: 223px;
        float: left;
        margin-right: 20px;
        margin-top:45px;
}

.h_logo img {
        width: 100%;
}

.g_navi {
        float: left;
}

.g_navi > li {
        float:left;
        text-align: center;
}

.g_navi > li:nth-child(1) {
        width: 9em;
}

.g_navi > li:nth-child(2) {
        width: 8em;
}

.g_navi > li:nth-child(3) {
        width: 7em;
}

.g_navi > li:nth-child(4) {
        width: 10em;
}

.g_navi > li:nth-child(5) {
        width: 8em;
}

.g_navi > li:nth-child(6) {
        width: 6em;
}

.g_navi > li:last-child {
        width: 8em;
        margin-right: 0;
}

.g_navi > li a {
        line-height: 130px;
        display: block;
        transition: none;
}

.g_navi > li a span{
        display: inline-block;
        line-height:3em;
        margin-top: 40px;
        width: 100%;
}

.g_navi > li:hover a span {
        background-color: #f3f3f8;
        color: #081b91;
}



.g_navi li .mega_menu {
        background-color: #081b91;
        position: fixed;
        left:0;
        top: 130px;
        width: 100%;
        display:none;
        color: #fff;
        padding:50px 0;
}

.g_navi li:hover .mega_menu {
        display:block;
}

.g_navi li .mega_menu li {
        text-align: left;
}

.mega_menu .layer1 {
        width: 19%;
        float:left;
        font-size: 2.2rem;
}

.mega_menu .layer1 a {
        background-image: url("../images/common/icon_arrow02.png");
        background-size: 7px 12px;
        background-position: left 5px top 0.95em;
        background-repeat: no-repeat;
        padding-left: 1em;
}

.mega_menu .layer2 {
        float:left;
        width: 32%;
        position: relative;
        font-size: 1.7rem;
}

.mega_menu .layer2 > li {

}

.mega_menu .layer2 > li a{
        padding-left:2em;
        background-position: left 1em top 0.9em;
        background-size: 7px 12px;
        -webkit-transition: inherit;
        -o-transition: inherit;
        transition: inherit;

}

.mega_menu .layer2 > li:hover{
        background-color: #091a83;
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        -moz-opacity:1;
        -khtml-opacity: 1;
        opacity:1;
}

.mega_menu .layer2 > li:hover a {
        background-image: url("../images/common/icon_arrow02.png");
        background-repeat: no-repeat;
}

.mega_menu .layer2 > li:hover .layer3 {
        display: block;
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        -moz-opacity:1;
        -khtml-opacity: 1;
        opacity:1;
}

.mega_menu .layer3 {
        filter: alpha(opacity=0);
        -ms-filter: "alpha(opacity=0)";
        -moz-opacity:0;
        -khtml-opacity: 0;
        opacity:0;
        display: none;
        background-color: #091a83;
        width: 91%;
        position: absolute;
        right: -91%;
        top:0;
        min-height: 100%;
        padding: 2em;
}

.mega_menu .layer3 > li a{
        background-image: url("../images/common/icon_arrow02.png");
        background-repeat: no-repeat;
        background-size: 7px 12px;
        background-position: left 1em top 0.9em;
        padding-left: 2em;
}

.mega_menu li a {
        display: block;
        line-height: inherit;
        padding:0.8em 0;
}

.mega_menu .banner_area {
        float: right;
        border-left: 1px solid rgba(255,255,255,0.6);
        width: 29%;
        padding:0 2%;
}

.mega_menu .banner_area a {
        line-height: inherit;
}

.mega_menu .banner_area img {
        width: 100%;
}

.mega_menu .banner_area .title {
        width: 232px;
        margin: 0 auto 1.5em;;
}

.mega_menu .banner1 {
        margin: 0 auto;
        width: 232px;
        position: relative;
        margin-bottom: 30px;
}

.mega_menu .banner1 .text {
        position: absolute;
        left:calc(50% - 3em);
        top:30px;
        font-size: 1.7rem;
        font-weight: bold;
        text-shadow: 2px 2px 7px #354e68;
}
.mega_menu .banner2 {
        margin: 0 auto 20px;
        width: 232px;
        display: block;
}

.lang_icon {
        float: right;
        width: 34px;
        margin-top: 45px;
}

.menu_trigger {
        display: none;
        position: fixed;
        width: 40px;
        cursor: pointer;
        z-index: 9999;
        right: 20px;
        top:10px;
}

.menu_trigger > span {
        position: relative;
        display: block;
        width: 100%;
        height: 3px;
        margin: 7px auto;
        -webkit-transition: all 0.5s ease-in-out;
                        transition: all 0.5s ease-in-out;
        background: #000;
}

.sp_active .menu_trigger > span:first-of-type {
        -webkit-transform: translateY(350%);
                transform: translateY(350%);
}
.sp_active .menu_trigger > span:last-of-type {
        -webkit-transform: translateY(-350%);
                transform: translateY(-350%);
}

@media screen and (max-width:1250px) {
        .header_inner {
                max-width: 1070px;
        }

        .h_logo {
                width: 200px;
        }

        .g_navi > li:nth-child(1) {
                width: 8em;
        }

        .g_navi > li:nth-child(2) {
                width: 7em;
        }

        .g_navi > li:nth-child(3) {
                width: 5em;
        }

        .g_navi > li:nth-child(4) {
                width: 10em;
        }

        .g_navi > li:nth-child(5) {
                width: 7em;
        }

        .g_navi > li:nth-child(6) {
                width: 5em;
        }

        .g_navi > li:last-child {
                width: 7em;
        }

        .lang_icon {
                float: right;
                width: 25px;
                margin-top: 50px;
        }

}

@media screen and (max-width:1110px) {
        .header_inner {
                max-width: 745px;
        }

        .h_logo {
                width: 120px;
                margin-right: 10px;
                margin-top: 53px;
        }

        .g_navi li {
                font-size: 0.7em;
        }

        .g_navi > li:first-child {
                width: 90px;
        }

        .g_navi > li:nth-child(2) {
                width: 80px;
        }

        .g_navi > li:nth-child(3) {
                width: 60px;
        }

        .g_navi > li:nth-child(4) {
                width: 120px;
        }

        .g_navi > li:nth-child(5) {
                width: 80px;
        }

        .g_navi > li:nth-child(6) {
                width: 60px;
        }

        .g_navi > li:last-child {
                width: 80px;
        }

        .lang_icon {
                float: right;
                width: 25px;
                margin-top: 50px;
        }

}

@media screen and (max-width:880px) {
        .g_navi li {
                font-size: 1.8vw;
                font-size: 0.7em;
        }
}

@media screen and (max-width:768px) {
        header {
                height: 60px;
        }

        .h_logo {
                width: 150px;
                margin-right: 0;
                margin-top:15px;
        }

        .g_navi {
                display: none;
        }

        .g_navi li {
                font-size: 1.8vw;
        }
        .lang_icon {
                display: none;
        }

        .menu_trigger {
                display:block;
        }

}

/*
※※※※※※※※※※※※※※※※

SPメニュー

※※※※※※※※※※※※※※※※
*/
.sp_menu {
        display:none;
}

@media screen and (max-width:767px) {
        html.sp_active,
        html.sp_active body {
                overflow: hidden;
                height: 100%;
        }


        body.sp_active {
                overflow: hidden;
                height: 100%;
        }
        .sp_menu {
                pointer-events: none;
                display:block;
                position: fixed;
                top:60px;
                width: 100%;
                background-color: #081b91;
                z-index: 998;
                height: calc(100vh - 60px);
                -webkit-transition: 0.3s ease-in-out;
          -moz-transition: 0.3s ease-in-out;
          -o-transition: 0.3s ease-in-out;
          transition: 0.3s ease-in-out;
                opacity: 0;
                color: #fff;
                overflow: scroll;
                scroll-behavior: smooth;
                margin-bottom: 50px;
        }

        .sp_menu .function_area {
                height: 50px;
                background-color: #000352;
        }

        .sp_menu .lang_area {
                height: 50px;
                width: 50px;
                float: right;
                border-left: 1px solid #fff;
                padding: 10px;
        }

        .sp_menu .lang_area img {
                width: 30px;
        }

        .sp_active .sp_menu {
                opacity: 10;
                pointer-events: all;
        }

        .sp_menu li {
                cursor: pointer;
                font-size: 1.8rem;
        }

        .sp_menu li a {
                display: block;
        }

        .sp_menu .inner {
                padding-top:1em;
                padding-bottom: 100px;
        }

        .sp_menu .layer1 > li{
                line-height: 3em;
                border-bottom: 1px solid #fff;
                position: relative;
        }

        .sp_menu .layer1 > li:after {
                content: '';
                display: block;
                background-image: url("../images/common/icon_arrow02.png");
                width: 8px;
                height: 15px;
                background-size: contain;
                background-repeat: no-repeat;
                position: absolute;
                right: 0;
                top: 1.2em;
        }

        .sp_menu .layer1 > li.layer_exist:after {
                transform: rotateZ(90deg);
        }

        .sp_menu .layer1 > li.layer_exist.open:after {
                transform: rotateZ(-90deg);
        }

        .sp_menu .layer2 {
                display: none;
        }

        .sp_menu .layer2 > li a{
                line-height: 2.5em;
                padding-left: 1.5em;
        }

        .sp_menu .layer3 > li a {
                padding-left: 3.5em;
                line-height: 2.5em;
        }
}

/*
※※※※※※※※※※※※※※※※

フッター

※※※※※※※※※※※※※※※※
*/
footer {
        padding-top: 80px;
}

.link_banner {
        margin: 0 auto 80px;
        max-width: 1000px;
}

.link_banner li {
        width: 33%;
        max-width: 330px;
        height: auto;
        position: relative;
}

.link_banner a {
        display: block;
        width: 100%;
        height: 100%;
}

.link_banner img {
        width: 100%;
        height: auto;
}

.link_banner .text {
        position: absolute;
        color: #fff;
        pointer-events: none;
}

.link_banner li:first-child .text {
        top: calc(50% - 0.5em);
        left: calc(50% - 3.5em);
        font-size: 2rem;
}

.link_banner li:nth-child(2) .text {
        top: 25%;
        right: 8%;
}

.link_banner li:nth-child(2) .text1 {
        background-color: #fff;
        color: #081b91;
        text-align: center;
        font-size: 1.4rem;
        line-height: 3rem;
        margin-bottom: 5px;
        letter-spacing: 0.05em;
}

.link_banner li:nth-child(2) .text2 {
        font-size: 3rem;
        letter-spacing: 0.1em;
}

.link_banner li:nth-child(3) .text {
        font-size: 2.9rem;
        top: calc(50% - 0.5em);
        left: calc(50% - 3em);
        text-shadow: 2px 2px 7px #354e68;
}

.footer_logo {
        display: block;
        width: 332px;
        margin: 0 auto 40px;
}

.copyright {
        text-align: center;
        color: #cccccc;
        font-size: 1.7rem;
        margin-bottom: 30px;
}

@media screen and (max-width:1099px) and (min-width:768px){

        .link_banner li:nth-child(2) .text1 {
                font-size: 1.4vw;
                line-height: 2em;
        }

        .link_banner li:nth-child(2) .text2 {
                font-size: 2.3vw;
        }

        .link_banner li:nth-child(3) .text {
                font-size: 2.4vw;
                text-shadow: 2px 2px 7px #354e68;
        }

}

@media screen and (max-width:767px) {
        footer {
                padding-top: 40px;
        }

        .link_banner {
                margin-bottom: 40px;
        }


        .link_banner li {
                width: 100%;
                max-width: 100%;
                margin-bottom: 20px;
        }

        .link_banner li:first-child .text {
                top: calc(50% - 0.5em);
                left: calc(50% - 3.5em);
                font-size: 2.9rem;
        }

        .link_banner li:nth-child(2) .text1 {
                font-size: 2.5rem;
                line-height: 3.5rem;
        }

        .footer_logo {
                display: block;
                width: 55vw;
                margin: 0 auto 40px;
        }

        .copyright {
                text-align: center;
                color: #cccccc;
                font-size: 1.5rem;
                margin-bottom: 30px;
        }

}

/*
※※※※※※※※※※※※※※※※

お問い合わせ（フッター手前）

※※※※※※※※※※※※※※※※
*/
.common_inquiry .title {
        font-size: 4.7rem;
        text-align: center;
        position: relative;
        margin: 85px 0 55px;
}

.common_inquiry .title:before,
.common_inquiry .title:after {
        content: '';
        display: block;
        position: absolute;
        height: 1px;
        width: 64px;
        background-color: #333;
        top: 50%;
}

.common_inquiry .title:before {
        left: calc(50% - 5em);
}

.common_inquiry .title:after {
        right: calc(50% - 5em);
}

.common_inquiry .left_area {
        width: 50%;
        float:left;
        background-color: #89939b;
        color: #fff;
}

.common_inquiry .right_area {
        width: 50%;
        float:right;
        background-color: #a5b0b9;
        color: #fff;
}

.common_inquiry .wrap {
        max-width: 527px;
        width: 100%;
        box-sizing: border-box;
}

.common_inquiry .left_area .wrap {
        padding:100px 0 90px;
        float: right;
        margin-right: 100px;
}

.common_inquiry .right_area .wrap {
        padding:100px 0 90px;
        float: left;
        margin-left: 100px;
}

.common_inquiry .area_name {
        font-size: 4.4rem;
        float: left;
        margin: 0;
        line-height: 1em;
}

.common_inquiry .number_area {
        font-size: 3.7rem;
        float: right;
}

.common_inquiry .number_area .fax {
        margin-bottom: 0.5em;
}

.common_inquiry .number_area span {
        font-size: 2.5rem;
        display: inline-block;
}

.common_inquiry .number_area .fax span {
        letter-spacing: 0.05em;
}

@media screen and (max-width:1324px) {
        .common_inquiry .wrap {
                max-width: none;
                width: 100%;
                box-sizing: border-box;
        }

        .common_inquiry .left_area .wrap {
                padding:100px 3vw 90px;
                float: right;
                margin-right:0
        }

        .common_inquiry .right_area .wrap {
                padding:100px 3vw 90px;
                float: left;
                margin-left: 0;
        }
}

@media screen and (max-width:1099px) and (min-width:768px){
        .common_inquiry .area_name {
                font-size: 3.8vw;
        }

        .common_inquiry .number_area {
                font-size: 3.3vw;
        }

        .common_inquiry .number_area span {
                font-size: 2.3vw;
        }

        .common_inquiry .left_area .wrap {
                padding:9vw 3vw 8vw;
                float: right;
                margin-right:0
        }

        .common_inquiry .right_area .wrap {
                padding:9vw 3vw 8vw;
                float: left;
                margin-left: 0;
        }
}

@media screen and (max-width:767px){
        .common_inquiry .title {
                font-size: 2.6rem;
                margin: 40px 0 30px;
        }

        .common_inquiry .title:before,
        .common_inquiry .title:after {
                width: 35px;
        }

        .common_inquiry .left_area {
                width: 100%;

        }

        .common_inquiry .right_area {
                width: 100%;
        }

        .common_inquiry .left_area .wrap {
                padding:50px 5vw 50px;
        }

        .common_inquiry .right_area .wrap {
                padding:50px 5vw 50px;
        }
}

@media screen and (max-width:535px){
        .common_inquiry .area_name {
                font-size: 8vw;
        }

        .common_inquiry .number_area {
                font-size: 6vw;
        }

        .common_inquiry .number_area span {
                font-size: 4.5vw;
        }
}
/*
※※※※※※※※※※※※※※※※

主なグループ会社

※※※※※※※※※※※※※※※※
*/
.group_company {
        padding: 85px 0 100px;
        background-color: #f2f2f2;
}

.group_company .title_en {
        text-align: center;
        font-size: 1.9rem;
        color: #333333;
}

.group_company .title {
        text-align: center;
        font-size: 4.7rem;
        color: #333333;
        margin-bottom: 1.5em;
}

.company_list li {
        width: 32%;
        margin-bottom: 2%;
}

.company_list li.text_link,
.company_list li:nth-last-child(2) {
        margin-bottom: 0;
}

.company_list .text_link {
        width:66%;
        background-color: #fff;
        padding:3.5% 10% 0;
}

.company_list li img {
        width: 100%;
}

.company_list .text_link a {
        font-size: 1.6rem;
        vertical-align: middle;
        display: block;
        line-height: 100%;
        background-image:url("../images/common/icon_arrow01.png");
        background-position: left bottom 0.1em;
        background-repeat: no-repeat;
        background-size: 7px auto;
        padding-left:18px;
}

.company_list .text_link a:first-child {
        float: left;
}

.company_list .text_link a:last-child {
        float: right;
}

@media screen and (max-width:767px) {
        .group_company .title_en {
                font-size: 1.7rem;
        }

        .group_company .title {
                font-size: 8vw;
                margin-bottom: 1.5em;
                letter-spacing: -0.05em;
        }

        .company_list li {
                width: 49%;
                margin-bottom: 2%;
        }

        .company_list .text_link {
                width:100%;
                height:13vw;
                padding:5.5% 10% 0;
                margin-top: 4%;
        }
}

@media screen and (max-width:499px) {
        .company_list .text_link {
                padding:5.5% 3% 0;
        }

        .company_list .text_link a {
                font-size: 1.3rem;
                background-position: left bottom 0.2em;
                background-repeat: no-repeat;
                background-size: 5px auto;
                padding-left:13px;
        }
}



/*
※※※※※※※※※※※※※※※※

TOPへのボタン

※※※※※※※※※※※※※※※※
*/
#go-to-top {
        height: 100px;
        width: 100px;
        position: fixed;
        bottom: 5vw;
        right: 5vw;
        box-shadow: 2px 2px 2px 2px rgba(0,0,0,0.2);
        cursor: pointer;
        background-color: #fff;
        text-align: center;
        margin: 0;
        padding-top: calc(50px - 0.8em);
        color: #999;
}

@media screen and (max-width:767px) {
        #go-to-top {
                height: 60px;
                width: 60px;
                bottom: 10vw;
                padding-top: calc(30px - 0.8em);
                font-size: 1.3rem;
        }
}
