@charset "UTF-8";

.main_visual {
    padding: 0;
    box-sizing: border-box;
}

.main_visual .slick-dotted.slick-slider {
    margin-bottom: 0;
}

.main_visual .wrap {
    position: relative;
    padding: 250px 0;
    text-align: right;
}

.visual_slider .item {
    position: relative;
    height: 730px;
    background-position: 50%;
    background-size: cover;
}

.visual_slider .txt {
    display: inline-block;
    padding-right: 40px;
    color: #fff;
    text-align: left;
    box-sizing: border-box;
}

.visual_slider .dec .thin {
    margin-top: 20px;
    font-size: 19px;
    font-weight: 300;
    line-height: 1.4;
}

.visual_slider .dec .bold {
    font-size: 55px;
    font-weight: 700;
    line-height: 1.2;
}

.visual_slider .txt .more {
    position: relative;
    display: inline-block;
    min-width: 150px;
    height: 40px;
    margin-top: 32%;
    border: 1px solid #fff;
    font-size: 16px;
    text-align: center;
    line-height: 38px;
    box-sizing: border-box;
}

.visual_slider .txt .more:after {
    content: '';
    position: absolute;
    top: 19px;
    left: 170px;
    display: block;
    width: 670px;
    height: 1px;
    background: #fff;
}

.visual_slider .slick-dots {
    bottom: 35px;
}

.visual_slider .slick-dots li {
    width: 12px;
    height: 12px;
}

.visual_slider .slick-dots li button {
    width: 100%;
    height: 100%;
    padding: 0;
    padding: 5px 0;
}

.visual_slider .slick-dots li button:before {
    content: '';
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, .45);
    border-radius: 50%;
    opacity: 1;
}

.visual_slider .slick-dots li.slick-active button:before {
    background: rgba(255, 255, 255, 1);
}

.visual_slider .slick-prev {
    left: 50%;
    z-index: 2;
    width: 23px;
    height: 65px;
    background: url('/lib/img/common/arrow_prev.png') 0 0 / contain no-repeat;
    transform: translateX(-830px);
}

.visual_slider .slick-next {
    right: 50%;
    z-index: 2;
    width: 23px;
    height: 65px;
    background: url('/lib/img/common/arrow_next.png') 0 0 / contain no-repeat;
    transform: translateX(830px);
}

.visual_slider .slick-prev:before,
.visual_slider .slick-next:before {
    opacity: 0;
}

.line_up {
    background: rgba(23, 42, 78, .85);
}

.line_up .wrap {
    display: flex;
    flex-direction: row;
}

.line_up .title {
    flex: 0 0 220px;
    padding: 20px 30px;
    background-color: rgba(20, 37, 44, .8);
    background-image: url('../img/main/icon_arrow_2.png');
    background-position: calc(100% - 10px) 50%;
    background-size: 25px auto;
    background-repeat: no-repeat;
    color: #fff;
    font-size: 18px;
    box-sizing: border-box;
}

.line_up .title em {
    display: block;
    margin-top: 10px;
    font-size: 26px;
    font-weight: 700;
}

.line_up .list_wrap {
    flex: 1 1 auto;
}

.line_up .list {
    display: flex;
    height: 100%;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: center;
}

.line_up .list li {
    flex: 0 0 auto;
    color: #fff;
    font-size: 16px;
}

.line_up .list .item a {
    display: block;
    padding: 10px 0;
}

.line_up .list .item img {
    display: block;
    margin: 0 auto 3px;
}

.main_line_up {
    margin: 110px 0;
}

.main_line_up .wrap {
    max-width: 1260px;
}

.main_line_up h2 {
    color: #2a2a2a;
    font-size: 22px;
}

.main_line_up .lineup_slider {
    margin-top: 10px;
    margin-bottom: 0;
    height: 400px;
}

.main_line_up .slick-track>.item {
    overflow: hidden;
    font-size: 0;
}

.main_line_up .txt {
    float: left;
    display: inline-block;
    width: 50%;
    vertical-align: top;
}

.main_line_up .dec p {
    color: #0e61b1;
    font-size: 60px;
    font-weight: 700;
}

.main_line_up .info {
    margin-top: 20px;
}

.main_line_up .info .item {
    font-size: 17px;
    color: #727272;
    line-height: 1.4;
}

.main_line_up .info .item:before {
    content: '-';
    padding-right: 10px;
}

.main_line_up .more {
    display: block;
    width: 146px;
    height: 40px;
    margin-top: 40px;
    border: 1px solid #000;
    font-size: 16px;
    text-align: center;
    line-height: 38px;
    box-sizing: border-box;
}

.main_line_up img {
    float: right;
    display: inline-block;
    width: 50%;
    vertical-align: top;
}

.main_line_up .slick-dots {
    bottom: calc(100% + 50px);
    text-align: left;
}

.main_line_up .slick-dots li {
    margin: 0 2px;
}

.main_line_up .slick-dots li.slick-active button {
    padding: 2px;
}

.main_line_up .slick-dots li.slick-active button:before {
    font-size: 16px;
    color: #005cb7;
}

.portfolio {
    margin: 110px 0;
}

.portfolio h1 {
    color: #222;
    margin-bottom: 60px;
    font-size: 60px;
    text-align: center;
}

.portfolio h1:after {
    content: '';
    display: block;
    width: 70px;
    height: 1px;
    margin: 30px auto 0;
    background: #000;
}

.portfolio .list {
    display: flex;
    flex-wrap: wrap;
    padding: 0 160px;
    box-sizing: border-box;
}

.portfolio .list .item {
    position: relative;
    flex: 0 0 calc(33.33% - 50px);
    margin: 0 25px;
}

.portfolio .list .item:nth-child(n + 4) {
    margin-top: 30px;
}

.portfolio .list .item img {
    display: block;
    width: 100%;
}

.portfolio .list .item .info {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: rgba(0, 0, 0, .6);
    opacity: 0;
    pointer-events: none;
    transition: all .4s ease;
}

.portfolio .list .item:hover .info {
    opacity: 1;
    pointer-events: all;
}

.portfolio .list .item .info h2,
.portfolio .list .item .info p,
.portfolio .list .item .info a {
    flex: 0 0 auto;
    display: block;
}

.portfolio .list .item .info h2,
.portfolio .list .item .info p {
    color: #fff;
}

.portfolio .list .item .info h2 {
    margin-bottom: 20px;
    font-size: 24px;
    font-weight: 700;
}

.portfolio .list .item .info p {
    margin-bottom: 20px;
    line-height: 1.5;
}

.portfolio .list .item .info a {
    width: 150px;
    height: 36px;
    background: #fff;
    color: #000;
    font-size: 16px;
    text-align: center;
    line-height: 36px;
}

.portfolio>.more {
    display: block;
    margin: 60px auto 0;
    width: 250px;
    height: 50px;
    border: 1px solid #000;
    font-size: 20px;
    text-align: center;
    line-height: 48px;
    box-sizing: border-box;
}


.company {
    margin: 110px 0;
}

.company h1 {
    color: #222;
    margin-bottom: 20px;
    font-size: 60px;
    text-align: center;
}

.company h1:after {
    content: '';
    display: block;
    width: 70px;
    height: 1px;
    margin: 30px auto 0;
    background: #000;
}

.company .sub_title {
    margin-bottom: 60px;
    color: #6f6f6f;
    font-size: 18px;
    font-weight: 300;
    text-align: center;
}

.company .list {
    display: flex;
    flex-direction: row;
}

.company .list .item {
    position: relative;
    flex: 0 0 calc(50% - 10px);
    list-style: none;
}

.company .list .item:nth-child(2) {
    margin-left: 20px;
}

.company .list .center_box {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1;
    transform: translate(-50%, -50%);
}

.company .list .center_box p {
    font-size: 45px;
    color: #fff;
    text-align: center;
}

.company .list .center_box a {
    display: block;
    margin-top: 25px;
    width: 200px;
    height: 45px;
    font-size: 18px;
    color: #fff;
    background: rgba(0, 0, 0, .55);
    line-height: 45px;
    text-align: center;
}

.company .list .item img {
    display: block;
    width: 100%;
}

.customer {
    margin: 200px 0 110px;
}

.customer h1 {
    color: #222;
    margin-bottom: 20px;
    font-size: 60px;
    text-align: center;
}

.customer h1:after {
    content: '';
    display: block;
    width: 70px;
    height: 1px;
    margin: 30px auto 0;
    background: #000;
}

.customer .sub_title {
    margin-bottom: 60px;
    color: #6f6f6f;
    font-size: 18px;
    font-weight: 300;
    text-align: center;
}

.customer .info {
    max-width: 1100px;
    margin: 0 auto;
    font-size: 0;
}

.customer .info .row {
    display: inline-block;
    margin: 30px 0;
    vertical-align: middle;
}

.customer .info .row:nth-child(1) {
    width: 100%;
}

.customer .info .row:nth-child(2) {
    width: 60%;
}

.customer .info .row:nth-child(3) {
    width: 40%;
}

.customer .info .img {
    display: inline-block;
    width: 130px;
    padding-right: 20px;
    vertical-align: middle;
    border-right: 1px solid #969696;
    box-sizing: border-box;
    text-align: right;
}

.customer .info .img span {
    display: block;
    margin-top: 15px;
    color: #636363;
    font-size: 18px;
    font-weight: 700;
}

.customer .info .row:nth-child(1) img {
    margin-right: 7px;
}

.customer .info .row:nth-child(2) img {
    margin-right: 3px;
}

.customer .info .row p {
    display: inline-block;
    width: calc(100% - 130px);
    color: #727272;
    font-size: 20px;
    font-weight: 300;
    vertical-align: middle;
    box-sizing: border-box;
}

.customer .info .row>p,
.customer .info .row>a {
    padding-left: 30px;
}

.customer .info .row:nth-child(2) a {
    font-size: 25px;
    font-weight: 300;
    color: #007fca;
}

.customer .info .row:nth-child(3) a {
    display: inline-block;
    margin-bottom: 10px;
    font-size: 30px;
    font-weight: 700;
    color: #007fca;
}

.contact {
    padding: 50px 0 60px;
    background: url('/lib/img/main/bg_contact.jpg') 50% 50%/ cover no-repeat;
}

.contact form {
    display: block;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    box-sizing: border-box;
}

.contact form::after {
    content: '';
    display: block;
    clear: both;
}

.contact h1 {
    margin-bottom: 40px;
    font-size: 45px;
    font-weight: 700;
    color: #fff;
    text-align: center;
}

.contact .left {
    float: left;
    width: calc(50% - 60px);
}

.contact .left .row {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin-top: 35px;
    padding: 5px 0;
    border: 1px solid #fff;
    color: #fff;
}

.contact .left .row:first-child {
    margin-top: 0;
}

.contact .left input {
    flex: 1 1 auto;
    width: 100%;
    height: 40px;
    padding: 0 10px;
    border: none;
    background: transparent;
    box-sizing: border-box;
    color: inherit;
}

.contact .left input::placeholder {
    color: #cdcdcd;
}

.contact .right {
    float: right;
    width: calc(50% - 60px);
    text-align: right;
}

.contact .right textarea {
    width: 100%;
    height: 210px;
    margin-bottom: 10px;
    padding: 15px;
    border: 1px solid #fff;
    color: #fff;
    background: transparent;
    font-size: 16px;
    line-height: 1.5;
    box-sizing: border-box;
    resize: none;
}

.contact .right textarea::placeholder {
    color: #cdcdcd;
}

.contact .right input {
    display: none;
}

.contact .right label {
    display: inline-block;
    font-size: 0;
    cursor: pointer;
}

.contact .right label .txt {
    display: inline-block;
    color: #fff;
    font-size: 13px;
    margin-right: 10px;
    vertical-align: middle;
}

.contact .right label .txt+span {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 1px solid #c7c7c7;
    background: #fff;
    vertical-align: middle;
}

.contact .right label .txt button {
    color: inherit;
    margin-left: 3px;
}

.contact .right :checked+label .txt+span {
    background: #007fca;
}

.contact .send {
    display: inline-block;
    width: 200px;
    height: 40px;
    margin-left: 30px;
    background: #fff;
    font-size: 14px;
    color: #000;
    text-align: center;
    line-height: 40px;
    vertical-align: middle;
}

@media screen and (max-width: 1600px) {
    .visual_slider .slick-prev {
        left: 0;
        transform: translateX(20px);
    }

    .visual_slider .slick-next {
        right: 0;
        transform: translateX(-20px);
    }

    .visual_slider .txt {
        padding-right: 70px;
    }
}

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


    .main_visual {
        height: 80vh;
    }

    .main_visual .wrap {
        display: flex;
        flex-direction: row;
        justify-content: flex-end;
        align-items: center;
        height: 100%;
        padding: 0;
    }

    .main_visual .slick-slider,
    .main_visual .slick-list,
    .main_visual .slick-track,
    .main_visual .slick-slide,
    .main_visual .slick-slide img {
        height: 100%;
    }

    .visual_slider .txt {
        flex: 0 0 75%;
        width: 75%;
        position: static;
        padding-right: 20px;
        transform: none;
        box-sizing: border-box;
    }

    .visual_slider .dec .thin {
        font-size: 18px;
        line-height: 1.3;
    }

    .visual_slider .dec .bold {
        font-size: 28px;
    }

    .visual_slider .dec {
        margin-left: 0;
    }


    .visual_slider .txt .more {
        display: none;
    }

    .visual_slider .txt .more:after {
        width: calc(100% - 170px);
    }

    .visual_slider .slick-dots {
        bottom: 30px;
    }

    .visual_slider .slick-prev,
    .visual_slider .slick-next {
        z-index: -1;
        opacity: 0;
    }

    .line_up .wrap {
        flex-direction: column;
    }

    .line_up .title {
        flex: 0 0 auto;
    }

    .line_up .list {
        flex-wrap: wrap;
    }

    .line_up .list li {
        flex: 0 0 50%;
    }

    .line_up .list .item a {
        text-align: center;
    }

    .main_line_up {
        margin: 80px 0;
    }

    .main_line_up h2 {
        padding: 0 20px;
        font-size: 20px;
    }

    .main_line_up .txt {
        width: 100%;
        padding: 0 20px;
        box-sizing: border-box;
    }

    .main_line_up .dec p {
        font-size: 24px;
    }

    .main_line_up .info .item {
        font-size: 16px;
    }

    .main_line_up img {
        float: none;
        display: block;
        width: 70%;
        margin: 0 auto 20px;
    }

    .main_line_up .more {
        font-size: 14px;
    }

    .main_line_up .slick-dots {
        padding: 0 20px;
        box-sizing: border-box;
    }

    .portfolio h1 {
        font-size: 32px;
    }

    .portfolio .list {
        overflow: auto;
        padding: 0;
        flex-wrap: nowrap;
    }

    .portfolio .list .item {
        flex: 0 0 80vw;
        margin: 0 10px;
    }

    .portfolio .list .item:nth-child(n + 4) {
        margin-top: 0;
    }

    .portfolio .list .item .info {
        position: static;
        align-items: flex-start;
        padding: 10px 0;
        background: transparent;
        opacity: 1;
        pointer-events: all;
    }

    .portfolio .list .item .info h2,
    .portfolio .list .item .info p {
        margin-bottom: 10px;
        color: #000;
    }

    .portfolio .list .item .info a {
        width: auto;
        height: auto;
        padding-bottom: 3px;
        background: transparent;
        border-bottom: 1px solid #000;
        font-size: 14px;
        line-height: 1.4;
    }

    .portfolio>.more {
        width: 200px;
        margin-top: 40px;
        font-size: 18px;
    }

    .company h1 {
        font-size: 32px;
    }

    .company .sub_title {
        padding: 0 20px;
        font-size: 16px;
        line-height: 1.6;
    }

    .company .list {
        flex-direction: column;
        align-items: center;
    }

    .company .list .item {
        flex: 0 0 auto;
        width: 90%;
    }

    .company .list .item:nth-child(2) {
        margin-top: 30px;
        margin-left: 0;
    }

    .customer h1 {
        font-size: 32px;
    }

    .customer .sub_title {
        padding: 0 20px;
        font-size: 16px;
        line-height: 1.6;
    }

    .customer .info .row {
        margin: 15px 0;
    }

    .customer .info .row:nth-child(2),
    .customer .info .row:nth-child(3) {
        width: 100%;
    }

    .customer .info .img {
        width: 100px;
        padding-right: 10px;
    }

    .customer .info img {
        width: 40px;
    }

    .customer .info .row:nth-child(1) img {
        margin-right: 13px;
    }

    .customer .info .row:nth-child(2) img {
        margin-right: 6px;
    }

    .customer .info .row:nth-child(3) img {
        margin-right: 2px;
    }

    .customer .info .img span {
        font-size: 16px;
    }

    .customer .info .row p {
        width: calc(100% - 100px);
        padding: 0 10px;
        font-size: 16px;
        line-height: 1.5;
        word-break: keep-all;
    }

    .customer .info .row:nth-child(2) a {
        padding-left: 10px;
        font-size: 20px;
    }

    .customer .info .row:nth-child(3) a {
        margin-bottom: 5px;
        font-size: 22px;
    }

    .company .list .center_box p {
        font-size: 28px;
    }

    .contact {
        margin-top: 20px;
        padding: 60px 15px 50px;
    }

    .contact form {
        padding: 0;
    }

    .contact h1 {
        margin-bottom: 30px;
        font-size: 24px;
    }

    .contact .left,
    .contact .right {
        float: none;
        width: 100%;
    }

    .contact .left .row {
        margin-top: 15px;
    }

    .contact .right {
        margin-top: 15px;
    }

    .contact .right textarea {
        height: 170px;
    }

    .contact .right label .txt {
        margin-right: 10px;
        font-size: 12px;
    }

    .contact .send {
        float: none;
        width: 100%;
        height: 44px;
        margin: 15px 0 0;
        font-size: 18px;
        line-height: 42px;
    }
}