@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1:wght@100..900&family=M+PLUS+Rounded+1c:wght@400;500;700&family=Source+Sans+3:ital,wght@0,200..900;1,200..900&family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&family=Zen+Maru+Gothic:wght@300;400;500;700;900&display=swap');

/************************************
base
************************************/
html,body {
	height: 100%;
	width: 100%;
	margin: 0;
	padding: 0;
	scroll-behavior: smooth;
}
body {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.5;
  	letter-spacing: 0.05em;
	color: #3e3a39;
	background: #fff;
	word-wrap: break-word;
	overflow-wrap: break-word
}
* {
	-webkit-font-smoothing: antialiased;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}
a {
	text-decoration: none;
	-webkit-transition: all 0.3s;
	-moz-transition: all 0.3s;
	-o-transition: all 0.3s;
	transition: all 0.3s;
	color:#3e3a39;
}
img {
	vertical-align: bottom;
	width: 100%;
	height: auto;
}

h1 {
    font-size: 42px;
}
h2 {
    font-size: 32px;
}
h3 {
    font-size: 24px;
}
h4 {
    font-size: 18px;
}

.mobile {
	display: none;
}
.desktop {
	display: block;
}

.inner {
	width: 90%;
	max-width: 1280px;
	margin: 0 auto;
}

/** フォント **/
.m-plus-1 {
  font-family: "M PLUS 1", sans-serif;
}
.zen-maru {
  font-family: "Zen Maru Gothic", sans-serif;
}
.source-sans-3 {
  font-family: "Source Sans 3", sans-serif;
}
.m-plus-rounded-1c {
  font-family: "M PLUS Rounded 1c", sans-serif;
}




/** flex関係 **/
.flex{
	display: flex;
}
.flex_content_between{
	justify-content: space-between;
}
.flex_content_start{
	justify-content: flex-start;
}
.flex_content_end{
	justify-content: flex-end;
}
.flex_content_center{
	justify-content: center;
}
.flex_align_center{
	align-items: center;
}
.flex_align_stretch{
	align-items: stretch;
}
.flex_align_start{
	align-items: flex-start;
}
.flex_align_end {
	align-items: flex-end;
}
.flex_wrap{
	flex-wrap: wrap;
}
.flex_reverse{
	flex-flow: row-reverse;
}



/************************************
header
************************************/
header {
	padding: 10px 0;
}
header .header_inner {
	max-width: none;
}
header .logo {
	font-size: 16px;
	width: 50%;
}
header .header_r {
	width: 45%;
	font-weight: bold;
	font-size: clamp(10px, 1.4vw, 18px);
}

.header_address {
	width: 55%;
	text-align: right;
	padding-right: 5%;
}
.standard_link {
	display: inline-block;
	width: 45%;
	border: 1px solid;
	text-align: center;
	margin-right: 5%;
	padding: 5px;
}
.standard_link:hover {
	color: #fff;
	background: #3e3a39;
}
.header_cta {
	width: 45%;
	text-align: center;
}
.header_cta span {
	display: block;
	margin-bottom: 5px;
}
.header_cta a {
	font-family: "Source Sans 3", sans-serif;
	display: block;
	width: 100%;
	max-width: 250px;
	margin: 0 auto;
	background: #005271;
    border: 3px solid #00a0e9;
    color: #fff;
    font-size: clamp(12px, 1.8vw, 22px);
    font-weight: bold;
    text-align: center;
    padding: 8px;
    border-radius: 15px;
    cursor: pointer;
}
.header_cta a:hover {
	opacity: 0.8;
}



/************************************
main
************************************/
main {
	width: 100%;
}

/** 記事関連 **/
article {
    margin-bottom: 50px;
}
article time {
    margin-bottom: 5px;
}

article h1 {
    font-size: 42px;
    border-bottom: 1px solid;
    padding-bottom: 10px;
    margin-bottom: 30px;
}
article h2 {
    font-size: 32px;
    margin-top: 30px;
    margin-bottom: 10px;
}
article h3 {
    font-size: 24px;
    margin-top: 30px;
    margin-bottom: 10px;
}
article h4 {
    font-size: 18px;
    margin-top: 30px;
    margin-bottom: 10px;
}
article a {
    text-decoration: underline;
}


/** フォーム共通 **/
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="date"],
textarea,
select {
	width: 100%;
	border: none;
	background: #F4F4F4;
	padding: 20px;
	border-radius: 10px;
}
input[type="radio"] {
	-webkit-appearance: none;
	appearance: none;
	background-color: #F4F4F4;
	border: 2px solid #F4F4F4;
	border-radius: 50%;
	width: 20px;
	height: 20px;
	cursor: pointer;
	position: relative;
	margin: 0 10px 0 0!important;
}
input[type="radio"]:checked::before {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 8px;
	height: 8px;
	background-color: #231815;
	border-radius: 50%;
	transform: translate(-50%, -50%);
}

input[name="lastname"],
input[name="firstname"],
input[name="lastname_kana"],
input[name="firstname_kana"] {
	width: 49%;
}
input[name="lastname"],
input[name="lastname_kana"] {
	margin-right: 2%;
}
input[type="submit"] {
	display: block;
	width: 100%;
	max-width: 280px;
	background: #005271;
    border: 3px solid #00a0e9;
    color: #fff;
    font-size: 18px;
    font-weight: bold;
    text-align: center;
    padding: 10px 5%;
    border-radius: 15px;
	cursor: pointer;
	margin: 0 auto;
}
input[type="submit"]:hover {
	opacity: 0.8;
}

.form dl {
	margin-bottom: 70px;
}
.form dl div {
	margin-bottom: 30px;
}
.form .form_term {
	margin-bottom: 10px;
	font-weight: 500;
}
.form .form_req {
	display: inline-block;
	background: red;
	color: #fff;
	padding: 5px 10px;
	font-size: 12px;
	margin-left: 10px;
	border-radius: 4px;
}
.form label {
	display: flex;
	align-items: center;
}

/************************************
footer
************************************/
footer {
	width: 100%;
	background: #005271;
	padding: 10px 5%;
}
.copyright {
	font-size: 10px;
	color: #fff;
	text-align: center;
}





@media screen and (max-width:767px){
	/************************************
	base
	************************************/
	body {
		font-size: 14px;
	}


	h1 {
		font-size: 32px;
	}
	h2 {
		font-size: 24px;
	}
	h3 {
		font-size: 20px;
	}
	h4 {
		font-size: 16px;
	}

	.mobile {
		display: block;
	}
	.desktop {
		display: none;
	}

	/************************************
	header
	************************************/
	header .logo {
		width: 45%;
	}
	header .header_r {
		width: 50%;
		font-size: clamp(8px, 1.4vw, 18px);
	}
	.standard_link {
		width: 30%;
		margin-right: 3%;
	}

	.header_cta {
		width: 65%;
		max-width: 140px;
	}
	.header_cta a {
		padding: 6px;
		border-radius: 8px;
	}
	



	/************************************
	main
	************************************/
	/** 記事関連 **/

	article h1 {
		font-size: 32px;
	}
	article h2 {
		font-size: 24px;
	}
	article h3 {
		font-size: 20px;
	}
	article h4 {
		font-size: 16px;
	}

	/** フォーム共通 **/
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="password"],
	input[type="date"],
	textarea,
	select {
		width: 100%;
		border: none;
		background: #F4F4F4;
		padding: 20px;
		border-radius: 10px;
	}
	input[type="radio"] {
		-webkit-appearance: none;
		appearance: none;
		background-color: #F4F4F4;
		border: 2px solid #F4F4F4;
		border-radius: 50%;
		width: 20px;
		height: 20px;
		cursor: pointer;
		position: relative;
		margin: 0 10px 0 0!important;
	}
	input[type="radio"]:checked::before {
		content: "";
		display: block;
		position: absolute;
		top: 50%;
		left: 50%;
		width: 8px;
		height: 8px;
		background-color: #231815;
		border-radius: 50%;
		transform: translate(-50%, -50%);
	}

	input[name="lastname"],
	input[name="firstname"],
	input[name="lastname_kana"],
	input[name="firstname_kana"] {
		width: 100%;
	}
	input[name="lastname"],
	input[name="lastname_kana"] {
		margin-right: 2%;
		margin-bottom: 10px;
	}

	.form dl {
		margin-bottom: 70px;
	}
	.form dl div {
		margin-bottom: 30px;
	}
	.form .form_term {
		margin-bottom: 10px;
	}




}

@media screen and (max-width:575px){
	.header_cta a {
		max-width: 120px;
	}
}