@charset "utf-8";

/* CSS information ===================================================

	 file name : basic.css
	style info : テンプレートスタイルシート

=================================================================== */


/*----------------------------------------------------------
/* body サイト全体
----------------------------------------------------------*/
* {
	box-sizing: border-box;
	/*transition: all .3s;*/
}
html {
	font-size: 62.5%;
}
body {
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	text-align: justify;
	letter-spacing: 0.03em;
	color: #362E2E;
} 
.page {
	overflow: hidden;
}

h1, h2, h3, h4, h5, h6 {
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #362E2E;
}
figure {
	text-align: center;
}
img {
	max-width: 100%;
	height: auto;
	transition: all .3s;
}
mark {
	position: relative;
	font-weight: normal;
	background-image: linear-gradient(90deg, #FFF7D1, #FFF7D1);
	background-repeat: no-repeat;
	background-position: bottom left;
	background-size: 0 60%;
	transition: all 1s ease-in-out;
}
mark.is_show {
	font-weight: normal;
	background-size: 100% 60%;
}

button, 
input[type="button"],
input[type="submit"] {
	-webkit-appearance: none;
	appearance: none;
}



/* テキストリンクカラー */
a {
	color: #607DB4;
	text-decoration: underline;
	transition: .5s cubic-bezier(0.65,0.05,0.36,1);
}
a * {
	transition: .5s cubic-bezier(0.65,0.05,0.36,1);
}
a::before, 
a::after {
	transition: .5s cubic-bezier(0.65,0.05,0.36,1);
}
a:hover {
	color: #ED3745;
	text-decoration: none;
	filter: brightness(1.1);
	transition: .5s cubic-bezier(0.65,0.05,0.36,1);
}

.aw {
	display: inline-block;
}
/* 画像リンクホバー */
.img_hover {
	position: relative;
	width: 30px;
	height: 30px;
	margin: 0 auto;
	display: block;
	overflow: hidden;
	cursor: pointer;
}
.img_hover img {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	width: 100%;
	display: block;
	-webkit-transition: .4s ease-in-out;
	transition: .4s ease-in-out;
}
.img_hover:hover img:nth-of-type(2) {
	opacity: 0;
}

@media screen and (min-width: 768px){
.sp-vis {
	display: none !important;
}
}

@media screen and (max-width: 767px){
body {
	-webkit-text-size-adjust: 100%;
}
.pc-vis {
	display: none !important;
}
}




/* 改行位置 */
@media screen and (min-width: 1025px) {
.br_tb {
	display: none;
}
.br_sp {
	display: none;
}
}

@media screen and (max-width: 1024px) and (min-width: 768px) {
.br_pc {
	display: none;
}
.br_sp {
	display: none;
}
}

@media screen and (max-width: 767px){
.br_pc {
	display: none;
}
.br_tb {
	display: none;
}
}


/* 画像ホバー用 */
.hover-fade {
  position: relative;
  display: inline-block;
}
.hover-fade img {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  transition: opacity 0.3s ease;
}
.hover-fade img.off-image {
  opacity: 1;
  z-index: 1;
}
.hover-fade img.on-image {
  opacity: 0;
  z-index: 2;
  pointer-events: none;
}
.hover-fade:hover img.off-image {
  opacity: 0;
}
.hover-fade:hover img.on-image {
  opacity: 1;
}



/* ローディング画面
------------------------------------------------*/
/*========= ローディング画面のためのCSS ===============*/
#splash {
	position: fixed;
	width: 100%;
	height: 100%;
	background: rgba(204,204,204,0.25);
	z-index: 9999;
	text-align: center;
	color: #fff;
}
#splash-logo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

/*========= 画面遷移のためのCSS ===============*/
/*画面遷移アニメーション*/
.splashbg{
    display: none;
}
/*bodyにappearクラスがついたら出現*/
body.appear .splashbg{
    display: block;
    content: "";
    position:fixed;
	z-index: 999;
    width: 100%;
    height: 100vh;
    top: 0;
	left: 0;
    transform: scaleX(0);
    background-color: rgba(204,204,204,0.5);/*伸びる背景色の設定*/
	animation-name: PageAnime;
	/*animation-duration:1.2s;*/
	animation-duration: 1.0s;
	animation-timing-function: ease-in-out;
	animation-fill-mode: forwards;
}

@keyframes PageAnime{
	0% {
		transform-origin:left;
		transform:scaleX(0);
	}
	50% {
		transform-origin:left;
		transform:scaleX(1);
	}
	50.001% {
		transform-origin:right;
	}
	100% {
		transform-origin:right;
		transform:scaleX(0);
	}
}

/*画面遷移の後現れるコンテンツ設定*/
#top-container {
	opacity: 0;/*はじめは透過0に*/
}

/*bodyにappearクラスがついたら出現*/
body.appear #top-container {
	animation-name:PageAnimeAppear;
	animation-duration:1s;
	/*animation-delay: 0.8s;*/
	animation-delay: 0.6s;
	animation-fill-mode:forwards;
	opacity: 0;
}

@keyframes PageAnimeAppear{
	0% {
	opacity: 0;
	}
	100% {
	opacity: 1;
}
}

/* ローディングアニメーション */
.loader {
  position: absolute;
  top: calc(50% - 32px);
  left: calc(50% - 32px);
  width: 64px;
  height: 64px;
}

.loader div {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	box-sizing: border-box;
	opacity: .8;
}

.one {
  border-top: 1px solid #ED3745;
  animation: rotate-left 1s linear infinite;
}

.two {
  border-right: 1px solid #F69BA2;
  animation: rotate-right 1s linear infinite;
}

.three {
  border-bottom: 1px solid #CC8484;
  animation: rotate-right 1s linear infinite;
}

.four {
  border-left: 1px solid #E6C2C2;
  animation: rotate-right 1s linear infinite;
}

@keyframes rotate-left {
  0% {
    transform: rotate(360deg);
  }
  100% {
    transform: rotate(0deg);
  }
}

@keyframes rotate-right {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}



#loading_wp { 
	position: fixed;
	top: 0; 
	left: 0; 
	width: 100%; 
	height: 100%; 
	background: #FFF;
	display: flex; 
	flex-direction: column; 
	justify-content: center; 
	align-items: center; 
	transition: all 0.3s;
	z-index: 99999;
}

/*
.loader {
  position: absolute;
  top: calc(50% - 32px);
  left: calc(50% - 32px);
  width: 64px;
  height: 64px;
}

.loader div {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	box-sizing: border-box;
	opacity: .8;
}
*/
.completed {
	opacity: 0;
	visibility: hidden;
}




/*----------------------------------------------------------
/* .header ヘッダー
----------------------------------------------------------*/

.header {
	padding: 30px 40px;
	background-color: #FFF;
}
.header__inner {
	max-width: 1260px;
 	margin: 0 auto;
 	display: -webkit-box;
  	display: -ms-flexbox;
  	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}
.header__logo a {
	display: block;
}
.header__logo a:hover {
	opacity: 0.8;
}

@media screen and (max-width: 767px){
.header {
	padding: 20px;
}
.header__inner {
  	-ms-flex-wrap: wrap;
  	flex-wrap: wrap;
}
}



/*----------------------------------------------------------
/* .nav グローバルナビ
----------------------------------------------------------*/
nav li a {
  font-size: 1.6rem;
  line-height: 1.2;
}
.gnav__child,
.mean-container .mean-nav ul ul {
	background-color: #FFF;
}


.gnav__wp {
	margin-left: auto;
}
.gnav a {
	font-size: 1.3rem;
}
.gnav__link a {
}
.gnav__close-btn {
	display: none;
}

.gnav__cta {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}
.gnav__tel {
	margin-left: clamp(15px, 4vw, 95px);
	font-size: 1.6rem;
	letter-spacing: 0.03em;
}
.gnav__tel a {
	font-size: 1.6rem;
	font-weight: 500;
	text-decoration: none;
	color: #362E2E;
	pointer-events: none;
}
.gnav__mail {
	display: none;
}
.gnav__ico {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}
.gnav__ico--insta, 
.gnav__ico--mail {
	margin-left: 30px;
}
.gnav__ico--insta a::after, 
.gnav__ico--mail a::after {
	display: none;
}
.gnav__ico--insta img {

}
.gnav__ico--mail img {
	color: #362e2e;
	transition: color .2s;
}
.gnav__ico--mail img:hover {
	color: #ED3745;
	transition: color .2s;
}

@media screen and (min-width: 768px){

.gnav__wp {
/*
	padding-top: 10px;
	padding-bottom: 10px;
	*/
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
  	-webkit-box-orient: horizontal;
  	-webkit-box-direction: reverse;
  	-ms-flex-direction: row-reverse;
  	flex-direction: row-reverse;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}


.gnav__child,
.mean-container .mean-nav ul ul {
	box-shadow: 0 0 10px rgba(0,0,0,0.2);
}
.gnav__parent {
	position: relative;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}
.gnav__link {
	position: relative;
	margin-left: clamp(5px, 0.78vw, 15px);
	margin-right: clamp(5px, 0.78vw, 15px);
}
.gnav__link:last-child {
	margin-right: 0;
}
.gnav__link a {
	position: relative;
	padding: 5px 10px;
	font-weight: 400;
	text-decoration: none;
	color: #333;
	display: block;
	text-align: center;
	transition: .3s;
}
.gnav__link a:hover {
	color: #ED3745;
	opacity: 1;
}
.gnav__link a::after {
	content: "";
	position: absolute;
	top: auto;
	left: 8px;
	bottom: 5px;
	width: calc(100% - 16px);
	height: 1px;
	background: #ED3745;
	opacity: 0;
	transition: .3s;
}
.gnav__link a:hover::after{
	bottom: -2px;
	opacity: 1;
}


.gnav__child {
	visibility: hidden;
	opacity: 0;
	z-index: 999;
	display: block;
	position: absolute;
	left: 50%;
	margin-left: -105px;
	width: 210px;
	-webkit-transition: all .2s ease;
	transition: all .2s ease;
	border-radius: 6px;
}
.gnav__child a {
	display: block;
	font-size: 1.2rem;
	text-align: left;
	border-bottom: none;
	padding: 15px 20px;
	line-height: 1.4;
}
.gnav__child a:hover:after {
	content: none;
}
.gnav__child li {
	display: block;
	font-size: 10px;
	padding: 0;
	margin: 0;
}
.gnav__child li:last-child {
	border-bottom: none;
}
.gnav__parent > li:hover {
	-webkit-transition: all .5s;
	transition: all .5s;
}
.gnav__link:hover ul.gnav__child {
	top: 40px;
	visibility: visible;
	opacity: 1;
	z-index: 9999;
}
.gnav__link ul li:after {
	content: none;
}
.gnav__link:hover ul.gnav__child a {
	color: #111;
}
.gnav__child li a:hover {
	background: #F2F2F2;
	border-radius: 6px;
}
.gnav__link--policy, 
.gnav__link--privacy {
	display: none;
}
}

@media screen and (min-width: 767px) and (max-width: 940px) {
.header {
	padding: 20px 40px;
}
.gnav__wp {
	margin-top: 45px;
	margin-right: -15px;
}
.gnav__cta {
	position: absolute;
	top: -45px;
	right: 15px;

}

}


@media screen and (max-width: 767px){
.header__logo {
	position: relative;
	width: calc(200px * 0.8);
	z-index: 6;
}
.mean-nav .container {
	padding: 0;
}


.mean-container .mean-nav {
	width: calc(100% - 40px); 
	margin-top: 68px;
	margin-left: 20px;
	margin-right: 20px;
}


.gnav__cta {
	position: relative;
	padding: 30px 20px 70px;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}
	/*
  	-webkit-box-orient: vertical;
  	-webkit-box-direction: normal;
  	-ms-flex-direction: column;
  	flex-direction: column;
	*/
.gnav__tel {
	width: calc(50% - 10px);
	margin-left: 0;
	margin-right: 0;
	font-size: 1.6rem;
}
.gnav__mail {
	width: calc(50% - 5px);
	display: block;
}

.gnav__tel a, 
.gnav__mail a {
	padding: 15px 5px !important;
	font-size: 1.3rem !important;
	font-weight: 500;
	text-align: center !important;
	border: 1px solid #CCC !important;
	pointer-events: auto;
	display: block;
}

.gnav__mail a:hover, 
.gnav__tel a:hover {
	color: #ED3745 !important;
	border-color: #ED3745 !important;
}
.gnav__mail span {
	position: relative;
	padding-left: 25px;
	text-align: center;
	display: inline-block;
}
.gnav__mail span::before, 
.gnav__mail span::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	width: calc(27px * 0.6);
	height: calc(20px * 0.6);
	margin: auto 0;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	transition: opacity .4s ease;
	display: block;

}

.gnav__mail a span::after {
	background-image: url("../img/common/common_ico09.svg");
	opacity: 1;
}
.gnav__mail a span::before {
	background-image: url("../img/common/common_ico09-on.svg");
	opacity: 0;
}
.gnav__mail a:hover span::before {
	transition: opacity .4s ease;
	opacity: 1;
}
.gnav__mail a:hover span::after {
	transition: opacity .4s ease;
	opacity: 0;
}




.gnav__ico {
	position: absolute;
	right: 0;
	bottom: 0;
	display: block;
}
.gnav__ico--mail {
	display: none;
}
.gnav__ico--insta a {
	border-top: none !important;
}
.gnav__ico--insta a::after, 
.gnav__ico--mail a::after {
	display: none;
}
.gnav__link--policy, 
.gnav__link--privacy {
	display: block;
}
.gnav__child {
	display: none !important;
}
.mean-expand.mean-clicked {
	pointer-events: none !important;
	display: none!important;
}
.mean-container .mean-nav ul li a.mean-expand {
	pointer-events: none !important;
	display: none!important;

}

}






/*----------------------------------------------------------
/* .hero アイキャッチ
----------------------------------------------------------*/
/* .top-hero トップアイキャッチ
------------------------------------------------*/
.top-hero {
	margin-top: clamp(40px * 0.5, 8.33vw, 160px);
	margin-bottom: clamp(80px, 14.58vw, 280px);
	padding: 0 40px;
}
.top-hero__inner {
	max-width: 1260px;
	margin: 0 auto;
	padding: 0;
  	display:-webkit-box;
  	display:-ms-flexbox;
  	display:flex;
  	-webkit-box-orient: horizontal;
  	-webkit-box-direction: reverse;
  	-ms-flex-direction: row-reverse;
  	flex-direction: row-reverse;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: end;
	-ms-flex-align: end;
	align-items: flex-end;
}
.top-hero__title-box {
	margin-right: clamp(20px, 3.17vw, 40px);
	display: inline-block;

}

.top-hero__catch {
	margin-bottom: clamp(20px, 2.38vw, 30px);
	font-size: clamp(1.1rem, 1.03vw, 1.3rem);
	font-weight: 500;
	text-align: left;
	line-height: 1.6;
	letter-spacing: 0.05em;
	animation: fadeIn1 1.5s cubic-bezier(0.33, 1, 0.68, 1) 3s forwards;
    opacity: 0;
	display: inline-block;
}
@keyframes fadeIn1 {
  0% {
    opacity: 0;
	transform: translateY(25px);
  }
  100% {
    opacity: 1;
	transform: translateY(0);
  }
}
.top-hero__title {
	font-size: clamp(3.5rem, 3.57vw, 4.5rem);
	font-weight: 400;
	animation: fadeIn2 1.5s cubic-bezier(0.33, 1, 0.68, 1) 4s forwards;
	text-align: center;
	line-height: 1.2;
	letter-spacing: 0.2em;
    opacity: 0;
}
@keyframes fadeIn2 {
  0% {
    opacity: 0;
	transform: translateY(25px);
  }
  100% {
    opacity: 1;
	transform: translateY(0);
  }
}
.top-hero__title small {
	margin-top: 15px;
	font-size: clamp(1.4rem, 1.42vw, 1.8rem);
	text-align: center;
	line-height: 1.2;
	letter-spacing: 0.3em;
	display: block;
}

.hero--top .hero__txt {
	max-width: inherit;
	margin-top: 20px;
	font-weight: 500;
} 

@media screen and (max-width: 767px){
.top-hero {
	margin-top: 20px;
	padding: 0 20px;
}
.top-hero__inner {
  	display: block;
}
.top-hero__img {
	margin-bottom: 30px;
}
.top-hero__title-box {
	margin-right: 0;
	display: block;
}

.top-hero__catch {
	margin-bottom: 10px;
	text-align: left;
}
.top-hero__title {
	text-align: left;
}
.top-hero__title small {
	margin-top: 5px;
	text-align: left;
}
}



/* .hero アイキャッチ
------------------------------------------------*/
.hero {
	padding: 56px 40px 40px;
}
.hero__inner {
	max-width: 1260px;
	margin-left: auto;
	margin-right: auto;
}
.hero__title {
	position: relative;
	padding-left: 30px;
	font-size: 3.0rem;
	font-weight: 500;
	line-height: 1.46;
	letter-spacing: 0.08em;
}
.hero__title::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	width: 14px;
	height: 14px;
	margin: auto 0;
	background: url("../img/common/common_ico03.svg") no-repeat center center / contain;
	display: block;
}

@media screen and (max-width: 767px){
.hero {
	padding: 20px 20px 30px;
}
.hero__title {
	padding-left: 26px;
	font-size: 2.4rem;
}
.hero__title::before {
	width: 12px;
	height: 12px;
}

}

/* .topic_path パンくずリスト
------------------------------------------------*/
.topic-path {
	margin-top: 25px;
}
.topic-path__inner {
	max-width: 1260px;
	margin-left: auto;
	margin-right: auto;
}
.topic-path__list {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
}
.topic-path__list li {
	font-size: 1.4rem;
	line-height: 1.4;
	letter-spacing: 0.036em;
}
.topic-path__list a {
	font-size: 1.4rem;
	color: #3A2929;
}
.topic-path__list a:hover {
	text-decoration: none;
	color: #ED3745;
}
.topic-path__list li:not(:last-of-type)::after {
	content: ">";
	margin: 0 15px;
	font-size: 1.4rem;
	color: #BBB;
}

@media screen and (max-width: 767px){
.topic-path {
	padding-left: 9.6479vw;
	padding-right: 9.6479vw;
	display: none;
}
}






/*----------------------------------------------------------
/* .top　トップページ
----------------------------------------------------------*/
.top-title {
	position: relative;
	margin-bottom: 40px;
	padding-left: 24px;
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.44;
	letter-spacing: 0.1em;
}
.top-title::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	width: 9px;
	height: 9px;
	margin: auto 0;
	background: url("../img/common/common_ico03.svg") no-repeat center center / contain;
	display: block;
}
.top-catch {
	margin-bottom: 40px;
	font-size: 2.0rem;
	line-height: 2.3;
	letter-spacing: 0.1em;
}
@media screen and (max-width: 767px){
.top-title {
	margin-bottom: 25px;
}
.top-catch {
	margin-bottom: 30px;
	font-size: 1.8rem;
	line-height: 2;
	letter-spacing: 0.05em;
}
}


.primary-title {
	margin-bottom: 40px;
	font-size: 2.0em;
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: 0.08em;
}
@media screen and (max-width: 767px){
.primary-title {
	margin-bottom: 25px;
	font-size: 1.8em;
}
}



.common-btn {
	margin-top: 50px;
	text-align: right;
}
.common-btn a {
	position: relative;
	padding-right: 57px;
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-decoration: none;
	color: #362E2E;
	display: inline-block;
	transition: .2s ease;
}
.common-btn a:hover {
	padding-right: 52px;
	color: #ED3745;
	transition: .2s ease;
}

.common-btn a::after,
.common-btn a::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 40px;
	height: 40px;
	margin: auto 0;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	transition: opacity .4s ease;
}
.common-btn a::after {
	background-image: url("../img/common/common_ico04.svg");
	opacity: 1;
}
.common-btn a::before {
	background-image: url("../img/common/common_ico04-on.svg");
	opacity: 0;
}
.common-btn a:hover::before {
	transition: opacity .4s ease;
	opacity: 1;
}
.common-btn a:hover::after {
	transition: opacity .4s ease;
	opacity: 0;
}


@media screen and (max-width: 767px){
.common-btn {
	margin-top: 40px;
}
}



/*
.top-title-en {
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
	margin-bottom: 10px;
	font-size: 1.6em;
	text-align: center;
	line-height: 1.1;
	letter-spacing: 0.05em;
	color: #00659F;
}
.top-title-en--left {
	text-align: left;
}
.top-title {
	margin-bottom: 30px;
	font-size: 4.0em;
	text-align: center;
	line-height: 1.2;
}
.top-title--left {
	text-align: left;
}
.top-txt {
	font-size: 1.6rem;
	line-height: 2.12;
	text-align: justify;
}

@media screen and (max-width: 767px){

.top-title-en {
	margin-bottom: 15px;
	font-size: 1.4rem;
}
.top-title {
	margin-bottom: 15px;
	font-size: 2.5rem;
}
.top-txt {
	font-size: 1.5rem;
	line-height: 1.73;
}
}
*/


/* .top-service	事業内容
------------------------------------------------*/
.top-service {
	margin-top: clamp(80px, 14.58vw, 280px);
	margin-bottom: clamp(120px, 7.81vw, 150px);
	padding: 0 40px;
}
.top-service__inner {
	max-width: 1260px;
	margin: 0 auto;
}
.top-service__flex {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}
.top-service__flex--txt-img {
  	-webkit-box-orient: horizontal;
  	-webkit-box-direction: reverse;
  	-ms-flex-direction: row-reverse;
  	flex-direction: row-reverse;
}
.top-service__flex + .top-service__flex {
	margin-top: 100px;
}
.top-service__img {
	max-width: clamp(390px * 0.8, 30.95vw, 390px);
}
.top-service__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center left;
}
.top-service__flex--txt-img {

}

.top-service__box {
	max-width: 733px;
	width: calc(100% - clamp(390px * 0.8, 30.95vw, 390px) - clamp(20px, 3.17vw, 40px));
}
.top-service__txt {
	font-size: 1.4rem;
	line-height: 2.57;
	letter-spacing: 0.05em;
	font-weight: 400;
	color: #362E2E;
}
.top-service__txt + .top-service__txt {
	margin-top: 30px;
}



@media screen and (max-width: 767px){
.top-service {
	margin-bottom: clamp(80px, 7.81vw, 150px);
	padding: 0 20px;
}
.top-service__inner {
	max-width: 1260px;
	margin: 0 auto;
}
.top-service__flex {
	display: block;
}
.top-service__flex + .top-service__flex {
	margin-top: 80px;
}
.top-service__img {
	max-width: inherit;
	margin-bottom: 30px;
}
.top-service__img img {
	width: 100%;
	height: 100%;
	object-fit: fill;
}

.top-service__box {
	width: 100%;
	max-width: inherit;
}
.top-service__txt {
	font-size: 1.4rem;
	line-height: 2.57;
	letter-spacing: 0.05em;
	font-weight: 400;
	color: #362E2E;
}
.top-service__txt + .top-service__txt {
	margin-top: 30px;
}

}



/* .top-works 実績紹介
------------------------------------------------*/
.top-works {
	margin-top: clamp(120px, 7.81vw, 150px);
	margin-bottom: clamp(120px, 7.81vw, 150px);
	padding: 0 40px;
}
.top-works__inner {
	max-width: 1260px;
	margin-left: auto;
	margin-right: auto;
	display: flex;
	align-items: flex-start;
  	flex-wrap: wrap;

}
.top-works__title {
	width: clamp(200px * 0.8, 15.87vw, 200px);
}
.top-works__box {
	width: calc(100% - clamp(200px * 0.8, 15.87vw, 200px));
}
.top-works__btn {
	width: 100%;

}
@media only screen and (max-width: 767px) {
.top-works {
	margin-top: clamp(80px, 7.81vw, 150px);
	margin-bottom: clamp(80px, 7.81vw, 150px);
	padding: 0 20px;
}
.top-works__inner {
	display: block;
}
.top-works__title {
	width: 100%;
}
.top-works__box {
	width: 100%;
}
}
/*
.works__list {
	margin: calc(clamp(60px * 0.6, 4.76vw, 60px) / 2 * -1) calc(clamp(100px * 0.6, 7.93vw, 100px) / 2 * -1);
	display: flex;
  	flex-wrap: wrap;
}
.works__list li {
	width: 25%;
	padding: calc(clamp(60px * 0.6, 4.76vw, 60px) / 2) calc(clamp(100px * 0.6, 7.93vw, 100px) / 2);
}
.works__list a {
	transition: .2s ease;
	display: block;
	transform: translateY(0);
	overflow: hidden;
}
.works__list a:hover {
	transform: translateY(-2px);
	box-shadow: 0 5px 15px rgba(0,0,0,0.2);
	transition: .2s ease;
}

.works__list a img {
	transition: .2s ease;
}
.works__list a:hover img {
	transform: scale(1.05,1.05);
	transition: .2s ease;
}



@media only screen and (max-width: 1024px) {
.works__list li {
	width: 33.33%;
}
.works__list img {
	width: 100%;
	height: auto;
}
}

@media only screen and (max-width: 767px) {
.top-works {
	padding: 0 20px;
}
.top-works__inner {
	display: block;
}
.top-works__title {
	width: 100%;
}
.top-works__box {
	width: 100%;
}
.works__list {
	margin: calc(clamp(30px * 0.5, 3.91vw, 30px) / 2 * -1) calc(clamp(40px * 0.5, 5.21vw, 40px) / 2 * -1);
}
.works__list li {
	padding: calc(clamp(30px * 0.5, 3.91vw, 30px) / 2) calc(clamp(40px * 0.5, 5.21vw, 40px) / 2);
}
}

@media only screen and (max-width: 414px) {
.works__list {
	margin: calc(30px / 2 * -1) calc(30px / 2 * -1);
}
.works__list li {
	width: 50%;
	padding: calc(30px / 2) calc(30px / 2);
}
}
*/



/* .top-company 会社案内
------------------------------------------------*/
.top-company {
	margin-top: clamp(120px, 7.81vw, 150px);
	margin-bottom: clamp(80px, 7.81vw, 150px);
	padding: 0 40px;
}
.top-company__inner {
	max-width: 1260px;
	margin-left: auto;
	margin-right: auto;
	display: grid;
	grid-template-columns: clamp(390px * 0.6, 30.95vw, 390px) 1fr;
	grid-template-rows: auto 1fr;
	column-gap: 40px;
	justify-content: space-between;
}

.top-company__title { grid-area: 1 / 1 / 2 / 2; }
.top-company__img { grid-area: 1 / 2 / 3 / 3; }
.top-company__box { grid-area: 2 / 1 / 3 / 2; }


.top-company__img {
	max-width: 733px;
	margin-left: auto;
}
.top-company__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.top-company__menu li {
	border-bottom: 1px solid #CCC;
}
.top-company__menu li + li {
	margin-top: 10px;
}
.top-company__menu a {
	position: relative;
	padding: 25px 40px 25px 20px;
	font-size: 1.4rem;
	font-weight: 500;
	text-decoration: none;
	color: #362E2E;
	display: block;
	transition: .2s ease;
}
.top-company__menu a:hover {
	padding-left: 25px;
	padding-right: 35px;
	color: #ED3745;
	transition: .2s ease;
}
.top-company__menu a::after {
	content: "";
	position: absolute;
	top: 0;
	right: 20px;
	bottom: 0;
	width: 13px;
	height: 6px;
	margin: auto 0;
	background: url("../img/common/common_ico08.svg") no-repeat center center / contain;
	display: block;
	transition: .2s ease;
}
.top-company__menu a:hover::after {
	right: 17px;
	background-image: url("../img/common/common_ico08-on.svg");
}


@media screen and (max-width: 767px){
.top-company {
	margin-top: clamp(80px, 7.81vw, 150px);
	margin-bottom: clamp(80px, 7.81vw, 150px);
	padding: 0 20px;
}
.top-company__inner {
	display: block;
}

.top-company__img {
	max-width: inherit;
	margin-left: 0;
	margin-bottom: 30px;
}
.top-company__img img {
	width: 100%;
	height: auto;
	object-fit: fill;
}
.top-company__menu li + li {
	margin-top: 0;
}
.top-company__menu a {
	padding-top: 20px;
	padding-bottom: 20px;
}

}









/*----------------------------------------------------------
/* .footer フッター
----------------------------------------------------------*/
/* .footer-cta	フッターCTA
------------------------------------------------*/
.footer-cta {
	padding: 0 80px 50px;
}
.footer-cta__inner {
	max-width: 980px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
}
.footer-cta__btn {
	width: 46.93%;
	display: flex;
}
.footer-cta__btn a {
	width: 100%;
	padding: 30px 20px;
	text-decoration: none;
	color: #362E2E;
	border: 1px solid #CCC;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	transition: .2s ease;
	transform: translateY(0);
	position: relative;
	overflow: hidden;
}
.footer-cta__btn a:hover {
	color: #ED3745;
	border-color: #ED3745;
	transform: translateY(-2px);
	box-shadow: 0 5px 10px rgba(0,0,0,0.05);
	transition: .2s ease;
}
.footer-cta__btn span {
	font-size: 1.8rem;
	font-weight: 400;
	text-align: center;
	display: block;
}
.footer-cta__btn small {
	margin-top: 10px;
	font-size: 1.2rem;
	font-weight: 400;
	text-align: center;
	display: block;
}
.footer-cta__btn--mail span {
	position: relative;
	padding-left: 40px;
	font-weight: 500;
}
.footer-cta__btn--mail a span::before, 
.footer-cta__btn--mail a span::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 27px;
	height: 20px;
	transform: translateY(-50%);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	display: block;
	transition: opacity .3s ease, transform .3s ease;
}
.footer-cta__btn--mail a span::before {
	background-image: url("../img/common/common_ico09-on.svg");
	opacity: 0;
	transform: translateY(-50%) scale(0.9);
}
.footer-cta__btn--mail a span::after {
	background-image: url("../img/common/common_ico09.svg");
	opacity: 1;
	transform: translateY(-50%) scale(1);
}
.footer-cta__btn--mail a:hover span::before {
	opacity: 1;
	transform: translateY(-50%) scale(1.1);
}
.footer-cta__btn--mail a:hover span::after {
	opacity: 0;
	transform: translateY(-50%) scale(0.9);
}

@media screen and (max-width: 767px){
.footer-cta {
	padding: 0 0 40px;
}
.footer-cta__inner {
	display: block;
}
.footer-cta__btn {
	width: 100%;
	display: block;
}
.footer-cta__btn--mail {
	margin-top: 20px;
}
.footer-cta__btn a {
	padding: 15px 10px;
}
.footer-cta__btn--mail a {
	padding: 25px 10px;
}
.footer-cta__btn span {
	font-size: 1.8rem;
	display: inline-block;
}
.footer-cta__btn small {
	margin-top: 10px;
	font-size: 1.2rem;
	display: block;
}
.footer-cta__btn--mail span {
	position: relative;
	padding-left: 40px;
}
.footer-cta__btn--mail a span::before, 
.footer-cta__btn--mail a span::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 27px;
	height: 20px;
	transform: translateY(-50%);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	display: block;
	transition: opacity .3s ease, transform .3s ease;
}
}



/* .footer	フッター
------------------------------------------------*/



.footer {
	position: relative;
	padding: 30px 40px 50px;
}
.footer--slim {
	padding: 25px 40px 30px;
}
.footer__inner {
	position: relative;
	max-width: 1260px;
	margin-left: auto;
	margin-right: auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.footer__inner--slim {
	display: block;

}



.footer__logo {
	margin-bottom: 16px;
}
.footer__logo a {
	display: inline-block;
}
.footer__logo a:hover {
	opacity: 0.8;
}


.footer__copyright {
	font-size: 1.0rem;
	line-height: 1.5;
	letter-spacing: 0.03em;
	color: #707070;
}
.footer__copyright--only {
	font-size: 1.2rem;
	text-align: center;
	letter-spacing: 0.03em;
	color: #7E7575;

}

.footer__sitemap {
	margin-left: auto;
	display: flex;
	justify-content: flex-end;
}
.footer__sitemap li {
	margin-left: clamp(20px, 3.125vw, 60px);
}

.footer__sitemap a {
	font-size: 1.4rem;
	font-weight: 400;
	text-decoration: none;
	line-height: 1.4;
	letter-spacing: 0.03em;
	color: #362E2E;
}
.footer__sitemap a:hover {
	text-decoration: underline;
	color: #ED3745;
}
.footer__link {
	margin-top: 20px;
	margin-left: auto;
	display: flex;
	justify-content: flex-end;
}
.footer__link li {
	margin-left: clamp(20px, 3.125vw, 60px);
}
.footer__link a {
	font-size: 1.2rem;
	font-weight: 400;
	text-decoration: none;
	line-height: 1.4;
	letter-spacing: 0.03em;
	color: #362E2E;
}
.footer__link a:hover {
	text-decoration: underline;
	color: #ED3745;
}

.footer__insta {
	margin-top: 30px;
	text-align: right;
}

.footer__insta a {
	display: inline-block;
}

@media screen and (max-width: 767px){
.footer {
	padding: 30px 20px 30px;
}
.footer--slim {
	padding: 25px 20px 30px;
}
.footer__inner {
	max-width: 1260px;
	margin-left: auto;
	margin-right: auto;
}
.footer__sitemap {
	display: none;
}
.footer__link {
	display: none;
}
.footer__insta {
	position: absolute;
	top: 5px;
	right: 0;
	margin-top: 0;
	width: 27px;
	height: 27px;
}
.footer__insta a {
	display: inline-block;
}
}





/*----------------------------------------------------------
/* .page_top ページトップ
----------------------------------------------------------*/

/*========= ページトップのためのCSS ===============*/
/*リンクの形状*/

/*リンクを右下に固定*/
.page-top {
	position: fixed;
	right: 20px;
	z-index: 2;
	opacity: 0;
	transform: translateY(100px);
}
.page-top a {
	display: inline-block;
	opacity: 0.6;
	transition: all 0.3s;
}
.page-top a:hover {
	filter: drop-shadow(0 5px 5px rgba(0,0,0,0.1));
	transform: translateY(-2px);
	transition: .2s ease;
	opacity: 1;
}

/*　上に上がる動き　*/

.page-top.UpMove {
  animation: UpAnime .5s forwards;
}
@keyframes UpAnime{
  from {
	opacity: 0;
	transform: translateY(100px);
  }
  to {
	opacity: 1;
	transform: translateY(0);
  }
}

/*　下に下がる動き　*/
#page-top.DownMove {
  animation: DownAnime .5s forwards;
}
@keyframes DownAnime{
  from {
	opacity: 1;
	transform: translateY(0);
  }
  to {
	opacity: 1;
	transform: translateY(100px);
  }
}
 
@media screen and (max-width: 1024px){
.page-top {
	width: calc(55px * 0.8);
	height: calc(55px * 0.8)
}
.page-top img {
	width: calc(55px * 0.8);
	height: calc(55px * 0.8)
}
}
 
 
 
 
 
 
 