@charset "UTF-8";
/*---------------------------------
  basic
---------------------------------*/
html {
	font-size: 62.5%;
  /*scroll-behavior: smooth;*/
}

body {
	color: #333;
  /*font-family: 游ゴシック, YuGothic, "Yu Gothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, Verdana, sans-serif;*/
  font-family: 'Noto Sans Japanese', serif;
  font-size: 1.6em;
  font-weight: 500;
	line-height: 2em;
	margin: 0;
	padding: 0;
}

h1,h2,h3,h4,h5,h6 {
	margin: 0;
	padding: 0;
}

img {
	width: 100%;
	border: 0;
	vertical-align: bottom;
}

p,ul,li,dl,dt,dd,th,td {
	margin: 0;
	padding: 0;
}

ol,ul,li {
	list-style: none;
}

i {
	font-size: 110% !important;
	vertical-align: middle;
	margin: 5px;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

::selection {
	background: #dfe1e5;
}

::-moz-selection {
	background: #dfe1e5;
}

@media screen and (max-width: 896px) {	
	body {
		font-size: 1.4em;
		min-width: 300px;
	}
}

/*---------------------------------
  ScrollTrigger
---------------------------------*/
.invisible {
  transition: all 1s ease;
  opacity: 0.0;
}

.visible {
  transition: all 1s ease;
  opacity: 1.0;
}

/*---------------------------------
  link
---------------------------------*/
a:link, a:visited, a:hover, a:active {
	color: #333;
	text-decoration: none;
}

/*---------------------------------
  hidden
---------------------------------*/
@media screen and (min-width: 896px) {
	.pc_hidden {
		display: none;
	}
}

@media screen and (max-width: 896px) {
	.tab_hidden {
		display: none;
	}
}

@media screen and (max-width: 480px) {
	.sp_hidden {
		display: none;
	}
}

/*---------------------------------
  common
---------------------------------*/
.wrapper {
	max-width: 1120px;
	margin: 0 auto;
	padding: 0 10px;
}

h2 {
  font-family: 'Kiwi Maru', serif;
}

h3 {
  line-height: 1.5em;
  font-family: 'Kiwi Maru', serif;
  font-size: 3.6rem;
  font-weight: 600;
  text-align: center;
  letter-spacing: 0.1em;
  margin-bottom: 1.5em;
}

h3 span {
  color: #d70051;
  font-size: 1.6rem;
  display: block;
}

.text_box p:nth-of-type(n+2) {
  margin-top: 1em;
}

@media print, screen and (max-width: 896px) {
  h3 {
    font-size: 2.8rem;
  }
  
  h3 span {
    font-size: 1.4rem;
  }
}

@media print, screen and (max-width: 480px) {
  h3 {
    font-size: 2.1rem;
  }
  
  h3 span {
    font-size: 1rem;
  }
}

/*---------------------------------
  header
---------------------------------*/
header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  background: #ffe8f0;
  padding: 2em 2em 2em 10%;
}

header div {
  margin-right: auto;
}

h1 a {
  color: #d70051 !important;
  font-family: 'Kiwi Maru', serif;
  font-size: 5.2rem;
  font-weight: 500;
  letter-spacing: 0.1em;
}

header nav {
  display: flex;
  flex-wrap: wrap;
}

header nav li a {
  color: #d70051 !important;
  padding: 0 1.5em;
}

header nav li:nth-child(n+6) a {
  color: #e05872 !important;
  font-size: 2.1rem;
  padding: 0 0.5em;
}

@media print, screen and (max-width: 1100px) {
  header {
    flex-direction: column;
    padding: 2em;
  }
  
  header div {
    margin-left: auto;
    margin-bottom: 2em;
  }
  
  header nav {
    width: 100%;
    justify-content: space-around;
  }
  
  header nav li {
    width: 33.3%;
    text-align: center;
    border-left: solid 1px #d70051;
    margin: 0.5em 0;
  }
  
  header nav li:nth-child(3n) {
    border-right:  solid 1px #d70051;
  }
  
  h1 a {
    font-size: 4.2rem;
  }
  
  header nav li:nth-child(n+6) a {
    font-size: 1.8rem;
  }
}

@media print, screen and (max-width: 480px) {
  header {
    padding: 1.5em;
  }
  
  h1 a {
    font-size: 2.8rem;
  }
  
  header nav li {
    width: 48%;
  }
  
  header nav li:nth-child(3n) {
    border-right: none;
  }
  
  header nav li:nth-child(2n) {
    border-right:  solid 1px #d70051;
  }
}

/*---------------------------------

  contents

---------------------------------*/
/*---------------------------------
  hero
---------------------------------*/
.hero {
  background: linear-gradient(180deg, #fff 0%, #fff 35%, #d70051 35%, #d70051 100%);
  margin-bottom: 2em;
}

.hero:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 100%;
  height: 30px;
  background: -webkit-repeating-linear-gradient(-45deg, #e05872, #e05872 5px, #fff 5px, #fff 10px);
  background: repeating-linear-gradient(-45deg, #e05872, #e05872 5px, #fff 5px, #fff 10px);
}

.hero .wrapper {
  display: flex;
  justify-content: space-between;
  padding-top: 1em;
}

.hero .wrapper div:first-of-type {
  width: 50%;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  align-items: center;
  justify-content: space-around;
}

.hero .wrapper div:first-of-type img:first-of-type {
  max-width: 85%;
}

.hero .wrapper div:first-of-type img:last-of-type {
  /*max-width: 600px;*/
}

.hero .wrapper div:last-of-type {
  width: 45%;
}

.hero .wrapper div:last-of-type img {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  filter: drop-shadow(0px 0px 8px #fff);
}

.hero p {
  font-size: 2.8rem;
  font-weight: 600;
}

@media print, screen and (max-width: 896px) {
  .hero:after {
    height: 20px;
  }
  
  .hero .wrapper div:first-of-type {
    width: 60%;
  }
}

/*---------------------------------
  Youtube
---------------------------------*/
.movie_wrap {
  margin: 5em 0 1em 0;
}

.movie_wrap .wrapper {
  max-width: 800px;
}

.movie_box {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}

.movie_box iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
}

/*---------------------------------
  ごあいさつ
---------------------------------*/
#greeting {
  padding: 4em 0;
}

.greeting_content:nth-of-type(n+2) {
  margin-top: 5em;
}

.greeting_content div {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  border-top: dashed 3px #f3bcc7;
  border-bottom: dashed 3px #f3bcc7;
  margin-bottom: 3em;
  padding: 1em;
}

.greeting_content div img {
  width: 120px;
}

.greeting_content h4  {
  color: #d70051;
  font-family: 'Kiwi Maru', serif;
  font-size: 2.8rem;
  line-height: 1.8em;
  padding-left: 1em;
}

@media print, screen and (max-width: 896px) {
  .greeting_content:nth-of-type(n+2) {
    margin-top: 3em;
  }
  
  .greeting_content div {
    flex-direction: column;
    padding: 1em 0;
  }
  
  .greeting_content div img {
    width: 100px;
    margin-bottom: 0.5em;
  }
  
  .greeting_content h4  {
    font-size: 2.1rem;
    padding-left: 0;
  }
}

@media print, screen and (max-width: 480px) {
  #greeting {
    padding: 3em 0;
  }
  
  .greeting_content div img {
    width: 80px;
  }
  
  .greeting_content h4  {
    font-size: 1.6rem;
    padding-left: 0;
  }
}

/*---------------------------------
  プロフィール
---------------------------------*/
#profile {
  padding: 4em 0;
}

.profile_content {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.profile_content dl {
  width: 70%;
  display: flex;
  flex-wrap: wrap;
  border-left: solid 3px #dfe1e5;
  margin-left: 10px;
  padding: 1em 0;
}

.profile_content dt,
.profile_content dd {
  padding: 15px 5px;
}

.profile_content dt {
  width: 200px;
  color: #e05872;
  font-weight: 600;
  position: relative;
  padding-left: 2em;
}

.profile_content dt:before {
	content: "\f111";
	font-family: "Font Awesome 5 Free";
	color: #d70051;
  font-size: 1.8rem;
  position: absolute;
  top: 16px;
  left: -10px;
}

.profile_content dd {
  width: calc(100% - 200px);
}

.profile_content dd p {
  font-size: 1.4rem;
}

.profile_content dd span {
  padding-left: 4em;
  display: block;
}

.profile_content ul {
  width: 25%;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: space-around;
  margin-right: 1em;
}

.profile_content ul li:nth-child(n+2) {
  margin-top: 2em;
}

.profile_content ul li img {
  width: 100%;
  border: solid 8px #fff;
  box-shadow: 0 1px 8px rgba(0,0,0,0.3);
}

.profile_content ul li:first-child {
  transform: rotate(-5deg);
}

.profile_content ul li:last-child {
  transform: rotate(5deg);
}

@media print, screen and (max-width: 896px) {
  #profile {
    padding: 2em 0 4em 0;
  }
  
  .profile_content {
    flex-direction: column;
  }
  
  .profile_content dl {
    width: 100%;
  }
  
  .profile_content dt {
    width: 150px;
    padding-left: 1.5em;
  }
  
  .profile_content dd {
    width: calc(100% - 150px);
  }
  
  .profile_content ul {
    width: 100%;
    flex-direction: row;
    align-items: center;
  }
  
  .profile_content ul li:first-child {
    width: 55%;
  }
  
  .profile_content ul li:last-child {
    width: 35%;
  }
  
  .profile_content ul li {
    margin-top: 2em;
  }
  
  .profile_content ul li img {
    border: solid 5px #fff;
    box-shadow: 0 1px 5px rgba(0,0,0,0.3);
  }
}

@media print, screen and (max-width: 480px) {
  .profile_content dl {
    flex-direction: column;
  }
  
  .profile_content dt,
  .profile_content dd {
    width: 100%;
  }
  
  .profile_content dt {
    padding-bottom: 0;
  }
  
  .profile_content dd {
    padding: 0 10px 0 1.5em;
  }
  
  .profile_content ul li img {
    border: solid 3px #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  }
}

/*---------------------------------
  基本政策
---------------------------------*/
#policy {
  background: #ffe8f0;
  padding: 5em 0;
}

#policy h3 {
  color: #d70051;
  background: url("images/top/policy.png") no-repeat;
  background-size: 100px;
}

#policy h5 {
  font-size: 1.8rem;
  text-align: center;
}

#policy h5 br {
  display: none;
}

.policy_content {
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 1px 8px rgba(215,0,81,0.1);
  margin-top: 4em;
  padding: 4em;
}

.policy_content h4 {
  font-family: 'Kiwi Maru', serif;
  font-size: 3.6rem;
  font-weight: 600;
  line-height: 1.8em;
  text-align: center;
  letter-spacing: 0.05em;
  margin-bottom: 2em;
  position: relative;
}

.policy_content h4:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  margin: 0 auto;
  bottom: -30px;
  width: 85%;
  height: 7px;
  background: -webkit-repeating-linear-gradient(-45deg, #e05872, #e05872 5px, #fff 5px, #fff 10px);
  background: repeating-linear-gradient(-45deg, #e05872, #e05872 5px, #fff 5px, #fff 10px);
}

.policy_content h4 span {
  color: #d70051;
}

.policy_opinion dl {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin: 3em 0 1em 0;
}

.policy_opinion dt {
  width: 80px;
  height: 80px;
  margin-right: 2em;
}

.policy_opinion dd {
  width: calc(100% - 115px);
	color: #e05872;
  font-weight: 500;
	position: relative;
}

.policy_opinion dd p {
  border-radius: 3px;
	background: #f5f5f5;
  padding: 1em 2em;
  display: inline-block;
}

.policy_opinion dd:after {
	content: "";
	position: absolute;
	top: 50%;
  left: -10px;
	margin-top: -10px;
	display: block;
	width: 0px;
	height: 0px;
	border-style: solid;
	border-width: 10px 10px 10px 0;
	border-color: transparent #f5f5f5 transparent transparent;
}

.policy_opinion dl+p {
  font-weight: 600;
  line-height: 1.8em;
  margin-left: 110px;
}

@media print, screen and (max-width: 896px) {
  #policy {
    padding: 4em 0;
  }
  
  #policy h3 {
    font-size: 2.4rem;
    background: none;
  }
  
  #policy h5 {
    font-size: 1.6rem;
  }
  
  #policy h5 br {
    display: block;
  }
  
  .policy_content {
    margin-top: 3em;
    padding: 3em 1.5em;
  }
  
  .policy_content h4 {
    font-size: 2.1rem;
    margin-bottom: 3em;
  }
  
  .policy_content h4:after {
    bottom: -20px;
  }
  
  .policy_opinion dl {
    align-items: flex-start;
  }
  
  .policy_opinion dt {
    width: 60px;
    height: 60px;
    margin-right: 1.5em;
  }
  
  .policy_opinion dd {
    width: calc(100% - 81px);
    line-height: 1.8em;
  }
  
  .policy_opinion dd p {
    padding: 1em;
  }
  
  .policy_opinion dl+p {
    margin-left: 80px;
  }
}

@media print, screen and (max-width: 480px) {
  #policy h3 {
    font-size: 2.1rem;
  }
  
  #policy h5 {
    font-size: 1.4rem;
  }
  
  .policy_content {
    padding: 2em 1.5em;
  }
  
  .policy_content h4 {
    font-size: 1.8rem;
    letter-spacing: normal;
  }
  
  .policy_content h4:after {
    width: 100%;
    bottom: -20px;
  }
  
  .policy_opinion dd {
    width: calc(100% - 81px);
    line-height: 1.8em;
  }
  
  .policy_opinion dd p {
    padding: 1em;
  }
  
  .policy_opinion dl+p {
    margin-left: 0;
  }
}

/*---------------------------------
  join
---------------------------------*/
#join {
  padding: 5em 0;
}

#join .wrapper {
  position: relative;
}

#join .wrapper img {
  position: absolute;
  width: 300px;
  top: -120px;
  right: 0;
}

.join_wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.join_content {
  width: 45%;
  border-radius: 0.5em;
  box-shadow: 0 1px 8px rgba(0,0,0,0.2);
  background: #fff;
  padding: 0.8em;
  z-index: 10;
}

.join_box {
  font-size: 1.8rem;
  text-align: center;
  border: solid 3px #d70051;
  border-radius: 0.5em;
  padding-top: 1em;
  position: relative;
}

.join_box:before {
	content: "\f276";
	font-family: "Font Awesome 5 Free";
  color: #d70051;
  font-weight: 600;
  position: absolute;
  transform: rotate(30deg);
  font-size: 4.2rem;
  top: -15px;
  left: 0;
  right: 0;
  margin: 0 auto;
}

.join_box p:first-child {
  padding: 1em;
}

.join_box p:last-child {
  color: #d70051;
  font-size: 2.1rem;
  font-weight: 600;
  border-top: solid 1px #ccc;
  border-radius: 0 0 0.5em 0.5em;
  margin: 0 1em;
  padding: 0.8em 0.5em;
}

@media print, screen and (max-width: 896px) {
  #join {
    padding: 3em 0 0 0;
  }
  
  #join .wrapper img {
    top: inherit;
    bottom: 0;
    left: 0;
    margin: 0 auto;
  }
  
  .join_wrap {
    flex-direction: column;
    padding-bottom: 20em;
  }
  
  .join_wrap  img {
    z-index: 99;
  }
  
  .join_content {
    width: 100%;
  }
  
  .join_content:nth-of-type(n+2) {
    margin-top: 2em;
  }
  
  .join_box {
    font-size: 1.6rem;
  }
  
  .join_box:before {
    font-size: 3.2rem;
  }
  
  .join_box p:last-child {
    font-size: 1.8rem;
  }
}

@media print, screen and (max-width: 480px) {
  .join_box {
    font-size: 1.4rem;
    line-height: 1.8em;
  }
  
  .join_box p:last-child {
    font-size: 1.6rem;
  }
}

/*---------------------------------
  sns
---------------------------------*/
#sns {
  background-color: #f5f5f5;
	background-image:
	 radial-gradient(#fff 2px, transparent 2px);
	background-size: 20px 20px;
  padding: 5em 0;
}

#sns h4 {
	position: relative;
	display: block;
	width: auto;
  max-width: 500px;
	color: #e05872;
  font-family: 'Kiwi Maru', serif;
  font-size: 1.8rem;
	text-align: center;
	border: 3px solid #e05872;
  border-radius: 0.5em;
  background: #fff;
	z-index: 0;
  padding: 0.8em;
  margin: 0 auto;
}

#sns h4:before {
	content: "";
	position: absolute;
	bottom: -8px; left: 50%;
	margin-left: -9px;
	width: 0px;
	height: 0px;
	border-style: solid;
	border-width: 9px 9px 0 9px;
	border-color: #fff transparent transparent transparent;
	z-index: 0;
}

#sns h4:after {
	content: "";
	position: absolute;
	bottom: -12px; left: 50%;
	margin-left: -10px;
	width: 0px;
	height: 0px;
	border-style: solid;
	border-width: 10px 10px 0 10px;
	border-color: #e05872 transparent transparent transparent;
	z-index: -1;
}

#sns ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

#sns li a {
  width: 300px;
  color: #fff;
  letter-spacing: 0.1em;
  border-radius: 3px;
  display: block;
  margin: 3em 2em 0 2em;
  padding: 1em;
}

#sns li:first-child a {
  background: #1877f2;
}

#sns li:last-child a {
  background: #333;
}

#sns li i {
  width: 70px;
  font-size: 2.8rem !important;
  text-align: center;
  border-right: solid 1px #ccc;
  display: inline-block;
  margin-right: 1em;
}

#sns a:hover {
  opacity: 0.9;
  transition: 0.3s;
}

@media print, screen and (max-width: 896px) {
  #sns {
    padding: 4em 0;
  }
  
  #sns h4 {
    max-width: 70%;
    min-width: 400px;
    font-size: 1.6rem;
    margin-bottom: 2em;
  }
  
  #sns li a {
    margin: 1.5em 1em 0 1em;
  }
  
  #sns li i {
    width: 50px;
    font-size: 2.1rem !important;
  }
}

@media print, screen and (max-width: 480px) {
  #sns h4 {
    max-width: 90%;
    min-width: inherit;
    font-size: 1.4rem;
  }
  
  #sns ul {
    flex-direction: column;
    align-items: center;
  }
  
  #sns li {
    width: 100%;
  }
  
  #sns li a {
    width: 90%;
    display: flex;
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
  }
}

/*---------------------------------
  お問い合わせ
---------------------------------*/
#contact {
  padding: 4em 0;
}

#contact h3+p{
  text-align: center;
}

/*
.mailform {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	border-bottom: solid 1px #dfe1e5;
  margin: 3em 0;
}

.mailform dt,
.mailform dd {
	border-top: 1px solid #dfe1e5;
	padding: 15px 20px;
}

.mailform dt {
	width: 30%;
	font-weight: 500;
	display: flex;
	align-items: center;
}

.mailform dd {
	width: 70%;
}

.required,
.optional {
	width: 35px;
	height: 25px;
	line-height: 25px;
	color: #e05872;
	font-size: 0.7em;
	font-weight: 500;
	text-align: center;
	border-radius: 3px;
	margin-right: 10px;
}

.required {
  border: solid 1px #e05872;
}

.optional {
	background: #dfe1e5;
}

.contact_category {
	display: flex;
	flex-wrap: wrap;
}

.contact_category label {
	width: 50%;
}

.contact_category label:nth-child(n+3) {
	margin-top: 15px;
}

.privacy > h5 {
	font-size: 1.2rem;
	margin: 15px 0 5px 0;
}

.privacy p,
.privacy li  {
	font-size: 1.2rem;
	line-height: 1.5em;
}

li.privacy > ul {
	margin-top: 10px;
}

li.privacy ul li {
  padding-left: 1em;
  text-indent: -1em;
	list-style: decimal inside;
}

.button:after {
  content: "\f055";
  font-family: 'Font Awesome 5 Free';
  font-weight: 600;
  font-size: 1.8rem;
  position: absolute;
  right: 15px;
}

.button.active:after {
  content: "\f056";
	font-family: 'Font Awesome 5 Free';
	font-weight: 600;
}

.mailform+div {
	display: flex;
	justify-content: space-around;
}

@media screen and (max-width: 896px) {
  #contact h3+p {
    text-align: left;
  }
  
  .mailform {
    flex-direction: column;
  }
  
	.mailform dt {
		padding: 8px 15px;
	}
	
	.mailform dd {
		padding: 20px 0;
	}
	
	.mailform dt,
	.mailform dd {
		width: 100%;
	}
	
	.required,
	.optional {
		height: 20px;
		line-height: 20px;
	}
}
*/

/*---------------------------------
  form
---------------------------------*/
/*
button,
input,
select,
textarea {
	font-size: 100%;
  font-family: 游ゴシック, YuGothic, "Yu Gothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, Verdana, sans-serif;
}

input,
select,
textarea {
	border: solid 1px #dfe1e5;
	border-radius: 5px;
	-webkit-appearance: none;
	box-sizing: border-box;
}

input,
select {
	padding: 5px 10px;
}

textarea {
	max-width: 100%;
	min-width: 70%;
	min-height: 150px;
	padding: 10px;
}

.input_wide,
.mf {
	width: 70% !important;
}

.input_middle {
	width: 30% !important;
}

.postcord,
input[type="submit"],
input[type="reset"]  {
	color: #fff;
	font-weight: 600;
	cursor: pointer;
	border: none;
}

input[type="submit"],
input[type="reset"]  {
	width: 30%;
	height: 50px;
	line-height: 50px;
	text-align: center;
	padding: 0;
}

input[type="submit"] {
	background: #d70051;
}

.postcord,
input[type="reset"] {
  color: #d70051;
  border: solid 1px #d70051;
  background: #fff;
}

.postcord:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
.button:hover  {
	opacity: 0.8;
	transition: 0.3s;
}

::-webkit-input-placeholder {
  color: #ddd;
  font-size: 1.4rem;
}

input[type="checkbox"],
input[type="radio"] {
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	border-radius: 0;
	outline: none;
	-webkit-appearance: none;
	   -moz-appearance: none;
	        appearance: none;
}

.label_list label {
	position: relative;
	display: block;
	word-break: break-all;
}

.label_list label input[type="checkbox"] + span,
.label_list label input[type="radio"] + span {
	position: relative;
	padding-left: 35px;
}

label {
	cursor: pointer;
}

.checkbox {
	margin-top: 5px;
}

.checkbox .label_list:nth-of-type(1) label input[type="checkbox"] + span::before {
	border-color: #dfe1e5;
}

.checkbox .label_list:nth-of-type(1) label input[type="checkbox"]:checked + span::before {
	border-color: #333;
}

.checkbox label input[type="checkbox"] {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
}

.checkbox label input[type="checkbox"] + span::before, .checkbox label input[type="checkbox"] + span::after {
	position: absolute;
	top: 0;
	left: 0;
	display: inline-block;
	content: '';
	box-sizing: border-box;
}

.checkbox label input[type="checkbox"] + span::before {
	z-index: 0;
	background-color: transparent;
	width: 25px;
	height: 25px;
	border: 3px #dfe1e5 solid;
	border-radius: 5px;
}

.checkbox label input[type="checkbox"] + span::after {
	z-index: 1;
	margin: 2px 8px;
	width: 10px;
	height: 15px;
}

.checkbox label input[type="checkbox"] + span::after {
	border: 4px solid #dfe1e5;
	border-width: 0 4px 4px 0;
	-webkit-transform: rotate(45deg);
	    -ms-transform: rotate(45deg);
		    transform: rotate(45deg);
}

.checkbox label input[type="checkbox"]:checked + span::after {
	border: 4px solid #d70051;
	border-width: 0 4px 4px 0;
	-webkit-transform: rotate(45deg);
	    -ms-transform: rotate(45deg);
		    transform: rotate(45deg);
}

.radio .label_list:nth-of-type(1) label input[type="radio"] + span::before {
	border-color: #dfe1e5;
}

.radio label span,
.checkbox label span {
	display: inline-block;
}

.radio label input[type="radio"] {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
}

.radio label input[type="radio"] + span::before {
	position: absolute;
	display: inline-block;
	content: '';
	box-sizing: border-box;
	border-radius: 25px;
}

.radio label input[type="radio"] + span::before {
	width: 25px;
	height: 25px;
	z-index: 0;
	top: 0;
	left: 0;
	background-color: transparent;
	border: solid 2px #dfe1e5;
}

.radio label input[type="radio"] + span::before {
	border-width: 8px;
	background: #fff;
	border-color: #dfe1e5 !important;
}

.radio label input[type="radio"]:checked + span::before {
	border-width: 8px;
	border-color: #d70051 !important;
}

.selectbox {
  width: 70%;
  position: relative;
}

.selectbox select {
  width: 100%;
}

.selectbox::after {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  position: absolute;
  right: 20px;
  top: 40%;
  border-bottom: #333 2px solid;
  border-right: #333 2px solid;
  transform: rotate(45deg)translateY(-30%);
}

.accordion {
  width: 100%;
  margin-bottom: 20px !important;
}

.button {
  width: 100%;
  color: #d70051;
	font-weight: 500;
	border: solid 1px #d70051;
	border-radius: 3px;
  background: #fff;
  cursor: pointer;
  position: relative;
  padding: 10px 15px;
}

.accordion_contents {
	border-left: solid 1px #dfe1e5;
	border-right: solid 1px #dfe1e5;
	border-bottom: solid 1px #dfe1e5;
	background: #fff;
	padding: 15px;
}

@media screen and (max-width: 896px) {
	input,
  select {
		font-size: 16px;
		padding: 10px;
	}
	
  .selectbox,
	.input_wide,
	.mf {
		width: 100% !important;
	}
	
	.input_middle {
		width: 50% !important;
	}
	
	textarea {
	  min-width: 100%;
		font-size: 16px;
	}
	
	input[type="submit"],
	input[type="reset"]  {
		width: 48%;
		font-size: 1.4rem;
	}
}
*/

/*---------------------------------
  thanks
---------------------------------*/
.thanks_wrap {
  margin-top: 3em;
  margin-bottom: 4em;
}

.thanks_wrap p {
	padding: 10px 0;
}

.thanks_wrap p:nth-last-child(2)	{
	font-size: 2.4rem;
	font-weight: 600;
}

.thanks_wrap p:nth-last-child(2):before {
  content: "\f095";
	font-family: 'Font Awesome 5 Free';
  transform: scale(-1, 1);
  display: inline-block;
	vertical-align: middle;
	margin-right: 5px;
}

/*---------------------------------
  sitemap
---------------------------------*/
.sitemap {
  background: #f5f5f5;
  padding: 1em;
}

.sitemap ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
}

.sitemap li {
  font-size: 1.4rem;
}

.sitemap li:before {
	content: "\f138";
	font-family: "Font Awesome 5 Free";
  color: #d70051;
  font-weight: 600;
  margin-right: 5px;
}

.sitemap li a {
  color: #d70051;
}
.sitemap li a:hover {
  text-decoration: underline;
}

@media print, screen and (max-width: 896px) {
  .sitemap ul {
    justify-content: flex-start;
  }
  
  .sitemap li {
    width: 30%;
    font-size: 1.2rem;
    margin-right: 5%;
  }
  
  .sitemap li:nth-child(3n) {
    margin-right: 0;
  }
}

@media print, screen and (max-width: 480px) {
  .sitemap ul {
    justify-content: space-between;
  }
  
  .sitemap li {
    width: 48%;
    margin-right: 0;
  }
}

/*---------------------------------
  footer
---------------------------------*/
footer {
  color: #fff;
  background: #d70051;
  padding: 3em 0.5em;
}

footer .wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}

footer h2 {
  font-weight: 400;
  margin-bottom: 1em;
}

footer p {
  font-size: 1.4rem;
  line-height: 1.8em;
}

footer ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

footer li a {
  color: #fff !important;
  font-size: 2.1rem;
  margin: 1em;
  display: block;
}

footer li a:hover {
  opacity: 0.8;
  transition: 0.3s;
}

@media print, screen and (max-width: 896px) {
  footer .wrapper {
    align-items: flex-start;
  }
  
  footer li a {
    font-size: 1.8rem;
    margin: 0 0.5em;
  }
}

@media print, screen and (max-width: 480px) {
  footer .wrapper {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
  }
  
  footer ul {
    margin-top: 1em;
  }
  
  footer li a {
    margin: 0 1em;
  }
}

address {
	color: #fff;
	font-size: 0.7em;
	font-style: normal;
	text-align: center;
  background: #d70051;
  padding-bottom: 3em;
}

/*---------------------------------
  pagetop
---------------------------------*/
.pagetop {
	width: 60px;
	height: 60px;
	line-height: 50px;
	border-radius: 50%;
	color: #fff !important;
	font-size: 3.6rem;
	text-align: center;
	background: rgba(224,88,114,0.9);
	display: block;
	position: fixed;
	right: 40px;
	bottom: 40px;
	z-index: 1000;
}

.pagetop:hover {
	opacity: 0.8;
	transition: 0.3s;
}

@media screen and (max-width: 896px) {
	.pagetop {
		width: 50px;
		height: 50px;
		line-height: 40px;
		font-size: 2.8rem;
		right: 10px;
		bottom: 10px;
	}
}

/*---------------------------------
  2024.04
---------------------------------*/
.policy_list {
  font-family: 'Kiwi Maru', serif;
  font-weight: 600;
  font-size: 24px;
  display: flex;
  flex-wrap: wrap;
  border-bottom: solid 2px #d70051;
  padding: 1em 0;
}

.policy_list dt {
  width: 40px;
  color: #d74b91;
  font-size: 32px;
}

.policy_list dd {
  width: calc(100% - 40px)
}

.policy_list dd span {
  color: #d70051;
}

.policy_content h6 {
  font-size: 18px;
}

.policy_content li {
  text-indent: -1em;
  padding-left: 1em;
}

.policy_content li:before {
  content: '◎';
}

@media print, screen and (max-width: 896px) {
  .policy_list {
    font-size: 18px;
  }
  
  .policy_list dt {
    font-size: 24px;
  }
  
  .policy_content h6 {
    font-size: 14px;
  }
}

@media print, screen and (max-width: 480px) {
  .policy_list {
    font-size: 16px;
  }
  
  .policy_list dt {
    font-size: 21px;
  }
}
