@charset "UTF-8";
/* common.css */

header *,
footer *,
main *,
header *:before,
footer *:before,
main *:before,
header *:after,
footer *:after,
main *:after    {
	font-feature-settings: "palt";
	box-sizing: border-box;
	border-collapse: collapse;
}
body,
h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: noto-sans-cjk-jp, 'Noto Sans JP', sans-serif;
}
body,
h1,
h2,
h3,
h4,
h5,
h6,
li,
p,
dt,
dd,
th,
td {
	letter-spacing: .1em;
}
body {
	color: #5a5a5a;
}
body.overflowY {
	overflow-y: hidden;
}
main {
	padding-top: 145px;
}


/* Wrap ============================== */
.page_link {
	margin-top:  0px;
	padding-top: 0px;
}
.page_link#link_greeting {
	margin-top: -40px;
	padding-top: 40px;
}
#thanks_contact {
	margin-top: -145px;
	padding-top: 145px;
}


@media screen and (max-width:768px) {
	.page_link {
		margin-top:  0px;
		padding-top: 0px;
	}
	.page_link#link_greeting {
		margin-top:  0px;
		padding-top: 0px;
	}
	#thanks_contact {
		margin-top: -90px;
		padding-top: 90px;
	}
}






/* Wrap ============================== */
.wrap {
	width: 100%;
	margin: auto;
	padding: 0 50px;
}
.wrap {
	max-width: 880px;
}
.flex_box {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
}
.cont_width {
	max-width: 720px;
	margin-left:  auto;
	margin-right: auto;
	padding-left:  20px;
	padding-right: 20px;
}


/* Font Family ============================== */
.ff_notos { font-family:'Noto Sans JP', sans-serif !important; }


/* text ============================== */
html,
h1,
h2,
h3,
h4,
a { color:inherit; }

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: bold;
	line-height: 1.5;
}
ul,
li,
dl,
dd,
dt,
a,
p {
	font-size: 12px;
	line-height:   1.7em;
	letter-spacing: .1em;
}
p       { text-align:justify;   }
span    { letter-spacing:.1em;  }
a       { text-decoration:none; }
a:hover { color:inherit; text-decoration:none; }

.fw_normal { font-weight:normal !important; }
.fw_500    { font-weight:500 !important;    }
.fw_bold   { font-weight:bold !important;   }

.align_left    { text-align:left !important;    }
.align_right   { text-align:right !important;   }
.align_center  { text-align:center !important;  }
.align_justify { text-align:justify !important; }

.text_indent { text-indent:-1em; padding-left:1em; }

.small { font-size:.75em; }

span.small { font-size:12px; }
.copyright { font-size:12px; text-align:center; }


/* 表示・非表示 ============================== */
.pc_blk { display:block !important; }
.sp_blk { display:none !important;  }

.pc_inline { display:inline !important; }
.sp_inline { display:none !important;   }

.flex_box.pc_blk { display:flex !important; }
.flex_box.sp_blk { display:none !important; }


/* 余白 ============================== */
.marXXL_T { margin-top:100px !important; }
.marXL_T  { margin-top: 80px !important; }
.marL_T   { margin-top: 60px !important; }
.marM_T   { margin-top: 50px !important; }
.marS_T   { margin-top: 40px !important; }
.marXS_T  { margin-top: 25px !important; }
.marXXS_T { margin-top: 10px !important; }

.marXXL_B { margin-bottom:100px !important; }
.marXL_B  { margin-bottom: 80px !important; }
.marL_B   { margin-bottom: 60px !important; }
.marM_B   { margin-bottom: 50px !important; }
.marS_B   { margin-bottom: 40px !important; }
.marXS_B  { margin-bottom: 25px !important; }
.marXXS_B { margin-bottom: 10px !important; }

.padXXL_T { padding-top:100px !important; }
.padXL_T  { padding-top: 80px !important; }
.padL_T   { padding-top: 60px !important; }
.padM_T   { padding-top: 50px !important; }
.padS_T   { padding-top: 40px !important; }
.padXS_T  { padding-top: 25px !important; }
.padXXS_T { padding-top: 10px !important; }

.padXXL_B { padding-bottom:100px !important; }
.padXL_B  { padding-bottom: 80px !important; }
.padL_B   { padding-bottom: 60px !important; }
.padM_B   { padding-bottom: 50px !important; }
.padS_B   { padding-bottom: 40px !important; }
.padXS_B  { padding-bottom: 25px !important; }
.padXXS_B { padding-bottom: 10px !important; }


/* 画像 ====================================== */
img { width:100%; height:auto; }


/* Header menu ============================== */
header {
	width: 100%;
	position: fixed;
	top: 0;
	z-index: 1000;
}
.pc_nav,
.header_wrap {
	padding-left:  70px;
	padding-right: 70px;
	padding-left:  clamp(50px,5vw,70px);
	padding-right: clamp(50px,5vw,70px);
}
.header_wrap {
	width:  100%;
	height: 120px;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	padding: 10px;
	padding: 10px clamp(25px,5vw,70px);
	background-color: #fff;
}


/* ----- header logo ----- */
.header_logo,
.header_logo img {
	height: 9vw;
	max-height: 90px;
	min-height: 80px;
}
.header_logo {
	width: fit-content;
	width: 27%;
}
.header_logo a {
	width: 100%;
	height: auto;
	display: block;
}
.header_logo img {
	height: 100%;
	object-fit: contain;
	object-position: left;
}

/* ----- header menu ----- */
.header_pc_info {
	width: 78%;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-end;
}

/* ----- header 電話・Faxなど ----- */
.hnav_info {
	width: 70%;
	max-width: 480px;
}
/*　どなたでもお気軽にご相談　*/
.hnav_info p {
	font-size: 16px;
	font-size: clamp(15px,1.6vw,16px);
	text-align: center;
	line-height: 1;
}
.header_free {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: center;
	margin-bottom: .85em;
}
.header_free:before,
.header_free:after  {
	content: "";
	width: 2em;
	height: 1px;
	display: block;
	background-color: #5a5a5a;
}
.header_free:before {
	margin-right: 1em;
}
.header_free:after {
	margin-left:  1em;
}
/* 営業時間 */
p.header_time {
	font-size: 12px;
	margin-top: .75em;
}
/* 電話 */
.header_tel_flex {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	justify-content: center;
}
.header_tel_flex > * {
	width: calc(100%/2 - 3%);
	line-height: 1;
}
.header_tel_flex a,
.header_tel_flex p {
	display: block;
}
.header_tel_flex a {
	margin-right: 6%;
}
.header_tel_flex svg {
	width: 100%;
}
.header_tel_flex .st0 {
	fill: #5a5a5a;
	transition: fill .3s;
}
.header_tel_flex a:hover .st0 {
	fill: #f15000;
}


/* ----- header お問い合わせ ----- */
.header_svg_contact,
.header_svg_contact svg {
	height: 80px;
}
.header_svg_contact {
	margin-left: 30px;
	margin-left: clamp(15px,3vw,30px);
}
.header_svg_contact .st0,
.header_svg_contact .st1 {
	transition: fill .3s;
}
.header_svg_contact .st0 {
	fill: #e5f5fc;
}
.header_svg_contact .st1 {
	fill: #00a0e6;
}
.header_svg_contact:hover .st0 {
	fill: #f15000;
}
.header_svg_contact:hover .st1 {
	fill: #fff;
}

/* ----- PC nav ----- */
.pc_nav {
	width: 100%;
	height: 25px;
	color: #fff;
	background-image: linear-gradient(90deg, rgba(0, 160, 230, 1) 60%, rgba(0, 220, 220, 1));
}
.pc_nav ul {
	height: 100%;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-end;
}
.pc_nav li {
	line-height: 1.5;
	font-weight: 500;
}
.pc_nav li + li {
	margin-left: 1.5em;
}
.pc_nav a {
	color: #fff;
	opacity: 1;
	transition: opacity .3s;
}
.pc_nav a:hover {
	/* color: #f15000; */
	opacity: .7;
}

/* ----- SP nav ----- */
#g-nav {
	display: none;
}
#g-nav ul {
	display: flex;
	flex-wrap: nowrap;
}
#g-nav li:not(:first-of-type) {
	margin-left: 2em;
}


/* Footer menu ============================== */
footer {
	padding-top: 40px;
	padding-bottom: max(70px,7vw);
	color: #fff;
	background-color: #40b8ec;
	background-image: url(../../img/common/footer_building_pc.jpg);
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 100%;
}
/* ロゴ */
.footer_logo {
	max-width: 240px;
	display: block;
	margin: 0 auto 40px;
}
/* 電話・Fax */
.footer_tel_flex {
	width: 100%;
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	justify-content: space-between;
	margin-bottom: 30px;
}
.footer_tel_flex > * {
	width: calc(100%/2 - 3%);
}
/* 社名・住所・営業時間 */
.footer_info dt,
.footer_info dd {
	text-align: center;
}
.footer_info dt {
	font-size: 16px;
	font-weight: 500;
	margin-bottom: .5em;
}
.footer_info dd {
	font-size: 12px;
	font-weight: normal;
}
/* SVG */
.footer_tel_flex svg {
	width: 100%;
}
.footer_tel_flex .st0 {
	fill: #fff;
	transition: fill .3s;
}
.footer_tel_flex a:hover .st0 {
	fill: #f15000;
}















@media screen and (max-width:768px) {
	main {
		padding-top: 90px;
	}


	/* Wrap ============================== */
	.wrap {
		width: 100%;
		margin: auto;
		padding: 0 30px;
	}
	.wrap {
		max-width: 660px;
	}


	/* text ============================== */
	ul,
	li,
	dl,
	dd,
	dt,
	a,
	p { font-size: 12px; }

	.fb_normal-SP { font-weight:normal !important; }
	.fb_500-SP    { font-weight:500 !important;    }
	.fb_bold-SP   { font-weight:bold !important;   }

	.align_left-SP    { text-align:left !important;    }
	.align_right-SP   { text-align:right !important;   }
	.align_center-SP  { text-align:center !important;  }
	.align_justify-SP { text-align:justify !important; }


	/* 余白 ============================== */
	.marXXL_T { margin-top:60px !important; }
	.marXL_T  { margin-top:40px !important; }
	.marL_T   { margin-top:30px !important; }
	.marM_T   { margin-top:20px !important; }
	.marS_T   { margin-top:10px !important; }
	.marXS_T  { margin-top: 5px !important; }

	.marXXL_B { margin-bottom:60px !important; }
	.marXL_B  { margin-bottom:40px !important; }
	.marL_B   { margin-bottom:30px !important; }
	.marM_B   { margin-bottom:20px !important; }
	.marS_B   { margin-bottom:10px !important; }
	.marXS_B  { margin-bottom: 5px !important; }

	.marXXL_T-SP { margin-top:60px !important; }
	.marXL_T-SP  { margin-top:40px !important; }
	.marL_T-SP   { margin-top:30px !important; }
	.marM_T-SP   { margin-top:20px !important; }
	.marS_T-SP   { margin-top:10px !important; }
	.marXS_T-SP  { margin-top: 5px !important; }
	.mar0_T-SP   { margin-top: 0px !important; }

	.marXXL_B-SP { margin-bottom:60px !important; }
	.marXL_B-SP  { margin-bottom:40px !important; }
	.marL_B-SP   { margin-bottom:30px !important; }
	.marM_B-SP   { margin-bottom:20px !important; }
	.marS_B-SP   { margin-bottom:10px !important; }
	.marXS_B-SP  { margin-bottom: 5px !important; }
	.mar0_B-SP   { margin-bottom: 0px !important; }

	/* pad */
	.padXXL_T { padding-top:60px !important; }
	.padXL_T  { padding-top:40px !important; }
	.padL_T   { padding-top:30px !important; }
	.padM_T   { padding-top:20px !important; }
	.padS_T   { padding-top:10px !important; }
	.padXS_T  { padding-top: 5px !important; }

	.padXXL_B { padding-bottom:60px !important; }
	.padXL_B  { padding-bottom:40px !important; }
	.padL_B   { padding-bottom:30px !important; }
	.padM_B   { padding-bottom:20px !important; }
	.padS_B   { padding-bottom:10px !important; }
	.padXS_B  { padding-bottom: 5px !important; }

	.padXXL_T-SP { padding-top:60px !important; }
	.padXL_T-SP  { padding-top:40px !important; }
	.padL_T-SP   { padding-top:30px !important; }
	.padM_T-SP   { padding-top:20px !important; }
	.padS_T-SP   { padding-top:10px !important; }
	.padXS_T-SP  { padding-top: 5px !important; }
	.pad0_T-SP   { padding-top: 0px !important; }

	.padXXL_B-SP { padding-bottom:60px !important; }
	.padXL_B-SP  { padding-bottom:40px !important; }
	.padL_B-SP   { padding-bottom:30px !important; }
	.padM_B-SP   { padding-bottom:20px !important; }
	.padS_B-SP   { padding-bottom:10px !important; }
	.padXS_B-SP  { padding-bottom: 5px !important; }
	.pad0_B-SP   { padding-bottom: 0px !important; }


	/* 表示・非表示 ============================== */
	.pc_blk { display:none  !important; }
	.sp_blk { display:block !important; }

	.pc_inline { display:none !important;   }
	.sp_inline { display:inline !important; }

	.flex_box.pc_blk { display:none !important; }
	.flex_box.sp_blk { display:flex !important; }

	.flex_box { flex-wrap:wrap; }


	/* Header menu ============================== */
	header {
		width:  100%;
		height:  90px;
		padding: 0;
		padding-right: 90px;
		background-color: #fff;
	}
	.header_wrap {
		height: 90px;
		padding-left: 30px;
		background-color: transparent;
	}
	.header_logo {
		width: 125px;
		height: 90px;
		max-height: inherit;
		min-height: inherit;
	}
	/* ハンバーガーボタン */
	.openbtn1 {
		width:  90px;
		height: 90px;
		position: fixed;
		display: flex;
		flex-wrap: nowrap;
		align-items: center;
		text-align: center;
		top:   0;
		right: 0;
		cursor: pointer;
		z-index: 500;
		background-color: transparent;
	}
	/* ハンバーガーボタン ×に変化 */  
	.openbtn1 span {
		display: inline-block;
		transition: transform .4s, background-color .4s;
		position: absolute;
		left: 25%;
		height: 3px;
		background-color: #f15000;
		width: 50%;
	}
	.openbtn1 span:first-of-type {
		transform: translateY(-11px);
	}
	.openbtn1 span:nth-of-type(3) {
		transform: translateY(11px);
	}
	.openbtn1.active {
		width:  27px;
		height: 27px;
		margin-top:   30px;
		margin-right: 10px;
	}
	.openbtn1.active span {
		width: 100%;
		height: 1px;
		left: 0;
		background-color: #fff;
	}
	.openbtn1.active span:nth-of-type(1) {
		transform: translateY(0px) rotate(-45deg);
	}
	.openbtn1.active span:nth-of-type(2) {
		opacity: 0;
	}
	.openbtn1.active span:nth-of-type(3) {
		transform: translateY(0px) rotate(45deg);
	}

	/* ----- PC項目を非表示に変更 ----- */
	.header_pc_info,
	header .pc_nav  {
		display: none !important;
	}

	/* ----- ハンバーガーメニューの中身 ----- */
	.header_wrap {
		transition: background-color .6s;
	}
	#g-nav {
		width:  185px;
		height: auto;
		position: fixed;
		display: block;
		top:   0;
		right: 0;
		opacity: 1;
		pointer-events: none;
		background-color: rgba(241,80,0,.9);
		transition: transform .3s;
		z-index: 990;
		transform: translateX(100%);
	}
	#g-nav.panelactive {
		pointer-events: auto;
		opacity: 1;
		z-index: 990;
		overflow-y: scroll;
		transition: transform .3s;
		transform: translateX(0);
	}
	#g-nav-list {
		margin-left:  auto;
		margin-right: auto;
		padding: 30px 20px 20px;
	}
	#g-nav * {
		color: #fff;
	}
	#g-nav ul {
		display: inline;
	}
	#g-nav li {
		font-size: 14px;
	}
	#g-nav li a {
		font-size: 1em;
		letter-spacing: .02em;
	}
	#g-nav li:not(:first-of-type) {
		margin-left: 0;
		margin-top: 1.5em;
	}
	/* お問い合わせボタン */
	.hnav_contact {
		margin-bottom: 30px;
	}
	.hnav_contact a {
		width: 100%;
		font-size: 14px;
		line-height: 1;
		display: inline-block;
		text-align: center;
		padding: 1em;
		border: 1px solid #fff;
	}
	/* 電話番号 */
	.hsp_tel,
	.hsp_fax {
		display: block;
		margin-bottom: 15px;
	}
	/* 会社情報 */
	.hsp_info {
		font-size: 14px;
		line-height: 1.5;
	}


	/* Footer menu ============================== */
	footer {
		padding-bottom: 16vw;
		background-image: url(../../img/common/footer_building_sp.jpg);
	}
	.footer_logo {
		max-width: 200px;
	}
	.footer_tel_flex {
		width: 78%;
		max-width: 250px;
		flex-direction: column;
		margin-left:  auto;
		margin-right: auto;
		margin-bottom: 40px;
		transform: translateX(-2%);
	}
	.footer_tel_flex > * {
		width: 100%;
	}
	.footer_tel_flex a {
		margin-bottom: 20px;
	}
	/* お気軽テキスト */
	.text_okigaru {
		width: 100%;
		font-size: 12px;
		font-weight: 500;
		text-align: center;
		margin-bottom: 1.25em;
	}
	/* 会社情報 */
	.footer_info dt {
		line-height: 1.3;
	}
}
