@charset "utf-8";
/*---------------------------------------------------------------------
Base Setting
---------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;700&display=swap');

* {
	-webkit-appearance: none;
	-webkit-tap-highlight-color: transparent;
	border-radius: 0;
}
html {
	height: 100%;
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
}
body {
	background: #fff;
	position: relative;
	font: 400 16px/24px "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", Osaka, sans-serif;
	color: #333;
	-webkit-text-size-adjust: none;
	opacity: 0;
}
body.ready {
	opacity: 1;
}
img {
	vertical-align: bottom;
}
a {
	color: #333;
	text-decoration: underline;
	transition: .5s ease;
}
a:hover {
	color: #746d8e;
}
strong {
	font-weight: bold !important;
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}
.clear {
	clear: both;
}
.cf::before,
.cf::after,
.wf::before,
.wf::after,
ul::before,
ul::after,
ol::before,
ol::after,
section::before,
section::after {
	content: "";
	display: block;
	overflow: hidden;
}
.cf::after,
.wf::after,
ul::after,
ol::after,
section::after {
	clear: both;
}
.cf,
.wf,
ul,
ol,
section {
	zoom: 1;
}
.wf {
	margin-right: auto;
	margin-left: auto;
	width: 1000px;
	position: relative;
}
.hd {
	border: none !important;
	background: none !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 0 !important;
	height: 0 !important;
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	text-indent: 120%;
	overflow: hidden;
	white-space: nowrap;
	font-size: 0 !important;
	line-height: 0 !important;
}
.spbr {
	display: none;
}

/* Coomon
--------------------------------------------------------------------------------------------------------- */
/* Content */
article {
	margin: 0 auto;
	min-width: 1120px;
}
p.note,
div.note,
ul.note li {
	margin-left: 1em;
	text-indent: -1em;
	font-size: 14px;
	line-height: 20px;
}
ul.note {
	margin-top: 12px;
}
p.note::before,
div.note::before,
ul.note li:before {
	content: "※";
}
ul.note li + li {
	margin-top: 10px;
}

/* Pagetop Link */
.pagetop {
	width: 50px;
	height: 50px;
	display: none;
	position: fixed;
	right: 60px;
	bottom: 40px;
	z-index: 1000;
	transform: translate3d(0,0,0);
}
.pagetop a {
	background: rgba(255,255,255,.6) url(../images/ico_pagetop.png) 50% 50% no-repeat;
	width: 50px;
	height: 50px;
	display: block;
	text-indent: 120%;
	overflow: hidden;
	white-space: nowrap;
	transform: translate3d(0,0,0);
}
header nav a:hover,
footer a:hover,
.pagetop a:hover {
	opacity: .6;
}

/* Footer */
footer {
	border-top: 1px solid #cdcdcd;
	padding: 100px 0;
	text-align: center;
}
footer small {
	display: block;
	font-size: 12px;
	line-height: 1;
}

/* Home
--------------------------------------------------------------------------------------------------------- */
/* Alert */
body#home .alert {
	background: #e5004f;
	padding: 13px 0;
	text-align: center;
	font-size: 18px;
	line-height: 24px;
	color: #fff;
}
body#home .alert a {
	background: url(../images/ico_alert.png) 0 0 no-repeat;
	padding: 0 0 0 32px;
	display: inline-block;
	color: #fff;
	text-decoration: none;
	transition: none;
}
body#home .alert a:hover {
	color: #fff !important;
	text-decoration: underline;
}

/* Header */
body#home header {
	margin-bottom: 100px;
	text-align: center;
}
body#home header::before {
	background: #753421 url(../images/header_img_main.jpg) 50% 0 no-repeat;
	margin: 0 0 80px;
	height: 930px;
	display: block;
	content: "";
}
body#home header h1 span {
	display: block;
}
body#home header h1 .logo {
	background: url(../images/header_logo.png) 50% 0 no-repeat;
	background-size: contain;
	margin: 0 0 60px;
	height: 163px;
	text-indent: 120%;
	overflow: hidden;
	white-space: nowrap;
}
body#home header h1 .title {
	border-radius: 30px;
	border: 1px solid #d0b8a8;
	padding: 13px 0 13px 3px;
	font-size: 32px;
	line-height: 1;
	color: #8a4e26;
	letter-spacing: 3px;
}
body#home header p {
	margin: 47px 0 70px;
	font-size: 18px;
	line-height: 40px;
}
body#home header ul {
	margin: 0 auto;
	width: 550px;
}
body#home header li {
	float: left;
}
body#home header li:nth-of-type(even) {
	margin-left: 30px;
}
body#home header li:nth-of-type(n+3) {
	margin-top: 35px;
}
body#home header li:nth-of-type(3) {
	clear: left;
}
body#home header li img {
	margin: 0 auto 15px;
	display: block;
}

/* Content */
body#home article > section {
	padding: 100px 0;
}
body#home h2 {
	background-position: 50% 0;
	background-repeat: no-repeat;
	margin: 0 0 80px;
	padding: 105px 0 0;
	text-align: center;
	font-size: 18px;
	line-height: 1;
	color: #000;
}

/* Footer */
body#home footer {
	padding: 100px 0 120px;
}
body#home footer .victor img {
	width: 204px;
	height: auto;
}
body#home footer small {
	margin: 40px 0 0;
	clear: both;
}

/* Event */
body#home #event {
	background: linear-gradient(#faf7f2, #fff);
}
body#home #event h2 {
	background-image: url(../images/event_ttl.png);
	padding: 0;
	height: 66px;
	text-indent: 120%;
	overflow: hidden;
	white-space: nowrap;
}
body#home #event section {
	border-radius: 20px;
	border: 1px solid #d0b8a8;
	background: #fff;
	margin: 110px auto 0;
	padding: 0 79px 75px;
	width: 1000px;
	box-sizing: border-box;
}
body#home #event h3 {
	border-radius: 50px;
	background: #000;
	margin: -30px auto 60px;
	padding: 14px 0 14px 3px;
	width: 697px;
	text-align: center;
	font-size: 32px;
	line-height: 1;
	color: #fff;
	letter-spacing: 3px;
}
body#home #event h4 {
	margin: 45px 0 15px;
	font-size: 22px;
	line-height: 1;
	color: #8a4e26;
}
body#home #event p strong {
	margin: 5px 0 0;
	display: inline-block;
	font-size: 18px;
	line-height: 34px;
}
body#home #event section:first-of-type p strong {
	margin-bottom: 20px;
}
body#home #event section ol {
	margin: 0 0 27px;
	height: 99px;
	font-weight: 700;
	font-size: 18px;
	line-height: 1;
}
body#home #event section ol li {
	margin-top: 15px;
}
body#home #event section ol li:nth-of-type(n+4) {
	margin-left: 510px;
}
body#home #event section ol li:nth-of-type(4) {
	margin-top: -84px;
}
body#home #event section ol + p,
body#home #event section ol + p + p {
	font-size: 14px;
	line-height: 20px;
}
body#home #event section ul.schedule {
	margin-left: -10px;
}
body#home #event section ul.schedule li + li {
	margin-top: 10px;
}

/* Entry */
body#home #entry {
	background: #f0ede5;
	text-align: center;
}
body#home #entry h2 {
	background-image: url(../images/entry_ttl.png);
	margin-bottom: 57px;
}
body#home #entry h2 + .note {
	margin-bottom: 50px;
	font-size: 16px;
}
body#home #entry h2 + .note + p {
	line-height: 30px;
}
body#home #entry form {
	margin: 32px 0 0;
	position: relative;
}
body#home #entry input {
	font: normal 30px/30px "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", Osaka, sans-serif;
}
body#home #entry input[type="text"] {
	border-radius: 10px;
	border: 1px solid #cdcdcd;
	background: #fff;
	padding: 7px 40px;
	width: 520px;
	box-sizing: border-box;
	color: #333;
	outline: none;
}
body#home #entry input[type="text"][disabled] {
	border-color: #cdcdcd !important;
	background-color: #fff !important;
	opacity: 1 !important;
}
body#home #entry .serialCode + .serialCode {
	margin: 20px 0 0;
}
body#home #entry input[type="text"]::placeholder {
	text-align: center;
	position: relative;
	top: -6px;
	font-size: 18px;
	color: #cdcdcd;
}
body#home #entry .error {
	background: #e5004f url(../images/ico_error.png) 15px 5px no-repeat;
	padding: 3px 3px 3px 41px;
	position: absolute;
	bottom: 80px;
	left: 50%;
	white-space: nowrap;
	transform: translate(-50%, 0);
	color: #fff;
}
body#home #entry input[type="submit"] {
	border: 0;
	background: #000;
	margin: 60px auto 0;
	padding: 15px 0;
	width: 300px;
	font-size: 20px;
	color: #fff;
	outline: none;
	transition: .5s ease;
}
body#home #entry input[type="submit"]:hover {
	opacity: .6;
	cursor: pointer;
}
body#home #entry .btnClosed {
	border: 1px solid #cdcdcd;
	background: rgba(255,255,255,.5);
	margin: 60px auto 0;
	padding: 17px 0;
	width: 298px;
	font-size: 20px;
}

/* Caution */
body#home #caution {
	padding-top: 100px;
	font-size: 14px;
	line-height: 20px;
}
body#home #caution h2 {
	background-image: url(../images/caution_ttl.png);
}
body#home #caution h3 {
	border-bottom: 1px solid #cdcdcd;
	margin: 55px 0 25px;
	padding: 0 0 30px;
	font-size: 18px;
	line-height: 1;
	color: #000;
}
body#home #caution h4 {
	margin: 30px 0 10px;
	font-weight: bold;
	color: #000;
}
body#home #caution h4::before {
	content: "■";
}
body#home #caution h5 {
	margin: 30px 0 10px;
	font-weight: bold;
	color: #000;
}
body#home #caution h3 + h5,
body#home #caution h4 + h5 {
	margin-top: 0;
}
body#home #caution h6 {
	margin: 10px 0;
}
body#home #caution p,
body#home #caution .note,
body#home #caution ol.list_n,
body#home #caution ol li + li {
	margin-top: 10px;
}
body#home #caution ol.list_a li {
	margin-left: 2em;
	text-indent: -2em;
}
body#home #caution ol.list_n {
	counter-reset: no;
}
body#home #caution ol.list_n li::before {
	content: counter(no) ")";
	counter-increment: no;
}

/* Form
--------------------------------------------------------------------------------------------------------- */
body#form header {
	padding: 100px 0 0;
}
body#form main {
	padding: 0 0 100px;
}
body#form,
body#form label,
body#form input,
body#form textarea,
body#form select {
	font: normal 18px/24px "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", Osaka, sans-serif;
	color: #333;
	outline: none;
}
body#form article {
	width: 1000px;
	min-width: 1000px;
}
body#form header nav {
	padding: 70px 0 80px;
}
body#form header nav a {
	margin: 0 auto;
}
body#form h1 {
	border-radius: 30px;
	background: #000;
	margin: 0 0 54px;
	padding: 14px 0 14px 3px;
	text-align: center;
	font-size: 32px;
	line-height: 1;
	color: #fff;
	letter-spacing: 3px;
}
body#form .alert {
	background: url(../images/ico_alert_r.png) 0 0 no-repeat;
	margin: -36px 0 12px;
	padding: 0 0 0 30px;
	line-height: 24px;
	color: #e5004f;
}
body#form form > p span {
	color: #e5004f;
}
body#form h2 {
	margin: 55px 0 30px;
	font-size: 20px;
}
body#form dt {
	background: #f0ede5;
	margin: 40px 0 30px;
	padding: 13px 20px;
	font-size: 20px;
}
body#form dt span {
	vertical-align: super;
	font-size: 14px;
	line-height: 1;
	color: #e5004f;
}
body#form.confirm dt {
	margin-bottom: 35px;
}
body#form dd + dt {
	margin-top: 60px;
}
body#form:not(.confirm) dd {
	position: relative;
	font-size: 0;
	line-height: 1;
}
body#form dd > span {
	margin-left: 20px;
	vertical-align: bottom;
	display: inline-block;
	font-size: 16px;
	line-height: 20px;
}
body#form dd .error {
	position: absolute;
	bottom: -35px;
	left: 0;
	font-size: 18px;
	line-height: 1;
	color: #e5004f;
}
body#form input {
	outline: none;
}
body#form input[type="text"],
body#form input[type="email"],
body#form input[type="tel"],
body#form textarea,
body#form .pref {
	border-radius: 10px;
	border: 1px solid #cdcdcd;
	padding: 12px 20px;
	width: 458px;
}
body#form dd.name input[type="text"] {
	width: 208px;
}
body#form dd.name input[type="text"] + input[type="text"] {
	margin-left: 20px;
}
body#form input[type="radio"] {
	-webkit-appearance: radio;
}
body#form textarea {
	width: 958px;
	height: 24px;
	resize: none;
}
body#form input[name="old"] {
	width: 58px;
}
body#form input[name="postal_code"],
body#form input[type="tel"] {
	width: 208px;
}
body#form .pref {
	background: #fff;
	padding: 0;
	width: 248px;
	overflow: hidden;
	position: relative;
}
body#form .pref select {
	border: none;
	background: transparent;
	background-image: none;
	padding: 12px 60px 12px 0;
	width: 100%;
	text-align: center;
	text-indent: 0.01px;
	text-overflow: ellipsis;
	box-shadow: none;
	cursor: pointer;
	font-size: 16px;
	color: #333;
	-webkit-appearance: none;
	appearance: none;
}
body#form .pref select::-ms-expand {
	display: none;
}
body#form .pref::before {
	background: url(../images/ico_select.png) 0 0 no-repeat;
	width: 10px;
	height: 10px;
	position: absolute;
	top: 20px;
	right: 24px;
	content: "";
	pointer-events: none;
}
body#form .pref::after {
	background: #cdcdcd;
	width: 1px;
	height: 30px;
	position: absolute;
	top: 10px;
	right: 60px;
	content: "";
}
body#form label {
	display: block;
	cursor: pointer;
}
body#form label + label {
	margin-top: 20px;
}
body#form label span {
	border-radius: 50%;
	background: #cdcdcd;
	margin-right: 15px;
	width: 24px;
	height: 24px;
	float: left;
	position: relative;
	cursor: pointer;
}
body#form label span::after {
	border-radius: 50%;
	border: 7px solid #8a4e26;
	background: #fff;
	width: 10px;
	height: 10px;
	position: absolute;
	top: 0;
	left: 0;
	content: "";
	transform: scale(0);
	transition: all .15s;
	visible: hidden;
}
body#form label span.checked {
	background: none;
}
body#form label span.checked::after {
	transform: scale(1);
	visible: visible;
}
body#form .btns {
	margin: 100px 0 0;
	text-align: center;
}
body#form .btns input[type="submit"],
body#form .btns a {
	border: 0;
	background: #000;
	padding: 18px 0;
	width: 300px;
	display: inline-block;
	font-size: 20px;
	color: #fff;
	text-decoration: none;
}
body#form .btns input[type="submit"] + input[type="submit"] {
	margin-left: 40px;
}
body#form .btns input:hover {
	cursor: pointer;
	transition: all .3s;
}
body#form .btns input[type="submit"]:hover,
body#form .btns a:hover {
	opacity: .6;
}

/* Complete
--------------------------------------------------------------------------------------------------------- */
body#form.complete main {
	text-align: center;
}
body#form.complete h1 {
	margin-bottom: 160px;
}
body#form.complete p {
	font-size: 26px;
}
body#form.complete h2 {
	margin: 100px 0 28px;
	font-size: 24px;
	color: #000;
}
body#form.complete h2 + p,
body#form.complete h2 + p + p {
	font-size: 18px;
	line-height: 40px;
}
body#form.complete h2 + p + p {
	margin-top: 17px;
}
body#form.complete .btns {
	margin: 100px 0 0;
}
