/******************* 공통 *******************/
.sub-section-in {
	width: 1400px;
	margin: auto;
	padding: 120px 0;
}
/******************* 공통 *******************/


/******************* festival-01 *******************/
#festival-01 .sub-top {
	background: url("../img/sub/subtop_04.png") no-repeat center / cover;
}
#festival-02.top .festival-wrap {
	width: 80%;
	margin: auto;
	text-align: center;
}
#festival-02.top .sub-section-in > h1 {
	display: block;
	margin-bottom: 50px;
	font-size: 34px;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    letter-spacing: -0.5px;
    word-break: keep-all;
}
#festival-02.top .img-wrap {
	position: relative;
	width: 80%;
	margin: 20px auto 0;
	border: 1px solid #f9f9f9;
}
/*#festival-02.top .img-wrap:before {
	display: block;
	content: "추후 공지 예정입니다.";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	font-size: 20px;
	font-weight: 800;
	opacity: 0.35;
}*/
#festival-02 .txt-wrap .explain {
    margin: 40px 0;
}
#festival-02 .txt-wrap .explain > strong {
    display: block;
    margin-bottom: 10px;
    font-size: 18px;
    color: #05a1f2;
	text-align: left;
}
#festival-02 .txt-wrap .explain > span {
	display: block;
    font-size: 22px;
    word-break: keep-all;
	text-align: left;
}
#festival-02 .txt-wrap .explain table {
	width: 100%;
    display: table;
    border-collapse: separate;
    box-sizing: border-box;
    text-indent: initial;
    unicode-bidi: isolate;
    border-spacing: 2px;
    border-color: gray;
}
#festival-02 .txt-wrap .explain table th {
    padding: 12px 20px;
    font-size: 18px;
    text-align: center;
    background: #f8f8f8;
    border-top: 1px solid #000;
}
#festival-02 .txt-wrap .explain table td {
    padding: 15px 20px;
    font-size: 18px;
    line-height: 1.5;
    text-align: center;
    border-top: 1px solid #ddd;
}
#festival-02 .txt-wrap .explain table tr:last-child td {
    border-bottom: 1px solid #ddd;
}


#festival-02 .txt-wrap .explain .scroll-table {
	width: 100%; display: block; white-space: nowrap; overflow-x: auto;
}

#festival-02 .txt-wrap .explain .table-info {
	margin-top: 5px; text-align: left; font-weight: bold; font-size: 15px;
}

#festival-02 .txt-wrap .explain .scroll-table.table2 tr td:nth-child(n+2) {
	border-left: 1px solid #ddd;
}


#festival-02 .txt-wrap .explain .scroll-table.table2 td p{
	text-align:left;
}

#festival-02.top .festival-wrap > p {
	margin: 80px auto 30px;
	padding-top: 80px;
	font-size: 28px;
	font-weight: 800;
	color: #05a1f2;
	border-top: 1px solid #ddd;
	word-break: keep-all;
}

.form-wrap {
	margin: 30px auto 0;
}
.form-wrap li {
	overflow: hidden;
	display: inline-block;
	width: 100%;
	padding: 8px 0;
	font-size: 0;
	margin-bottom: 10px;
	transition: 0.3s ease-in-out;
	display: flex;
	align-items: center;
}
.form-wrap li > * {
	display: inline-block;
}
.form-wrap li > label {
	min-width: 130px;
	float: left;
	font-size: 20px;
	font-weight: 800;
	text-align: left;
}
.form-wrap li > input {
	width: calc(100% - 130px);
	border: 0;
	background: transparent;
	font-size: 20px;
	font-weight: 500;
	color: rgba(0, 0, 0, 1);
	border-radius: 4px;
	border: 1px solid rgba(0, 0, 0, 0.2);
	text-indent: 10px;
}
.form-wrap li > input::placeholder {
	font-family: 'Poppins', 'Pretandard', sans-serif;
	font-size: 16px;
	font-weight: 500;
	color: rgba(0, 0, 0, 0.5);
	text-indent: 10px;
}
.form-wrap li:last-child {
	border-bottom: 0;
}
.form-wrap li:last-child .form-wrap li > label {
	float: none;
}
.form-wrap li.active {	
	border-bottom: 1px solid rgba(0, 0, 0, 0.7);
}
.form-wrap .answer {
	width: 100%;
	padding-bottom: 22px;
	margin-top: 15px;
}
.form-wrap textarea {
	width: calc(100% - 130px);
	height: 260px;
	padding: 20px;
	background: transparent;
	font-size: 20px;
	font-weight: 500;
	color: rgba(0, 0, 0, 0.95);
	border: none;
	outline: none;
	resize: none;
	box-shadow: none;
	box-sizing: border-box;
	text-indent: 0;
	border-radius: 4px;
	border: 1px solid rgba(0, 0, 0, 0.2);
}
.form-wrap textarea::placeholder {
	font-family: 'Poppins', 'Pretandard', sans-serif;
	font-size: 16px;
	font-weight: 500;
	color: rgba(0, 0, 0, 0.5);	
}

#festival-02.top input[type="checkbox"] + label {
	position:relative;
	margin: 0 28px 0 8px;
	font-size: 15px;
	font-weight: 600;
	text-align: left;
}
#festival-02.top input[type="checkbox"] + label span {
	float: left;
	width: 20px;
	height: 20px;
	margin-top: 2px;
	background: #fff;
	border: 1px solid #d1d1d1;
	border-radius: 4px;
}
#festival-02.top input[type="checkbox"]:checked + label {
	color: #000
}
#festival-02.top input[type="checkbox"]:checked + label span {
	background:url('../img/sub/check_white.png') no-repeat 50% 50% #05a1f2;
	background-size: 18px;
	border-color: #05a1f2;
	border-radius: 4px;
}
#festival-02 select {
	width: calc(100% - 130px);
    padding: 12px 18px;
    font-family: inherit;
    font-size: 17px;
    background: url("../img/sub/down.png") no-repeat right 15px center / 16px;
    border: 1px solid #ccc;
    border-radius: 4px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

#festival-02 .form-wrap {
	margin-top: 0;
}
#festival-02 .form-wrap li {
	padding: 0;
}
#festival-02 .form-wrap li.half {
	width: 50%;
	float: left;
}
#festival-02 .form-wrap li .frm_input {
	height: 50px;
}
#festival-02 .form-wrap li > label {
	min-width: 80px;
	font-size: 16px;
}
#festival-02 .cf-info {
	display: block;
	margin: 30px 0 15px;
	font-size: 20px;
	font-weight: 800;
	text-align: left;
	color: #05a1f2;
}
#festival-02 .form-wrap:after {
	content: "";
	display: block;
	clear: both;
}

#festival-02.top .btn_submit {
	margin: 30px auto 0;
}
#fregister_private {
	margin-top: 30px;
	text-align: left;
}
#fregister_private .fregister_agree {
	margin-top: 15px;
}
#fregister_private .selec_chk {
	display: none;
}
#fregister_private p {
    margin-top: 24px;
	font-size: 14px;
}
#fregister_private div {
    height: 180px;
    padding: 20px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: -.3px;
    background: #f9f9f9;
    border-radius: 20px;
    overflow-y: scroll;
}
#fregister_private p:first-child {
    margin-top: 0;
}
.form-wrap li .radio-box {
	display: flex;
	margin-top: 2px;
}
.festival-wrap input[type="radio"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    border: 0;
    clip: rect(0, 0, 0, 0);
    overflow: hidden;
}
.festival-wrap input[type="radio"] + label {
    display: inline-block;
    margin-right: 40px;
    position: relative;
    padding-left: 30px;
	font-size: 16px;
	color: #0c0c0c;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}
.festival-wrap input[type="radio"]:disabled + label {
	color: #c7c7c7;
}
.festival-wrap input[type="radio"] + label:before {
    content: '';
    position: absolute;
    top: 50%;
	left: 0;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    text-align: center;
    background: #fff;
    border: 1px solid #d1d1d1;
    border-radius: 100%;
}
.festival-wrap input[type="radio"]:checked + label:before {
    background: #fff;
}
.festival-wrap input[type="radio"]:checked + label:after {
    content: '';
    position: absolute;
    top: 50%;
	left: 5px;
    transform: translateY(-50%);
    width: 12px;
    height: 12px;
    background: #05a1f2;
    border-radius: 100%;
}
.form-wrap li > label .essential {
	color: #05a1f2;
	font-weight: 400;
}
/******************* festival-01 *******************/


#festival-02 .reser-info {
	margin: 50px auto 30px;
	padding: 50px;
	background: #f9f9f9;
	border-radius: 20px;
    text-align: left;
}
#festival-02 .reser-info > div {
	margin-bottom: 25px;
	font-size: 14px;
	word-break: keep-all;
}
#festival-02 .reser-info > div strong {
	font-size: 15px;
}
#festival-02 .reser-info > div table {
	margin-top: 5px;
	padding:0;
    border:0;
    border-spacing:0px;
    border-collapse:collapse;
}
#festival-02 .reser-info > div tr {
	border-bottom: 1px solid #ddd;
	font-size: 14px;
	text-align: left;
}
#festival-02 .reser-info > div th, #festival-02 .reser-info > div td {
	padding: 10px 14px;	
}


@media all and (max-width:1551px){
	.sub-section-in, .sub-top-txt {width: 80%;}
}

@media all and (max-width:1281px){
	.sub-section-in, .sub-top-txt {width: 90%;}
}

@media all and (max-width:1201px){
	.sub-section-in {padding: 100px 0;}
	.sub-top {height: 500px; margin: 90px auto 0;}

	.sub-top {height: 500px; margin: 90px auto 0;}

	#festival-02.top .sub-section-in > h1 {font-size: 30px; margin-bottom: 25px;}
	#festival-02.top .festival-wrap > p {font-size: 24px; line-height: 1.2;}

	#festival-02 .txt-wrap .explain > span, #festival-02 .txt-wrap .explain table th, #festival-02 .txt-wrap .explain table td {font-size: 20px; line-height: 1.4;}
}

@media all and (max-width:1025px){
	.sub-section-in {padding: 80px 0;}
	.form-wrap li > label {font-size: 18px;}

	#festival-02.top .festival-wrap {width: 90%;}
	#festival-02.top .img-wrap {width: 80%;}
	#festival-02.top .festival-wrap > p {font-size: 22px;}
}

@media all and (max-width:877px){
	.sub-top {height: 400px;}

	#festival-02.top .sub-section-in > h1 {font-size: 26px;}

	#festival-02.top .img-wrap {width: 90%;}

	.form-wrap li > label {min-width: 96px;}
	.form-wrap li > input, #festival-02 select {width: calc(100% - 96px);}
	#festival-02 select {padding: 14px 18px; font-size: 16px;}

	#festival-02.top .btn_submit {width: 150px; line-height: 54px; height: 54px; font-size: 18px;}
	
	#festival-02 .form-wrap li > label {min-width: 70px;}
	#festival-02 .form-wrap li.half {width: 100%; float: none;}

	#festival-02 .reser-info {padding: 34px;}

	#festival-02 .txt-wrap .explain {margin: 30px 0;}
	#festival-02 .txt-wrap .explain > span, #festival-02 .txt-wrap .explain table th, #festival-02 .txt-wrap .explain table td {font-size: 18px;}
}

@media all and (max-width:641px){
	.sub-tit {font-size: 22px;}
	.sub-top {height: 350px; border-radius: 20px;}

	#festival-02.top .sub-section-in > h1 {font-size: 22px;}
	#festival-02.top .img-wrap {width: 100%;}

	.form-wrap li > label {font-size: 16px;}
	.form-wrap li > input, .form-wrap li > input::placeholder {font-size: 15px; text-indent: 5px; padding: 10px 5px;}

	#festival-02.top .festival-wrap > p {font-size: 20px; margin: 40px auto 30px; padding-top: 40px;}
	#festival-02 .cf-info {font-size: 16px;}
	#festival-02 .reser-info {padding: 20px;}

	#festival-02 .txt-wrap .explain > span, #festival-02 .txt-wrap .explain table th, #festival-02 .txt-wrap .explain table td {font-size: 16px;}
}

@media all and (max-width:481px){
	.sub-tit {font-size: 20px;}
	.sub-top {height: 300px; margin-top: 84px; border-radius: 15px;}

	#festival-02.top .sub-section-in > h1 {font-size: 20px;}

	.form-wrap {margin-top: 15px;}
	.form-wrap li > *, .form-wrap li {display: block;}
	.form-wrap li > label {float: none; margin-bottom: 5px;}
	.form-wrap li > label, .form-wrap li > input, #festival-02 select {min-width: 100%; width: 100%;}
	
	#festival-02.top .festival-wrap {width: 95%;}
	#festival-02.top .btn_submit {width: 144px; line-height: 46px; height: 46px; font-size: 16px;}
	#festival-02.top .img-wrap:before {font-size: 18px; line-height: 1.2; word-break: keep-all;}

	#festival-02 .txt-wrap .explain > span, #festival-02 .txt-wrap .explain table th, #festival-02 .txt-wrap .explain table td {font-size: 15px; line-height: 1.2; word-break: keep-all;}
	#festival-02 .txt-wrap .explain table th, #festival-02 .txt-wrap .explain table td {padding: 12px 10px; word-break: normal;}
}