@charset "UTF-8";

@font-face {
    font-family: "japanese";
    src: url("font/NotoSerifJP-VariableFont_wght.ttf") format("truetype");
    font-display: swap;
}

@media (prefers-reduced-motion: no-preference) {

    /* ここを追加 */
    html:focus-within {
        scroll-behavior: smooth;
        outline: none;
    }
    html:focus-visible{
        outline: none;
    }
}

body {
    font-family: "japanese", sans-serif;
    /*font-family:"游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;*/
    padding: 0;
    margin: 0;
    color: #707070;
    background-color: #fff;
    width: 100%;
    animation-name: fadein;
    animation-duration: 1.5s;
}

@keyframes fadein {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

* {
    margin: 0px;
    padding: 0px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
}

a {
    text-decoration: none;
    color: #707070;
}

li {
    list-style: none;
}

.rela {
    position: relative;
}

.abso {
    position: absolute;
}

/*flex*/
.flex {
    display: flex;
}

.just_center {
    justify-content: center;
}

.just_base {
    justify-content: baseline;
}

.just_between {
    justify-content: space-between;
}

.just_around {
    justify-content: space-around;
}

.just_end {
    justify-content: end;
}

.align_center {
    align-items: center;
}

.align_start {
    align-items: start;
}

.align_end {
    align-items: flex-end;
}

.align_base {
    align-items: baseline;
}

.flex_column {
    flex-direction: column;
}

header {}

header nav {
    position: fixed;
    width: 100%;
    background: #fff;
    z-index: 100;
}

nav ul {
    display: flex;
    justify-content: center;
    align-items: center;
}

nav li {
    margin: 1% 2%;
}

nav li a {
    padding: 3%;
    word-break: keep-all;
}

.header_logo {
    width: 70px;
}

main {}

.video_container {}

.video {
    width: 100%;
}

.top_container {
    width: 80%;
    max-width: 1000px;
    margin: 10% auto;
    padding-top: 8%;
}

.top_left {
    width: 50%;
    padding: 2%;
}

.top_left h1 {
    margin-bottom: 8%;
}

.top_left p {}

.top_right {
    width: 50%;
}

.right_img {
    width: 100%;
}

.about_container {}

.about_img {
    width: 100%;
}

.about_inner {
    width: 80%;
    max-width: 1000px;
}

.about_left {
    width: 35%;
    top: 33%;
    right: 5%;
}

.about_left h2 {
    color: #fff;
    margin-bottom: 8%;
}

.about_left p {
    color: #fff;
    letter-spacing: 1px;
}

.company_container {
    width: 80%;
    max-width: 1000px;
    margin: 8% auto;
    padding-top: 8%;
}

.company_title {
    font-size: 34px;
    text-align: center;
}

.company_table {
    width: 100%;
    margin: 5%;
}

.company_table tr {
    vertical-align: baseline;
}

.company_table tr td {
    padding: 5px 0;
}

.map_container {}

.map {
    width: 100%;
    height: 60vh;
}

.img_container {
    margin: 1% 0 8%;
}

.slick-slide img {
    display: block;
    padding: 10px;
    margin: 10px;
    width: 95%;
}

.contact_container {
    width: 80%;
    max-width: 1000px;
    margin: 8% auto;
    padding-top: 8%;
}

.form_container {
    width: 65%;
    margin: 2% auto;
}

.contact_form {}

.contact_con {
    display: flex;
}

.contact_title {
    width: 30%;
}

.ja_title {
    line-height: 2.8;
}

.contact_detail {
    width: 70%;
}

.full_input {
    line-height: 2.8;
    border: 1px solid #707070;
    width: 100%;
    padding: 0 9px;
    margin: 5px 0;
}

.full_comment {
    width: 100%;
    padding: 9px;
    margin: 5px 0;
}

.error_msg {}

.contact_btn_box {}

.form_btn {
    margin-top: 5%;
}

.btns {
    background: #eee;
    border-radius: 3px;
    position: relative;
    display: flex;
    justify-content: space-around;
    align-items: center;
    margin: 0 auto;
    min-width: 140px;
    max-width: 280px;
    padding: 10px 40px;
    color: #313131;
    transition: 0.3s ease-in-out;
    font-weight: 500;
    border: none;
    cursor: pointer;
}

.btns:hover {
    background: #6bb6ff;
    color: #FFF;
}


.confirm_container {
    width: 65%;
    margin: 2% auto;
}

.confirm_comment {}

.r_text {}
.confirm_form{
    margin: 10% 0;
}

.full_confirm {
    line-height: 2.8;
}

.confirm_btn_box {
    display: flex;
    align-items: center;
    width: 60%;
    justify-content: space-around;
    margin: 0 auto;
}

.back_btn {}

.confirm_btn {}

.back_btns {
    background: #eee;
    border-radius: 3px;
    position: relative;
    display: flex;
    justify-content: space-around;
    align-items: center;
    margin: 0 auto;
    min-width: 140px;
    max-width: 280px;
    padding: 10px 40px;
    color: #313131;
    transition: 0.3s ease-in-out;
    font-weight: 500;
    border: none;
    cursor: pointer;
}
.back_btns:hover{
    background: #555555;
    color: #FFF;
}

.thanks_form {}

.thanks_comment {
    margin: 8% auto;
    width: 65%;
}

.pc{
    display: block;
}
.sp{
    display: none;
}

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

    #overlay-button {
        position: fixed;
        right: 1%;
        top: 0;
        padding: 23px 14px;
        z-index: 9999;
        cursor: pointer;
        user-select: none;
        border-radius: 50%;
    }

    #overlay-button span {
        height: 3px;
        width: 25px;
        border-radius: 2px;
        background-color: #555;
        position: relative;
        display: block;
        transition: all .2s ease-in-out;
    }

    #overlay-button span:before {
        top: -10px;
        visibility: visible;
    }

    #overlay-button span:after {
        top: 10px;
    }

    #overlay-button span:before,
    #overlay-button span:after {
        height: 3px;
        width: 25px;
        border-radius: 2px;
        background-color: #555;
        position: absolute;
        content: "";
        transition: all .2s ease-in-out;
    }

    #overlay-button:hover span,
    #overlay-button:hover span:before,
    #overlay-button:hover span:after {
        background: #555;
    }

    input[type=checkbox] {
        display: none;

    }

    input[type=checkbox]:checked~#overlay {
        visibility: visible;
    }

    input[type=checkbox]:checked~#overlay-button:hover span,
    input[type=checkbox]:checked~#overlay-button span {
        background: transparent;


    }

    input[type=checkbox]:checked~#overlay-button span:before {
        transform: rotate(45deg) translate(7px, 7px);

    }

    input[type=checkbox]:checked~#overlay-button span:after {
        transform: rotate(-45deg) translate(7px, -7px);
    }

    #overlay {
        height: 100vh;
        width: 100vw;
        background: rgba(255, 255, 255, .95);
        z-index: 5;
        top: 0;
        visibility: hidden;
        position: fixed;
    }

    #overlay.active {}

    #overlay ul {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        text-align: center;
        height: 90vh;
        padding-left: 0;
        list-style-type: none;
    }

    #overlay ul li {
        padding: 10px 0;
        font-size: 15px;
        width: 50%;
    }

    #overlay ul li a {
        color: #555;
        text-decoration: none;
        font-size: 19px;
        line-height: 1;
        font-family: 'Spectral SC', serif;
    }

    #overlay ul li a:hover {
        color: #000 !important;
    }

    .logo_img_sp {
        width: 100%;
    }
    .sp_menu_logo {
        margin-bottom: 20px;
        width: 90% !important;
    }

    .en_menu_sp {
        font-size: 9px;
    }
    .sp_home img {
        width: 140px;
    }
    .sp_menu_logo a img{
        width: 100%;
    }

    .sp_col{
        flex-direction: column;
    }

    .top_container{
        width: 100%;
    }
    .top_left{
        width: 90%;
    }
    .top_right {
        width: 90%;
    }
    .about_container {
        height: 80vh;
    }
    .about_img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }
    .about_left {
        width: 85%;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        padding: 20px 15px;
        background: rgba(255, 255, 255, .6);
    }
    .about_left h2, .about_left p{
        color: #555;
    }
    .company_title{
        font-size: 25px;
    }
    .company_container{
        width: 100%;
    }
    .company_table {
        width: 90%;
        margin: 5%;
    }
    .map{
        height: 45vh;
    }
    .contact_container{
        width: 100%;
    }
    .form_container, .confirm_container, .thanks_form{
        width: 80%;
    }
}