@charset "utf-8";
/* FORM CSS
-------------------------------- */
/* tabnav */
.tabnav {
	display: table;
	width: 90%;
	margin: 0 auto;
	box-sizing: border-box;
	table-layout: fixed;
}

.tabnav .tabnav_s {
	display: table-cell;
	vertical-align: middle;
}

.tabnav .tabnav_s span,
.tabnav .tabnav_s a {
	display: block;
	width: 98%;
	text-align: center;
	line-height: 55px;
	font-size: 1.7rem;
}

.tabnav .tabnav_s span {
	background: #000;
	color: #fff;
}

.tabnav .tabnav_s:first-child span,
.tabnav .tabnav_s:first-child a  {
	margin-right: 2%;
}

.tabnav .tabnav_s:nth-child(2) span,
.tabnav .tabnav_s:nth-child(2) a  {
	margin-left: 2%;
}

.tabnav .tabnav_s span::after {
	}

.tabnav .tabnav_s a {
	background: rgba(0,0,0,0.07);
	transition: all 0.28s ease;
}

.tabnav .tabnav_s a:hover {
	background: rgba(0,0,0,0.5);
	color: #fff;
}

/*form styles*/
input, button, select, textarea {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    outline: none;
}

select::-ms-expand {
    display: none;
}


.area-form {
    margin: 0 auto;
	position: relative;
    box-sizing: border-box;
	position: relative;
	padding: 3em 3em 5em 3em;
	box-shadow: 0 0 15px 1px rgba(0, 0, 0, 0.15);
	background-color: #fff;
}

.l-input, 
.formitemtxtinput select {
    width: 100%;
}



@media screen and (max-width: 768px) {
	.section-form .container > .row {
		margin-right: -30px;
    	margin-left: -30px;
	}
	.tabnav {
		table-layout: auto;
		width: 95%;
	}
	.area-form {
	    padding: 2em 2em 3.5em 2em;
	}
}

@media screen and (max-width: 480px) {
	.area-form {
	    padding: 1.3em 1.3em 2.5em 1.3em;
	}
	.intro-txt {
		padding-right: 5px;
		padding-left: 5px;
	}
	#contact .sec-title .title {
		font-size: 17vw;
	}
	#contact.entry .sec-title .title {
		font-size: 13vw;
	}
}

/* Chrome, Safari */
.l-input::-webkit-input-placeholder,
.m-input::-webkit-input-placeholder,
.s-input::-webkit-input-placeholder
/*textarea::-webkit-input-placeholder*/{
  opacity: 1.0;
  -webkit-transition: all .2s;
  transition: all .2s;
  color: #cfcfcf;
}
 
/* Firefox */
.l-input::-moz-placeholder,
.m-input::-moz-placeholder,
.s-input::-moz-placeholder
/*textarea::-moz-placeholder*/{
  opacity: 1.0;
  -webkit-transition: all .2s;
  transition: all .2s;
  color: #cfcfcf;
}
 
/* Firefox 18以前 */
.l-input:-moz-placeholder,
.m-input:-moz-placeholder,
.s-input:-moz-placeholder,
/*textarea:-moz-placeholder*/{
  opacity: 1.0;
  -webkit-transition: all .2s;
  transition: all .2s;
  color: #cfcfcf;
}
 
/* IE */
.l-input:-ms-input-placeholder,
.m-input:-ms-input-placeholder,
.s-input:-ms-input-placeholder
/*textarea:-ms-input-placeholder*/{
  opacity: 1.0;
  -webkit-transition: all .2s;
  transition: all .2s;
  color: #cfcfcf;
}

/* need */
.need {
    color: #ab0000;
    font-weight: bold;
}


/* has-float-label ---------------------*/
.form-group .formitem {
    overflow: hidden;
}

.has-float-label {
  display: block;
  position: relative;
  overflow: visible !important;
}

.has-float-label .t-link {
	margin-top: 45px;
    margin-left: 40px;
	padding-left: 20px;
	position: relative;
}

.has-float-label .t-link a:before {
    content: "\f105";
	position: absolute;
	left: 0;
	top: 5px;
	font: normal normal normal 18px/1 FontAwesome;
}

.has-float-label label .m-label {
  position: absolute;
  left: 0;
  top: 20px;
  cursor: text;
  opacity: 1;
  color: #000;
  font-weight: bold;
  -webkit-transition: all .2s;
  transition: all .2s;
}

.has-float-label span.m-label {
	font-weight: bold;
}

.has-float-label.focus label span.m-label {
  font-size: 85%;
  top: 0;
}

.has-float-label.focus input {
	padding-bottom: 0.8em;
}
.has-float-label.focus .t-txt {
	padding-top: 25px;
}


.has-float-label input, 
.has-float-label select {
  font-size: inherit;
  margin-top: 2.5em;
  padding-top: 10px;
  padding-bottom: 0.5em;
  /*margin-bottom: 10px;*/
  border: 0;
  border-radius: 0;
  border-bottom: 1px solid #ededed;
  box-shadow: -999px 5px 0px #ededed;
  -webkit-transition: all .2s;
  transition: all .2s;
}

.has-float-label.focus textarea {
	padding: 0.8em 10px;
}

input::-webkit-input-placeholder, 
/*textarea::-webkit-input-placeholder,*/
input:-moz-placeholder, 
/*textarea:-moz-placeholder,*/
input::-moz-placeholder, 
/*textarea::-moz-placeholder,*/
input:-ms-input-placeholder, 
/*textarea:-ms-input-placeholder,*/
input:placeholder-shown/*,
textarea:placeholder-shown*/ {
  opacity: 1.0;
  -webkit-transition: all .2s;
  transition: all .2s;
  color: #fff;
}

.has-float-label input:placeholder-shown:not(:focus) + *, 
.has-float-label select:placeholder-shown:not(:focus) + *{
  font-size: 1.0em;
  top: .25em;
}  
.has-float-label input,
.has-float-label select {
  background-color: rgba(0,0,0,0);
}

.has-float-label input:focus, 
.has-float-label input.focused,
.has-float-label select:focus,
.has-float-label textarea:focus,
.has-float-label textarea.focused{
  outline: none;
  /*border-bottom: 3px solid #b7d32f;
  background: #FFF !important;*/
  border-bottom: 1px solid #fff;
  box-shadow: 0px 4px 0px #000;
}

#message {
	border: 1px solid #ededed;
	padding: 10px;
}

.has-float-label input:focus {
	padding-top: 1.0em;
	padding-right: 10px;
	padding-left: 10px;
	margin-top: 1.5em;
}


.has-float-label select:hover,
.has-float-label select:active {
	border-color: #000;
}



/* radio checkboc style ---------------------------- */
input[type=radio] {
  display: none;
}

.radio {
  box-sizing: border-box;
  -webkit-transition: background-color 0.2s linear;
  transition: background-color 0.2s linear;
  position: relative;
  display: block;
  margin: 0;
  padding: 12px 12px 12px 42px;
  vertical-align: middle;
  cursor: pointer;
}

.radio:hover {
  background-color: rgba(0,0,0,0.07);
}

.radio:hover:after {
  border-color: #000;
}

.radio:after {
  -webkit-transition: border-color 0.2s linear;
  transition: border-color 0.2s linear;
  position: absolute;
  margin-top: -10px;
  width: 20px;
  height: 20px;
  top: 50%;
  left: 15px;
  display: block;
  border: 2px solid #000;
  border-radius: 50%;
  content: '';
  background: rgba(255,255,255,0);
}

.radio:before {
  position: absolute;
  top: 50%;
  left: 20px;
  display: block;
  margin-top: -5px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: #000;
  content: '';
  opacity: 0;
  -webkit-transform: scale3d(0.5,0.5,1);
  transform: scale3d(0.5,0.5,1);
  -webkit-transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
  -webkit-transition-timing-function: cubic-bezier(0.2,1,0.3,1);
  transition-timing-function: cubic-bezier(0.2,1,0.3,1);
}

input[type=radio]:checked + .radio:before {
  opacity: 1;
  -webkit-transform: scale3d(1,1,1);
  transform: scale3d(1,1,1);
}

/* checkbox */
input[type="checkbox"] {
    display: none;
}

.list-check {
	position: relative;
	display: block;
    margin-bottom: 10px;
}

.list-check input[type='checkbox']{ /*height: 0; width: 0; */
	height: 50px;
    /*width: 100%;*/
    position: absolute;
    top: 0;
    left: 32px;
    width: calc(100% - 32px);
}
 
.list-check input[type='checkbox'] + label{/*ラベルのスタイリング*/
  position: relative;
  /*display: flex;*/
  display: block;
  padding: 10px 0 10px 40px;
  align-items: center;
  color: #000;
  transition: color 250ms cubic-bezier(.4,.0,.23,1);
  line-height: 1.5;
}

.list-check input[type='checkbox'] + label:hover {
	background-color: rgba(0,0,0,0.07);
	cursor: pointer;
}

.list-check input[type='checkbox'] + label > span {
    display: block;
    width: 22px;
    height: 22px;
    background: transparent;
    border: 2px solid #000;
    border-radius: 2px;
    cursor: pointer;
    transition: all 250ms cubic-bezier(.4,.0,.23,1);
    position: absolute;
    left: 10px;
}

.list-check input[type='checkbox'] + label:hover, 
.list-check input[type='checkbox']:focus + label{
  color: #000;
}
.list-check input[type='checkbox'] + label:hover > span, 
.list-check input[type='checkbox']:focus + label > span{
  background: rgba(255,255,255,.1);
}
.list-check input[type='checkbox']:checked + label > ins{ height: 100%; }
 
.list-check input[type='checkbox']:checked + label > span{/*チェックされたら起動*/
  border: 11px solid #000;
  animation: shrink-bounce 200ms cubic-bezier(.4,.0,.23,1);
}

.list-check input[type='checkbox'] + label > span:before {
  content: "";
  position: absolute;
  top: -7px;
  left: -8px;
  border-right: 3px solid #fff;
  border-bottom: 3px solid #fff;
  transform: rotate(45deg);
  transform-origin: 0% 100%;
  transform: translate3d(0,-.5em,0) rotate(45deg);
  width: 9px;
  height: 15px;
  opacity: 0;
}

.list-check input[type='checkbox']:checked + label > span:before {
  content: "";
  position: absolute;
  top: -7px;
  left: -8px;
  border-right: 3px solid #fff;
  border-bottom: 3px solid #fff;
  transform: rotate(45deg);
  transform-origin: 0% 100%;
  transform: translate3d(0,-.5em,0) rotate(45deg);
  width: 9px;
  height: 15px;
  opacity: 1;
}

@keyframes checkbox-check{/*チェックマークのアニメーション*/
  0%{
    width: 0;
    height: 0;
    border-color: #fff;
    transform: translate3d(0,0,0) rotate(45deg);
  }
  33%{
    width: 9px;/*.2em*/
    height: 0;
    transform: translate3d(0,0,0) rotate(45deg);
  }
  100%{    
    width: 9px;/*.2em*/
    height: 15px;/*.5em*/    
    border-color: #fff;
    transform: translate3d(0,-.5em,0) rotate(45deg);
  }
}


/* layout ----------------*/
.formitemradio {
	border-bottom: 1px solid #ededed;
	margin-bottom: 35px;
}

.formitemradio dt {
	font-weight: bold;
}

.formitemradio dd {
	padding-bottom: 5px;
}

.formitemradio dd .w50 {
    display: inline-block;
    width: 48%;
    box-sizing: border-box;
}

.formitemtxtarea {
	margin-bottom: 40px;
}

.formitemtxtarea dt {
	margin-bottom: 10px;
	font-weight: bold;
}

/* box-yoyaku ------------*/
.box-yoyaku {
	padding-top: 10px;
}
.box-yoyaku label select {
    min-width: 200px;
    display: block;
    padding: 10px;
    border: 1px solid #bbb;
}

.selectlabel {
	position: relative;
}

.selectlabel:after {
	display: block;
    content: "";
    position: absolute;
    right: 8px;
    top: 20px;
    box-sizing: border-box;
    width: 8px;
    height: 10px;
    border: 4px solid transparent;
    border-top: 5px solid #000;
    background-size: 20px;
    pointer-events: none;
}

/* txt-privacy ------------*/
.f_item .txt-privacy {
    height: 150px;
    padding: 20px;
    margin-bottom: 15px;
    border: 1px solid #ededed;
    overflow-y: scroll;
    text-align: left;
}

/* area-btns --------------*/
button {
	border: none !important;
        cursor: pointer;
        outline: none;
        padding: 0;
        appearance: none;
}

.btn-confirm.cm-btn:before,
.btn-reset.cm-btn:before {
	content: none;
}

.btn-reset.cm-btn.btn-default {
	background: #aaa;
}

.area-btns ul {
	display: table;
    width: auto;
    margin-left: auto;
    margin-right: auto;
}

.area-btns ul li {
	display: table-cell;
	vertical-align: middle;
	padding: 0 15px;
	text-align: center;
}

.form-group > .formitemconf {
	display: table;
	width: 100%;
    border-bottom: 1px solid rgba(0,0,0,0.07);
	padding: 23px 0;
	table-layout: auto;
}

.form-group > .formitemconf > dt,
.form-group > .formitemconf > dd {
	display: table-cell;
	vertical-align: middle;
	box-sizing: border-box;
}

.form-group > .formitemconf > dt {
	width: 270px;
    border-right: 3px solid #000;
	text-align: right;
	padding: 0 35px 0 0;
	min-height: 20px;
	
}

.form-group > .formitemconf > dd {
    padding: 0 20px 0 35px;
	word-break: break-all !important;
    word-wrap: break-word !important;	
}

.area-form > form > .form-group:last-child .formitemconf {
	margin-bottom: 30px;
}
@media screen and (max-width: 991px) {
	/* confirm */
	.form-group > .formitemconf,
	.form-group > .formitemconf > dt,
	.form-group > .formitemconf > dd {
		display: block;
		position: relative;
		box-sizing: border-box;
	}
	.form-group > .formitemconf {
		padding: 20px;
	}
	.form-group > .formitemconf > dt {
		border: none;
		margin-bottom: 5px;
		text-align: left;
		width: 100%;
	}
	
	.form-group > .formitemconf > dt::before {
		content:"";
		position: absolute;
		left: -20px;
		top: 50%;
		height: 3px;
		width: 11px;
		margin-top: -2px;
		background: #000;
	}
	.form-group > .formitemconf > dd {
		padding: 0;
	}	
}
@media screen and (max-width: 850px) {
	.btn-reset.cm-btn.btn-default {
		width: 160px;
	}

}


@media screen and (max-width: 768px) {
	.formitemzip .has-float-label:nth-child(2) {
		width: 100%;
	}
	.formitemzip .has-float-label:nth-child(2) .t-link {
		margin-top: 0;
    	margin-left: 0;
	}
	.area-btns ul {
		display: block;
	    text-align: center;
	}
	.area-btns ul li {
		display: inline-block;
		padding: 0 5px;
	}
	.btn-confirm.cm-btn.btn-default {
		width: 240px;
	}
	.f_item .txt-privacy::-webkit-scrollbar {
		background:#ccc;
  		width:10px;
	}
	.f_item .txt-privacy::-webkit-scrollbar-thumb {
	  background:#fff;
	}

	
}

@media screen and (max-width: 580px) {
	.area-btns ul li {
		display: block;
		padding: 0 5px;
	}
	
	.btn-reset.cm-btn.btn-default {
		margin-bottom: 10px;
	}
	.btn-reset.cm-btn.btn-default,
	.btn-confirm.cm-btn.btn-default {
		width: 100%;
	}	
}

@media screen and (max-width: 480px) {
	.f_item .txt-privacy {
	    padding: 0.8em;
	}
	
	.form-group > .formitemconf {
		padding: 20px 10px 20px 20px;
	}	
}


/* -------------------------------------- 
	reCAPTCHA style
 -------------------------------------- */
.grecaptcha-badge {
	bottom: 74px !important; /* js制御 */
}
