@charset "UTF-8";
body {
    font-family: "Noto Sans JP", sans-serif;
}
.inner {
    max-width: 1040px;
    margin: 0 auto;
    padding: 0 20px;
    position: relative;
}
#hoge{
    width:1040px;
    height:100%;
    margin:0 auto;
    position: fixed;
    z-index: -1;
    align-items: center;
}

/****トップに戻るボタン****/
html {
    scroll-behavior: smooth;
}
.pagetop {
    height: 50px;
    width: 50px;
    position: fixed;
    right: 5px;
    bottom: 30px;
    border: solid 2px #ffffff;
    background-color: #000000;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: 0.7s;

    opacity: 0;
    visibility: hidden;
}
/*このクラスが付与されると表示する*/
.active{
    opacity: 0.4;
    visibility: visible;
}
.pagetop__arrow {
    height: 10px;
    width: 10px;
    border-top: 3px solid #ffffff;
    border-right: 3px solid #ffffff;
    transform: translateY(20%) rotate(-45deg);
}
/**トップ戻るボタンここまで**/

/*****header******/
.logo img {
    width: 100%;
    min-width: 100px;
}
.hamburger {
    margin: 10px auto;
    width: 100%;
    max-width: 1040px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.hamburger .btn-gNav {
    position: fixed;
    top: 30px;
    right: 20px;
    width: 30px;
    height: 24px;
    z-index: 12;
    opacity: 0.7;
    box-sizing: border-box;
    cursor: pointer;
    -webkit-transition: all 400ms;
    transition: all 400ms;
}
.hamburger .btn-gNav span {
    position: absolute;
    width: 100%;
    height: 4px;
    background: #493f3f;
    border-radius: 10px;
    -webkit-transition: all 400ms;
    transition: all 400ms;
}
.hamburger .btn-gNav span:nth-child(1) {
    top: 0;
}
.hamburger .btn-gNav span:nth-child(2) {
    top: 10px;
}
.hamburger .btn-gNav span:nth-child(3) {
    top: 20px;
}

/***activeクラスが付与されると線が回転して×になる***/
.hamburger .btn-gNav.active span:nth-of-type(1) {
    top: 0px;
    left: 0px;
    transform: translateY(6px) rotate(-45deg);
    width: 100%;
}
.hamburger .btn-gNav.active span:nth-of-type(2) {
    opacity: 0;/*真ん中の線は透過*/
}
.hamburger .btn-gNav.active span:nth-of-type(3){
    top: 12px;
    left: 0px;
    transform: translateY(-6px) rotate(45deg);
    width: 100%;
}
/**回転して×ここまで**/

.btn-gNav {
    display: none;
}
.gNav .gNav-menu {
    display: flex;
    justify-content: space-between;
}
.gNav .gNav-menu li {
    margin: 0 auto;
    padding: 0 10px;
    font-weight: 700;
}
.gNav .gNav-menu li a:hover{
	color: #9A3036;
}

/**キャチコピーとメインビジュアル**/
.frame-div {
    margin-top: 0%;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 1000px;
    position: relative;
    overflow-x: hidden;
}
.h1{
    padding:10px;
    position: absolute;
    top: 200px;
    z-index: 0;
    left: 30px;
    margin: 0;
    font-size: clamp(16px, 5vw, 40px);
    font-weight: bold;
    text-shadow: 1px 2px 3px #a9a9a9;
}
.frame-div svg {
    position: relative;
    top: -110px;
    left: 120px;
    z-index: -1;
}


/**********ここからCOMPANY**********/
.company-container {
    width: 100%;
    max-width: 1000px;
    margin-top: 110px;
    margin-bottom: 175px;
}
.company-frame {
    text-align: center;
    margin-bottom: 40px;
}
h2.company2 {
    font-size: clamp(23px, 2vw, 40px);
    /*font-size: 36px;*/
    font-weight: 600;    display: flex;
    align-items: center; /* 垂直中心 */
    justify-content: center; /* 水平中心 */
}
h2.company2:before, h2.company2:after {
    border-top: 1px solid;
    content: "";
    width: 3em; /* 線の長さ */
}
.company2:before {
    margin-right: 1em; /* 文字の右隣 */
}
.company2:after {
    margin-left: 1em; /* 文字の左隣 */
}
.div1 {
    width: calc(100% - 50px);
    max-width: 800px;
    margin: 0 auto;
}
p.text1 {
    display: inline-block;
    line-height: 1.7;
    margin-bottom: 60px;
}
.wrapper {
    text-align: center;
}
/*会社概要ボタン*/
a.btn_company {
	display: block;
	text-align: center;
	text-decoration: none;
	width: 50%;
    height: auto;
	margin: auto;
	padding: 30px 50px;
	font-weight: bold;
	color: #333;
	border-bottom: 2px solid #cd5c5c;
	border-radius: 100vh;
	box-shadow: 0 2px 7px rgba(0, 0, 0, .3);
	-webkit-box-shadow: 0 2px 7px rgba(0, 0, 0, .3);
	transition: 0.5s;
    font-size: clamp(16px, 1vw, 20px);
}
a.btn_company:hover {
	color: #ffffff;
	background: #cd5c5c;
	border-bottom: 2px solid #dddddd;
	transform: translateY(3px);
}

/*==================================================
じわっ
===================================*/

.blur{
    animation-name:blurAnime;
    animation-duration:1.5s;
    animation-fill-mode:forwards;
}

@keyframes blurAnime{
    from {
    filter: blur(10px);
    transform: scale(1.02);
    opacity: 0;
    }

    to {
    filter: blur(0);
    transform: scale(1);
    opacity: 1;
    }
}

.blurTrigger{
    opacity: 0;
}


/**********ここからSERVICES**********/
.service-container {
    margin-top: 175px;
    margin-bottom: 175px;
}
.top-service-img {
    max-width: 250px;
}
.service-frame {
    text-align: center;
    margin-bottom: 40px;
}
h2.service2 {
    font-size: clamp(23px, 2vw, 40px);
    font-weight: 600;    
    display: flex;
    align-items: center; /* 垂直中心 */
    justify-content: center; /* 水平中心 */
}
h2.service2:before, h2.service2:after {
    border-top: 1px solid;
    content: "";
    width: 3em; /* 線の長さ */
}
.service2:before {
    margin-right: 1em; /* 文字の右隣 */
}
.service2:after {
    margin-left: 1em; /* 文字の左隣 */
}
.rectangle-parent {
    margin: 0 30px 40px 30px;
    text-align: center;
}
.div3 {
    width: 250px;
    height: auto;
    margin-top: 5px;
    text-align: justify;
}
.freme-group-service {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

/*詳しく見るのボタン*/
.rectangle-parent-btn {
    text-align: center;
}
.btn-more{
	position:relative;
	color:#000000;
    padding: 10px 30px;
	margin: 0 10px 10px 10px;
	display:inline-block;
	transition:all 0.3s ease-in-out;
}

.btn-more span{
	position:relative;
	z-index: 2;
}

.btn-more span::after {
    position: absolute;
    content: '';
    top: 40%;
    right: -19px;
    width: 5px;
    height: 5px;
    border-top: 1px solid #000000;
    border-right: 1px solid #000000;
    transform: rotate(45deg);
    transition: all .3s;
}

.btn-more:hover span::after {
	right:-15px;
}

.btn-more::after {
	content:'';
	display:block;
	position:absolute;
	z-index:-1;
	bottom:0;
	left:0;
	background:#970000;
	width:100%;
	height:1px;
	transition:all 0.7s ease-in-out;
}

.btn-more:hover::after {
	height:45px;
	background:none;
}

.fadein {
    opacity : 0;
    transition : all 1s;
}
    
.fadein.active{
    opacity : 1;
}

/**********ここからSTSFF**********/
.staff-container {
    margin-top: 175px;
    margin-bottom: 175px;
}
.staff-frame {
    text-align: center;
    margin-bottom: 40px;
}
.staff-frame h2{
    margin: 0 0 40px 0;
}
.staff-frame a img {
    border: 2px solid #333;
border-radius: 10px;
}
.staff-frame a img:hover {
    opacity: 0.9;
}
h2.staff2 {
    font-size: clamp(23px, 2vw, 40px);
    font-weight: bold;
    display: flex;
    align-items: center; /* 垂直中心 */
    justify-content: center; /* 水平中心 */
}

h2.staff2:before, h2.staff2:after {
    border-top: 1px solid;
    content: "";
    width: 3em; /* 線の長さ */
}

.staff2:before {
    margin-right: 1em; /* 文字の右隣 */
}
.staff2:after {
    margin-left: 1em; /* 文字の左隣 */
}


/**********ここからNEWS**********/
.news-container {
    margin-top: 175px;
    margin-bottom: 175px;
}
.news-frame {
    text-align: center;
    margin-bottom: 40px;
}
h2.news2 {
    font-size: clamp(23px, 2vw, 40px);
    font-weight: 600;
    display: flex;
    align-items: center; /* 垂直中心 */
    justify-content: center; /* 水平中心 */
}
h2.news2:before, h2.news2:after {
    border-top: 1px solid;
    content: "";
    width: 3em; /* 線の長さ */
}
.news2:before {
    margin-right: 1em; /* 文字の右隣 */
}
.news2:after {
    margin-left: 1em; /* 文字の左隣 */
}
.frame-group-news {
    width: calc(100% - 50px);
    text-align: center;
    margin: 0 auto;
}
.news-group1,
.news-group2,
.news-group3 {
    text-align: left;
    font-size: 16px;
    margin-bottom: 30px;
    border-bottom: 1px dashed #333;
}

/***********ここからRECRUIT**********/
.recruit-container {
    margin-top: 175px;
    margin-bottom: 175px;
}
.recruit-frame {
    text-align: center;
    margin-bottom: 40px;
}
h2.recruit2 {
    font-size: clamp(23px, 2vw, 40px);
    font-weight: 600;
    display: flex;
    align-items: center; /* 垂直中心 */
    justify-content: center; /* 水平中心 */
}
h2.recruit2:before, h2.recruit2:after {
    border-top: 1px solid;
    content: "";
    width: 3em; /* 線の長さ */
}
.recruit2:before {
    margin-right: 1em; /* 文字の右隣 */
}
.recruit2:after {
    margin-left: 1em; /* 文字の左隣 */
}
/*採用情報を見るボタン*/
a.btn_recruit {
	display: block;
	text-align: center;
	text-decoration: none;
	margin: auto;
    width: 60%;
    height: auto;
    padding: 30px 50px;
	color: #fff;
	font-weight: bold;
	background: #cd5c5c;
	position: relative;
	transition: 0.3s ease-in-out;
    font-size: clamp(16px, 2vw, 24px);
}
a.btn_recruit:hover {
    background: #fff;
    color: #000;
}
a.btn_recruit:before, a.btn_recruit:after {
    box-sizing: inherit;
    content: "";
    position: absolute;
    border: 2px solid transparent;
    width: 0;
    height: 0;
    display: block;
}
a.btn_recruit:before {
    top: 0;
    left: 0;
}
a.btn_recruit:after {
    bottom: 0;
    right: 0;
}
a.btn_recruit:hover:before, a.btn_recruit:hover:after {
    width: 100%;
    height: 100%;
}
a.btn_recruit:hover:before {
    border-top-color: #cd5c5c;
    border-right-color: #cd5c5c;
    transition: width 0.15s ease-out, height 0.15s ease-out 0.15s;
}
a.btn_recruit:hover:after {
    border-bottom-color: #cd5c5c;
    border-left-color: #cd5c5c;
    transition: border-color 0s ease-out 0.2s, width 0.15s ease-out 0.2s, height 0.15s ease-out 0.3s;
}

/**********ここからCONTACT**********/
.contact-container {
    margin-top: 175px;
    margin-bottom: 160px;
}
.contact-frame {
    text-align: center;
    margin-bottom: 40px;
}
h2.contact2 {
    font-size: clamp(23px, 2vw, 40px);
    /*font-size: 36px;*/
    font-weight: 600;display: flex;
    align-items: center; /* 垂直中心 */
    justify-content: center; /* 水平中心 */
}
h2.contact2:before, h2.contact2:after {
    border-top: 1px solid;
    content: "";
    width: 3em; /* 線の長さ */
}
.contact2:before {
    margin-right: 1em; /* 文字の右隣 */
}
.contact2:after {
    margin-left: 1em; /* 文字の左隣 */
}
/*お問い合わせはこちらボタン*/
a.btn_contact {
	display: block;
	text-align: center;
	text-decoration: none;
	width: auto;
	margin: auto;
	padding: 4rem 4rem;
	font-weight: bold;
	border: 2px solid #cd5c5c;
	background: #cd5c5c;
	color: #fff;
	transition: 0.5s;
    font-size: clamp(16px, 2vw, 24px);
}
a.btn_contact:hover {
	color: #000000;
	background: #fff;
}

/**********ここからfooter***********/
.footer-parent .logo {
    width: 150px;
    margin: 0 auto 60px;
}

.footer-nav-menu {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}
.footer-nav-menu {
    flex: 1;
    text-align: center;
    font-size:clamp(12px, 2.3vw, 18px);
}
.footer-nav-menu li {
    margin: 0 auto;
    padding: 0 5px;
    font-weight: 700;
}
.footer-nav-menu li a:hover{
	color: #9A3036;
}

p.copy {
    font-size: 0.8rem;
    text-align: center;
    margin: 50px 0 50px 0;
}



/**********ここからカンパニーページ**********/
/*h3.page-headingは別の下層ページにも使用してます*/
.company-page {
    margin-top: 100px;
}
h3.page-heading {
    font-size: clamp(22px, 2vw, 36px);
    font-weight: bold;
    border-bottom: 1px dashed #333;
}
.dl-table {
    margin-top: 60px;
    margin-bottom: 100px;
}
.dl-table dl {
    display: flex;
    border-bottom: 1px dashed #333;
}
.dl-table dl dt {
    margin-right: 15px;
    width: 25%;
    font-weight: bold;
}
.dl-table dl dd {
    font-size: 1rem;
    width: 75%;
}
.dl-table dl dd p {
    font-size: 1rem;
    background-color:#fff;
    display: inline;
}
.dl-table dl dd ul li {
    line-height: 1.8;
    letter-spacing: 0.06em;
}
dl.overview dd ul li span {
    background-color: #fff;
    padding: 2px 5px; /* 適切な余白を設定 */
    border-radius: 3px; /* 角を丸くする（オプション） */
}
.overview dt {
    margin: 10px 0 10px 0;
}
.overview dd {
    margin: 10px 0 10px 0;
}
.overview dt dd p {
    background-color:#fff;
    display: inline;
}

/*COMPANYページのマップ部分*/
.access h3 {
    font-size: clamp(22px, 2vw, 36px);
    font-weight: bold;
    margin: 0 0 60px 0;
    border-bottom: 1px dashed #333;
}
.map_inner {
    padding-bottom: 50%;
    position: relative;
}
.map_inner iframe {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}
.link_map {
    margin: 10px 0 40px 0;
    font-size: clamp(14px, 1vw, 16px);
}
.link_map a:hover {
    opacity: 0.8;
}
.table-access .overview {
    display: flex;
    border-bottom: 1px dashed #333;
}
.overview dd p {
    background-color:#fff;
    /* display: inline; */
}
.table-access dl dt {
    margin-right: 15px;
    width: 25%;
    font-weight: bold;
}
.table-access dl dd {
    font-size: 1rem;
    width: 75%;
}
/**********ここからサービスページ**********/
.service-page {
    margin-top: 100px;
}
.service-intro {
    margin-top: 60px;
    display: flex;
    border-bottom: 1px dashed #333;
}
.service-img {
    margin: 0 0 50px 0;
    padding: 0;
}
.service-img img {
    width: 100%;
    max-width: 100%;
    height: auto;
}
.service-explain {
    width: 100%;
    margin: 0 0 0 20px;
    padding: 0;
}
.service-explain h4 {
    font-weight: bold;
    font-size: 1.2rem;
}
.service-explain ul li {
    list-style: disc;
    text-align: justify;
    margin-left: 23px;
    line-height: 1.6;
    font-size: 1rem;
    letter-spacing: 0.06;
}

/**********ここからスタッフページ**********/
.menber-page {
    margin-top: 100px;
}
.menber-syokai {
    margin: 60px auto 100px;
    align-items: center;
    max-width: 900px;
}
.menber-syokai h4 {
    font-size: clamp(22px, 2vw, 26px);
    font-weight: bold;
    margin-bottom: 20px;
}
.menber-photo img{
    width: 100%;
}
.division {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 40px;
}
.division-work {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap-reverse;
}
.menber-photo img {
    width: 450px;
    height: auto;
}
.menber-text1 {
    margin: 0 0 0 30px;
    width: 400px;
}
.menber-text2 {
    margin: 0 30px 0 0;
    width: 400px;
}
.menber-text1 h5 {
    font-size: clamp(18px, 2vw, 22px);
}
.menber-text2 h5 {
    font-size: clamp(18px, 2vw, 22px);
}.menber-text1 p {
    font-size: 16px;
}


/**********ここからニュースページ**********/
.news-page {
    margin-top: 100px;
}
.news-list {
    margin-top: 60px;
}


/**********ここから採用情報ページ**********/
.recruit-page {
    margin-top: 100px;
}
.recruit-page h4 {
    font-size: 1.3rem;
    margin-top: 60px;
    margin-bottom: 20px;
    font-weight: 600;
}
.job-table dl {
    display: flex;
    border-bottom: 1px dashed #333;
}
.job-table dl dt {
    margin-right: 15px;
    width: 30%;
    font-weight: bold;
}
.job-table dl dd {
    width: 70%;
}
.job-table dl dd p {
    font-size: clamp(12px, 2vw, 16px);
    letter-spacing: 0.06em;
    background-color:#fff;
    display: inline;
}
.job-table dl dd .text-location {
    margin-bottom: 10px;
}
.recruiting dt {
    margin: 10px 0 10px 0;
}
.recruiting dd {
    margin: 10px 0 10px 0;
}


/**********ここからお問い合わせページ**********/
.contact-page {
    margin-top: 100px;
}
.contactform {
    margin: 80px 0 0 0;
}
.contactform h4 {
    font-size: clamp(18px, 2vw, 24px);
    font-weight: bold;
}
form{
    width: calc(100% - 10px);
    margin: 30px auto 100px;
    font-size: clamp(11px, 3vw, 20px);
}
    
.item{
    display: flex;
    align-items: center;
    padding-top: 20px;
}
    
.label{
    width: 250px;
    padding-left: 10px;
    border-left: solid 5px #a0522d;
}
    
.label-required{
    color: #9A3036;
    font-weight: bold; 
    font-size: clamp(12px, 3vw, 20px);
}
.label-required-any{
    color: #28333f;
    font-weight: bold; 
    font-size: clamp(12px, 3vw, 20px);
}
    
input[type="text"],input[type="email"],input[type="tel"]{
    border: solid 1px #aaa;
    border-radius: 5px;
    padding: 10px;
    margin: auto 20px;
    font-size: 15px;
}
    
select{
    appearance: none;
    cursor: pointer;
    border: solid 1px #aaa;
    border-radius: 5px;
    padding: 10px;
    font-size: 15px;
}
    
textarea{
    border: solid 1px #aaa;
    border-radius: 5px;
    padding: 10px;
    margin: auto 20px;
    font-size: 15px;
    width: 480px;
    height: 160px;
    resize: both;
}
    
.btn{
    text-align: center;
    margin: 25px auto;
}
    
button{
    background: #9A3036;
    border-radius: 7px;
    cursor: pointer;
    color: white;
    font-size: 17px;
    font-weight: bold;
    padding: 10px 25px;
}
.btn button .submit {
    margin-bottom: 40px;
}
.kakunin {
    margin: 115px auto 50px;
}
.kakunin h4 {
    font-size: clamp(18px, 2vw, 24px);
    margin: 0 0 30px 0;
    font-weight: bold;
}
.sousin-btn {
    background: #9A3036;
    border-radius: 7px;
    cursor: pointer;
    color: white;
    text-align: center;
    font-size: 17px;
    font-weight: bold;
    padding: 10px 25px;
    margin-top: 60px;
}
.modoru-btn {
    background: #693639;
    border-radius: 7px;
    cursor: pointer;
    color: white;
    text-align: center;
    font-size: 17px;
    font-weight: bold;
    padding: 10px 25px;
    margin-top: 40px;
}
.miss {
    margin: 115px auto 50px;
    text-align: center;
}
p .miss-text{
    font-size: 1rem;
    text-align: center;
    font-weight: bold;
    margin-bottom: 60px;
}
.miss-btn {
    background: #693639;
    border-radius: 7px;
    cursor: pointer;
    color: white;
    text-align: center;
    font-size: 17px;
    font-weight: bold;
    padding: 10px 25px;
    margin-top: 60px;
}
.end {
    margin: 115px auto 50px;
}
.end h4 {
    font-size: clamp(18px, 2vw, 24px);
    text-align: center;
    margin: 0 0 75px 0;
    font-weight: bold;
}
.Form {
    margin-top: 80px;
    margin-left: auto;
    margin-right: auto;
    max-width: 720px;
}
input::-webkit-input-placeholder {
    color: rgb(0, 0, 0);
    opacity: 0.5;
    font-weight: bold;
}

/****************sp版CSS******************/

@media screen and (max-width: 834px) {
    .logo {
        max-width: 100%;
        height: auto;
    }
    /*nav*/
    .btn-gNav {
        display: block;
    }
    .gNav {
        position: fixed;
        top: 0;
        right: -100%;
        width: 100%;
        height: 100%;
        background-color: rgba(134, 77, 77, 0.8);
        font-size: 16px;
        box-sizing: border-box;
        z-index: 1;
        padding-top: 50px;
        transition: .3s;
    }
    .gNav.open {
        right: 0;
        height: 70vh;
    }
    .gNav .gNav-menu {
        padding: 0;
        width: 100%;
        height: 100%;
        display: block;
        flex-direction: column;
        text-align: center;
        /*justify-content: center;*/
    }
    .gNav .gNav-menu li {
        width: 86%;
        padding: 15px;
        border-bottom: #525252 1px solid;
        color: #ffffff;
    }
    .company-container {
        margin-top: 40px;
    }
    .h1 {
        position: relative;
        top: 100px;
        left: 0px;
    }
    .frame-div {
        display: block;
    }
    .frame-div svg {
        position: relative;
        top: -100px;
        left: 0px;
        z-index: -1;
    }
    .shape {
        position: relative;
        left: 0px;
    }
    /*serviceページ*/
    .service-intro {
        flex-wrap: wrap;
        align-items: center;
    }
    .service-img {
        width: 100%;
        height: auto;
    }
    .service-explain {
        margin: 0 0 50px 0;
    }
    textarea{
        width: 350px;
        height: 150px;
    }
}
@media screen and (max-width: 718px) {
    .menber-text1 {
        margin: 0 35px 0 0;
    }
    .menber-text2 {
        margin: 0 0 0 35px;
    }
    .menber-text1 h5 {
        font-size: clamp(18px, 2vw, 22px);
    }
    .menber-text2 h5 {
        font-size: clamp(18px, 2vw, 22px);
    }
}
@media screen and (max-width: 431px) {
    .item {
        display: block;
    }
    .label {
        display: block;
        margin-bottom: 5px;
    }
}
@media screen and (max-width: 414px) {
    .logo {
        max-width: 40%;
        height: auto;
    }
    .hamburger .btn-gNav {
        top: 17px;
        right: 20px;
        width: 25px;
    }
    a.btn_company {
        width: 100%;
    }
    a.btn_recruit {
        display: block;
        text-align: center;
        text-decoration: none;
        margin: auto;
        padding: 0.5rem 3.5rem;
        color: #fff;
        font-weight: bold;
        position: relative;
        transition: 0.3s ease-in-out;
    }
    .service-intro {
        display: block;
    }
    input[type="text"],input[type="email"],input[type="tel"]{
        padding-top: 5px;
        padding-bottom: 5px;
        margin: auto 20px;
        font-size: 15px;
    }
    textarea{
        width: 250px;
        height: 150px;
    }
    button{
        font-size: 12px;
        padding: 5px 20px;
    }
}