@charset "utf-8";
/* CSS Document */
* {
	box-sizing: border-box;
	margin: 0;
	padding: 0
}
body, html {
	color: #151512;
}
address, blockquote, caption, cite, code, dd, dt, em, h1, h2, h3, h4, h5, h6, input, li, p, pre, select, small, strong, td, textarea, th {
	font-size: 100%;
	font-weight: inherit;
	font-style: inherit
}
li, ol, ul {
	list-style: none
}
table {
	border-collapse: collapse
}
caption, th {
	text-align: left
}
fieldset {
	border: 0
}
a {
	text-decoration: none;
	color: inherit
}
img {
	max-width: 100%;
	vertical-align: top;
	border: 0
}
br {
	letter-spacing: 0
}
figure {
	margin: 0
}

html {
	scroll-behavior: smooth;
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

/*ヘッダ*/
/* メニュー */
header#header_menu {
	position: fixed;
	z-index: 10;
	top: 0;
	left: 0;
	height: 80px;
	width: 100%;
	-webkit-transition: 0.3s;
	background-color: rgba(255, 255, 255, 0.8);
}

header#header_menu a:hover .logo_wrap {
	opacity: 0.7
}
header#header_menu .logo_wrap {
	position: absolute;
	top: 10px;
	left: 30px;
}
header#header_menu .logo_wrap img{
	width: 126px;
}
header#header_menu .logo_wrap p{
	text-align: center;
	padding-top: 0.3em;
}

header#header_menu.change-color {
	background-color: rgba(255, 255, 255, 1);
}

@media (max-width: 767px) {	
	header#header_menu .logo_wrap {
		width: 40%;
		top: 0;
		left: 0;
		padding: 0.7em 1em 0.5em;
	}
}

header#header_menu div#burger {
	background-color: #e6e6e6;
	position: absolute;
	right: 2vw;
	top: 10px;
	height: 35px;
	width: 35px;
	z-index: 20;
	border-radius: 50%;
	-webkit-transition: 0.3s;
	transition: 0.3s
}
@media (min-width:374px) {
	header#sub_header div#burger, header#header_menu div#burger {
		top: 18px;
		right: 3.5vw;
		height: 39px;
		width: 39px
	}
}
@media (min-width:1200px) {
	header#header_menu div#burger {
		display: none
	}
}
header#header_menu div#burger span, header#header_menu div#burger span::after, header#header_menu div#burger span::before {
	-webkit-transition: 0.4s;
	transition: 0.4s;
	display: block;
	width: 19px;
	height: 3px;
	background-color: #666;
	position: absolute;
	right: 8px;
	top: 16px
}
@media (min-width:374px) {
	header#header_menu div#burger span, header#header_menu div#burger span::after, header#header_menu div#burger span::before {
		width: 21px;
		top: 18px;
		right: 9px
	}
}
header#header_menu div#burger span::before {
	content: "";
	top: -7px;
	right: 0px
}
header#header_menu div#burger span::after {
	content: "";
	top: 7px;
	right: 0px
}
header#header_menu div#burger.close span {
	width: 0;
	right: 0
}
header#header_menu div#burger.close span::before {
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
	top: 0px;
	right: 8px
}
@media (min-width:374px) {
	header#sub_header div#burger.close span::before, header#header_menu div#burger.close span::before {
		right: 9px
	}
}
header#sub_header div#burger.close span::after, header#header_menu div#burger.close span::after {
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
	top: 0px;
	right: 8px
}
@media (min-width:374px) {
 header#header_menu div#burger.close span::after {
		right: 9px
	}
}

header#header_menu nav#main_menu.show {
	display: block;
	background-color: rgba(255, 255, 255, 0.95);
	min-height: 100vh;
	z-index: 10;
	padding: 65px 10% 10px;
}
@media (min-width:1200px) {
	header#header_menu nav#main_menu.show {
		background-color: transparent;
		min-height: auto
	}
}
header#header_menu nav#main_menu {
	position: absolute;
	top: 0;
	width: 100%;
	padding: 65px 5% 10px;
	display: none;
	z-index: 10;
	-webkit-transition: 0.3s;
	transition: 0.3s
}
@media (min-width:1200px) {
	header#sub_header nav#main_menu, header#header_menu nav#main_menu {
		top: 0;
		right: 0;
		width: auto;
		display: block;
		padding: 0
	}
}
@media (min-width:1281px) {
	header#sub_header nav#main_menu, header#header_menu nav#main_menu {
		right: 1.5vw
	}
}
@media (min-width:1600px) {
	header#sub_header nav#main_menu, header#header_menu nav#main_menu {
		right: 1.8vw
	}
}

@media (min-width:1200px) {
	header#sub_header nav#main_menu > ul.cont_menu > li, header#header_menu nav#main_menu > ul.cont_menu > li {
		float: left;
	}
}
 header#header_menu nav#main_menu > ul.cont_menu > li > a {
	font-size: 16px;
	display: table-cell;
	vertical-align: middle;
	height: 80px;
}

header#sub_header nav#main_menu li a, header#header_menu nav#main_menu li a {
	color: #000;
}

@media (min-width:1200px) {
	header#header_menu nav#main_menu li {
		-webkit-transition: 0.3s;
		transition: 0.3s;
	}
}

header#sub_header nav#main_menu li > a, header#header_menu nav#main_menu li > a {
	width: 100%;
	display: block;
}

@media (min-width:1200px) {
	header#sub_header nav#main_menu li > a, header#header_menu nav#main_menu li a {
		padding: 0 1.5em;
	}
}

header#header_menu nav#main_menu li div {
	display: none;
}

header#header_menu nav#main_menu li div.open {
	display: block;
}

@media (min-width:1600px) {
	header#header_menu nav#main_menu li {
		margin-right: 25px;
	}
}

 header#header_menu nav#main_menu li.contact_btn {
	 margin-left: 25px;
}

 header#header_menu nav#main_menu li.contact_btn a {
	font-weight: 700;
	font-size: 16px;
	letter-spacing: 0.1em;
	padding: 1.3em 2em !important;
	display: block;
	text-align: center;
	-webkit-transition: 0.2s;
	transition: 0.2s;
	color: #fff;
	background-color: #de1d26;
}

@media (max-width:767px) {
	  header#header_menu nav#main_menu > ul.cont_menu > li.contact_btn > a {
		 width: 100%;
		 display: block;
		 height: auto;
	}
	
	 header#header_menu nav#main_menu li.contact_btn {
		 margin-left: 0;
		 margin-top: 25px;
	}
}

@media (min-width:1200px) {
	header#header_menu nav#main_menu li.contact_btn a {
		padding: 10px 20px 11px;
	}
}
header#header_menu nav#main_menu li.contact_btn a:hover {
	color: #fff;
	opacity: 0.7
}

#main {
	overflow: hidden;
}

/*矢印ボタン*/
.ico_svg {
	width: 24px;
	height: 24px;
	position: absolute;
	top: 50%;
	right: 10px;
	transform: translateY(-50%);
}

.ico_svg_free {
	width: 24px;
	height: 24px;
	display: inline-block;
	margin-top: 2px;
}

/*TOPに戻るボタン*/
#page-top a{
	display: flex;
	justify-content: center;
	align-items: center;
	background: #ebebeb;
	border-radius: 50%;
	width: 60px;
	height: 60px;
	transition:all 0.3s;
}

#page-top a:hover{
	opacity: 0.7;
}

/*リンクを右下に固定*/
#page-top {
	position: fixed;
	right: 10px;
	bottom: 10px;
	z-index: 2;
	opacity: 0;
	transform: translateY(100px);
}

#page-top.UpMove{
	animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime{
	from {
		opacity: 0;
		transform: translateY(100px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

#page-top.DownMove{
	animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
	from {
		opacity: 1;
		transform: translateY(0);
	}
	to {
		opacity: 1;
		transform: translateY(100px);
	}
}

/*フッター*/
.footer_main {
	background: url(../images/common/contact_bg_img.jpg) no-repeat center top/100% 100%;
	color: #fff;
}

.footer_main_link{
	width: 100%;
	text-align: center;
	padding: 2em 0 5em 0;
}

a.footer_main_btn{
	letter-spacing: 0.1em;
	background-color: #de1c26;
	padding: 1.4em 0.5em 1.0em 3em;
	font-weight: 600;
}
a.footer_main_btn:hover{
	background-color: #fff;
	color: #de1c26;
	transition: background-color 0.5s ease;
}
a.footer_main_btn:hover svg{
	stroke: #de1c26;
}

a.footer_main_btn span{
		display: inline-block;
	vertical-align: top;
	padding-right: 1.5em;
}

.footer_main_link p{
	padding: 10px 0 50px 0;
}

.footer_bottom{
	padding: 3em 0 0;
	text-align: center;
} 

.footer_bottom .logo_wrap img{
	width: 166px;
}
.footer_bottom_list{
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 2em;
	padding: 3em 0 1em;
	justify-content: center;
}
.footer_bottom_list li{
	float: left;
	font-size: 14px;
}
.footer_bottom_list li a:hover{
	color: #393939;
}
.footer_copy{
	font-size: 12px;
	background-color: #de1c26;
	color: #fff;
	padding: 0.5em 0;
}


@media (max-width: 767px) {	
	.footer_main {
		background: url(../images/common/contact_bg_img.jpg) no-repeat center top/auto 130%;
	}
	.footer_main_link p{
		padding: 10px 1em 50px;
		font-size: 14px;
		line-height: 2;
	}
}

/*スクロール表示*/
.fadein {
	opacity : 0;
	transform : translate(-100px, 0);
	transition : all 1s;
}

.fadein-right {
	opacity : 0;
	transform : translate(100px, 0);
	transition : all 1s;
}

.fadein-clear {
	opacity : 0;
	transition : all 1s;
}
 
.fadein.active,
.fadein-right.active,
.fadein-clear.active{
	opacity : 1;
	transform : translate(0, 0);
}

/*表示分け*/
.pc_only { display: block; }
.sp_only { display: none; }

@media (max-width: 767px) {
	.pc_only { display: none; }
	.sp_only { display: block; }
}

/* 下層共通 */
.sub_hero {
	width: 100%;
	position: relative;
	height: 330px;
}

h1.sub_hero_title {
	position: absolute;
	width: 100%;
	top: 190px;
	left: 0;
	opacity : 0;
	animation-name: fadein-left;
	animation-duration: 1s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
	font-size: 24px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-align: center;
	color: #fff;
	z-index: 2;
}

@keyframes fadein-left {
	 0% {
			opacity: 0;
			transform: translateX(-15px);
	 }
	 100% {
			opacity: 1;
			transform: translateX(0);
	 }
}

/*下層メインイメージ*/
.sub_hero_image .image {
	width: 100%;
	height: 330px;
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	opacity: 0;
	animation-name: image-on;
	animation-duration: 1s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
	z-index: -10;
}
.sub_hero_image .about_src {
	background: #f1f2f4 url(../images/about_bg_img.jpg) no-repeat bottom right/100% auto;
}
.sub_hero_image .service_src {
	background: #f1f2f4 url(../images/service_bg_img.jpg) no-repeat bottom 20% right/100% auto;
}
.sub_hero_image .contact_src {
	background: #f1f2f4 url(../images/common/contact_bg_img.jpg) no-repeat bottom right/100% 100%;
}
.sub_hero_image .news_src {
	background: #f1f2f4 url(../images/news_bg_img.jpg) no-repeat bottom right/100% auto;
}

@keyframes image-on {
	 0% {
			opacity: 0;
	 }
	 100% {
			opacity: 1;
	 }
}

@media (max-width: 767px) {	
	.sub_hero {
		height: 300px;
	}

	h1.sub_hero_title{
		top: 180px;
	}
	
	.sub_hero_image .image {
		height: 300px;
	}
	.sub_hero_image .about_src {
		background: #f1f2f4 url(../images/about_bg_img.jpg) no-repeat top right 40%/auto 100%;
	}
	.sub_hero_image .service_src {
		background: #f1f2f4 url(../images/service_bg_img.jpg) no-repeat bottom center/auto 100%;
	}
	.sub_hero_image .contact_src {
		background: #f1f2f4 url(../images/common/contact_bg_img.jpg) no-repeat bottom right/auto 100%;
	}
	.sub_hero_image .news_src {
		background: #f1f2f4 url(../images/news_bg_img.jpg) no-repeat top left/auto 100%;
	}
}

@media (max-width: 1200px) {		
	.sub_hero_image .about_src {
		background: #f1f2f4 url(../images/about_bg_img.jpg) no-repeat top right 40%/auto 100%;
	}
	.sub_hero_image .service_src {
		background: #f1f2f4 url(../images/service_bg_img.jpg) no-repeat bottom center/auto 100%;
	}
	.sub_hero_image .contact_src {
		background: #f1f2f4 url(../images/common/contact_bg_img.jpg) no-repeat bottom right/auto 100%;
	}
	.sub_hero_image .news_src {
		background: #f1f2f4 url(../images/news_bg_img.jpg) no-repeat top left/auto 100%;
	}
}

/* パンくず共通 */
.sub_breadcrumbs {
	width: 100%;
}

.sub_breadcrumbs_wrap {
	margin: 0 auto;
	max-width: 1200px;
}
.sub_breadcrumbs_wrap ul {
	display: flex;
	align-items: center;
	font-size: 12px;
	padding: 1.5em 0;
	color: #666;
}

.sub_breadcrumbs_wrap ul li:not(:last-of-type) {
	background: url(../images/common/chevron_right_gray.svg) no-repeat right/auto 90%;
	padding-right: 2em;
}
.sub_breadcrumbs_wrap ul li:not(:first-of-type) {
	padding-left: 0.5em;
}
.sub_breadcrumbs_wrap ul li a:hover {
	text-decoration: underline;
}

@media (max-width: 1200px) {	
	.sub_breadcrumbs_wrap {
		padding: 0 1em;
	}
}

@media (max-width: 767px) {	
	.sub_breadcrumbs_wrap {
		max-width: 100%;
		padding: 0 1em;
	}
	.sub_breadcrumbs_wrap li:not(:last-of-type) {
		white-space: nowrap;
	}
}

/* ページネーション */
.pagination{
  text-align: center;
  padding: 4em 0;
}
.pagination ._btn {
  padding: 0.4em 1em;
  background-color: #000;
  color: #fff;
  font-size: 14px;
}
.pagination ._btn-disable {
  background: #a6a6a6
}
.pagination ._btn-border{
  background: #de1c26
}
.pagination > :not(:last-child) {
  margin-right: .5em
}

/* 共通 */
@media (max-width: 767px) {	
	a.anchor{
		display: block;
		padding-top: 100px;
		margin-top: -100px;
	}
	
	.station_anchor{
		display: block;
		padding-top: 100px;
		margin-top: -100px;
		z-index: -10;
	}
}