@charset "UTF-8";

/*----------------------------------------
	- base
-----------------------------------------*/
:root {
  --red_color: #ca0005;
}

/*=======================================
	base
=======================================*/
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
img,
figure,
picture {
  max-width: 100%;
  height: auto;
  vertical-align: top;
}
ul,
li {
  list-style: none;
}
a {
  text-decoration: none;
  opacity: 1;
  transition: all 0.3s ease;
  color: #161717;
}
@media (hover: hover) {
  a:hover {
    opacity: 0.65;
  }
}


main {
	margin-top: 90px;
}
@media only screen and (max-width: 768px){
main {
	margin-top: 70px;
}
}

/*=======================================
　mw_wp_form デフォルト非表示
=======================================*/
.mw_wp_form_input .form_input_hidden {
	display: none;
}
.mw_wp_form_confirm .confirm_hidden {
	display: none;
}


/* compopnent */
.h1_outline {
  font-style: italic;
  font-weight: 600;
	font-size: calc(80/1160*100vw);
  line-height: 100%;
  padding: 3.64% 0 0 4.55%;
  position: relative;
  margin-bottom: 5.45%;
  width: 100%;
}
.h1_outline::before {
  content: attr(data-outlne_st);
  position: absolute;
  top: 0;
  left: 4.55%;
  /* transform: translateX(-50%); */
  font-weight: 700;
	font-size: calc(20/1160*100vw);
  line-height: 150%;
  letter-spacing: 0.1em;
  color: #ca0005;
}
.h1_outline::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  background: #ca0005;
	width: 0.55%;
	height: 100%;
}
@media only screen and (min-width: 1161px){
.h1_outline {
  font-size: 80px;
  padding: 40px 0 0 50px;
  margin-bottom: 60px;
}
.h1_outline::before {
  left: 50px;
  font-size: 20px;
}
.h1_outline::after {
	width: 6px;
}
}
@media screen and (max-width: 768px) {
.h1_outline {
	font-size: 50px;
	padding-top: 10%;
	margin-bottom: 7.69%;
}
.h1_outline::before {
	font-size: 15px;
	top: 10%;
}
}



.w800 {
	max-width: 800px;
	margin: 0 auto;
}



#header {
  box-shadow: 0px 0px 10px 0px #0000001F;
}



/*=======================================
	contact_wrap
=======================================*/
#contact_wrap a.link_line {
	text-decoration: underline;
}



#contact_wrap .detail {
	margin: 0 auto 6.31%;
	width: 90%;
}
#contact_wrap .first_txt {
	font-size: calc(16/1160*100vw);
	line-height: 200%;
	letter-spacing: 0.1em;
	margin-bottom: 10%;
}
#contact_wrap .first_txt02 {
	margin-bottom: 6.94%;
}
#contact_wrap .contact-item {
	display: table;
	width: 100%;
	table-layout: fixed;
	word-break: break-all;
	/* margin-bottom: 25px; */
}
#contact_wrap .mw_wp_form_confirm .contact-item {
	margin-bottom: 100px;
}
#contact_wrap .contact-item dl {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	align-items: center;
	margin-bottom: 20px;
}
#contact_wrap .mw_wp_form_confirm .contact-item dl {
	border-bottom: 1px solid #848484;
	padding-bottom: 0.8em;
}
#contact_wrap .contact-item dl.comment {
	align-items: flex-start;
	height: auto;
	margin-bottom: 3.75%;
}

#contact_wrap .contact-item dd {
	width: 73.75%;
	height: auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
textarea, input[type="text"], input[type="tel"], input[type="email"], input[type="date"], input[type="number"], select {
	border: 1px solid #848484;
	padding: 0.8em;
	width: 100%;
	-webkit-border-radius : 0;
	-webkit-appearance : none;
	-webkit-tap-highlight-color : rgba(0,0,0,0);
	outline: none;
	color: #161717;
}
input[type=checkbox] {
	border-radius: 0;
	-webkit-border-radius : 0;
	-webkit-appearance : none;
	outline: none;
}
select::-ms-expand {
	display: none; /* デフォルトの矢印を非表示(IE用) */
}
select {
	position: relative;
	-webkit-appearance: none;
	appearance: none; /* デフォルトの矢印を非表示 */
	background: url("../../image/contact/arrow01.svg") 95% 50% / 1.11vw 0.56vw no-repeat;
}
textarea {
	resize: vertical;
	height: 12.5vw;
	border-radius: 0;
}
#contact_wrap .contact-item dt, #contact_wrap .contact-item dd {
	font-size: calc(16/1160*100vw);
}
#contact_wrap .contact-item dt {
	width: 26.25%;
	line-height: 200%;
}
span.must-mk {
	color: var(--red_color);
}
@media only screen and (min-width: 1161px){
#contact_wrap .first_txt {
	font-size: 16px;
	margin-bottom: 80px;
}
#contact_wrap .mw_wp_form_confirm .contact-item {
	margin-bottom: 100px;
}
#contact_wrap .contact-item dl {
	margin-bottom: 20px;
}
#contact_wrap .contact-item dl.comment {
	height:180px;
	margin-bottom: 30px;
}
#contact_wrap .mw_wp_form_confirm .contact-item dl.comment {
	height: auto;
}
#contact_wrap .contact-item dl.comment dd {
	height: 180px;
}
#contact_wrap .mw_wp_form_confirm .contact-item dl.comment dd {
	height: auto;
}

textarea, input[type="text"], input[type="tel"], input[type="email"], input[type="date"], input[type="number"], select {
	/*padding: 14px 0 14px 30px;*/
	padding: 0.8em;
}
select {
	background: url("../../image/contact/arrow01.svg") 95% 50% / 16px 8px no-repeat;
}
textarea {
	padding-top: 9px;
	padding-bottom: 9px;
	height: 180px;
}
#contact_wrap .contact-item dt, #contact_wrap .contact-item dd {
	font-size: 16px;
}
#contact_wrap .contact-item dt {
	font-size: 16px;
}
}
@media only screen and (max-width: 768px){
#contact_wrap .detail {
	margin-bottom: 15.38%;
}
#contact_wrap .first_txt {
	font-size: 16px;
	margin-bottom: 5.13%;
}
#contact_wrap .mw_wp_form_confirm .contact-item {
	margin-bottom: 50px;
}
#contact_wrap .contact-item dl {
	margin-bottom: 5%;
	display: block;
}
#contact_wrap .contact-item dl.comment {
	height: auto;
	margin-bottom: 3.85%;
}
#contact_wrap .contact-item dd {
	width: 100%;
	height: auto;
}
#contact_wrap .contact-item dl.comment dd {
	height: 46.15vw;
}
#contact_wrap .mw_wp_form_confirm .contact-item dl.comment dd {
	height: auto;
}

select::-ms-expand {
	display: none; /* デフォルトの矢印を非表示(IE用) */
}
select {
	background: url("../../image/contact/arrow01.svg") 95% 50% / 4vw 2vw no-repeat;
	/*padding: 3.59vw 0 3.59vw 5.13vw;*/
}
textarea {
	height: 46.15vw;
}
#contact_wrap .contact-item dt, #contact_wrap .contact-item dd {
	font-size: 16px;
}
#contact_wrap .contact-item dt {
	width: 100%;
	margin-bottom: 1.28%;
}
}



/*=======================================
	プライバシーポリシー
=======================================*/
#contact_wrap .tc {
	text-align: center;
	margin-bottom: 7.5%;
	line-height: 200%;
}
#contact_wrap .tc span {
	font-size: calc(16/1160*100vw);
}
#contact_wrap .tc span a {
	position: relative;
	padding-right: 4.38%;
}
#contact_wrap .tc span a::after {
	content: '';
	position: absolute;
	background-image: url("../../image/contact/icon_blank.svg");
	width: 3.5vw;
	height: 3.5vw;
	max-width: 28px;
	max-height: 28px;
	background-size: cover;
	top: 56%;
	right: 0.38vw;
	transform: translateY(-50%);
}
#contact_wrap .tc label {
	cursor:pointer;
}
#contact_wrap .tc label input {
	position: relative;
	top: 0.2vw;
}
@media only screen and (min-width: 1161px){
#contact_wrap .tc {
	margin-bottom: 60px;
}
#contact_wrap .tc span {
	font-size: 16px;
}
#contact_wrap .tc span a::after {
	background-image: url("../../image/contact/icon_blank.svg");
	width: 28px;
	height: 28px;
	background-size: cover;
	right: 3px;
}
#contact_wrap .tc label input {
	top: 0;
}
}
@media only screen and (max-width: 768px){
#contact_wrap .tc {
	margin-bottom: 7.5%;
	text-align: left;
}
#contact_wrap .tc span {
	font-size: 16px;
}
#contact_wrap .tc span a {
	padding-right: 8.38%;
}
#contact_wrap .tc span a::after {
	width: 7.18vw;
	height: 7.18vw;
	/* left: 0; */
	max-width: inherit;
	max-height: inherit;
}
#contact_wrap .tc label input {
	top: 0.2vw;
}
}



/*=======================================
　送信ボタン
=======================================*/
#contact_wrap .btn_area {
	display: flex;
	gap: 0 5%;
	justify-content: center;
}

#contact_wrap .btn input {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  outline: none;
}
#contact_wrap .btn {
	margin: 0 auto;
	width: 23.61vw;
	height: 5.21vw;
	max-width: 340px;
	max-height: 75px;
	position: relative;
}
#contact_wrap .btn_area > .btn {
	margin: 0;
}
#contact_wrap .btn .submit_button,
#contact_wrap .btn a {
	transition: all 0.3s ease;
	display: flex;
	width: 100%;
	height: 100%;
	border: 1px solid var(--red_color);
	align-items: center;
	justify-content: center;
	position: relative;
	pointer-events: auto;
	cursor: pointer;
	font-weight: 700;
	font-size: calc(16/1160*100vw);
	line-height: 200%;
	letter-spacing: 0.15em;
	color: #CA0005;
}
#contact_wrap .btn::after {
	content: '';
	position: absolute;
	background-image: url("../../image/contact/arrow02.svg");
	width: 1vw;
	height: 2.13vw;
	max-width: 8px;
	max-height: 17px;
	background-size: cover;
	top: 50%;
	right: 11.76%;
	transform: translateY(-50%);
}
#contact_wrap .btn:first-child .submit_button {
	color: #848484;
	border: 1px solid #848484;
}
#contact_wrap .btn:first-child::after {
	background-image: url("../../image/contact/arrow_gray.svg");
}

@media (hover: hover) {
	#contact_wrap .btn .submit_button:hover,
#contact_wrap .btn a:hover {
	opacity: 1;
	color: #fff;
	background-color: var(--red_color);
}
#contact_wrap .btn:first-child .submit_button:hover {
	background-color: #848484;
}
#contact_wrap .btn:hover::after {
	background-image: url("../../image/contact/arrow_white.svg");
}
#contact_wrap .btn:first-child:hover::after {
	background-image: url("../../image/contact/arrow_white.svg");
}
}
@media only screen and (min-width: 1161px){
#contact_wrap .btn {
	width: 340px;
	height: 75px;
}
#contact_wrap .btn .submit_button,
#contact_wrap .btn a {
	font-size: 16px;
}
#contact_wrap .btn::after {
	width: 8px;
	height: 17px;
	right: 40px;
}
}
@media only screen and (max-width: 768px){
	#contact_wrap .btn_area {
		flex-direction: column;
		align-items: center;
		gap: 30px 0;
	}
#contact_wrap .btn {
	width: 79.49vw;
	height: 16.67vw;
	max-width: inherit;
	max-height: inherit;
}
#contact_wrap .btn .submit_button,
#contact_wrap .btn a {
	font-size: 16px;
	letter-spacing: 0.15em;
}
#contact_wrap .btn::after {
	width: 2vw;
	height: 4vw;
	right: 10%;
}
}



/*=======================================
　checkbox
=======================================*/
input[type=checkbox] {
	display: none;
}
input[type=checkbox] + span {
	cursor: pointer;
	padding-left: 30px;
	position: relative;
}
input[type=checkbox] + span::before {
	content: "";
	display: block;
	width: 18px;
	height: 18px;
	border: 1px solid #333;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}
input[type=checkbox] + span::after {
	content: "";
	display: block;
	width: 18px;
	height: 8px;
	border-bottom: 2px solid #161717;
	border-left: 2px solid #161717;
	position: absolute;
	left: 2px;
	top: 30%;
	transform: translateY(-50%) rotate(-45deg);
	opacity: 0;
	transition: opacity 0.3s;
}
input[type=checkbox]:checked + span::after {
	opacity: 1;
}
@media screen and (max-width: 768px) {
	input[type=checkbox] + span::before {
		transform: translateY(-25%);
		top: 25%;
		width: 15px; height: 15px;
	}
	input[type=checkbox] + span::after {
		top: 5px;
		top: 20%;
		transform: translateY(-15%) rotate(-45deg);
		width: 15px; height: 6px;
	}
}
@media screen and (max-width: 500px) {
	input[type=checkbox] + span::before {
		transform: translateY(0);
		top: 5px;
	}
	input[type=checkbox] + span::after {
		top: 5px;
		transform: translateY(0) rotate(-45deg);
	}
}




