@import url('//fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700;900&display=swap');
@import url('//fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@500&display=swap');
@import url('//cdn.jsdelivr.net/npm/yakuhanjp@3.4.1/dist/css/yakuhanjp-noto.min.css');
/* -- base -------------------------------------------------------------------------------- */
* {
    min-height: 0;
    min-width: 0;
}

html {
    font-size: .625rem;
}

body {
    font-size: 1.6em;
    font-family: 'Noto Sans JP';
    font-weight: 400;
    color: #333333;
    background-color: #FFC000;
    -ms-text-size-adjust: 100%;
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    overflow-x: hidden;
    line-height: 1.8;
    transition: color 0.3s;
}
body.fixed {
    position: fixed;
    width: 100%;
    height: 100%;
}
body.page {
    background-color: #FFF;
}

.nv {
    display: block;
    width: 100%;
}

.wrapper {
    overflow: hidden;
}

.container {
    width: 100%;
    max-width: 1280px;
    padding: 60px 5% 60px;
    margin: 0 auto;
}
.container_last {
    width: 100%;
    max-width: 1280px;
    padding: 60px 5% 120px;
    margin: 0 auto;
}

.fullwidth {
    width:100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

.bg {
    background-color: #E7FBF8;
}
.pagehead {
    position: absolute;
    top:0;
    right:0;
    width: 65%;
    height: 25vw;
    max-height: 420px;
    background-size: cover;
    background-position: center;
    z-index: -99;
}

.pcspc {
    display: none;
}

@media screen and (min-width: 768px) {
    .pcspc {
        display: inline-block;
    }
    .pcspc::after {
        content: '';
        padding-left: 2rem;
    }
}

.brsp {
    display: none;
}

@media screen and (max-width: 768px) {
    .brsp {
        display: inline-block;
    }
}

/* -- menu -------------------------------------------------------------------------------- */
header {
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 9999;
    transition: background-color 0.6s;
}

.nav-fixed {
    position: fixed;
}

.inner_header {
    display: flex;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 20px;
    align-items: center;
}

@media screen and (max-width: 767px) {
    .inner_header {
        padding: 15px;
    }
}

.headerlogo img {
    width: 365px;
    height: 36px;
}

@media screen and (max-width: 767px) {
    .headerlogo img {
        width: 255px;
        height: 25px;
    }
}

.logo_text {
    display: block;
    text-align: left;
    font-size: 1.25rem;
    color: #333333;
    padding-left: 0.25rem;
    text-decoration: none;
}

nav {
    flex-basis: calc(100% - 365px);
    margin: 0 0 0 auto;
}

#menu {
    display: block;
}

#menu a {
    color: #333333;
}

#menu ul {
    display: flex;
    list-style: none;
    margin: 0;
    justify-content: flex-end;
}

#menu li {
    margin: 0 0 0 40px;
}

#menu ul li.sponly {
    display: none;
}

#menu ul li a:hover {
    color: #00DDBB;
    transition: color 0.3s;
}

@media screen and (max-width: 767px) {
    #menu {
        transition: opacity 0.3s, visibility 0.3s;
        position: fixed;
        visibility: hidden;
        opacity: 0;
        width: 100%;
        height: 100vh;
        background-color: rgba(255, 255, 255, 0.9) ;
        z-index: 9999;
        left: 0;
        top: 0;
        padding-top: 30vh;
    }

    #menu ul {
        display: block;
    }

    #menu li {
        margin: 0;
    }

    #menu ul li a {
        display: block;
        width: 100%;
        text-align: center;
        transition: all 0.3s;
        padding: 20px 0;
    }
    #menu ul li.sponly {
        display: block;
    }

    #menu ul li a:hover {
        color: #00DDBB;
        background-color: rgba(51, 51, 51, 0.5);
        transition: all 0.3s;
    }
}

.hamburger {
    display: none;
}

@media screen and (max-width: 767px) {
    .hamburger {
        display: block;
        cursor: pointer;
        width: 56px;
        height: 56px;
        position: fixed;
        margin-right: 10px;
        right: 0;
        top: 0;
        z-index: 9999;
    }

    .hamburger span {
        background-color: #111;
        height: 2px;
        left: 11px;
        position: absolute;
        transition: all 0.3s;
        width: 32px;
    }

    .hamburger__lineTop {
        top: 28px;
    }

    .hamburger__lineCenter {
        top: 37px;
    }

    .hamburger__lineBottom {
        top: 46px;
    }

    .hamburger__text {
        font-weight: bold;
        padding-top: 49px;
        position: absolute;
        left: 12px;
        font-size: 10px;
        color: #111;
        transition: all 0.3s;
    }

    .menuclose {
        display: none;
    }

    /* メニューが開いた時のCSS */
    .nav-open #menu {
        visibility: visible;
        opacity: 1;
        transition: opacity 0.3s;
    }

    .nav-open .hamburger__lineTop {
        top: 32px;
        transform: rotate(-45deg);
        background-color: #111;
    }

    .nav-open .hamburger__lineCenter {
        opacity: 0;
        background-color: #111;
    }

    .nav-open .hamburger__lineBottom {
        top: 32px;
        transform: rotate(45deg);
        background-color: #111;
    }

    .nav-open .menuclose {
        display: block;
    }

    .nav-open .menuopen {
        display: none;
    }
}/* -- link -------------------------------------------------------------------------------- */
a {
    text-decoration: none;
    color: #0080CE;
    transition: color 0.3s;
}

a:hover {
    color: #00CCCE;
    transition: color 0.3s;
}

.ilb {
    display: inline-block;
}

/* -- button -------------------------------------------------------------------------------- */
.buttonarea {
    padding: 5rem 0;
}

.btn {
    display: table;
    position: relative;
    margin: 5rem 0;
    padding: 1.5rem 4rem;
    min-width: 20rem;
    border: 1px solid #0080CE;
    color: #FFFFFF;
    background-color: #0080CE;
    font-size: 1.6rem;
    border-radius: 0.5vh;
    text-align: center;
    text-decoration: none;
    box-sizing: border-box;
    transition: 0.5s;
}

.btn:hover {
    border: 1px solid #0080CE;
    background-color: #FFF;
    color: #0080CE;
    transition: 0.5s;
}

.btn_arrow {
    display: table;
    position: relative;
    margin: 3em 0;
    padding: 0.5rem 6rem;
    min-width: 10rem;
    border: 1px solid #0080CE;
    color: #0080CE;
    background-color: #FFF;
    font-size: 1.6rem;
    border-radius: 50vh;
    text-align: center;
    text-decoration: none;
    box-sizing: border-box;
    transition: 0.5s;
}

.btn_arrow::after {
    position: absolute;
    top: 50%;
    right: 2rem;
    width: 1rem;
    height: 1rem;
    transform: translateY(-50%) rotate(45deg);
    border-right: 1px solid #0080CE;
    border-top: 1px solid #0080CE;
    content: "";
}

.btn_arrow:hover {
    border: 1px solid #0080CE;
    background-color: #0080CE;
    color: #FFF;
    transition: 0.5s;
}

.btn_arrow:hover::after {
    border-right: 1px solid #FFF;
    border-top: 1px solid #FFF;
    transition: 0.5s;
}

.btn_center {
    margin: 0 auto;
}
.btn_mailmain {
    margin: 0;
}

.caption_center {
    font-size: 1.4rem;
    text-align: center;
    padding: 0.75rem 0;
}

.text_center {
    text-align: center;
}

.footerlogo {
    max-width: 431px;
}

@media screen and (max-width: 768px) {
    .footerlogo {
        width: 100%;
        max-width: 380px;
        height: auto;
    }
}

.pc-space {
    display: inline-block;
}

.pc-space::after {
    content: '';
    padding-left: 2rem;
}

@media screen and (max-width: 768px) {
    .pc-space {
        display: none;
    }
}

/* -- top -------------------------------------------------------------------------------- */
.top {
    padding-top: 180px;
}

.maincopy {
    font-family: 'Noto Serif JP';
    font-size: 4.4rem;
    text-align: left;
}
.heroimg {
    position: absolute;
    top:0;
    right:0;
    width: 65%;
    height: 100%;
    background-image: url(../img/main.jpg);
    background-size: cover;
    background-position: bottom;
    z-index: -99;
}
.inq_main {
    margin-top: 10rem
}
.tel_main {
    font-size: 3.5rem;
    font-weight: 700;
}
@media screen and (max-width: 767px) {
    .top {
        height: 100vh;
    }
    .heroimg {
        width: 100%;
    }
    .maincopy {
        font-size: 2.5rem;
    }
    .inq_main {
        margin-top: 20rem
    }
    .btn_mailmain {
        margin: 0;
    }
}
.business {
    color: #FFFFFF;
    padding-bottom: 0;
}
.business_bg {
    background-image: url(../img/machineimg.jpg);
    background-size: 100vw;
    background-position: center;
    background-repeat: no-repeat;
}
@media screen and (max-width: 960px) {
    .business_bg {
        background-size: cover;
    }
}
.headings {
    text-align: right;
}
.topics_en {
    display: inline;
    font-family: 'Noto Sans JP';
    font-weight: 700;
    font-size: 3.5rem;
    border-bottom: 1px solid #FFF;
    padding-bottom: 0.5rem;

}
.topics_ja {
    font-family: 'Noto Sans JP';
    font-weight: 700;
    margin-top: 0.5rem;
    text-align: right;
    padding-left: calc(20px + 10%);
    margin-bottom: 3rem;
}

.inner_top {
    position: relative;
}

.solution {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-gap: 1rem;
}
@media screen and (max-width: 768px) {
    .business {
        padding-top: 0;
    }
    .solution {
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 3rem;
    }
}
.solution_cell {
    background-color: rgba(255, 255, 255, 0.8);
    color: #333333;
    border-radius: 0.5vh;
    padding: 2rem;
    text-align: center;
}
.solution_en {
    display: block;
    width: 100%;
    font-size: 2.6rem;
    font-weight: 900;
    overflow-wrap: break-word;
    line-height: 1.2;
}
.solution_ja {
    display: block;

}
.business_icon img {
    width: 100%;
}
.business_text {
    display: block;
    font-size: 2rem;
    font-weight: 700;
    padding: 2rem 0;
    text-align: left;
}
.business_list {
    list-style: disc;
    padding-left: 2rem;
}
/* -- company ----------------------------------------------------------------------------------------------------------------------- */
.page {
    background-color: #FFF;
}

.pagehead_company {
    background-image: url(../img/company_img.jpg);
}

.headcontents {
    padding-top:25vw;
}
h3.headline {
    display: block;
    text-align: left;
    color: #333333;
    font-size: 2.5rem;
    font-family: 'Noto Serif JP';
    margin: 3rem 0;
}
.headline::before {
    content: '';
    border-left: 4px solid #E78900;
    padding-left: 5px;
}
table , td, th {
    width: 70%;
    margin: 0 auto;
	border: 1px solid #595959;
	border-collapse: collapse;
}
@media screen and (max-width: 767px) {
    table {
        width: 100%;
    }
}
td, th {
	padding: 10px;
	width: 30px;
	height: 25px;
}
th {
	width: 30%;
	background-color: #FFC000;
	font-weight: 700;
    text-align: center;
    vertical-align: middle;
}
td {
	text-align: left;
}
.execpos {
    display: inline-block;
    width: 7em;

}
.map {
    position: relative;
    height: 0;
    overflow: hidden;
    padding-bottom: 100%;
    padding-bottom: 56.25%;
}

.map iframe {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 100%;
    padding-bottom: 5rem;
}
.btn_map {
    margin: 0 auto;
}

/* -- policy -------------------------------------------------------------------------------- */
.head_policy {
    padding-top:15rem;
}
/* -- policy -------------------------------------------------------------------------------- */
.policy_topic {
    display: block;
    border-bottom: 1px solid #ccc;
    font-size: 1.8rem;
    font-weight: 700;
    padding-bottom: 1rem;
}
.policy_inner p::before {
    display: block;
    content: '';
    padding-bottom: 1rem;
}
.policy_inner {
    padding-bottom: 4rem;
}

.policy_inner ol {
    list-style: decimal;
    padding-top: 1rem;
    padding-left: 2rem;
}
/* -- contact -------------------------------------------------------------------------------- */
.pagehead_contact {
    background-image: url(../img/contact_img.jpg);
}
form {
    padding-top: 5rem;
}
p.contact_text {
    display: block;
    margin: 0 auto;
}
.entryform {
    padding: 0 5% 5rem;
}
@media screen and (min-width: 768px) {
    .entryform {
        padding: 0 10% 5rem;
    }
}
label {
    font-weight: 700;
}
.chkbox {
    font-weight: normal;
    cursor: pointer;
}
input {
    font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Segoe UI', HiraginoCustom, 'Hiragino Kaku Gothic ProN', YuGothic, 'Yu Gothic Medium', Meiryo, sans-serif;
}
input#zipcode {
    width: 110px;
}
input#accept {
    transform: scale(1.6);
    width: 1rem;
    margin-right: 10px;
    margin-bottom: 4px;
}
.submitbtn {
    width: 24rem;
    margin: 3rem auto;
}
.submitbtn:disabled {
    border: 1px solid #999999;
    background-color: #999999;
    color: #FFF;
}
.badge_required {
    display: inline;
    font-size: 1.2rem;
    color: #FFF;
    background-color: #D82C2C;
    border-radius: 3px;
    padding: 0 5px 1px;
    margin-left: 10px;
    vertical-align: 1px;
    right: 0;
}
.formlabel {
    display: inline-block;
    padding-top: 2rem;
    padding-bottom: 0.5rem;
}
.formbtn {
    width: 120px;
    text-align: center;
    border: none;
    background-color: #0000AA;
    color: #FFF;
    margin-left: 0.5rem;
    transition: background-color 0.3s;
}
.formbtn:hover {
    background-color: #4040A0;
    transition: background-color 0.3s;
}
input, textarea {
    border:1px solid #999999;
    background-color: #FFF;
    padding-left: 0.5rem;
    border-radius: 3px;
    width: 100%;
}
.inputarea {
    padding-bottom: 1.6rem;
}
.captchatext {
    display: block;
    font-size: 1.4rem;
    padding: 0.5rem 0;
}
.alertmsg {
    font-size: 1.4rem;
    color: #D82C2C;
}
#error_message {
    padding-bottom: 1.6rem;
}
.form-control {
    resize: vertical;
}
::placeholder {
    color: #cccccc;
}
:focus-visible {
    border: 1px solid #E78900;
    outline: 1px solid #E78900;
}

/* -- mail.php -------------------------------------------------------------------------------- */
.formContainer {
                width: 100%;
                max-width: 1280px;
        padding: 0 5%;
                margin: 0 auto;
            }

            .confirm_msg {
                font-family: 'Noto Sans JP';
                font-weight: 700;
                font-size: 1.8rem;
                color: #E78900;
                text-align: center;
                padding-bottom: 1.6rem;
            }

            #formWrap {
                width: 80%;
                margin: 5rem auto;
                color: #222222;
            }

            table.formTable {
                width: 100%;
                margin: 0 auto;
                border-collapse: collapse;
            }

            table.formTable td,
            table.formTable th {
                border: 1px solid #595959;
                padding: 16px;
            }

            table.formTable th {
                width: 30%;
                font-weight: normal;
                background: #FFC000;
                text-align: left;
            }

            p.error_messe {
                margin: 5px 0;
                color: red;
            }


            /*　簡易版レスポンシブ用CSS（必要最低限のみとしています。ブレークポイントも含め自由に設定下さい）　*/
            @media screen and (max-width:572px) {
                #formWrap {
                    width: 95%;
                    margin: 5rem auto;
                }

                table.formTable th,
                table.formTable td {
                    width: auto;
                    display: block;
                }

                table.formTable th {
                    margin-top: 5px;
                    border-bottom: 0;
                }
            }

/* -- footer ----------------------------------------------------------------------------------------------------------------------- */
#footer {
    background-color: #FFC000;
}
.footerwrap {
    display: grid;
    padding: 60px 20px 60px;
    max-width: 1280px;
    margin: 0 auto;
    grid-template-columns: 1fr 1fr;
}

@media screen and (max-width:767px) {
    .footerwrap {
        display: grid;
        grid-template-columns: 1fr;
        text-align: center;
    }
}

.footermenu {
    display: flex;
    flex-direction: row;
    justify-content: end;
}

@media screen and (max-width:767px) {
    .footermenu {
        justify-content: center;
    }
}

.footermenu ul {
    display: flex;
    align-items: center;
    padding-right: 5%;
}

@media screen and (max-width:767px) {
    .footermenu ul {
        flex-direction: column;
    }
    .footermenu li {
        padding-bottom: 0.5rem;
    }
}

.footermenu li::after {
    content: '｜';
    padding: 0 1rem;
}

.footermenu a {
    color: #333333;
    transition: color 0.3s;
}
.footermenu a:hover {
    color: #00DDBB;
    transition: color 0.3s;
}

@media screen and (max-width:767px) {
    .footermenu li::after {
        content: '';
        padding: 0;
    }
}

.footermenu li:last-child::after {
    content: none;
    padding: 0;
}

.footerinfo img {
    margin-bottom: 10px;
}

@media screen and (max-width:767px) {
    .footerinfo img {
        width: 300px;
        height: 30px;
    }
}

.footer_tel {
    font-size: 2.2rem;
    font-weight: 700;
    margin: 0;
}

@media screen and (max-width:767px) {
    .footer_tel {
        padding-bottom: 2rem;
    }
}

.footer_address {
    margin: 0;
}

.footer_bar {
    width: 100%;
    background-color: #E78900;
    text-align: center;
    font-size: 1.4rem;
}

/* -- pagetop -------------------------------------------------------------------------------- */
#page_top {
    position: fixed;
    bottom: 30px;
    right: 20px;
    z-index: 9999;
}

#page_top a {
    position: relative;
    display: flex;
    width: 60px;
    height: 60px;
    justify-content: center;
    background: rgba(0, 170, 187, 0.5);
    transition: opacity .6s ease;
    color: rgba(255, 255, 255, 1);
    align-items: center;
    text-decoration: none;
    font-size: 30px;
    border-radius: 5px;
    transition: 0.3s;
}

#page_top a:hover {
    background-color: rgba(0, 170, 187, 1);
    text-decoration: none;
    transition: 0.3s;
}
