@charset "utf-8";


/*====================================================================

　Reset

====================================================================*/

/* Box sizingの定義 */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* デフォルトのpaddingを削除 */
ul[class],
ol[class] {
  padding: 0;
}

/* デフォルトのmarginを削除 */
body, h1, h2, h3, h4, h5, h6, p, ul, ol, li, figure, figcaption, blockquote, dl, dd {
  margin: 0;
}

/* bodyのデフォルトを定義 */
body {
  min-height: 100vh;
  scroll-behavior: smooth;
  text-rendering: optimizeSpeed;
  line-height: 1.8;
}

/* class属性を持つul、ol要素のリストスタイルを削除 */
ul[class],
ol[class] {
  list-style: none;
}

/* classを持たない要素はデフォルトのスタイルを取得 */
a:not([class]) {
  text-decoration-skip-ink: auto;
}

/* img要素の扱いを簡単にする */
img {
  max-width: 100%;
	vertical-align: bottom;
	image-rendering: -webkit-optimize-contrast;
}

/* article要素内の要素に自然な流れとリズムを定義 */
article > * + * {
  margin-top: 1em;
}

/* inputやbuttonなどのフォントは継承を定義 */
input, button, textarea, select {
  font: inherit;
}

/* 斜体をnormalに */
address {
	font-style: normal;
}


/*====================================================================

　Base

====================================================================*/

html {
	font-size: 62.5%;
	background: #fff;
}
body {
	position: relative;
	color: #414C51;
	font-weight: 500;
	font-family: 'Zen Maru Gothic', 'Noto Sans JP', "メイリオ", Meiryo, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", sans-serif;
	letter-spacing: .05em;
	overflow-x: hidden;
}
body#l-wrapper.nav-open {
	overflow-y: hidden;
}

input, 
button, 
select, 
option, 
textarea {
  font-family: 'Noto Sans JP', "メイリオ", Meiryo, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", sans-serif;
  outline: none;
}

label, input[type=button], input[type=submit], button {
	cursor: pointer;
	transition: opacity .3s ease;
}
input[type=button]:hover, input[type=submit]:hover, button:hover {
	opacity: .8;
}
input[type="button"] ,
input[type="submit"] {
	padding: .2em .7em;
	color: #fff;
	font-size: 1.5rem;
	background: #585650;
	border: none;
	border-radius: 4px;
}
input[type="text"], 
input[type="email"], 
input[type="number"], 
textarea {
	padding: 8px 10px;
	color: #363226;
	font-size: 16px;
	background: #fff;
	border: 1px solid #A8AFAE;
	border-radius: 4px;
}
input::placeholder, 
textarea::placeholder {
	color: #838A8D;
}
input:disabled, 
select:disabled, 
textarea:disabled {
	color: #838A8D;
	background-color: #e5e8ec;
	border-color: #e5e8ec;
	box-shadow: none;
}
input[type="text"].c-error, 
input[type="email"].c-error, 
input[type="number"].c-error, 
select.c-error, 
textarea.c-error {
	background-color: #FFF8F8;
	border-color: #EB4040;
}

/* select */
select {
	position: relative;
	padding: 2%;
	color: #363226;
	font-size: 16px;
	width: 100%;
	background: url(../img/ico_arrow.svg) no-repeat right 10px center #fff;
	background-size: 12px 6px;
	border: 2px solid #D4D9D8;
	border-radius: 4px;
}

/* radio */
form input[type="radio"] {
	display: none;
}
form label.radiobtn {
	position: relative;
	display: inline-block;
	padding: 3px 5px 3px 27px;
	cursor: pointer;
}
form label.radiobtn::before {
	position: absolute;
	content: "";
	top: 16px;
	left: 0;
	width: 22px;
	height: 22px;
	margin-top: -10px;
	background: #fff;
	border: 1px solid #A8AFAE;
	border-radius: 100%;
}
form input[type="radio"]:checked + label.radiobtn::after {
	position: absolute;
	content: "";
	top: 16px;
	left: 6px;
	width: 10px;
	height: 10px;
	margin-top: -4px;
	background: #4BB211;
	border-radius: 100%;
}
form label.radiobtn.c-error::before {
	background-color: #FFF8F8;
	border-color: #EB4040;
}
form input:disabled + label.radiobtn {
	color: #8293a3;
	cursor: default;
}
form input:disabled + label.radiobtn::before {
	background: #e5e8ec;
	border-color: #e5e8ec;
}

/* checkbox */
form input[type=checkbox] {
	display: none;
}
.checkbox {
	position: relative;
	display: inline-block;
	padding: 2px 5px 2px 29px;
	width: auto;
	cursor: pointer;
}
.checkbox::before {
	position: absolute;
	top: 16px;
	left: 0;
	content: "";
	display: block;
	margin-top: -12px;
	width: 22px;
	height: 22px;
	background: #fff;
	border: 1px solid #A8AFAE;
	border-radius: 5px;
}
.checkbox::after {
	position: absolute;
	top: 16px;
	left: 7px;
	content: "";
	display: block;
	margin-top: -9px;
	width: 4px;
	height: 12px;
	border-right: 3px solid #fff;
	border-bottom: 3px solid #fff;
	transform: rotate(45deg);
	opacity: 0;
}
form input[type=checkbox]:checked + .checkbox::before {
	background: #4BB211;
	border: none;
}
form input[type=checkbox]:checked + .checkbox::after {
	opacity: 1;
}
.checkbox.c-error::before {
	background-color: #FFF8F8;
	border-color: #DE2F2F;
}
form input[type=checkbox]:disabled + .checkbox {
	color: #8293a3;
	cursor: default;
}
form input[type=checkbox]:disabled + .checkbox::before {
	background: #e5e8ec;
	border-color: #e5e8ec;
}

/*
link
---------------------------------------------------------*/

a, 
.c-linkbox img {
	transition: color .3s ease, opacity .3s ease, background .3s ease;
}
a:link {
	color: #414C51;
	text-decoration: underline;
}
a:visited {
	color: #414C51;
	text-decoration: underline;
}
a:hover {
	color: #4BB211;
	text-decoration: none;
}

.l-header a, 
.p-footer__site a, 
a[href^="tel:"], 
.p-sec__registration a, 
.p-ranking a, 
.p-search__result__list li a {
	text-decoration: none;
}
.p-sec__registration a:hover, 
.p-ranking a:hover, 
.p-search__result__list li a:hover {
	opacity: 1;
}
.p-registration__text .c-title, 
.p-topics__list .c-title a, 
.p-ranking__text .c-title, 
.p-search__result__list li a .c-title {
	color: #333539;
	text-decoration: underline;
	transition: .3s ease;
}
a:hover .p-registration__text .c-title, 
.p-topics__list .c-title a:hover, 
a:hover .p-ranking__text .c-title, 
.p-search__result__list li a:hover .c-title, 
.p-search__result__list li .c-fnt--blue {
	color: #0F64BE;
	text-decoration: none;
	opacity: 1;
}
.p-fbnr__list li img {
	transition: .3s ease;
}
.p-fbnr__list li a:hover img {
	opacity: .7;
}

@media screen and (min-width: 960px) {
	a[href^="tel:"] {
		color: #333539;
		pointer-events: none;
	}
}

/*
fonts
---------------------------------------------------------*/

h1, h2, h3, h4, h5, h6 {
	clear: both;
	line-height: 1.4;
}
p {
	margin: 1.5em 0;
	font-size: 1.6rem;
}

.defs{
  display: none;
}

.nojs {
	display: block;
	margin: 20px auto;
	padding: 25px;
	color: #F00000;
	font-size: 1.5rem;
	width: 90%;
	max-width: 1360px;
	border: 5px solid #F00;
	text-align: center;
}

.preload * {
	-webkit-transition: none !important;
	-moz-transition: none !important;
	-ms-transition: none !important;
	-o-transition: none !important;
	transition: none !important;
}

@media screen and (max-width: 960px) {
	html,body {
		height: auto;
	}
	html { -webkit-text-size-adjust: 100% } /* 文字サイズの自動調整をオフ */
	html {
		font-size: 58%;
	}
	img {
		max-width: 100%;
		height: auto;
	}
	p {
		font-size: 1.5rem;
	}
}

/* list */
main ul, main ol, footer ul {
	margin: 1.5em 0;
	padding: 0 1.5em;
	font-size: 1.6rem;
}
main ul li ul, main ol li ol {
	margin: 5px 0;
}
main .p-list, 
footer .p-list {
	list-style: none;
	padding: 0 1.5em;
}
	main .p-list li, 
	footer .p-list li {
		position: relative;
	}
	main .p-list > li::before, 
	footer .p-list > li::before {
		display: block;
		content: "";
		position: absolute;
		top: .8em;
		left: -.9em;
		width: 5px;
		height: 5px;
		background-color: #838A8D;
		border-radius: 100%;
	}
main .p-list__num {
	list-style: decimal;
	padding: 0 1.5em;
}
main .p-list.col2 li, 
main .p-list__num.col2 li {
	width: calc(100% / 2);
}
@media screen and (max-width: 960px) {
	main ul, main ol, footer ul {
		font-size: 1.5rem;
	}
}
@media screen and (max-width: 560px) {
	main .p-list.col2 li, 
	main .p-list__num.col2 li {
		width: 100%;
	}
}

/* table */
table {
	border-collapse: collapse;
	border-spacing: 0;
	margin: 1em 0;
	font-size: 1.6rem;
	width: 100%;
}
table th, 
table td {
	padding: .5em 1em;
	border: 1px solid #D4D9D8;
	word-break: break-all;
}
table thead tr { background: #67a3ea; background-image: linear-gradient(135deg, #67a3ea, #70C7E8, #5EC979); }
table thead th { color: #fff; }
table tbody th { background: #EFF6FA; }

@media screen and (max-width: 960px) {
	table { font-size: 1.5rem; }
	table + table { margin: 1em 0; }
}
@media screen and (max-width: 960px) {
	table th, 
	table td {
		padding: .3em .5em;
	}
}

/*
アイコン付与
---------------------------------------------------------*/

a[href$=".pdf"]::after, 
a[href$=".doc"]::after, a[href$=".docx"]::after, 
a[href$=".xls"]::after, a[href$=".xlsx"]::after, 
.c-btn a[href$=".pdf"] .c-arrow::after, 
.c-btn a[href$=".doc"] .c-arrow::after, .c-btn a[href$=".docx"] .c-arrow::after, 
.c-btn a[href$=".xls"] .c-arrow::after, .c-btn a[href$=".xlsx"] .c-arrow::after {
	display: inline-block;
	margin-right: 5px;
	margin-left: 5px;
	padding: .2em .5em;
	color: #80898E;
	font-size: .9rem;
	line-height: 1;
	letter-spacing: 0;
	background: #fff;
	border: 1px solid #80898E;
	border-radius: 20px;
}

.c-btn a[href$=".pdf"]::after, 
.c-btn a[href$=".doc"]::after, .c-btn a[href$=".docx"]::after, 
.c-btn a[href$=".xls"]::after, .c-btn a[href$=".xlsx"]::after, 
.c-btn .extlink::after {
	display: none;
}

/* pdf */
a[href$=".pdf"]:not([class*="ico_none"])::after, 
.c-btn a[href$=".pdf"] .c-arrow::after {
	content: "PDF";
	color: #d52126;
	border-color: #d52126;
}
/* doc */
a[href$=".doc"]::after, a[href$=".docx"]::after, 
.c-btn a[href$=".doc"] .c-arrow::after, .c-btn a[href$=".docx"] .c-arrow::after {
	content: "Word";
	color: #4065a2;
	border-color: #4065a2;
}
/* xls */
a[href$=".xls"]::after, a[href$=".xlsx"]::after, 
.c-btn a[href$=".xls"] .c-arrow::after, .c-btn a[href$=".xlsx"] .c-arrow::after {
	content: "Excel";
	color: #1f9c60;
	border-color: #1f9c60;
}

/* extlink */
.extlink::after, 
.c-btn .extlink .c-arrow::after {
  display: inline-block;
	background: url(../img/common/ico_extlink.png) no-repeat right 50%;
	content: "";
	margin-right: 3px;
	margin-left: 3px;
	width: 10px;
	height: 9px;
}

a.c-noicon::after { display: none; }





