@charset "UTF-8";

/* :::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 Reset
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,form,fieldset,input,textarea,p,blockquote,th,td {
	margin: 0;
	padding: 0;
}
address,em {
	font-style: normal;
}
strong,th {
	font-weight: normal;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
hr,legend {
	display: none;
}
h1,h2,h3,h4,h5,h6 {
	font-size: 100%;
}
img,fieldset {
	border: 0;
}
li {
	list-style-type: none;
}
input[type=text], textarea, input[type=tel] {
	-webkit-tap-highlight-color: rgba(0,0,0,0);
}
input[type="submit"], input[type="button"], input[type="reset"] {
	border-radius: 0;
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	appearance: button;
	border: none;
	box-sizing: border-box;
	cursor: pointer;
}
input[type="submit"]::-webkit-search-decoration, input[type="button"]::-webkit-search-decoration, input[type="reset"]::-webkit-search-decoration {
	display: none;
}
input[type="submit"]:focus, input[type="button"]:focus, input[type="reset"]:focus {
	outline-offset: -2px;
}

/* :::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 Common
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */

* {
	box-sizing: border-box;
}
html {
	font-size: 62.5%;
}
body {
	font-family: 'Noto Sans Jp', sans-serif;
	font-size: 1.4em;
	font-weight: 400;
	position: relative;
	color: #231815;
	background: #fff;
}
body.completed, body.unregistered {
	height: 100vh;
	overflow-y: hidden;
	pointer-events: none;
}
img {
	width: 100%;
	display: block;
}
a, a:hover {
	outline: none;
	color: #fff;
}
p b {
	display: block;
}
b {
	font-weight: 700;
}
a[href^="tel:"] {
	pointer-events: none;
}
.container {
	width: 560px;
	height: auto;
	margin: 0 auto;
	position: relative;
	min-height: 100vh;
}
.content {
	width: 560px;
	margin: 0 auto;
	padding: 0;
}
body.completed .container,
body.unregistered .container {
	height: 100vh;
	overflow-y: hidden;
	pointer-events: none;
}
.pc-hidden {
	display: none;
}
@media screen and (max-width: 599px) {
	body {
		background: #fff;
	}
	.container {
		width: 100vw;
		overflow: hidden;
	}
	.content {
		width: 100%;
		margin: 0 auto;
		padding: 0;
	}
	a[href^="tel:"] {
		pointer-events: auto;
	}
	.pc-hidden {
		display: inherit;
	}
	.sp-hidden {
		display: none;
	}
}

/* :::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 Contents
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */

.container {
	background: url("../images/bg.png") center top repeat-y;
	background-size: 100vw auto;
	background-color: transparent;
	position: relative;
}
.container::after {
	content: '';
	width: 100%;
	height: 80%;
	display: block;
	background-size: 100% auto;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
}
.coupon_img {
	margin: 0;
	background: #fff;
}
.coupon_img.sub {
	padding: 16px 0;
}
.coupon_text {
	margin: 0;
	padding: 8px 0 0;
	text-align: center;
}
.coupon_text p em {
	font-size: 24px;
	font-weight: 800;
}
.coupon_text p {
	font-size: 18px;
	font-weight: 800;
	line-height: 1.8;
}
.coupon_notes {
	width: calc(100% - 48px);
	margin: 16px auto 0;
	background: #fff;
	padding: 16px 16px 4px;
	text-align: justify;
}
.coupon_notes p {
	margin: 0 0 8px;
}
.coupon_notes ul {
	margin: 0 0 16px;
}
.coupon_notes li {
	text-indent: -1em;
	padding-left: 1em;
	line-height: 1.6;
	margin-bottom: 8px;
}
.footer {
	width: 560px;
	background: #231815;
	padding: 8px 0;
	color: #fff;
	line-height: 1.6;
	text-align: center;
	margin: 0;
}
.coupon-modal {
	width: 100%;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 50%;
	background-color: rgba(0,0,0,.8);
	z-index: 100;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	pointer-events: none;
	transform: translateX(-50%);
	overscroll-behavior-y: contain;
}
.coupon-modal img {
	width: 50%;
	height: auto;
}
.coupon-modal p {
	padding: 32px 0 0;
	z-index: 200;
	text-align: center;
	color: #fff;
	line-height: 1.6;
}
.coupon-modal a {
	color: #fff;
	text-decoration: underline;
	pointer-events: auto;
}
.confirm-modal {
	width: 100%;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	background-color: rgba(0,0,0,.7);
	z-index: 100;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
    opacity: 0;
    visibility: hidden;
    transition: all .3s ease-out;
}
.confirm-label {
	width: 64%;
	height: 56px;
	background: #e41f26;
	border-radius: 4px;
	margin: 32px auto;
	text-align: center;
	font-size: 18px;
	font-weight: 700;
	color: #fff;
    padding: 0 0 2px;
	display: flex;
	justify-content: center;
	align-items: center;
}
.confirm-label:hover {
	cursor: pointer;
}
#confirm-btn:checked ~ .confirm-modal {
    transition: all .3s ease-out;
    visibility: visible;
    opacity: 1;
}
.alert-box {
	width: 480px;
	background: #fff;
	border-radius: 16px;
	padding: 16px;
}
.alert-box p {
	text-align: justify;
	font-weight: 400;
	line-height: 1.6;
	text-indent: -1em;
	padding: 0 0 0 1em;
}
.coupon_modal.fraud {
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	background: #000;
	padding: 64px 0;
	margin-top: -16px;
}
.coupon_modal.fraud span.fraud {
	font-size: 64px;
	color: #FFEB3B;
	display: block;
	margin: -72px auto 16px;
}
.alert-buttons {
	width: 100%;
	height: auto;
	font-weight: 500;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	padding: 12px 2px 0 0;
	color: #1976D2;
}
.alert-buttons label {     
	padding: 0 1.6rem 0 0;
}
input.alert-submit {
	color: #1976D2;
	font-weight: 500;
	font-size: 14px;
	background: none;
}
input[type="submit"] {
	display: block;
}
input[type="radio"] {
	display: none;
}

@media screen and (max-width: 599px) {
	.confirm-label {
		width: 64vw;
		height: 16vw;
		margin: 32px auto;
	}
	.confirm-modal {
		width: 100vw;
		transform: translateX(0);
	}
	.alert-box {
			width: 84vw;
	}
	.footer {
		width: 100vw;
	}	
}