@charset "utf-8";/* --------------------------------------------------- *//* レイアウト *//* --------------------------------------------------- */.wrap {	margin: 0;	padding: 0;	display: -webkit-box;	display: -ms-flexbox;	display: flex;	width: 100%;	min-width: 320px;	background: #fff;	overflow: hidden;}.vertical-column {	display: -webkit-box;	display: -ms-flexbox;	display: flex;	flex-direction: column;	width: 100%;	min-height: 100vh;}.container { flex: 1 0 auto; }.contents {	margin: 0 auto;	width: 90%;	max-width: 1040px;}.inner {	display: table;	width: 100%;}/* --------------------------------------------------- *//* ヘッダー *//* --------------------------------------------------- */header {	position: relative;	margin: 0 auto;	padding: 30px 0 0 0;	width: 92%;	max-width: 1280px;	z-index: 555;}header h1 {	position: absolute;	display: block;	margin: 25px 0 0 0;	width: 150px;}header h2 {	display: block;	margin: 0 auto;	width: 110px;}header h1 img,header h2 img { width: 100%; height: auto; }header > a {	position: absolute;	top: 55px;	right: 0;	display: table;	padding: 0 24px;	background-color: #ff6419;	border-radius: 18px;}header > a p {	position: relative;	padding: 0 12px 0 0;	color: #fff;	font-family: 'Kosugi Maru', sans-serif;	font-size: 1.6rem;	line-height: 36px;}header > a p::after {	content: '';	position: absolute;	top: 13px;	right: 0;	display: block;	width: 8px;	height: 8px;	border-top: 2px solid #fff;	border-right: 2px solid #fff;	transform: rotate(45deg);}header > a p span { display: inline; }/* :hov */.pcmode header > a:hover { background-color: #ffbb00; }@media screen and (max-width: 767px) {	header { position: static; padding: 20px 0 0 0; }	header h1 { margin: 5px 0 0 auto; width: 120px; }	header h2 { width: 90px; }	header > a {		position: fixed;		top: 0;		right: 3%;		display: table;		padding: 0 18px;		border-radius: 0 0 8px 8px;	}	header > a p {		padding: 0 0 0 0;		font-size: 1.4rem;		line-height: 32px;	}	header > a p::after { display: none; }	header > a p span:last-child { display: none; }}@media screen and (max-width: 419px) {	header { padding: 15px 0 0 0; }	header h1 {  width: 90px; }	header h2 { width: 70px; }	header > a {		right: 2%;		padding: 0 12px;		border-radius: 0 0 6px 6px;	}	header > a p {		padding: 0 0 0 0;		font-size: 1.2rem;		line-height: 24px;	}}/* --------------------------------------------------- *//* フッター *//* --------------------------------------------------- */footer address {	display: table;	margin: 0 auto;	padding: 50px 0 30px;	width: 92%;	max-width: 1280px;	font-style: normal;}footer address .corp {	display: table;	width: 540px;	float: left;}footer h2 {	display: table;	width: 210px;	float: left;}footer h2 img { width: 190px; height: auto; }footer address .corp p {	margin: 16px 0 0 210px;	font-size: 1.4rem;	line-height: 20px;}footer address .corp p span { display: inline-block; margin-right: 15px; }footer address .phone {	margin-left: 540px;	font-family: 'Kosugi Maru', sans-serif;	text-align: right;}footer address .phone p {	position: relative;	display: inline-block;	padding-left: 105px;}footer address .phone p::before {	content: 'お問い合わせ';	position: absolute;	top: 6px;	left: 0;	display: inline-block;	padding: 0 10px;	background-color: #008341;	color: #fff;	font-size: 1.2rem;	line-height: 24px;}footer address .phone p a {	color: #008341;	font-size: 3.6rem;	line-height: 1.0;}footer p.credit {	display: block;	padding: 12px 3%;	background-color: #0075a6;	color: rgba(255, 255, 255, 0.8);	font-size: 1.0rem;	text-align: center;}/* :hov */.pcmode footer h2 a:hover { opacity: 0.5; }.pcmode footer address .phone p a:hover { color: #ffbb00; }@media screen and (max-width: 959px) {	footer address .corp {		display: table;		width: 400px;		float: left;	}	footer address .corp p {		margin: 0 0 0 210px;		font-size: 1.2rem;		line-height: 20px;	}	footer address .corp p span { display: block; margin-right:  0; }	footer address .phone { margin: 5px 0 0 420px; }	footer address .phone p { padding-left: 92px; }	footer address .phone p a { font-size: 3.0rem; }	footer address .phone p::before {		top: 5px;		padding: 0 8px;		font-size: 1.1rem;		line-height: 20px;	}}@media screen and (max-width: 767px) {	footer address {		padding: 40px 0 20px;		width: 92%;	}	footer address .corp { width: 100%; float: none; }	footer h2 {		display: table;		margin: 0 auto 15px;		width: 160px;		float: none;	}	footer h2 img { width: 100%; height: auto; }	footer address .corp p {		margin: 0;		font-size: 1.3rem;		line-height: 20px;		text-align: center;	}	footer address .corp p span { display: inline-block; margin-right: 0; padding: 0 8px; }	footer address .phone { margin: 10px 0 0 0; text-align: center; }}@media screen and (max-width: 419px) {	footer address { padding: 30px 0 15px; }	footer address .corp p { font-size: 1.2rem; }	footer address .phone p { padding-left: 82px; }	footer address .phone p a { font-size: 2.6rem; }	footer address .phone p::before {		top: 3px;		padding: 0 6px;		font-size: 1.0rem;	}	footer p.credit { padding: 6px 0; }}/* --------------------------------------------------- *//* ローディング *//* --------------------------------------------------- */#loading {	position: fixed;	display: table;	width: 100%;	height: 100%;	background-color: #fff;	z-index: 999;}#loading dl {	position: absolute;	top: 50%;	left: 50%;	display: table;	width: 100px;	height: 75px;	transform: translate(-50%, -50%);}#loading dl dt,#loading dl dd {	position: absolute;	top: 0;	left: 0;}#loading img { width: 100%; height: auto; }#loading dl dd {	transform-style:preserve-3d;	animation-name: rote;	animation-duration: 8s;	animation-timing-function: linear;	animation-iteration-count: infinite;	animation-delay: 0;}@keyframes rote {	0% { transform: rotateY(0deg); }	100% { transform: rotateY(360deg); }}