@charset "UTF-8";

/*--------------------------------------------------------------------
common
cssの初期化
--------------------------------------------------------------------*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: none;
  text-decoration: none;
  outline: none;
  font-style: normal;
  font-weight: normal;
  zoom: 1;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section { display: block; }
h1, h2, h3, h4, h5, h6 {
  line-height: 1.55;
  font-size: 100%;
  font-weight: normal;
}
table { border-collapse: collapse; }
table th, table td {
  text-align: left;
  vertical-align: top;
}
ul,ol { list-style: none; }
img {
  max-width: 100%;
  height: auto;
	object-fit: cover;
  vertical-align: bottom;
}
* { box-sizing: border-box; }
a {
	transition: .5s;
	color: var(--co-black);
}
a:hover {
	filter: alpha(opacity=85);
	-moz-opacity: 0.85;
	opacity: 0.85;
}
.pctel { cursor: text; }
.pctel a { pointer-events: none; }

@media (max-width: 840px) {
	.pctel a { pointer-events: auto; }
}


/*--------------------------------------------------------------------
common
ページ共通部分
--------------------------------------------------------------------*/
:root {
	--gothic: "メイリオ", Meiryo, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", Arial, Roboto, Verdana, "Droid Sans", sans-serif;
	--co-black:    #4d4d4d;	   /*黒*/
	--co-white:    #ffffff;	   /*白*/
	--co-bg:       #afdeff;	   /*背景*/
	--co-gray:     #b5b5b6;	   /*灰*/
	--co-btn01:    #00a0e9;	   /*ボタン青*/
	--co-btn02:    #e83828;	   /*ボタン赤*/
	--co-hover:    #036eb8;	   /*テキストホバー*/
	--co-red:      #e60012;	   /*赤*/
	--transformXY: translate(-50% , -50%);
	--transformX:  translateX(-50%);
	--transformY:  translateY(-50%);
}

/*------------body---------------------------------------------------------------*/
html { height: 100%; }
body {
	position: relative;
	height: 100%;
	padding-top: 79px;
	background-color: var(--co-bg);
	overflow-y: scroll;
	line-height: 2;
	letter-spacing: 0.05em;
	font-family: var(--gothic);
	font-feature-settings: "palt" 1;
	font-size: 16px;
	font-weight: normal;
	color: var(--co-black);
}
.SpOnly { display: none; }
div#PageTop a {
	position: fixed;
	display: block;
	width: 44px;
	height: 44px;
	background: url("../../img/pagetop.png") no-repeat left top / cover;
	right: 0%;
	bottom: 2%;
	overflow: hidden;
	line-height: 0;
	font-size: 0;
	z-index: 9999;
}

@media (max-width: 840px) {
	body {
		padding-top: 60px;
	}
}

@media (max-width: 480px) {
	body { font-size: 14px; }
	.PcOnly { display: none; }
	.SpOnly { display: block; }
}

/*------------header---------------------------------------------------------------*/
header {
  position: fixed;
	width: 100%;
	z-index: 999;
	top: 0;
  left: 0;
  transition: 0.5s;
	background-color: var(--co-white);
}
#Header {
	display: flex;
	justify-content: space-between;
	width: 96%;
	max-width: 1000px;
	max-height: 80px;
	margin: 0 auto;
	padding: 5px 0;
}
#Header h1 { width: 85px; }
#Header h1 a {
	display: block;
	padding-top: 81.73913043478261%;
	background: url("../../img/logo.png") no-repeat left top / contain;
	overflow: hidden;
	text-indent: -99999px;
	line-height: 0;
	font-size: 0;
}
#Header #mainNav {
	position: relative;
	margin-top: 0.5em;
}
#Header #subNAv { font-size: 0.875em; }
#Header ul {
	display: flex;
	justify-content: flex-end;
	gap: 0 2em;
}
#Header #subNAv ul {
	justify-content: flex-start;
	gap: 0 3em;
}
#Header ul li a:hover {
	filter: alpha(opacity=100);
	-moz-opacity: 1;
	opacity: 1;
	color: var(--co-hover);
}

#Header .mainSub {
	position: absolute;
	justify-content: flex-start;
	width: 100%;
	left: 0;
	background-color: #fff;
	text-align: left;
	font-size: 0.875em;
}

@media (max-width: 840px) {
	#Header {
		width: 96%;
		height: 60px;
	}
	#Header h1 {
		width: auto;
		min-width: 60px;
		min-height: 50px;
		max-height: 50px;
	}
	
	#Header #mainNav {
		margin-top: 60px;
		border-top: 1px solid var(--co-gray);
	}
	#Header #mainNav ul {
		display: block;
		width: 100%;
	}
	#Header .menu li a {
		display: block;
		padding: 0.5em 1em;
		border-bottom: 1px solid var(--co-gray);
	}
	/*#Header .spinvalid a {
		pointer-events: none;
	}*/
	#Header .mainSub {
		visibility: visible;
		position: relative;
		background-color: #def1fb;
	}
	#Header .mainSub li a {
		padding: 0.5em 1.5em;
		border-bottom: 0 none;
	}
	#Header .mainSub li:last-of-type a {
		border-bottom: 1px solid var(--co-gray);
	}
	#Header #subNAv ul { display: none; }
	/* hamburger(ハンバーガーアイコン) =================================== */
	.hamburger {
		position: fixed;
		top: 20px;
		right: 1em;
		width: 20px;
		height: 20px;
		background: var(--co-white);
		cursor: pointer;
		z-index: 299999;
	}
	.BurgerLine {
		position: absolute;
		width: 16px;
		height: 2px;
		left: 2px;
		background-color: var(--co-black);
		transition: all 0.5s;
	}
	.BurgerLine1 { top: 4px; }
	.BurgerLine2 { top: 9px; }
	.BurgerLine3 { top: 14px; }

	/*ハンバーガーがクリックされたら*/
	.open .BurgerLine1 {
		transform: rotate(-45deg);
		top: 9px;
	}
	.open .BurgerLine2 { opacity: 0; }
	.open .BurgerLine3 {
		transform: rotate(45deg);
		top: 9px;
	}

	/* sp-nav(ナビ) =================================== */
	.sp-nav {
		position: fixed;
		right: -100%;
		top: 0;
		width: 70%;
		height: 100vh;
		background-color: var(--co-white);
		transition: all 0.5s;
		z-index: 199999;
		overflow-y: auto;
	}
	/*ハンバーガーがクリックされたら右からスライド*/
	.open .sp-nav { right: 0; }

	/* black-bg(ハンバーガーメニュー解除用bg) =================================== */
	.black-bg {
		position: fixed;
		left: 0;
		top: 0;
		width: 100vw;
		height: 100vh;
		z-index: 5;
		background-color: #000;
		opacity: 0;
		visibility: hidden;
		transition: all 0.5s;
		cursor: pointer;
	}
	/*ハンバーガーメニューが開いたら表示*/
	.open .black-bg {
		opacity: 0.3;
		visibility: visible;
	}
}



/*------------main---------------------------------------------------------------*/
main {
	width: 100%;
	margin: auto;
	padding-bottom: 100px;
}

/*------------title------------------------------------*/
#title {
	padding: 40px 0 10px;
	background-color: var(--co-white);
}
#title h2 {
	text-align: center;
	font-size: 1.5em;
	font-weight: bold;
	color: var(--co-hover);
}

/*------------sbuT------------------------------------*/
#sbuT {
	max-width: 740px;
	margin: 0 auto;
	padding: 100px 0 95px;
}
#sbuT h3 {
	margin-bottom: 40px;
	text-align: center;
	font-size: 1.75em;
	/*font-weight: bold;*/
}
#sbuT p:not(:first-of-type) { margin-top: 1em; }

@media (max-width: 740px) {
	#sbuT {
		width: 96%;
		padding: 100px 0 95px;
	}
}

/*------------bulBtn------------------------------------*/
.bulBtn {
	max-width: 220px;
}
.bulBtn a {
	position: relative;
	display: block;
	padding: 0.5em 2.5em;
	background-color: var(--co-white);
	border: 1px solid var(--co-btn01);
	border-radius: 9999px;
	text-align: center;
	font-size: 0.875em;
	color: var(--co-btn01);
	transition: .5s;
}
.bulBtn a::after {
	position: absolute;
	display: inline-block;
	content: "";
	width: 10px;
	height: 12px;
	background-color: var(--co-btn01);
	clip-path: polygon(100% 50%, 0 0, 0 100%);
	top: 50%;
	right: 2em;
	transform: var(--transformY);
	z-index: 1;
	transition: .5s;
}
.bulBtn a:hover::after { background-color: var(--co-white); }
.bulBtn a:hover {
	background-color: var(--co-btn01);
	border: 1px solid var(--co-white);
	color: var(--co-white);
}

/*------------rounded------------------------------------*/
.rounded {
	position: relative;
	width: 100%;
	max-width: 940px;
	margin: 0 auto;
	padding: 30px 100px 100px;
	border-radius: 100px;
	background-color: var(--co-white);
}
.rounded:not(:last-of-type) { margin-bottom: 100px; }
.rounded p:not(:first-of-type) { margin-top: var(--parag-bet); }
.rounded section {
	width: 100%;
	margin: 0 auto;
}
.rounded h3 {
	position: relative;
	margin-bottom: 50px;
	padding-top: 60px;
	text-align: center;
	font-size: 1.5em;
	font-weight: bold;
}
.rounded h3::before {
	position: absolute;
	display: block;
	content: "";
	width: 66px;
	height: 55px;
	left: 50%;
	top: 0;
	transform: var(--transformX);
	background: url("../../img/logo.png") no-repeat left top / cover;
}
.rounded h3 em {
	display: block;
	font-size: 0.58em;
	font-weight: bold;
}

@media (max-width: 740px) {
	.rounded {
		width: 96%;
		margin: 0 auto;
		padding: 30px 20px 40px;
		border-radius: 50px;
	}
}

/*------------article------------------------------------*/
article table {
	width: 100%;
	border-collapse: collapse;
}
article table tr th,
article table tr td {
	padding: 15px 25px;
	border-top: 1px solid var(--co-gray);
	border-bottom: 1px solid var(--co-gray);
}

@media (max-width: 560px) {
	article table { border-top: 1px solid var(--co-gray); }
	article table tr th,
	article table tr td {
		display: block;
		border-top: 0 none;
		border-bottom: 1px solid var(--co-gray);
	}
	article table tr th { padding: 5px 10px; }
}

/*------------footer---------------------------------------------------------------*/
footer {
	padding-top: 100px;
	background-color: var(--co-white);
}
/*------------FContact------------------------------------*/
footer #FContact {
	max-width: 740px;
	margin: 0 auto;
}
footer #FContact ul {
	display: flex;
	gap: 10px 55px;
}
footer #FContact ul li { width: calc((100% - 55px * 2) / 3); }
footer #FContact ul li a {
	position: relative;
	display: flex;
	align-items: center;
	height: 100%;
	padding: 15px 10px 15px 60px;
	background-color: var(--co-btn01);
	border-radius: 10px;
	letter-spacing: -0.01em;
	font-size: 0.875em;
	color: var(--co-white);
}
footer #FContact ul li a::before {
	position: absolute;
	display: block;
	content: "";
	width: 44px;
	height: 44px;
	left: 10px;
	top: 50%;
	transform: var(--transformY);
	background-color: var(--co-white);
	background-position: center;
	background-repeat: no-repeat;
	border-radius: 50%;
}
footer #FContact ul li#FConMir a::before { background-image: url("../../img/contact_i01.png"); }
footer #FContact ul li#FConTel a::before { background-image: url("../../img/contact_i02.png"); }
footer #FContact ul li#FConInq a::before { background-image: url("../../img/contact_i03.png"); }
footer #FContact ul li a:hover {
	filter: alpha(opacity=65);
	-moz-opacity: 0.65;
	opacity: 0.65;
}
footer #FContact ul li#FConTel dl { line-height: 1.3; }
footer #FContact ul li#FConTel dl dt { font-size: 1.22em; }
footer #FContact ul li#FConTel dl dd { font-size: 0.85em; }

@media (max-width: 740px) {
	footer #FContact { width: 96%; }
	footer #FContact ul { gap: 10px 25px; }
	footer #FContact ul li { width: calc((100% - 25px * 2) / 3); }
}

@media (max-width: 700px) {
	footer #FContact { width: 96%; }
	footer #FContact ul { flex-direction: column; }
	footer #FContact ul li { width: 100%; }
}

/*------------FNav------------------------------------*/
footer #FNav {
	display: flex;
	justify-content: space-between;
	gap: 25px 55px;
	max-width: 840px;
	margin: 100px auto 0;
}
footer #logoSns { width: 150px; }
footer #logoSns h2 {
	width: 115px;
	margin: 0 auto;
}
footer #logoSns h2 a {
	display: block;
	padding-top: 81.73913043478261%;
	background: url("../../img/logo.png") no-repeat left top / contain;
	overflow: hidden;
	text-indent: -99999px;
	line-height: 0;
	font-size: 0;
}
footer #logoSns ul {
	display: flex;
	justify-content: center;
	gap: 10px;
}
footer #logoSns ul {
	display: flex;
	justify-content: center;
	gap: 15px;
	margin-top: 25px;
}
footer #logoSns ul li { width: 40px; }
footer #logoSns ul li a {
	display: block;
	width: 100%;
	height: 40px;
	background-position: center;
	background-repeat: no-repeat;
	overflow: hidden;
	text-indent: -99999px;
	line-height: 0;
	font-size: 0;
}
footer #logoSns ul li#SnsFb a { background-image: url("../../img/sns_i01.png"); }
footer #logoSns ul li#SnsIn a { background-image: url("../../img/sns_i02.png"); }
footer #logoSns ul li#SnsYt a { background-image: url("../../img/sns_i03.png"); }
footer #FInNav { width: calc(100% - 55px - 150px); }
footer #FInNav > ul {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1em;
	width: 100%;
	font-size: 0.75em;
}
footer #FInNav ul ul li { margin-top: 0.5em; }
footer #FInNav ul li a:hover { color: var(--co-hover); }

@media (max-width: 840px) {
	footer #FNav { width: 96%; }
	footer #FInNav { display: none; }
}

@media (max-width: 700px) {
	footer #FNav { flex-direction: column; }
	footer #logoSns { margin: 0 auto; }
	footer #FInNav {
		width: 100%;
		margin: 0 auto;
	}
}

/*------------address------------------------------------*/
footer address {
	display: flex;
	justify-content: flex-start;
	flex-direction: row-reverse;
	gap: 25px 55px;
	max-width: 840px;
	margin: 20px auto 0;
}
footer address #FMap { width: 320px; }
footer address #FMap iframe { height: 100%; }
footer address #FAdd {
	max-width: 300px;
	line-height: 2.2;
}
footer address #FAdd p { margin-top: 1em; }
footer address #FAdd p,
footer address #FAdd dl { font-size: 0.75em; }
footer address #FAdd dl { display: flex; }
footer address #FAdd dl dt::after { content: "："; }
footer #copy {
	max-width: 840px;
	margin: 15px auto 0;
	text-align: right;
	font-size: 0.75em;
}

@media (max-width: 840px) {
	footer address { width: 96%; }
}

@media (max-width: 700px) {
	footer address { flex-direction: column; }
	footer address #FMap { width: 100%; }
	footer address #FMap iframe { height: 350px; }
	footer address #FAdd { margin: 0 auto; }
	footer #copy {
		width: 100%;
		margin: 0 auto;
		padding: 0 1em;
	}
}