@charset "UTF-8";

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

#page_top



#page_top{
  width: 50px;
  height: 50px;
  position: fixed;
  right: 10px;
  bottom: 80px;
  background: #000;
	border: solid 1px #fff;
  opacity: 0.86;
}
#page_top a{
  position: relative;
  display: block;
  width: 50px;
  height: 50px;
  text-decoration: none;
}
#page_top a::before{
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  content: '\f062';
  font-size: 25px;
  color: #fff;
  position: absolute;
  width: 25px;
  height: 25px;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
  text-align: center;
	line-height: 1;
}
===============================================*/

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

common class

===============================================*/
.w100 { width: 100%!important; }
.w90 { width: 90%!important; }
.w80 { width: 80%!important; }


.mb0 { margin-bottom: 0 !important; }
.mb10 { margin-bottom: 10px !important; }
.mb15 { margin-bottom: 15px !important; }
.mb20 { margin-bottom: 20px !important; }
.mb30 { margin-bottom: 30px !important; }
.mb40 { margin-bottom: 40px !important; }
.mb50 { margin-bottom: 50px !important; }
.mb60 { margin-bottom: 60px !important; }

.mt0 { margin-top: 0px !important; }
.mt10 { margin-top: 10px !important; }
.mt20 { margin-top: 20px !important; }
.mt30 { margin-top: 30px !important; }
.mt40 { margin-top: 40px !important; }
.mt50 { margin-top: 50px !important; }
.mt60 { margin-top: 60px !important; }
.mt80 { margin-top: 80px !important; }
.mt100 { margin-top: 100px !important; }

.al_left { text-align: left !important; }
.al_right { text-align: right !important; }
.al_center { text-align: center !important; }


.f_pink { color: #ed1e79; }
.f_orange { color: #F7931E; }
.f_green { color: #39b54a; }
.f_blue { color: #00B1C5; }
.f_red { color: #ff0000; }

.f_big { font-size: 1.25em; }

.f_mincho {
	font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;}


.marker_pink {
	background: linear-gradient(transparent 40%, #f9bbc0 0%);
	padding: 0 3px; margin: 0 3px;
}
.marker_pink2 {
	background: linear-gradient(transparent 70%, #f9bbc0 0%);
	padding: 0 3px; margin: 0 3px;
}
.marker_pink3 {
	background: linear-gradient(transparent 40%, #f9e5e5 0%);
	padding: 0 3px; margin: 0 3px;
}
.marker_yellow {
	background: linear-gradient(transparent 80%, #f4e7bd 0%);
	padding: 0 3px; margin: 0 3px;
}
.marker_green {
	background: linear-gradient(transparent 80%, #b6e0ba 0%);
	padding: 0 3px; margin: 0 3px;
}

.sp { display: none;} 
.pc { display: block; }
@media screen and (max-width: 640px){
	.sp { display: block;} 
	.pc { display: none; }	
}
/*=============================================

00. 共通

===============================================*/
.flex { display: flex; flex-wrap: wrap; }
.flex_s_b {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.flex_s_a {
	display: flex;
	justify-content: space-around;
	flex-wrap: wrap;
}
.flex_c {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}
.flex_start {
	align-items: flex-start;
}

.align_c { align-items: center; }

.box_1_2 {
	width: 48%; margin-bottom: 10px;
}
.box_1_3 {
	width: 32%; margin-bottom: 10px;
}
.box_2_3 {
	width: 66%;
}
.box_1_4 {
	width: 25%;
}
.box_3_4 {
	width: 73%;
}
.box_1_5 {
	width: 20%;
}
.box_4_5 {
	width: 78%;
}
.box_3_7 {
	width: 41.71%;
}
.box_4_7 {
	width: 56.28%;
}


@media screen and (max-width: 640px){
	.box_1_2,
	.box_1_3,
	.box_2_3,
	.box_1_4,
	.box_3_4,
	.box_1_5,
	.box_4_5,
	.box_3_7,
	.box_4_7 {
		width: 100%; margin-bottom: 10px;
	}
}



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

404

===============================================*/
.error404 {
}
.error404 footer {
	background-color: rgba(255,255,255,.9);
}
.error404 .index__bnr_area {
	background-color: rgba(0,0,0,.9);
}
.wrap_404 {
	text-align: center;
	position: relative;
	height: 100%;
}
.wrap_404 .inner {
	padding: 200px 0;
}
.wrap_404 h1 {
	color: #ccc;
	font-size: 5em;
	line-height: 2;
}

@media screen and (max-width: 640px){
	.wrap_404 .inner {
		padding: 150px 0;
	}	
	.wrap_404 h1 {
		font-size: 3em;
		line-height: 1.5;
	}
}

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

index

==============================================================*/
.mainvisual {
	width: 95%;
	max-width:  var(--inner-width);
	margin: 2em auto;
	font-family: "M PLUS Rounded 1c", sans-serif;
	font-weight: 600;
	font-style: normal;	
}
.mainvisual h1 {
	margin: 0 auto;
}
.mainvisual h2 {
	margin: 0 auto;	
	font-weight: 700;
	font-size: 2.25em;
	line-height: 1.2;
	text-align: center;
}
.mainvisual .inner {
	width: 100%;
	margin: 0 auto;
	position: relative;
}
.mainvisual .inner .chara {
	position: absolute;
	left: 0; top: 0;
	width: 25%;
}
.mainvisual .inner .txt_box {
	padding: 0 0 0 20%;
	font-size: 1.5em;
}
.mainvisual .inner .txt_box .flex_s_b {
	align-items: center;
}
.mainvisual .inner .txt_box .flex_s_b .box_balloon {
	width: 41%;
	text-align: right;
}
.mainvisual .inner .txt_box .flex_s_b .box_balloon img {
	width: 90%; height: auto;
}
.mainvisual .inner .txt_box .flex_s_b .box_txt {
	width: 56%;
}

.mainvisual .inner .txt_box li {
	
}
.mainvisual .inner .txt_box li::before {
	content: "";
	display: inline-block;
	width: 14px; height: 14px;
	background-color: var(--color2);
	border-radius: 50vh;
	margin: 0 5px 0 0;
}

.period img {
	width: 90%;
	display: block;
	margin: 1em auto;
}

@media screen and (max-width: 640px){
	.mainvisual h2 {
		font-size: 1.25em;
		margin-top: 10px;
	}
	.mainvisual .inner .chara {
		width: 25%;
	}
	
	.mainvisual .inner .txt_box {
		padding: 0 0 0 25%;
		font-size: 1.0em;
	}	
	.mainvisual .inner .txt_box li {
		font-size: .9em;
	}	
	.mainvisual .inner .txt_box li::before {
		width: 8px; height: 8px;
	}	
	.mainvisual .inner .txt_box .flex_s_b .box_balloon {
		width: 40%;
		text-align: left;
	}
	.mainvisual .inner .txt_box .flex_s_b .box_balloon img {
		width: 90%; height: auto;
	}
	.mainvisual .inner .txt_box .flex_s_b .box_txt {
		width: 60%;
	}	
}

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

main

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

main {
	width: 95%;
	max-width:  var(--inner-width);
	margin: 0 auto;
	padding: 0 0 1em;
}
main h3{
	background-color: var(--color2);
	color: #fff;
	font-size: 1.5em;
	border-radius: 50vh;
	display: table;
	padding: 0 1em;
	margin: 0 auto 10px;
}

section {
  width: 100%;
  margin: 70px auto 0;
}
.wrap_detail {
	background-color: #fff;
	border:solid 3px  var(--color2);
	border-radius: 15px;
	width: 100%;
	max-width: var(--inner-width);
	margin: 0 auto;
	padding: 50px 2em 2em;
	margin: 80px auto 0;
	position: relative;
}
.wrap_detail h3 {
	width: 30%;
	height: 60px;
	line-height: 60px;
	border-radius: 30px;
	background-color:  var(--color2);
	color: #fff;
	margin: 0 auto 1em;
	text-align: center;
	position: absolute; left: 50%; top: 0;
	transform: translate(-50%, -50%);
	padding: 0;
}
.wrap_detail h4 {
	font-weight: 600;
	color: var(--color2);
	font-size: 1.25em;
}
.wrap_detail h4::before {
	content: "";
	display: inline-block;
	width: 14px; height: 14px;
	background-color: var(--color2);
	border-radius: 50vh;
	margin: 0 5px 0 0;
}
.wrap_detail li {
	position: relative;
	padding-left: 25px;
}
.wrap_detail li::before {
	content: "";
	display: inline-block;
	width: 14px; height: 14px;
	border: solid 1px #000;
	border-radius: 50vh;
	position: absolute; left: 0; top: 7px;
}

.wrap_detail img._w75 {
	width: 75%; height: auto;
}

section#about .wrap_detail .chara_box {
	width: 20%;
	position: absolute; right: 10px; bottom: 0;
	transform: translateY(33%);
}
a.btn {
	display: block;
	padding: 0.5em 1em;
	margin: 2em auto;
	background-color: var(--color2);
	border-radius: 15px;
	color: #fff;
	cursor: pointer;
	text-decoration: none;
	width: 80%;
	max-width: 500px;
	font-size: 2.0em;
	text-align: center;
	transition: .3s;
}
a.btn:hover {
  box-shadow: none;
  transform: translateY(5px);
}

@media screen and (max-width: 640px){
	.wrap_detail h3 {
		width: 80%;
	}	
	a.btn {
		width: 90%;
		font-size: 1.5em;
	}	
}

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

申請方法

====================*/
.wrap_howto {
	position: relative;
	padding: 0 0 2em;
}
.wrap_howto .chara_box {
	width: 15%;
	position: absolute; right: 0; bottom: 0;
}
.tbl_howto {
	width: 100%;
	border-collapse: collapse;
	margin: 1em auto 0;
}
.tbl_howto th,
.tbl_howto td {
	padding: 10px 10px;
	vertical-align: top;
	font-size: 1.125em;
}
.tbl_howto th {
	color: #72af2d;
	font-size: 2.0em;
	font-family: "Oswald", sans-serif;
	font-optical-sizing: auto;
	font-weight: 700;
	font-style: normal;	
	line-height: 1;
}
.tbl_howto li {
	position: relative;
	padding: 0 0 0 20px;
	margin: 5px 0 0;
	font-size: .9em;
}
.tbl_howto li::before {
	content: "";
	border: solid 1px #000;
	display: block; width: 14px; height: 14px;
	position: absolute; left: 0; top: 7px;
}



.wrap_recommend ul {
	width: 90%;
	margin: 2em auto;
}
.wrap_recommend h2 {
	
}
.wrap_recommend li {
	color: #323232;
	font-size: 2.75em;
	line-height: 1.3;
	margin: 0 0 .5em;
	font-family: "M PLUS 1p", sans-serif;
	font-weight: 800;
	font-style: normal;
	padding: 0 0 0 60px;
	position: relative;
}
.wrap_recommend li::before {
	content: "";
	background-image: url("../images/checkmark.png");
	background-size: cover;
	width: 45px; height: 45px;
	position: absolute; left: 0; top: 10px;
}



.btn_voice_more { 
	padding-bottom:50px; margin: 0 auto !important; text-align: center; width: 100%;
	transition: .3s;

}
.btn_voice_more img { width: 100%; height: auto; max-width: 505px; }
.btn_voice_more:hover { 
	transform: translateY(5px);
}
@media screen and (max-width:768px){
	.tbl_howto li::before {
		width: 10px; height: 10px;
		top: 7px;
	}	
	.btn_voice_more { margin: 0 auto; padding-top: 20px; }		
	.btn_voice_more img { width: 90%; height: auto; }
}



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

contact

==============================================================*/
.sitename {
	width: 95%;
	max-width:  var(--inner-width);
	margin: 2em auto 0;
	font-family: "M PLUS Rounded 1c", sans-serif;
	font-weight: 600;
	font-style: normal;	
	background-image: url("../images/main_chara.png");
	background-repeat: no-repeat;
	background-size: auto 100%;
	background-position: 18%;
}
.sitename h1 {
	margin: 0 auto;
	text-align: center;
}
.sitename h1 img {
	width: 50%; height: auto;
}
section.contact h2,
section.faq h2 {
	background-color: var(--color3);
	color: #fff;
	font-size: 2.0em;
	border-radius: 10px;
	padding: 0 1em;
	margin: 0 auto 1em;	
	text-align: center;
}

.tbl_contact {
	border-collapse: collapse;
	width: 100%;
}
.tbl_contact th,
.tbl_contact td {
	padding: 1em 1em;
	border-bottom: solid 1px #ccc;
	box-sizing: border-box;
		 
}
.tbl_contact th {
	width: 25%;
	text-align: right;
}
input[type="text"],
input[type="email"],
input[type="tel"],
textarea {
    padding: 10px 10px !important;
	font-size: 1em;
	width: 100%;
	box-sizing: border-box;
}
input._w30 {
	width: 30%;
}
.tbl_contact textarea {
	width: 100% !important;
	height: 10em !important;
}
section.contact button {
	display: block;
	padding: 0.5em 1em;
	margin: 2em auto;
	background-color: var(--color2);
	border-radius: 15px;
	border: none;
	color: #fff;
	cursor: pointer;
	text-decoration: none;
	width: 80%;
	max-width: 500px;
	font-size: 2.0em;
	text-align: center;
	transition: .3s;
}
section.contact button:hover {
  box-shadow: none;
  transform: translateY(5px);
}


@media screen and (max-width:768px){
	.sitename {
		background-position: left;
	}
	.sitename h1 img {
		width: 70%; height: auto;
	}
	.tbl_contact th {
		padding: 1em 0 0;
		border-bottom: none;
		display: block;
		width: 100%;
		text-align: left;
	}
	.tbl_contact td {
		padding: 0 0 1em;
		border-bottom: solid 1px #ccc;
		display: block;
		width: 100%;
	}	
}

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

faq

==============================================================*/
.qa {
	max-width: 1200px;
	margin: 0 auto 1em;
	border: 1px solid #fff;
	background-color: #fff;
	border-radius: 5px;
}

.qa summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  padding: 1em 2em 1em 3em;
  color: #333333;
  font-weight: 600;
  cursor: pointer;
}

.qa summary::before,
.qa p::before {
  position: absolute;
  left: 1em;
  font-weight: 600;
  font-size: 1.3em;
}

.qa summary::before {
  color: #75bbff;
  content: "Q";
}

.qa summary::after {
  transform: translateY(-25%) rotate(45deg);
  width: 7px;
  height: 7px;
  margin-left: 10px;
  border-bottom: 3px solid #333333b3;
  border-right: 3px solid #333333b3;
  content: '';
  transition: transform .5s;
}

.qa[open] summary::after {
  transform: rotate(225deg);
}

.qa p {
  position: relative;
  transform: translateY(-10px);
  opacity: 0;
  margin: 0;
  padding: .3em 3em 1.5em;
  color: #333333;
  transition: transform .5s, opacity .5s;
}

.qa[open] p {
  transform: none;
  opacity: 1;
}

.qa p::before {
  color: #ff8d8d;
  line-height: 1.2;
  content: "A";
}