@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,
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 {
	display: block;
  max-width: 100%;
	image-rendering: -webkit-optimize-contrast;
}

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

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

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

/* edgeのパスワード表示コントロールを削除*/
::-ms-reveal {
    display: none;
}


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

　Base

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

html {
	font-size: 62.5%;
}
body {
	position: relative;
	color: #333;
	font-family: 'Montserrat', "BIZ UDGothic", "メイリオ", Meiryo, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", sans-serif;
}
@media screen and (max-width: 1200px) {
	body#l-wrapper.nav-open {
		overflow-y: hidden;
	}
}

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

label, input[type=button], input[type=submit], button {
	cursor: pointer;
}
input[type="button"] ,
input[type="submit"] {
	padding: .3em 1.2em;
	color: #fff;
	font-size: 1.5rem;
	background: #555;
	border: none;
	border-radius: 4px;
}
input[type="button"]:hover ,
input[type="submit"]:hover {
	opacity: 0.7;
}
input[type="text"], 
input[type="email"], 
input[type="number"], 
input[type="password"], 
input[type="tel"], 
textarea {
	padding: 7px 10px;
	font-size: 16px;
	background: #fff;
	border: 1px solid #C5C5C5;
	border-radius: 4px;
}
input[type="text"]:focus, 
input[type="email"]:focus, 
input[type="number"]:focus, 
input[type="password"]:focus, 
input[type="tel"]:focus, 
select:focus, 
textarea:focus {
	border-color: #004EA2;
}
input::placeholder, 
textarea::placeholder {
	color: #BBB;
}
/* input read-only */
input[type="text"]:read-only{
	background-color: #EEEEEE;
}
input[type="text"]:read-only:focus{
	border: 1px solid #C5C5C5;
}
input[type="text"]:disabled{
	background-color: #e5e8ec;
}
input[type="button"]:disabled{
	cursor: auto;
}
input:disabled, 
select:disabled, 
textarea:disabled {
	color: #8293a3;
	background-color: #e5e8ec;
	border-color: #e5e8ec;
	box-shadow: none;
	opacity: 0.7;
}
input[type="text"].c-error, 
input[type="email"].c-error, 
input[type="number"].c-error, 
input[type="password"].c-error, 
input[type="tel"].c-error, 
select.c-error, 
textarea.c-error {
	background-color: #FFF8F8;
	border-color: #DE2F2F;
}

/* select */
select {
	position: relative;
	padding: 7px 10px;
	color: #363226;
	font-size: 16px;
	width: 100%;
	background: url(../img/common/ico_arrow.svg) no-repeat right 10px center #fff;
	background-size: 12px 8px;
	border: 1px solid #C5C5C5;
	border-radius: 4px;
	overflow: auto;
}
select[multiple="multiple"] {
	background: none;
}

/* 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: 15px;
	left: 0;
	width: 22px;
	height: 22px;
	margin-top: -10px;
	background: #fff;
	border: 2px solid #B5B5B5;
	border-radius: 100%;
}
form input[type="radio"]:checked + label.radiobtn::after {
	position: absolute;
	content: "";
	top: 15px;
	left: 6px;
	width: 10px;
	height: 10px;
	margin-top: -4px;
	background: #004EA2;
	border-radius: 100%;
}
form input[type=radio]:disabled + .radiobtn {
	cursor: auto;
	opacity: 0.6;
}
form input[type=radio]:disabled + .radiobtn::before {
	opacity: 0.5;
}
form input[type=radio]:disabled + .radiobtn::after {
	opacity: 0.5;
}
form label.radiobtn.c-error::before {
	background-color: #FFF8F8;
	border-color: #DE2F2F;
}

/* 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: 2px solid #B5B5B5;
	border-radius: 5px;
}
.checkbox::after {
	position: absolute;
	top: 16px;
	left: 7px;
	content: "";
	display: block;
	margin-top: -9px;
	width: 8px;
	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: #004EA2;
	border: none;
}
form input[type=checkbox]:checked + .checkbox::after {
	opacity: 1;
}
form input[type=checkbox]:disabled + .checkbox {
	cursor: auto;
	opacity: 0.6;
}
form input[type=checkbox]:disabled + .checkbox::before {
	opacity: 0.5;
}
form input[type=checkbox]:disabled + .checkbox::after {
	opacity: 0.5;
}
.checkbox.c-error::before {
	background-color: #FFF8F8;
	border-color: #DE2F2F;
}

@media screen and (max-width: 960px) {
	input::placeholder, 
	textarea::placeholder {
		font-size: 13px;
	}
}

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

a:link {
	color: #1287CD;
	text-decoration: underline;
}
a:visited {
	color: #1287CD;
	text-decoration: underline;
}
a:hover {
	color: #1287CD;
	text-decoration: none;
}

header a:link, 
header a:visited {
	text-decoration: none;
}

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

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

h1, h2, h3, h4 {
	clear: both;
}
p {
	margin: 1em 0;
	font-size: 1.5rem;
}

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

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

/* list */
main ul, main  ol {
	margin: 1.5em 0;
	font-size: 1.5rem;
}

/* table */
table {
	border-collapse: collapse;
	border-spacing: 0;
	margin: 1em 0;
	font-size: 1.5rem;
	width: 100%;
	border-top: 1px solid #E1E1E1;
}
table th, 
table td {
	padding: 1.5em 0;
	border-bottom: 1px solid #E1E1E1;
}

/* dl */
dl {
	margin: 1em 0;
	font-size: 1.5rem;
}
@media screen and (max-width: 960px) {
	main ul, main ol, table, dl {
		font-size: 1.4rem;
	}
	table th, 
	table td {
		padding: 1em 0;
	}
	table th { padding-top: 1.5em; }
	table td { padding-bottom: 1.8em; }
	table tbody th {
		padding-bottom: 0;
		font-size: 1.5rem;
		width: 100%;
		border-bottom: none;
	}
}





