@charset "UTF-8";

/*================================================
 *  CSSリセット
 ================================================*/
html,body,div,span,iframe,h1,h2,h3,h4,h5,h6,form,label,legend,footer,header,hgroup,main,menu,nav,section{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;font-weight:normal;}
/*body{line-height:1}*/
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}
hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}
input,select{vertical-align:middle}

/*================================================
 *  一般・共通設定
 ================================================*/
 *, *:before, *:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

html {
	font-size: 62.5%; /*font-size:10px;*/
}

body {
	background: #FFF;
	color: #212529;
	margin: 0;
	padding: 0;
	font-size:1.5rem;
	font-family: "Inter", "Noto Sans JP", sans-serif;
	min-width: 280px;
  min-height: 75rem;
  overflow-wrap: anywhere; /* 収まらない場合に折り返す */
}
.row {
	margin: 0;
}
.row > * {
	padding: 0;
}

/*================================================
 *  全体のリンクテキスト
 ================================================*/
a {
	color: #069;
}
a:visited {
	color: #034464;
}
a:hover {
	color: #71a6c0;
}

/* ローカルモード時の表示部分 */
.box_local {
	padding: 0.5em;
	background: #F03;
	color: #FFF;
	border: 3px solid #F99;
}
/* テストモード時の表示部分 */
.box_test {
	padding: 0.5em;
	background: #09C;
	color: #FFF;
	border: 3px solid #6CF;
}

.pagetop {
	display: none;
	position: fixed;
	bottom: 15px;
	right: 15px;
}
.pagetop a {
	display: block;
	background: #44AAEF;
	text-align: center;
  color: #fff;
  font-size: 30px;
	text-decoration: none;
	padding: 15px 12px;
	filter:alpha(opacity=90);
	-moz-opacity: 0.9;
  opacity: 0.9;
  border-radius: 9999px;
  transition: all .5s ease;
  line-height: 1;
  z-index: 99;
}
.pagetop a:hover {
	display: block;
	text-align: center;
	text-decoration: none;
	filter:alpha(opacity=50);
  color: #fff;
	-moz-opacity: 0.5;
  opacity: 0.5;
}

.footerFixed {
  display: grid;
  grid-template-rows: min-content 1fr min-content;
  grid-template-columns: 100%;
  min-height: 100vh;
}

footer {
  border-top: 3px solid #eee;
  background-color: #fff;
  font-size: 1.4rem;
  padding: 20px 15px 6px;
  color: #5b5c5b;
}

.copyright {
  font-size: 1.3rem;
  text-align: center;
}

/* レスポンシブテーブル */
@media screen and (max-width: 767.98px) {
.pagetop {
	bottom: 0px;
  }
  footer {
    padding-bottom: 70px;
  }
}

/*================================================
 回り込み解除
 ================================================*/
.clearfix::after {
	content: "";
	display: block;
	clear: both;
}

#main {
  padding: 0 0 20px;
}

@media print, screen and (max-width: 767.98px) {
	#main {
		padding: 0 10px 10px;
	}
}

/* 表示領域が767.98px以下の場合に適用するスタイル
-----------------------------------------------------*/
@media print, screen and (max-width: 767.98px) {
	.header_inner {
		flex-direction: column-reverse;
	}
	.header_l {
		width: 100%;
	}
	.header_r {
		margin-left: auto;
	}

  .pcOnly_s {
    display: none !important;
  }
}

/* 表示領域が576px以上の場合に適用するスタイル
-----------------------------------------------------*/
@media screen and (min-width: 576px) {
	.spOnly {
		display: none !important;
	}
}

/* 表示領域が575.98px以下の場合に適用するスタイル
-----------------------------------------------------*/
@media print, screen and (max-width: 575.98px) {
	#contents {
		padding-bottom: 50px;
	}
	body {
		padding: 0;
	}
	footer {
		position:static;
	}
	.pcOnly {
    display: none !important;
  }
}