/**************************************************

BASE

****************************************************/

footer{
    margin-top:120px;
}

#main section + section,
#main .wp-con + .wp-con{
    margin-top:90px;
}

#main img {
    max-width: 100%;
    height: auto;
}

#pageVisual{
    overflow: hidden;
    position: relative;
    padding:0 0 20px;
}

#pageVisual h1{
    position: absolute;
    left:50%;
    bottom:0;
    transform: translateX(-50%);
    color:#fff;
    background:url(../../../../../wp-content/uploads/2021/05/visual_fuji.png) no-repeat 0 0 / contain;
    width:321px;
    height:227px;
    text-align: center;
    box-sizing: border-box;
    padding:135px 0 0 0;
    line-height:1.2;
}

#pageVisual h1 small{
    font-size:1.6rem;
    margin-bottom: 5px;
    display: block;
}

#pageVisual h1 span{
    display: block;
    font-size:3.4rem;
}

#pageVisual.visual-anniversary h1 span,
#pageVisual.visual-privacy-policy h1 span{
    display: block;
    font-size:2.4rem;
}

#pageVisual.visual-anniversary::before{
    content:'';
    width:247px;
    height:194px;
    display: block;
    position: absolute;
    top:50%;
    transform: translateY(-50%);
    left:12%;
    background:url(../../../../../wp-content/uploads/2021/05/visual_anniversary_90.png) no-repeat 0 0 / contain;
}

/* title */

.title{
    margin-bottom:20px;
    color:#E63A33;
    font-size:2.4rem;
}

.title--border{
    color:#333;
    font-size: 2.2rem;
    padding:0 0 5px 30px;
    margin-bottom:25px;
    background: url(../../../../../wp-content/uploads/2021/05/ico_circle.png) no-repeat 0 5px / 23px 23px;
    border-bottom: 2px solid #133886;
}


/* table */

table,
tbody,
tr {
    border: none;
    width: 100%;
    height: auto !important;
    box-sizing: border-box;
}

th,
td {
    padding: 15px;
    box-sizing: border-box;
    border: 5px solid #fff;
    font-size: 1.6rem;
    line-height: 1.7;
    text-align: left;
    vertical-align: top;
    background: #F8F8F8;
}

th {
    background: #71CFF8;
    color:#fff;
}

/* anchorlink */

.anchorlink {
    margin-bottom: 50px;
}

.anchorlink li {
    display: inline-block;
    font-size: 1.6rem;
    margin:0 15px;
}

.anchorlink li a {
    text-decoration: none;
    font-size:1.8rem;
    font-weight:bold;
    text-align: center;
    display: inline-block;
    box-sizing: border-box;
    min-width: 250px;
    padding:15px 40px;
    background:url(../../../../../wp-content/uploads/2021/05/ico_arrow_red.png) no-repeat 16px center #fff;
    background-size: 11px auto;
    border:2px solid #E63A33;

}

.anchorlink li a:hover,
.anchorlink li.current_page_item a {
    font-weight: bold;
    opacity: 1;
    color:#fff;
    background:url(../../../../../wp-content/uploads/2021/05/ico_arrow_white.png) no-repeat 16px center #E63A33;
    background-size: 11px auto;
}


/* pagenation */

.pagination {
    clear: both;
    padding: 20px 0;
    position: relative;
    font-size: 14px;
    line-height: 14px;
    text-align: center;
}

.pagination-box {
    display: inline-block;
}

.pagination span,
.pagination a {
    display: block;
    float: left;
    margin: 2px 2px 2px 0;
    padding: 10px 15px 10px 15px;
    text-decoration: none;
    width: auto;
    color: #333;
    background: #d2d2d2;
}

.pagination a:hover {
    color: #fff;
    background: #dc1d1e;
}

.pagination .current {
    padding: 10px 15px 10px 15px;
    color: #fff;
    background: #dc1d1e;
}

@media only screen and (max-width: 413px) {
    .pagination {
        font-size: 12px;
        line-height: 12px;
    }

    .pagination span,
    .pagination a {
        padding: 8px 10px 8px 10px;
    }

    .pagination .current {
        padding: 8px 10px 8px 10px;
    }
}

/*************************************************

CONTENTS

****************************************************/

/* voice
*******************************************************/

#voice .staff-head__img img{
    max-width: 785px;
}

#voice .staff-head strong{
    display: block;
    color:#E63A33;
    font-size:2.8rem;
    margin:40px 0 20px;
    line-height: 1.7;
}

#voice .staff-head p{
    font-weight: bold;
}

#voice .staff-head{
    margin-bottom: 60px;
}


/* personality
*******************************************************/

#personality .personality__img,
#voice .voice__img{
    flex-basis: 33%;
}

#personality .personality__txt,
#voice .voice__txt{
    flex-basis: 63%;
}


/* anniversary
*******************************************************/

#anniversary .section-1{
    padding:80px 0 0 0;
    background:url(../../../../../wp-content/uploads/2021/05/bg_anniversary1-scaled.jpg) no-repeat 50% 50% / cover;
}

#anniversary .section-1__img{
    flex-basis: 38%;
}

#anniversary .section-1__txt{
    flex-basis: 60%;
}

#anniversary .anniversary__title{
    margin-bottom: 40px;
}

#anniversary .anniversary__title small{
    display: block;
    font-size:1.8rem;
    color:#E63A33;
}

#anniversary .anniversary__title span{
    display: block;
    font-size:3.6rem;
}

#anniversary .section-2__img{
    flex-basis: 26%;
}

#anniversary .section-2__txt{
    flex-basis: 69%;
}

#anniversary .section-2 .flex+.flex{
    margin-top:30px;
}


#anniversary .section-3{
    padding:80px 0;
    color:#fff;
    background:url(../../../../../wp-content/uploads/2021/05/bg_anniversary2-scaled.jpg) no-repeat 50% 50% / cover;
}

#anniversary .section-3 .anniversary__title small,
#anniversary .section-3 .anniversary__title span{
    color:#fff;
}

#anniversary .section-3__img{
    flex-basis: 45%;
}

#anniversary .section-3__txt{
    flex-basis: 50%;
}


/* outline
*******************************************************/

#outline th,
#requirements th{
    width:250px;
}

/* message
*******************************************************/

#message .message__img{
    flex-basis: 23%;
}

#message .message__txt{
    flex-basis: 73%;
}

.ceo{
    margin-top:15px;
    font-size:2.8rem;
}

.ceo small{
    display: inlin-block;
    font-size:2rem;
    margin:0 15px 0 0;
}


/* sdgs
*********************************************************/

#sdgs .sdgs__img1{
    flex-basis: 36%;
}

#sdgs .sdgs__txt1{
    flex-basis: 61%;
}

#sdgs .sdgs__img2{
    flex-basis: 16%;
}

#sdgs .sdgs__txt2{
    flex-basis: 80%;
}

#sdgs .section-2 .catch{
    display: block;
    font-size:1.8rem;
}

#sdgs .section-2 .flex{
    margin-top:40px;
}


/* facility
*********************************************************/

#facility th,
#facility td{
    text-align: center;
}

#facility .flex{
    flex-wrap: wrap;
}

#facility .facility-post{
    flex-basis: 47%;
    margin-top:40px;
}

#facility .facility-post a{
    display: block;
    text-decoration: none;
}

#facility .facility-post a strong{
    display: block;
    font-size:2rem;
    margin-top:15px;
    text-align: center;
}

#facility .ico-search{
    width:21px;
    margin-right: 10px;
}

/* products
*********************************************************/

#products .flex{
    flex-wrap:wrap;
    margin:0 -22px;
}

#products .products-post{
    flex-basis: 33.3%;
    padding:0 22px 45px;
}

@media all and (-ms-high-contrast:none){
    #products .products-post{
        flex-basis: 29.7%;
    }
}

#products .products-post a{
    text-decoration: none;
    display: block;
}

#products .products-post img{
    border:1px solid #DDDDDD;
    box-sizing:border-box;
}

#products .products-post strong{
    display: block;
    margin:15px 0 0 0;
    font-size:1.8rem;
    text-align: center;
    word-break: break-all;
}

/* products-single */

#products-single .area-img{
    flex-basis:50%;
}

#products-single .area-txt{
    flex-basis:46%;
}

#products-single #mainstage img,
#products-single .thumbnail img{
    border:1px solid #DDDDDD;
}

#thumbnails{
    flex-wrap: wrap;
    margin:0 -5px;
}

#products-single th{
    width:150px;
}

#products-single .thumbnail{
    flex-basis: 33.3%;
    padding:10px 5px 0;
    box-sizing: border-box;
}

#products-single .area-btn{
    margin-top:70px;
}



/* technology
**********************************************************/

#technology .technology__img{
    flex-basis: 52%;
}

#technology .technology__txt{
    flex-basis: 42%;
}

#technology .section-2{
    padding:90px 0;
    background:url(../../../../../wp-content/uploads/2021/05/bg_strength1-scaled.jpg) no-repeat 0 0 / cover;
    color:#fff;
}

#technology .section-2 .title{
    color:#fff;
}

#technology .section-4 .flex{
    flex-wrap: wrap;
}

#technology .section-4 .card{
    flex-basis: 46%;
    margin-bottom:45px;
}

#technology .section-4 .card strong{
    display: block;
    font-size:2rem;
    margin:10px 0 0 0;
}
/*
.wrap-movie {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
}

.wrap-movie iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
*/

/* Contact
*********************************************************/

#contact .catch01 {
    width: 100%;
    padding: 20px;
    margin-bottom: 40px;
    text-align: center;
    font-size: 1.8rem;
    line-height: 1.8;
    box-sizing: border-box;
    border:2px solid #DDDDDD;
}

#contact .catch01 span {
    font-size: 3.2rem;
    color:#133886;
    display: inline-block;
    font-weight: bold;
}

#contact .catch01 span+span {
    margin-left: 30px;
}

#contact h2 {
    font-size: 2rem;
    margin-bottom: 20px;
    color: #133886;
}

#contact.entry.check .check-agree,
#contact.confirm .check-agree {
    display: none;
}

#contact table li {
    display: inline-block;
}

#contact .wrap-form {
    background: #FAFAFA;
    padding: 80px;
    margin-top: 50px;
}

#contact table {
    width: 100%;
    border: none;
}

#contact table th,
#contact table td {
    border: none;
    padding: 15px;
    font-size: 1.6rem;
    vertical-align: middle;
    text-align: left;
    background: none;
}

#contact table th {
    width: 250px;
    position: relative;
    color: #333;
    vertical-align: top;
    padding-top: 29px;
    padding-bottom: 0;
}

#contact.confirm table th {
    padding: 15px;
}

#contact table table {
    margin: 0;
}

#contact table table th,
#contact table table td {
    background: none;
    border: none;
}

#contact table table th,
#contact.confirm table table th {
    font-weight: normal;
    width: 190px;
    vertical-align: middle;
    color: #333;
    padding: 15px 15px 15px 0;
}

#contact table table td {
    padding: 15px 0;
}

#contact table table tr:first-child th,
#contact table table tr:first-child td {
    padding-top: 0;
}

#contact table table tr:last-child th,
#contact table table tr:last-child td {
    padding-bottom: 0;
}

#contact label {
    font-weight: normal;
}

#contact span.red {
    color: #fff;
    display: inline-block;
    background: #C50000;
    padding: 8px 15px;
    right: 25px;
    position: absolute;
    top: 22px;
    font-size: 1.4rem;
    font-weight: normal;
}

#contact span.gray {
    color: #fff;
    display: inline-block;
    background: #999999;
    padding: 8px 15px;
    right: 25px;
    position: absolute;
    top: 22px;
    font-size: 1.4rem;
    font-weight: normal;
}

#contact.confirm span.gray,
#contact.confirm span.red {
    top: 12px;
}

#contact .check-agree {
    font-size: 1.6rem;
    padding: 0 15px;
}

#contact .check-agree a {
    color: #1D3BB4;
}

#contact .agree-wrap {
    font-size: 1.6rem;
    margin: 20px 0 40px;
    padding: 10px;
    box-sizing: border-box;
}

#contact input[type=text],
#contact input[type=email],
#contact input[type=tel] {
    width: 500px;
    padding: 15px;
    background: #fff;
}

#contact input[type=text].var01 {
    width: 10em;
}

#contact input.var02,
#contact input.var03 {
    width: 8em;
}

#contact input[type=checkbox] {
    display: inline-block;
    margin-right: 0.5em;
}

#contact input[type=checkbox]+label {
    display: inline-block;
    margin-bottom: 5px;
}

input[type="button"],
input[type="text"],
input[type="email"],
input[type="submit"],
input[type="image"],
textarea,
select {
    -webkit-appearance: none;
    border-radius: 0;
    border: 1px solid #DDDDDD;
}

#contact input[type="radio"] {
    display: none;
}

#contact input[type="radio"]+.mwform-radio-field-text {
    padding-left: 20px;
    position: relative;
    margin-right: 20px;
}

#contact input[type="radio"]+.mwform-radio-field-text::before {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 15px;
    height: 15px;
    border: 1px solid #fff;
    background: #fff;
    border-radius: 50%;
    box-sizing: border-box;
}

#contact input[type="radio"]:checked+.mwform-radio-field-text::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    left: 5px;
    transform: translateY(-50%);
    width: 6px;
    height: 6px;
    background: #605834;
    border-radius: 50%;
}

select::-ms-expand {
    display: none;
}

#contact select {
    height: 48px;
    margin-right: 5px;
    max-width: 20em;
    background: url(../../images/common/ico_arrow_select.png) no-repeat right 10px center #fff;
    padding: 0 45px 0 15px;
}

#contact textarea {
    width: 100%;
    height: 10em;
    background: #fff;
    padding: 15px;
    box-sizing: border-box;
}


#contact .bg-danger {
    padding: 10px;
    margin-top: 5px;
}

#contact .btnWrap01 {
    padding: 25px 0 0;
    overflow: hidden;
}

#contact .btnWrap01 p {
    font-size: 1.4rem;
}

#contact input[type=submit],
#contact .btnWrap01 a,
#contact .fm-modoru {
    appearance: none;
    border: none;
    width: 300px;
    line-height: 65px;
    background:url(../../../../../wp-content/uploads/2021/05/ico_arrow_white.png) no-repeat 16px center #E63A33;
    background-size: 11px auto;
    color: #fff;
    display: block;
    margin: 20px auto;
    font-size: 1.6rem;
    font-weight: bold;
    text-align: center;
    text-decoration: none;
}

#contact input[type=submit]:hover {
    opacity: 0.6;
    transition: all 0.3s;
}

#contact .fm-modoru {
    margin: 0 auto;
    color: #fff;
    background: #666 !important;
}

#contact .btnWrap01 a.btn01 {
    background: #666 !important;
    color: #fff;
}

#contact .wrap03 {
    padding: 0 15px;
    margin-bottom: 20px;
}

#contact .wrap03 p {
    padding: 15px;
    background: #EDEDED;
    font-size: 0.9rem;
}

body .mw_wp_form .error {
    color: #c50000;
    background-color: #f2dede;
    padding: 10px;
    margin: 5px 0;
    display: inline-block;
}

#contact .mwform-checkbox-field input[type="checkbox"] {
    display: none;
}

.mwform-checkbox-field .mwform-checkbox-field-text::before {
    content: '';
    margin-right: 15px;
    background: url(../../images/common/ceckoff.png) no-repeat 0 0;
    width: 40px;
    height: 40px;
    display: inline-block;
    vertical-align: middle;
}

.mwform-checkbox-field input[type="checkbox"]:checked+.mwform-checkbox-field-text::before {
    background: url(../../images/common/ceckon.png) no-repeat 0 0;
}

#contact .text01 + .text01{
    margin-top:20px;
}

@media screen and (max-width:828px) {

    #contact .catch01 span+span {
        margin-left: 0;
    }

    #contact input[type="file"] {
        box-sizing: border-box;
        width: 100%;
    }

    #contact .catch01 span,
    #contact h2 {
        font-size: 2rem;
    }

    #contact .catch01 br {
        display: none;
    }

    #contact .catch01 span {
        display: block;
    }

    #contact .catch01 span+span {
        padding-left: 0;
    }

    #contact table th,
    #contact table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }

    #contact table td input[type=text],
    #contact table td input[type=email],
    #contact table td input[type=tel] {
        width: 100%;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
    }

    #contact table td input.var02 {
        width: 4em;
    }

    #contact table td input[type=text].var01 {
        width: 100%;
        margin-bottom: 10px;
    }

    #contact table td input.var03 {
        width: 6em;
    }

    #contact table td input.var03+br+input.var01 {
        margin-top: 20px;
    }

    #contact input[type=submit],
    #contact .btnWrap01 a,
    #contact .fm-modoru {
        width: 75%;
        margin-left: auto;
        margin-right: auto;
    }

    .btnWrap01 {
        text-align: center;
    }

    #contact .wrap-form {
        padding: 10px;
    }

    #contact.confirm .wrap-form {
        padding: 10px 10px 40px;
    }

    #contact table th {
        padding: 15px;
        vertical-align: middle;
    }

    #contact span.gray,
    #contact span.red {
        top: 50%;
        transform: translateY(-50%);
    }
}

@media screen and (min-width:829px) and (max-width:1200px) {

    #contact table table,
    #contact table table tbody,
    #contact table table tr,
    #contact table table th,
    #contact table table td {
        display: block;
        width: 100%;
        height: auto;
        box-sizing: border-box;
    }

}

/* privacy-policy
********************************************************/

#privacy-policy dt {
    font-weight: bold;
    font-size: 1.6rem;
    margin-bottom: 15px;
}

#privacy-policy dd {
    margin-bottom: 45px;
    font-size: 1.6rem;
}



/* news
*********************************************************/
#news .section01 {
    padding-bottom: 50px;
    margin-bottom: 50px;
    border-bottom: 1px dotted #ddd;
}

#news .section01 .columns {
    justify-content: space-between;
}

#news .section01 .news__img {
    flex-basis: 38%;
}

#news .section01 .news__txt {
    flex-basis: 56%;
}

#news .section01:last-of-type,
#news .section01.var01 {
    border: none;
    margin-bottom: 0;
}

#news .section01 .news__date {
    font-size: 1.6rem;
    color: #333333;
    font-weight: bold;
    margin-bottom: 10px;
    display: block;
}

#news .section01 .news__title {
    font-size: 2.4rem;
    color: #E63A33;
    margin-bottom: 15px;
}

#news .section01 .news__title a {
    color: inherit;
    text-decoration: none;
}

#news .section01 .inner01 {
    font-size: 1.6rem;
    line-height: 1.8;
}

#news.news-single .wp-pagenavi a,#news .wp-pagenavi span{
    line-height:1.6;
}   

/* Smartphone Vertical */
@media screen and (max-width:415px) {

    #news .section01 .columns {
        flex-direction: column;
    }

    #news .section01 .news__img {
        margin-bottom: 20px;
    }
}


/* Responsive
*********************************************************/

/* Tablet side Only */
@media screen and (min-width:829px) and (max-width:1200px) {
    #pageVisual {
        padding: 0 0 60px;
    }

    #pageVisual h1 span {
        display: block;
        font-size: 3rem;
    }

    #pageVisual.visual-anniversary h1 span, #pageVisual.visual-privacy-policy h1 span {
        display: block;
        font-size: 2.2rem;
    }

    #pageVisual.visual-anniversary::before {
        content: '';
        width: 160px;
        height: 150px;
        display: block;
        position: absolute;
        top: 35px;
        transform: translateY(0);
        left: 50px;
        background: url(../../../../../wp-content/uploads/2021/05/visual_anniversary_90.png) no-repeat 0 0 / contain;
    }

    #anniversary .section-1 {
        padding: 80px 0 40px 0;
        background: url(../../../../../wp-content/uploads/2021/05/bg_anniversary1-scaled.jpg) no-repeat 50% 50% / cover;
    }

    #works table,
    #works tbody,
    #works tr,
    #works th,
    #works td{
        display: block;
        width:100%!important;
        height:auto!important;
        box-sizing: border-box;
    }
}

/* Smartphone side + Tablet Vertical */
@media screen and (max-width:828px) {

    body #swipebox-close {
        right: auto;
        left: 0;
    }

    #pageVisual h1 {
        position: static;
        left: 0;
        bottom: 0;
        transform: translateX(0);
        color: #fff;
        background: #133886;
        width: 100%;
        height: auto;
        text-align: center;
        box-sizing: border-box;
        padding: 20px 0;
        line-height: 1.2;
        right: 0;
    }

    #pageVisual h1 span {
        display: block;
        font-size: 2.5rem;
    }

    .title,
    .title--border{
        font-size:2rem;
    }

    #technology .section-2{
        padding:40px 0;
    }

    #main section + section, #main .wp-con + .wp-con {
        margin-top: 40px;
    }

    #technology .section-4 .card {
        margin-bottom: 30px;
    }

    #products-single table,
    #products-single tbody,
    #products-single tr,
    #products-single th,
    #products-single td,
    #works table,
    #works tbody,
    #works tr,
    #works th,
    #works td,
    #outline table,
    #outline tbody,
    #outline tr,
    #outline th,
    #outline td,
    #requirements table,
    #requirements tbody,
    #requirements tr,
    #requirements th,
    #requirements td{
        display: block;
        width:100%!important;
        height:auto!important;
        box-sizing: border-box;
    }

    #facility .facility-post a strong{
        font-size:1.6rem;
    }

    .anchorlink li {
        display: block;
        font-size: 1.6rem;
        margin: 10px 0;
    }

    .anchorlink li a{
        min-width: 300px;
    }

    #voice .staff-head__img img {
        max-width: 500px;
        margin: 0 auto;
        width:100%;
    }

    #voice .staff-head strong {
        font-size: 2.3rem;
        margin: 20px 0;
        line-height: 1.7;
    }

    #voice .staff-head {
        margin-bottom: 40px;
    }

    #anniversary .section-1 {
        padding: 40px 0;
        background: url(../../../../../wp-content/uploads/2021/05/bg_anniversary1-scaled.jpg) no-repeat 50% 50% / cover;
    }

    #anniversary .anniversary__title span {
        display: block;
        font-size: 2.3rem;
    }

    #anniversary .anniversary__title small {
        display: block;
        font-size: 1.6rem;
        color: #E63A33;
    }

    #anniversary .section-3{
        padding:40px 0;
    }

    #news .section01 .news__titl{
        font-size:2rem;
    }

    #technology .technology__txt {
        flex-basis: 55%;
    }

    #technology .technology__img {
        flex-basis: 40%;
    }

    #pageVisual.visual-anniversary::before{
        display: none;
    }

    .title--border {
        background: url(../../../../../wp-content/uploads/2021/05/ico_circle.png) no-repeat 0 5px / 18px auto;
    }

    .wp-pagenavi.var01{
        text-align: center;
    }

}

/* Smartphone Vertical */
@media screen and (max-width:415px) {

    #contact .mwform-radio-field {
        display: block;
    }

    .mw_wp_form .horizontal-item+.horizontal-item {
        margin-left: 0;
    }

    #technology .flex,
    #products-single .flex.group01,
    #sdgs .flex,
    #message .flex,
    #personality .flex,
    #voice .flex,
    #anniversary .flex{
        flex-direction: column;
    }

    #technology .technology__img,
    #sdgs .sdgs__img1,
    #sdgs .sdgs__img2,
    #message .message__img,
    #personality .personality__img,
    #voice .voice__img,
    #anniversary .section-1__img,
    #anniversary .section-2__img,
    #anniversary .section-3__img{
        margin-bottom: 20px;
    }

    #sdgs .sdgs__img2 img{
        max-width: 250px;
        margin:0 auto;
    }

    #products .products-post {
        flex-basis: 50%;
        padding: 0 10px 45px;
    }

    #products .flex {
        flex-wrap: wrap;
        margin: 0 -10px;
    }

    #products-single .area-txt{
        margin-top:30px;
    }

    #voice .staff-head strong{
        font-size:2rem;
    }

    footer {
        margin-top: 80px;
    }
/*
    .wrap-movie {
        position: relative;
        height: 250px;
        padding:0;
        overflow: hidden;
    }
*/
    #voice .staff-head strong br{
        display: none;
    }
}
