@charset "UTF-8";
/* CSS Document */
/**********************************
			header
**********************************/
.sub_header {
	width: 100%;
	height: auto;
}
.sub_header_inner {
	max-width: 1200px;
	height: auto;
	margin: 0px auto;
	text-align: center;
	padding: 150px 0 0px;
}
.sub_header_main_ttl {
	font-family: "Montserrat";
	font-size: 3rem;
	font-weight: 300;
	margin-bottom: 30px;
}
.sub_header_sub_ttl {	
}

.about_text {
	width: 100%;
	max-width: 640px;
	margin: 0px auto;
}
.about_image img {
	width: 100%;
	height: auto;
	margin-bottom: 5%;
}
.about_text .btn {
	margin-top: 100px;
}

.contact_inner {
	max-width: 760px;
	height: auto;
	margin: 0px auto;
}
.contact_inner h2 {
	font-size: 1.2rem;
	margin-bottom: 10px;
}
.contact_inner h3 {
	font-size: 0.8rem;
	font-weight: 300;
	margin-bottom: 30px;
}
table.price {
	width: 100%;
	max-width: 640px;
	margin: 200px auto 0;
	border-collapse: collapse;
}
table.price caption {
    font-size: 1.5rem;
    font-weight: 300;
    margin-bottom: 60px;
	text-align: center;
}
table.price th,
table.price td {
	border-bottom: 1px solid #DDDDDD;
	text-align: left;
	padding: 20px;
	font-weight: normal;
}
table.price th {
	width: 160px;
}

.flow {
	width: 100%;
	max-width: 640px;
	margin: 200px auto 0;
}
.flow_ttl {
    font-size: 1.5rem;
    font-weight: 300;
    margin-bottom: 60px;
	text-align: center;
}
.flow_list li {
	display: table;
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 30px;
}
.flow_list_th,
.flow_list_td {
	display: table-cell;
	vertical-align: middle;
}
.flow_list_th {
	width: 100px;
	text-align: center;
}
.flow .btn {
	margin-top: 100px;
}

/***************************
		form-flow-list
****************************/
.form-flow-list {
    font-size: 0;
    letter-spacing: 0;
    margin-bottom: 60px;
    text-align: center;
    overflow: hidden;
}

.form-flow-list li {
    font-size: 0.9rem;
	font-weight: 300;
    line-height: 40px;
    color: #FFFFFF;
    width : calc(100% / 2);
    padding-right: 15px;
    padding-left: 15px;
    display: inline-block;
    background: #000000;
    position: relative;
    z-index: 2;
}

.form-flow-list li:first-child {
    z-index: 3;
	background: #000000;
	color: #FFFFFF;
}

.form-flow-list li:first-child:before {
    content: none;
}

.form-flow-list li:last-child {
    z-index: 1
}

.form-flow-list li:last-child:after {
    content: none
}

.form-flow-list li:before {
    content: '';
    border-top: 30px solid transparent;
    border-left: 15px solid #fff;
    border-right: 15px solid transparent;
    border-bottom: 30px solid transparent;
    position: absolute;
    left: 0px;
    top: 50%;
    margin-top: -30px;
}

.form-flow-list li:after {
    content: '';
    border-top: 20px solid transparent;
    border-left: 10px solid #000000;
    border-right: 10px solid transparent;
    border-bottom: 20px solid transparent;
    position: absolute;
    right: -20px;
    top: 50%;
    margin-top: -20px;
}

.form-flow-list li:first-child:before {
    content: '';
    border-top: 30px solid transparent;
    border-left: 15px solid #fff;
    border-right: 15px solid transparent;
    border-bottom: 30px solid transparent;
    position: absolute;
    left: 0px;
    top: 50%;
    margin-top: -30px;
	border-left-color: #000000;
}

.form-flow-list li:first-child:after {
    content: '';
    border-top: 20px solid transparent;
    border-left: 10px solid #D1D8DF;
    border-right: 10px solid transparent;
    border-bottom: 20px solid transparent;
    position: absolute;
    right: -20px;
    top: 50%;
    margin-top: -20px;
	border-left-color: #000000;
}
/**********************************
			formTable
**********************************/
table.formTable {
	width: 100%;
    border-collapse: collapse;
	font-size: 0.9rem;
}
table.formTable th {
	width: 230px;
	padding: 30px 30px 30px 0;
	text-align: left;	
	font-weight: 300;
}
table.formTable td {
	width: auto;
	padding: 30px;
}
table.formTable td input {
	width: 100%;
	max-width: 300px;
	padding: 10px;
	border: 0;
	border-bottom: 1px solid #DDDDDD;
	font-size: 0.9rem;
	font-weight: 300;
	border-radius: 0;
}
table.formTable td textarea {
	width: 100%;
	height: 200px;
	padding: 10px;
	border: 1px solid #DDDDDD;
}
table.formTable .hissu {
	display: inline-block;
	color: #BF0000;
	font-size: 0.8rem;
	margin-left: 6px;
}

ul.choice li {
	font-size: 0;
}
ul.choice li {
	display: inline-block;
	position: relative;
	font-size: 0.9rem;
	margin-bottom: 10px;
}
ul.choice li input[type=radio] {
	position: absolute;
	visibility: hidden;
}
ul.choice li label {
	position: relative;
	font-weight: 300;
	padding: 0 25px 0 30px;
	cursor: pointer;
	line-height: 1.5;
}
ul.choice li .check {
	position: absolute;
	border: 1px solid #DDDDDD;
	border-radius: 100%;
	height: 20px;
	width: 20px;
	top: 0px;
	left: 0px;
	transition: border .25s linear;
}
ul.choice li .check::before {
	position: absolute;
	content: '';
	border-radius: 100%;
	height: 12px;
	width: 12px;
	top: 3px;
	left: 3px;
	transition: background 0.25s linear;
}
.three li {
	float: left;
	width: 32%;
	margin-right: 2%;
}
.select-wrap {
    position: relative;
    max-width: 220px;
}
.select-wrap:before {
    z-index: 1;
    position: absolute;
    right: 15px;
    top: 0;
    content: "\f107";
    font-family: "Font Awesome 5 Free";
    line-height: 30px;
    color: #7F878C;
    pointer-events: none;
	font-weight: bold;
}
.three li select {
	width: 100%;
	padding: 8px;
	line-height: 1;
	outline:none;
    -moz-appearance: none;
    text-indent: 0.01px;
    text-overflow: '';
    background: none transparent;
    vertical-align: middle;
    font-size: inherit;
    color: inherit;
    -webkit-appearance: button;
    -moz-appearance: button;
    appearance: button;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    border-radius: 3px;
}
select::-ms-expand {
  display: none;
}
select:-moz-focusring { 
  color: transparent; 
  text-shadow: 0 0 0 #828c9a;
}
.three li:last-child {
	margin-right: 0;
}
input[type=radio]:checked ~ .check {
	border: 1px solid #000000;
}
input[type=radio]:checked ~ .check::before{
	background: #000000;
}
input[type=radio]:checked ~ label{
	color: #000000;
}
/* 各ベンダープレフィックスが取れた標準版！！(http://caniuse.com/#search=placeholder-shown) */
:placeholder-shown {
    color: #CCCCCC; }
/* Google Chrome, Safari, Opera 15+, Android, iOS */
::-webkit-input-placeholder {
    color: #CCCCCC; }
/* Firefox 18- */
:-moz-DDDDDD {
    color: #CCCCCC; opacity: 1; }
/* Firefox 19+ */
::-moz-placeholder {
    color: #CCCCCC; opacity: 1; }
/* IE 10+ */
:-ms-input-placeholder {
    color: #CCCCCC; }
.small {
	font-size: 0.75rem;
	display: inline-block;
	margin-left: 2px;
	color: #888888;
}
.btn_submit {
	display: block;
	width: 100%;
	max-width: 400px;
	height: auto;
	margin: 0px auto;
	margin-top: 60px;
	padding: 20px;
    background: #000000;
	text-align: center;
	font-size: 1rem;
	color: #FFFFFF;
	border: 2px solid #000000;
	transition: 0.3s;
	cursor: pointer;
}
.btn_submit:hover {
	background: #FFFFFF;
	text-decoration: none;
	border: 2px solid #000000;
	color: #000000;
}
.send_text {
	text-align: center;
	margin-top: 60px;
}

.thanks_inner {
	width: 100%;
	max-width: 640px;
	margin: 0px auto;
}
.thanks_ttl {
	font-size: 1.2rem;
	margin-bottom: 80px;
	text-align: center;
}
.thanks_text a {
	text-decoration: underline;
	cursor: pointer;
}
.thanks_inner .btn {
	margin-top: 100px;
}




/**********************************
			play
**********************************/

.theme {
	width: 100%;
	max-width: 640px;
	margin: 0px auto;
	margin-bottom: 50px;
	padding: 30px;
	text-align: center;
	border-top: 1px solid #DDDDDD;
	border-bottom: 1px solid #DDDDDD;
}
.theme_ttl {
	font-size: 1.75rem;
	font-weight: 900;
}
.theme_sub {
	font-size: 1.2rem;
	font-weight: 900;
	margin-top: 15px;
}
.play {
	position: relative;
	width: 100%;
	max-width: 640px;
	margin: 0px auto;
	text-align: center;
}
.rule_text {
	margin-bottom: 20px;
}
.visual:hover ,
.control:hover {
	cursor: pointer;
}
.play_text {
	position: absolute;
	opacity: 0;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	font-size: 1.2rem;
	font-family: "Montserrat";
	font-weight: 500;
}
.play.last .play_text {
	opacity: 1;
	transition: 0.3s;
}
.play_screen {
	opacity: 1;
	transition: 0.3s;
}
.play.last .play_screen {
	opacity: 0;
	transition: 0.3s;
}
.visual {
	width: 100%;
}
.visual img {
	width: 100%;
	height: auto;
}
.control #stop {
	width: 100%;
	max-width: 240px;
	margin: 0px auto;
	background: #000000;
	border: 2px solid #000000;
	color: #FFFFFF;
	padding: 12px;
	font-family: "Montserrat";
	font-size: 1.2rem;
	margin-top: 30px;
}
.control #stop:hover {
	background: #FFFFFF;
	color: #000000;
	border: 2px solid #000000;
	transition: 0.3s;
}
.control #start a {
	display: block;
	width: 100%;
	max-width: 240px;
	margin: 0px auto;
	background: #000000;
	border: 2px solid #000000;
	color: #FFFFFF;
	padding: 12px;
	font-family: "Montserrat";
	font-size: 1.2rem;
	margin-top: 30px;
	text-decoration: none;
}
.control #start a:hover {
	background: #FFFFFF;
	color: #000000;
	border: 2px solid #000000;
	transition: 0.3s;
}



/**********************************
			result
**********************************/

.result {
	width: 100%;
	max-width: 640px;
	margin: 0px auto;
	margin-bottom: 50px;
	padding: 30px;
}
.result_choice_ttl {
	font-size: 1rem;
	font-weight: 900;
	text-align: center;
	margin-bottom: 30px;
}

.result_image img {
	display: block;
	width: 100%;
	max-width: 150px;
	height: auto;
	margin: 0px auto;
}
.result_ttl {
	font-size: 1.5rem;
	font-weight: 900;
	text-align: center;
	margin-top: 20px;
	margin-bottom: 50px;
}



/**********************************
			salon
**********************************/

.salon_text {
	width: 100%;
	max-width: 840px;
	margin: 0px auto;
}

.salon_left {
	float: left;
	width: 50%;
	margin-right: 5%;
}
.salon_right {
	float: left;
	width: 45%;
    position: sticky;
    top: 100px;
}
.salon_cv_ttl {
	font-size: 1.2rem;
	margin-bottom: 30px;
	font-weight: bold;
}
.salon_cv_sub_ttl {
	font-size: 1.2rem;
	margin-top: 60px;
	margin-bottom: 30px;
	font-weight: bold;
}
.salon_cv {
	line-height: 2;
	color: #666666;
	font-weight: 300;
}
ul.number {
	list-style: disc;
	padding-left: 20px;
}
ul.number li {
	margin-bottom: 20px;
}
ul.number li:last-child {
	margin-bottom: 0;
}

.salon_info {
	width: 100%;
	max-width: 460px;
	margin: 0px auto;
	border-radius: 6px;
	padding: 10%;
	box-shadow: 0px 10px 20px rgba(0,0,0,0.2);
}
.salon_manage {
	font-size: 0.8rem;
	color: #888888;
	text-align: center;
}
.salon_manage i {
	color: #1677F2;
	font-family: "Font Awesome 5 Brands";
}
.salon_manage_ttl {
	margin-top: 40px;
	margin-bottom: 10px;
}
.salon_manage_info {
	font-size: 0.8rem;
	margin-bottom: 40px;
}
.salon_info_ttl {
	font-size: 2rem;
	text-align: center;
	margin-bottom: 20px;
	font-weight: 300;
}
.salon_info_ttl .salon_small {
	font-size: 1.2rem;
	color: #888888;
}
.salon_btn input {
	display: block;
	width: 100%;
	max-width: 320px;
	height: auto;
	margin: 0px auto;
}
.salon_btn input:hover ,
.salon_cancel_btn img:hover {
	opacity: 0.6;
	transition: 0.3s;
}
.salon_cancel_btn img {
	display: block;
	width: 100%;
	max-width: 180px;
	height: auto;
	margin: 0px auto;
}


/**********************************
			tokusyo
**********************************/

table.tokusyo {
    width: 100%;
    margin: 0 auto;
    border-collapse: collapse;
}
table.tokusyo th {
	display: block;
	width: 100%;
	text-align: left;	
	color: #7685bd;
	font-size: 0.8rem;
}
table.tokusyo td {
	display: block;
	width: 100%;
	padding: 15px;
	text-align: left;	
	position: relative;
	font-size: 0.8rem;
}

@media screen and (max-width:768px){

	table.tokusyo {
		width: 100%;
		margin: 0 auto;
		border-collapse: collapse;
	}
	table.tokusyo th {
		display: block;
		width: 100%;
		text-align: left;	
		color: #7685bd;
		font-size: 0.8rem;
	}
	table.tokusyo td {
		display: block;
		width: 100%;
		padding: 15px;
		text-align: left;	
		position: relative;
		font-size: 0.8rem;
	}
	
}


/**********************************
		1000人感謝企画
**********************************/
.prepad {
	padding: 0 20px!important;
}
table.present1000 {
	display: table;
	width: 100%;
	max-width: 520px;
	margin: 60px auto 0;
	text-align: left;
	border: 1px solid #DDDDDD;
	border-collapse: collapse;
}
table.present1000 th,
table.present1000 td {
	border: 1px solid #DDDDDD;
	padding: 12px;
}