@charset "utf-8";



/* main */

main {
    width:78%;
    margin:0 auto;
    position:relative;
}
main h2 {
    margin:-50px auto 0;
    font-size:1.2rem !important;
    text-align:center;
    line-height:1.5;
    position:relative;
    z-index:100;
}
main h2 span {
    display:block;
    font-family:"Oswald", sans-serif;
    font-size:5rem;
    letter-spacing:0;
}

@media only screen and (max-width:640px){

    main {width:100% !important;}
    main h2 {margin:-40px auto 0;}
    main h2 span {font-size:4rem;}
}



/* entry */

form {
    width:100%;
    max-width:700px;
    margin:0 auto 100px;
}
form dl {
    margin:0 auto 30px;
    display:flex; flex-flow:row wrap; justify-content:space-between; align-content:flex-start; align-items:flex-start;
}
form dl dt {
    width:20%;
    padding:0 0 0 55px;
    font-size:1rem;
    position:relative;
}
form dl dt:after {
    content: "任意";
    padding: 0 8px;
    color: #fff;
    font-size:0.85rem;
    font-weight:normal;
    line-height:1.6;
    position:absolute; top:4px; left:0;
    border-radius:3px;
    background:#787878;
}
form dl.hissu dt:after {
    content: "必須";
    background:#f04169;
}

form dl dd {width:70%;}

button, [type="text"], [type="postal-code"], select, option, textarea {
    width:98%;
    margin: 0;
    padding:10px 0 10px 2%;
    font-size:1rem;
    line-height:1.5;
    border:solid 1px #ddd;
    border-radius:3px;
    background:#fff;
}

form textarea {
    min-height:200px;
    border-radius:3px 3px 0 3px;
}

form label {
    padding:5px 0 0 50px;
    display:block;
    position:relative;
    cursor:pointer;
}

select {
    width:99.5%;
    margin-bottom:10px;
    -webkit-appearance: none;
    appearance: none;
    padding-left:10px;
}
select {
    background-image:url("../img/arrow-bottom.png");
    background-position: right 10px center;
    background-repeat: no-repeat;
    background-size:25px;
}

.select_wrapper {position:relative;}
.select_wrapper select {width:100%; -webkit-appearance:none; appearance:none;}
.select_wrapper::after {
    content: "";
    width: 10px;
    height:10px;
    position:absolute; top:10px; right:15px;
    border-right: 2px solid #787878;
    border-bottom:2px solid #787878;
    transform:rotate(45deg);
    pointer-events:none;
}

form input[name="フリガナ"] {margin-top:10px;}

.h-adr {display:flex; flex-flow:row wrap; justify-content:flex-start; align-content:flex-start; align-items:flex-start;}
.h-adr label {padding:0;}
input.p-postal-code {width:60px; margin:0 5px;}
input.p-region {width:90px;}
input.p-locality {margin:10px 0;}
.h-adr p {margin-top:10px; font-size:0.85rem; line-height:1.5;}

.back-advance {
    width:100%;
    margin:50px auto 0;
    display:flex; flex-flow:row wrap; justify-content:center; align-content:center; align-items:center;
}
.back-advance a ,
.back-advance input[type="submit"],
.back-advance input[type="button"] {
    width:250px;
    margin: 0 5px;
    padding:15px 0;
    display: block;
    color: #fff;
    text-align:center;
    border-radius:5px;
    transition: .3s;
    cursor: pointer;
}
.back-advance a {background:#676460;}

.back-advance input[type="submit"],
.back-advance input[type="button"] {background:#f04169;}
.back-advance input[type="submit"]:hover,
.back-advance input[type="button"]:hover {opacity: .6;}


form label {
    padding: 5px 0 0 50px;
    display: block;
    position: relative;
    cursor:pointer;
}

.radioBox {
    display:flex; flex-flow:row wrap; justify-content:flex-start; align-content:center; align-items:center;
}

form [type="radio"] ,
form [type="checkbox"] {
    position:absolute; top:20%; left:0;
	cursor: pointer;
}
.radio input {
    position:relative;
}
form [type="radio"]:before {
	position: absolute;
	z-index: 1;
	top:-0.05rem;
	left:0.98rem;
	width: 18px;
	height:18px;
	content: '';
	-webkit-transition: -webkit-transform 0.4s cubic-bezier(0.45, 1.8, 0.5, 0.75);
	        transition:         transform 0.4s cubic-bezier(0.45, 1.8, 0.5, 0.75);
	-webkit-transform: scale(0, 0);
	        transform: scale(0, 0);
	border-radius: 50%;
	background: #f04169;
}
form [type="radio"]:checked:before {
	-webkit-transform: scale(1, 1);
	        transform: scale(1, 1);
}
form [type="radio"]:after {
	position: absolute;
	top: -0.3rem;
	left: 10px;
	width: 22px;
	height:22px;
	content: '';
	border:solid 2px #e1e1e1;
	border-radius: 50%;
	background:#e1e1e1;
}


@media only screen and (max-width:640px){

    section {width:80%;}
    
    form dl {margin:0 auto 30px;}
    form dl dt {width:80%; padding:0 0 10px 56px;}
    form dl dd {width:100%;}
    
    .back-advance {margin:30px auto 0;}
    .back-advance a ,
    .back-advance input[type="submit"],
    .back-advance input[type="button"] {
        width:80%;
        margin: 10px 0;
        padding:10px 0;
    }
}



/* 確認画面 */

.kakunin dl.hissu dt {padding-left:0;}
.kakunin dl.hissu dt::after {display:none;}



/* 完了画面 */

.thankyou p {text-align:center;}
.thankyou a {
    width:280px;
    margin: 30px auto 100px;
    padding:10px 0;
    display: block;
    color: #fff;
    text-align: center;
    border-radius: 3px;
    transition: .3s;
    background:#f04169;
}



#wait {
	display: none;
	position: fixed;
	z-index: 999999;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 100%;
	margin: 0;
	background-color: rgba(0, 0, 0, 0.6);
	padding-top: 0px;
	text-align: center;
}
 
#loading_icon {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
}

.swal-button {
  padding: 6px 10px;
  border-radius: 2px;
  background-color: #999999;
  font-size: 14px;
  border: 1px solid #3e549a;
  text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.3);
}

.swal2-icon-content,.swal2-html-container {
  color:#9de0f6;
  letter-spacing:0;
  font-family: initial;
}

#form_confirm {
	cursor: pointer;
}

#wait {
	display: none;
	position: fixed;
	z-index: 999999;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.6);
	text-align: center;
}
 
#loading_icon {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
}

.loading_text {
	color: #ffffff;
	line-height: 18px;
}

.cf-turnstile {
	text-align: center;
	margin: 0 auto;
}

#form_submit {
	cursor: not-allowed;
}
