@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;200;300;400;500;600;700;800;900&display=swap");
@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.2/font/bootstrap-icons.min.css");

* {
	font-family: "Noto Sans KR", sans-serif;
	font-size: 16px;
}
@media (max-width: 576px) {
	* {
		font-size: 14px;
	}
}
:root {
	--bs-border-width: 1px;
	--bs-border-color: #dcdcdc;
	--table-color-1: #47c2ff;
	--table-color-2: #9871f4;
	--dark-blue: #004194;
	--light-blue: #007ccc;
	--dark-green: #1bab6e;
	--light-green: #82ca09;
	--orange: #f79200;
	--yellow: #fff301;
	--aqua: #07add1;
	--white: #ffffff;
	--gray-light: #f2f2f2;
	--gray-normal: #dcdcdc;
	--text-title: #121212;
	--text-normal: #444444;
	--text-light: #666666;

	--color-sms-1: #cd1b77;
	--color-sms-2: #1a0f37;
	--color-sms-2-hover: #27184d;
	--color-sms-bg-top: #080b1d;
	--color-sms-gra: linear-gradient(180deg, #cd1b77, #9b0452);
	--color-sms-gra-hover: linear-gradient(180deg, #df2384, #b10a60);

	--header-h-pc: 70px;
	--header-h-m: 50px;
}
/*************************************************************************
유틸
*************************************************************************/
/*색상*/
.text-gray {
	color: #999;
}
.text-purple {
	color: #373a87;
}
.text-blue {
	color: var(--light-blue);
}
.bg-yellow {
	background: var(--yellow) !important;
	color: #000000 !important;
}
.bg-light-green {
	background: var(--light-green);
}
.bg-light-blue {
	background: var(--light-blue);
}
.accordion-flush .accordion-item .accordion-button,
.nav-tabs .nav-link.active {
	color: #000 !important;
}

/* 폰트 */
.small,
small {
	font-size: 13px;
}
.text-indent-1 .item {
	text-indent: -10px;
	margin-left: 10px;
	font-size: 16px;
}
.text-sm {
	font-size: 0.875rem !important;
}
.font-12 {
	font-size: 0.75rem !important;
}
.font-14 {
	font-size: 0.875rem !important;
}
.font-16 {
	font-size: 1rem !important;
}
.font-18 {
	font-size: 1.125rem !important;
}
.font-20 {
	font-size: 1.25rem !important;
}
.font-26 {
	font-size: 1.625rem !important;
}
.header-title {
	width: 100%;
	text-align: center;
	font-weight: bold;
	border-bottom: 1px solid #dddddd;
	padding: 3rem 0;
	margin-bottom: 0px;
	max-height: 125px;
}
.header-title-done {
	width: 100%;
	text-align: center;
	font-weight: bold;
	border-bottom: 1px solid #dddddd;
	padding: 2.2rem 0;
	margin-bottom: 0px;
	max-height: 125px;
}
.modal-body * {
	font-size: 14px;
}
.modal-body h5 {
	font-size: 18px;
}
.modal-body h6 {
	font-size: 16px;
}

/* 크기, 간격 */
.max-w-100 {
	width: 100%;
	max-width: 100px;
}
.wmax-record {
	width: 100%;
	max-width: 650px;
	margin: 0 auto;
}
.fw-bold {
	font-weight: bold !important;
}
.title {
	font-weight: bold;
	margin-top: 3rem;
}
.title:first-child {
	font-weight: bold;
	margin-top: 1rem;
}
.h-100 {
	height: 100%;
}

/* 기타 */
.hr-dashed {
	border-top: 1px dashed;
}
.vertical-middle {
	vertical-align: middle !important;
}
.cursor-pointer {
	cursor: pointer;
}
.required {
	color: #dc3545;
	padding-left: 5px;
	vertical-align: middle;
}
.text-promotion {
	text-decoration: line-through !important;
}
.break-all {
	word-break: break-all;
}
.border-top-1 {
	border-top: 1px solid #dcdcdc;
}
.radius-right {
	border-top-right-radius: 0.375rem !important;
	border-bottom-right-radius: 0.375rem !important;
}
.radius-6 {
	border-radius: 0.375rem !important;
}
/* 아이콘 */
i.open:before {
	transform: rotate(180deg);
}
@media (max-width: 576px) {
	.header-title {
		padding: 2rem 0;
	}
	.text-indent-1 .item {
		font-size: 14px !important;
	}
	.text-title {
		font-size: 1.375rem;
	}
}
/*************************************************************************
레이아웃
*************************************************************************/
html {
	height: 100%;
}
body {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-width: 320px;
	background-image: url(./../img/bg.png);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
}
header {
	position: absolute;
	top: 0;
	width: 100%;
	height: var(--header-h-pc);
	background-color: var(--color-sms-bg-top);
	border-bottom: 1px solid #ffffff50;
	z-index: 100;
}
header .logo-box,
header .menu-box {
	display: flex;
	align-items: center;
	height: var(--header-h-pc);
}
header .menu-box {
	gap: 2.5rem;
}
header .menu-box button {
	background: none;
	border: none;
	padding: 0;
}
header .menu-box .menu-mypage,
header .menu-box .menu-info,
header .menu-box .menu-language {
	font-size: 1.125rem;
	color: #ffffff;
	font-weight: 400;
	text-decoration: none;
}
header .menu-box .menu-language button {
	color: #ffffff;
}
header .menu-box .menu-language ul {
	color: #ffffff;
	min-width: unset;
	padding: 5px 0;
}
header .menu-box .menu-language ul a:hover {
	background: #ffffff;
}
.wrap {
	padding: 3.125rem;
	padding-bottom: 9rem;
	padding-top: 8rem;
}
.body-box-wrap {
	background: #ffffff;
	box-shadow: 0px 0px 20px #00000030;
}
.text-box-left-wrap {
	padding: 3rem;
}
.text-box-right-wrap {
	padding: 3rem;
	border-left: 1px solid #dddddd;
}
.text-box-solo-wrap {
	width: 100%;
	max-width: 900px;
	padding: 3rem;
	margin: 0 auto;
}
.row.row-solo .text-box-left-wrap {
	padding: 2rem 1.5rem;
	border: 1px solid #dddddd;
	height: 100%;
}
.row.row-solo .text-box-right-wrap {
	padding: 2rem 1.5rem;
	border: 1px solid #dddddd;
	border-left: none;
	height: 100%;
}
.regist-info-box {
	flex-direction: row;
}

/* hero */
.hero {
	display: block;
}
.hero-mobile {
	display: none;
	width: 100%;
}

/* 상세 정보 collapse */
.collapse-info {
	display: inline-block;
	text-align: center;
	margin: 0;
}
.collapse-info i {
	margin-left: 5px;
}
.collapse-body {
	padding: 1rem 0;
	margin-top: 1rem;
}
.border-top-line {
	border-top: 2px dotted #ddd;
}
#collapse2 img {
	width: 100%;
}

/* sticky */
.position-sticky {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 1000;
}
.position-sticky .terms {
	margin-bottom: 1rem;
}
.position-sticky .col-form-label {
	padding-top: 0;
}

/* 세일 배너 박스 */
.sale-banner-box {
	display: none;
	background: #ffeff3;
	padding: 12px 0px;
	border-radius: 12px;
	border: 1px solid #ff8caa;
}
.sale-banner-box .sale-banner-top {
	width: fit-content;
	margin: 0 auto;
	padding: 3px 30px;
	border-radius: 50px;
	background: #ec1c52;
	color: white;
}
.sale-banner-box .sale-banner-top * {
	font-size: 1.12rem;
}
.sale-banner-box .sale-banner-body > div {
	display: flex;
	justify-content: space-between;
	margin: 0 auto;
	margin-top: 12px;
	width: 160px;
}
.sale-banner-box .sale-banner-body > span {
	display: block;
	margin: 0 auto;
	font-weight: bold;
	font-size: 40px;
	width: fit-content;
	text-align: center;
	transform: translateY(-10px);
	color: #ec1c52;
}

.sale-banner-box p {
	margin: 0px;
	text-align: center;
}

/*discount box*/
.discount-box > span:first-child {
	margin-right: 40px;
}
.discount-box > span:last-child {
	flex-shrink: 0;
}

/* 문의처 */
.call-box-wrap {
	padding: 3rem;
	max-width: 900px;
	margin: 0 auto;
}
.call-box {
	width: 100%;
	background: #fbfbfb;
	border: 0.375rem;
	border-radius: 6px;
	overflow: hidden;
}
.call-box-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 15px 40px;
	background: #f0e4ff;
}
.call-box-header img {
	margin-left: 20px;
}
.call-box-body {
	display: flex;
	padding: 15px 40px;
}
.call-box-body > div {
	width: 50%;
}
.call-box-body > div:first-child {
	border-right: 1px dashed var(--gray-normal);
}
.call-box-body > div:last-child {
	padding-left: 3rem;
}

/* 타임 세일 배너 */
body .timesale-box {
	display: none;
}
body .wrap {
	padding-bottom: 4rem;
}
body.banner-on .timesale-box {
	display: block;
}
body.banner-on .wrap {
	padding-bottom: 9rem;
}
.timesale-box {
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 80px;
	background: #ef4848;
	color: #ffffff;
	box-shadow: 0px -5px 20px #00000030;
	z-index: 1000;
}
.timesale-box .container-xxl {
	height: 100%;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
}
.timesale-text img {
	animation: shake-img 10s ease-in-out infinite;
}
@keyframes shake-img {
	1% {
		-webkit-transform: rotate(15deg);
		-ms-transform: rotate(15deg);
		transform: rotate(15deg);
	}

	2% {
		-webkit-transform: rotate(-10deg);
		-ms-transform: rotate(-10deg);
		transform: rotate(-10deg);
	}

	3% {
		-webkit-transform: rotate(5deg);
		-ms-transform: rotate(5deg);
		transform: rotate(5deg);
	}

	4% {
		-webkit-transform: rotate(-5deg);
		-ms-transform: rotate(-5deg);
		transform: rotate(-5deg);
	}

	5% {
		-webkit-transform: rotate(0deg);
		-ms-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(0deg);
		-ms-transform: rotate(0deg);
		transform: rotate(0deg);
	}
}
.timesale-text p span:first-child {
	font-size: 1.625rem;
}
.timesale-date {
	font-weight: 200;
}
.timesale-date span {
	font-size: 36px;
	font-weight: 500;
	margin-left: 20px;
	margin-right: 2px;
}

/* 예매내역 티켓박스*/
.pay-info {
	display: inline-block;
	text-align: center;
	margin: 0;
	border: 1px solid #ddd;
	background: none !important;
	border: none !important;
	color: #03a9f4 !important;
	font-weight: bold;
}
.pay-info i {
	margin-left: 5px;
}
.collaps-body {
	padding: 2.5rem 0;
	margin-top: 1rem;
}
.border-top-line {
	border-top: 2px dotted #ddd;
}
.ticket-box {
	position: relative;
	border: 1px solid var(--bs-body-color);
	width: 100%;
	max-width: 650px;
	margin: 0 auto;
	padding: 2rem 2rem 1rem;
}
.ticket-box.ticket-gift {
	border: 2px solid #03a9f4;
}
.ticket-box-info {
	width: 100%;
	max-width: 650px;
	margin: 0 auto;
	margin-bottom: 25px;
}
.ticket-box:not(:first-of-type) {
	margin-top: 10px;
}
.ticket-box .ticket {
	position: absolute;
	top: 0;
	left: 0;
	width: 55px;
	height: 30px;
	font-size: 14px;
	line-height: 30px;
	text-align: center;
	background: var(--bs-body-color);
	color: #fff;
}
.ticket-box.ticket-gift .ticket {
	background: #03a9f4;
	width: 100px;
}
.ticket-box .order-detail {
	padding-top: 5px;
	font-size: 1.3rem;
	font-weight: 900;
}
.ticket-box .order-desc {
	font-size: 0.9rem;
	padding: 5px 0px;
	font-weight: 400;
	color: rgba(0, 0, 0, 0.5) !important;
}
.ticket-box .order-complete {
	font-size: 1.125rem;
	font-weight: 600;
}
@media (max-width: 1400px) {
	.timesale-text span:last-child {
		font-size: 0.875rem;
	}
	.hero {
		display: none;
	}
	.hero-mobile {
		display: block;
	}
	.regist-info-box {
		flex-direction: column;
	}
}
@media (max-width: 1200px) {
	header > .container-xxl {
		padding: 0 50px;
	}
	.text-box-left-wrap,
	.text-box-right-wrap,
	.text-box-solo-wrap {
		padding: 3rem 2rem;
	}
	.call-box-wrap {
		padding: 3rem 2rem;
	}
	.timesale-box .container-xxl {
		justify-content: center;
	}
	.timesale-text span:last-child {
		display: none;
	}
}
@media (max-width: 992px) {
	header .logo-box p {
		display: none;
	}
	.text-box-right-wrap {
		border-left: unset;
		border-top: 1px solid #dddddd;
	}
	.row.row-solo {
		flex-direction: column-reverse !important;
	}
	.row.row-solo .text-box-left-wrap {
		padding: 1rem;
	}
	.row.row-solo .text-box-right-wrap {
		border: none;
		padding: 1rem 0;
	}
	.call-box-body {
		flex-direction: column;
	}
	.call-box-body > div {
		width: 100%;
	}
	.call-box-body > div:first-child {
		border-right: none;
		border-bottom: 1px dashed var(--gray-normal);
	}
	.call-box-body > div:last-child {
		padding-left: 0px;
	}
	.timesale-text img {
		width: 45px;
		height: 56px;
	}
	.timesale-text p span:first-child {
		font-size: 1.25rem;
	}
	.timesale-date span {
		font-size: 1.875rem;
		margin-left: 10px;
	}
}
@media (max-width: 768px) {
	.timesale-text img {
		width: 31px;
		height: 39px;
	}
	.timesale-text p span:first-child {
		font-size: 18px;
	}
	.timesale-date {
		font-size: 0.875rem;
	}
	.timesale-date span {
		font-size: 1.25rem;
		margin-left: 10px;
	}
}
@media (max-width: 576px) {
	header > .container-xxl {
		padding: 0 1.25rem;
	}
	header .logo-box img {
		width: 100px;
	}
	header .menu-box * {
		font-size: 1rem !important;
		gap: 1.5rem;
	}
	header .menu-box {
		gap: 1.25rem;
	}
	.wrap {
		padding: 8rem 1rem 0 1rem;
	}
	.text-box-left-wrap,
	.text-box-right-wrap,
	.text-box-solo-wrap {
		padding: 2rem 1.25rem;
	}
	.position-sticky * {
		font-size: 1rem !important;
	}
	.position-sticky .sale-banner-body > div {
		width: 110px;
	}
	.position-sticky .sale-banner-body > span {
		font-size: 2rem !important;
	}
	.call-box-wrap {
		padding: 3rem 0.6rem;
	}
	.call-box .font-14 {
		font-size: 1rem !important;
	}
	.call-box .font-12 {
		font-size: 0.875rem !important;
	}
	.call-box-header {
		padding: 15px 20px;
	}
	.call-box-header img {
		width: 61px;
		height: 50px;
	}
	.call-box-body {
		padding: 15px 20px;
	}
	.ticket-box {
		padding: 2rem 1rem 1rem;
	}
	.timesale-box {
		border-top-left-radius: 20px;
		border-top-right-radius: 20px;
	}
	.timesale-box .container-xxl {
		flex-direction: column;
		justify-content: start;
	}
	.timesale-box .timesale-text {
		margin-top: 2px;
	}
	.timesale-box .timesale-date {
		font-size: 1rem;
	}
	.timesale-box .timesale-date span {
		font-size: 1.5rem;
	}
}
/*************************************************************************
컴포넌트
*************************************************************************/
/* 리스트 */
.list-height-sm li {
	padding: 3px 0px;
}
.list-style-dot-s {
	list-style: none;
	padding-left: 15px;
}
.list-style-dot-s li {
	position: relative;
}
.list-style-dot-s li:after {
	position: absolute;
	display: block;
	content: "";
	width: 3px;
	height: 3px;
	top: 12px;
	left: -9px;
	background: #444;
	border-radius: 50%;
}
/* badge */
.badge-required {
	padding: 3px 5px;
	font-size: 12px;
	border-radius: 6px;
	vertical-align: middle;
	margin-right: 6px;
	color: #ab1b1b;
	background: #fae6e6;
}
.badge-gray {
	padding: 3px 5px;
	font-size: 12px;
	border-radius: 6px;
	vertical-align: middle;
	margin-right: 6px;
	background: var(--gray-light);
}
.badge-day {
	display: inline-block;
	border-radius: 3px;
	padding: 1px 3px;
	background: rgb(27, 197, 112);
	border: 1px solid rgb(66, 207, 89);
	color: #fff;
	font-size: 11px;
	margin: 2px;
	margin-right: 3px;
}
.badge-discount {
	display: inline-block;
	border-radius: 3px;
	padding: 1px 3px;
	background: #ff9800;
	border: 1px solid #ffb341;
	color: #fff;
	font-size: 11px;
	margin: 2px;
	margin-right: 3px;
}
.badge-day-lg {
	display: inline-block;
	border-radius: 3px;
	padding: 2px 5px;
	background: rgb(27, 197, 112);
	border: 1px solid rgb(66, 207, 89);
	color: #fff;
	font-size: 12px;
	margin: 2px;
	margin-right: 5px;
}
.badge-discount-lg {
	display: inline-block;
	border-radius: 3px;
	padding: 2px 5px;
	background: #ff9800;
	border: 1px solid #ffb341;
	color: #fff;
	font-size: 12px;
	margin: 2px;
	margin-right: 5px;
}
/* 버튼 */
#btn-to-pay {
	display: none;
	justify-content: center;
	align-items: center;
	position: fixed;
	bottom: 30px;
	right: 20px;
	width: 60px;
	height: 60px;
	border-radius: 999px;
	background: var(--color-sms-gra);
	color: #ffffff;
	font-weight: 400;
	box-shadow: 0px 3px 5px #00000030;
	border: none;
	z-index: 1100;
}
body.banner-on #btn-to-pay {
	bottom: 90px;
}
#btn-to-pay span {
	color: #ffffff;
	font-size: 1.12rem;
	line-height: 120%;
}
.btn {
	border-radius: 0;
	padding-top: 12px;
	padding-bottom: 12px;
	font-size: 95%;
}
.btn-sm {
	padding: 5px 10px;
	font-size: 14px;
}
.btn-ticket {
	width: 100%;
	max-width: 650px;
	display: block;
	background:
		linear-gradient(180deg, rgb(48 46 52 / 0.9), rgb(48 46 52 / 1)) padding-box,
		linear-gradient(to bottom right, var(--table-color-1), var(--table-color-2)) border-box;
	color: #ffffff;
	border-width: 2px;
	border-radius: 0.375rem;
	margin: 0.5rem auto 1rem;
}
.btn-ticket:hover,
.btn-ticket:active {
	background:
		linear-gradient(180deg, rgba(33, 31, 36, 0.9), rgb(31, 30, 34)) padding-box,
		linear-gradient(to bottom right, var(--table-color-1), var(--table-color-2)) border-box;
	color: #ffffff;
	border-width: 2px;
	border-color: transparent;
}
.accordion-button:focus,
.btn:focus {
	box-shadow: none;
}
.btn-sms,
.btn-sms:visited {
	border: none;
	background: var(--color-sms-gra);
	color: #ffffff;
	font-weight: bold;
	border-radius: 6px;
}
.btn-sms:hover,
.btn-sms:active {
	border: none;
	background: var(--color-sms-gra-hover);
	box-shadow: 0px 5px 20px #5b0a4750;
	color: #ffffff;
	border-radius: 6px;
}
.btn-sms-2,
.btn-sms-2:visited {
	border: none;
	background: var(--color-sms-2);
	color: #ffffff;
	font-weight: bold;
	border-radius: 6px;
}
.btn-sms-2:hover,
.btn-sms-2:active {
	border: none;
	background: var(--color-sms-2-hover);
	box-shadow: 0px 5px 20px #5b0a4750;
	color: #ffffff;
	border-radius: 6px;
}
.btn-sms-outline,
.btn-sms-outline:visited {
	background: #ffffff;
	border: 2px solid #e02c6b;
	color: #121212;
	font-weight: bold;
}
.btn-sms-outline:hover,
.btn-sms-outline:active {
	background: #ffffff;
	border: 2px solid #e02c6b;
	color: #121212;
}
.no-hover-bg:hover {
	box-shadow: unset !important;
}
.btn-sms:disabled,
.btn-sms.disabled,
.btn-sms-outline:disabled,
.btn-sms-outline.disabled {
	background: var(--text-golf);
	border: 1px solid var(--text-golf);
	color: #ffffff;
	opacity: 0.8;
}
.btn-ani-light {
	position: relative;
	overflow: hidden;
	transition: all 0.3s ease;
}
.btn-ani-light:before {
	position: absolute;
	content: "";
	display: inline-block;
	top: -180px;
	left: 0;
	width: 30px;
	height: 100%;
	background-color: #ffffff50;
	animation: shiny-btn1 5s ease-in-out infinite;
}
/* input과 높이 맞춘 버튼 */
.btn-input-37 {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 37px !important;
	padding: 0;
}
@keyframes shiny-btn1 {
	0% {
		-webkit-transform: scale(0) rotate(45deg);
		opacity: 0;
	}
	80% {
		-webkit-transform: scale(0) rotate(45deg);
		opacity: 0.5;
	}
	81% {
		-webkit-transform: scale(4) rotate(45deg);
		opacity: 1;
	}
	100% {
		-webkit-transform: scale(50) rotate(45deg);
		opacity: 0;
	}
}
/* 테이블 */
table th {
	background-color: #f7f7f7 !important;
	text-align: center;
	font-weight: normal;
}
table.border-top-bottom-2 {
	border-top: 2px solid #121212;
	border-bottom: 2px solid #121212;
}
table.border-none {
	border-color: #fff !important;
}
table:not(.border-none) tr {
	border-color: #dcdcdc;
}
.table-x-scroll {
	flex-shrink: 0;
	overflow-x: auto;
}
.table-border {
	border: 1px solid #000000;
	border-radius: 6px;
	box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
}
.table-line {
	border-top: 1px solid #dcdcdc;
	border-bottom: 1px solid #dcdcdc;
	margin-bottom: 6px !important;
}
.table-line * {
	border: none;
	font-size: 14px;
	color: #212529;
	vertical-align: top;
}
.table-line tr:not(:first-child) {
	border-top: 1px solid #dcdcdc;
}
.table-line th {
	text-align: left;
	background: transparent !important;
}
.table-line-2 {
	width: 100%;
	border: 1px solid var(--bs-border-color);
}
.table-line-2 th {
	text-align: center;
	background: #f2f2f2 !important;
	font-weight: bold;
}
.table-line-2 th,
.table-line-2 td {
	border: 1px solid var(--bs-border-color);
	font-size: 0.75rem;
	vertical-align: middle;
	padding: 4px;
	text-align: center;
}
.table-noline {
	border: none;
}
.table-noline * {
	border: none;
	color: #212529;
	vertical-align: top;
}
.table-noline td {
	padding: 0.3rem;
}
.table-main {
	margin: 0;
	margin-left: 1rem;
}
.table-main > tbody > tr > td:first-child {
	font-weight: bold;
	width: 90px;
}
.table-main > tbody > tr > td {
	padding: 0.7rem;
}
.table-noline.table-done tr td {
	padding-bottom: 10px;
}
.table-noline.table-done tr td:first-child {
	font-weight: bold;
	width: 140px;
}
.table-noline.table-sm tr td {
	font-size: 0.875rem;
	font-weight: 400 !important;
	padding: 0;
}
.table-noline.table-sm tr td:first-child {
	width: 100px;
}
.table-col-3 th {
	width: 33.3%;
}
.table-text-14 * {
	font-size: 0.875rem;
}
.table-text-14 td {
	padding: 0.5rem !important;
}
@media (max-width: 1400px) {
	.table-main {
		margin-left: 0px;
		margin-top: 30px;
	}
}
@media (max-width: 576px) {
	.table-noline * {
		font-size: 15px;
	}
	.table-main {
		margin-top: 20px;
	}
	.table-main * {
		font-size: 1rem !important;
	}
	.table-done > tbody > tr > tr,
	.table-done > tbody > tr > td,
	.table-main > tbody > tr > tr,
	.table-main > tbody > tr > td {
		display: block;
		width: 100% !important;
	}
	.table-done > tbody > tr > td:first-child,
	.table-main > tbody > tr > td:first-child {
		padding-bottom: 0;
		font-size: 1.125rem !important;
	}
	.table-done > tbody > tr > td:last-child,
	.table-main > tbody > tr > td:last-child {
		padding-top: 0;
		padding-bottom: 0.625rem;
		font-size: 1rem !important;
	}
	.table-line-2 * {
		font-size: 15px;
	}
	.btn-sm {
		font-size: 12px;
	}
	.btn-ticket {
		width: 100%;
	}
	/* 모바일 하단 고정 버튼 */
	#btn-to-pay {
		display: flex;
	}
	#btn-to-pay.off {
		visibility: hidden;
	}
}
/*************************************************************************
form
*************************************************************************/
.form-select {
	padding: 0.525rem 2.25rem 0.525rem 0.55rem;
	font-size: 0.8rem;
}
.form-select option {
	font-size: 0.8rem;
}
.form-control {
	padding: 0.525rem 0.55rem;
	font-size: 0.8rem;
}
.form-control::placeholder {
	font-size: 0.8rem;
}
.input-group .btn {
	z-index: 0;
}
.total-pay-box p {
	color: var(--text-golf);
}
.total-pay-box p + div > div {
	border: 2px solid var(--text-golf);
	border-radius: 8px;
}
.total-pay-box-border {
	border: 2px solid var(--text-golf);
	border-radius: 8px;
}
select.w-70 {
	width: 70px;
}
span.w-70 {
	width: 70px;
	justify-content: center;
}
input.pointer-none {
	pointer-events: none;
}

/* input group 3 (input, span, select) */
.input-group-3 {
	margin: 0.5rem 0;
}
.input-group-3 input,
.input-group-3 span {
	background: #fff;
}
.input-group-3 input {
	text-align: right;
	border-right: 0;
	pointer-events: none;
}
.input-group-3 span {
	padding-left: 0;
}
.input-group-3 select {
	cursor: pointer;
	width: 80px !important;
	flex-grow: 0 !important;
	flex-basis: 80px !important;
}

/* input group total (input, span) */
.input-group-total {
	margin: 0.5rem 0;
}
.input-group-total * {
	background: #fff;
	border-width: 2px;
	border-color: var(--text-golf);
}
.input-group-total input.form-control {
	text-align: right;
	border-right: 0;
	pointer-events: none;
	color: red;
	font-weight: bold;
}
.input-group-total span.input-group-text {
	padding-left: 0;
	border-left: 0;
}
.pay-box {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #f9f9ff;
	padding: 1rem 2rem;
}
.input-group-total-box {
	width: 200px;
}
.input-group-total-box input.form-control {
	text-align: right;
	pointer-events: none;
	color: red;
	font-weight: bold;
	font-size: 20px;
	border: none;
	background: transparent;
}
.input-group-total-box span.input-group-text {
	padding-left: 0;
	font-size: 20px;
	font-weight: bold;
	border: none;
	background: transparent;
}
/* disabled */
.input-disabled * {
	background-color: #ddd !important;
	pointer-events: none !important;
}
/* input 안의 숫자 */
.label-certification {
	position: relative;
	width: 100%;
}
.label-certification #input-phone-certification {
	position: relative;
	width: 100%;
	padding-right: 42px;
}
.label-certification span {
	position: absolute;
	display: inline-block;
	top: 50%;
	right: 12px;
	width: 25px;
	transform: translateY(-50%);
}

@media (max-width: 576px) {
	input::placeholder {
		font-size: 0.525rem;
	}
	.pay-box {
		padding: 1rem 1rem;
	}
	.pay-box > label {
		font-size: 0.9rem;
	}
	.input-group-total-box {
		width: 150px;
	}
	.input-group-total-box input.form-control {
		font-size: 16px;
		padding-right: 3px;
	}
	.input-group-total-box span.input-group-text {
		font-size: 16px;
	}
}
/*************************************************************************
form - 동의영역
*************************************************************************/
.full-agree {
	background: #f2f2f2;
	border: 1px solid #dcdcdc;
	border-radius: 6px;
	padding: 10px;
}
.part-agree {
	padding-left: 10px;
}
.part-agree label {
	font-size: 0.9rem;
}
.part-agree label input {
	width: 16px;
	height: 16px;
}
.part-agree label span {
	font-size: 0.7rem;
	padding: 1px 5px;
	border-radius: 3px;
	margin-right: 3px;
}
.part-agree > span {
	font-size: 0.9rem !important;
}
.agreementBody {
	color: var(--text-normal);
	font-size: 0.875rem;
}
.agreementBody table th,
.agreementBody table td {
	border: 1px solid var(--gray-normal);
	padding: 5px;
}
.agreementBody table th {
	background: var(--gray-light);
}
.agreementBody h6 {
	font-weight: bold;
	color: var(--text-normal);
}
.agreementBody ol li {
	margin-top: 6px;
}
.agreementBody ol li ol {
	list-style: lower-roman;
}
.title-box {
	position: relative;
	display: flex;
	justify-content: start;
	align-items: center;
	width: 100%;
	height: 40px;
	background: #fcf6fc;
	padding-left: 20px;
	margin-top: 20px;
}
.title-box:after {
	position: absolute;
	display: block;
	content: "";
	width: 6px;
	height: 100%;
	top: 0;
	left: 0;
	background: var(--color-sms-gra);
}
/* 티켓 종류별 동의 영역 */
.terms .group {
	display: flex;
	align-items: center;
}
.terms label {
	margin: 0 0 0 0.5rem;
}

.terms input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	display: inline-block;
	width: 28px;
	height: 28px;
	background: url("../img/bg-input-off.png") no-repeat center;
	border: 1px solid #ced4da;
	border-radius: 0.3rem;
	transition:
		background-color 300ms,
		border-color 300ms;
	flex-shrink: 0;
}
.terms input[type="checkbox"]:focus {
	outline: 2px solid #deebff;
	outline-offset: 2px;
}

.terms input[type="checkbox"]:checked {
	background: url("../img/bg-input-on.png") no-repeat center;
	border: 1px solid #0d6efd;
}
@media (max-width: 576px) {
	.agreementBody * {
		font-size: 0.8rem;
	}
	.agreementBody h5 {
		font-size: 1.1rem;
	}
	.agreementBody h6 {
		font-size: 1rem;
	}
}
/*************************************************************************
기타
*************************************************************************/
/* 리스트 */
.etiquette-box {
	padding: 20px 20px 0px 20px;
}
.etiquette-box > div {
	padding: 10px;
	text-align: center;
}
.etiquette-box > div > img {
	width: 80px;
	margin-bottom: 20px;
}
.etiquette-box > div > p {
	font-size: 15px;
}
@media (max-width: 576px) {
	.etiquette-box > div {
		padding: 10px;
	}
	.etiquette-box > div > img {
		width: 60px;
		margin-bottom: 14px;
	}
	.etiquette-box > div > p {
		font-size: 14px;
		margin-bottom: 10px;
	}
}
/*************************************************************************
메인 애니메이션  
*************************************************************************/
body.main-animation header {
	transform: translateY(-70px);
	animation: 1s ease 2.1s 1 normal forwards running main-header;
}
body.main-animation .timesale-box {
	transform: translateY(80px);
	animation: 1s ease 2.1s 1 normal forwards running main-timesale;
}
body.main-animation #btn-to-pay {
	transform: scale(0);
	animation: 0.3s ease 2.5s 1 normal forwards running main-btn-pay;
}
body.main-animation .wrap {
	transform: scale(0);
	animation: 1s ease 1.9s 1 normal forwards running main-wrap;
}
body #main-animation {
	display: none;
	overflow-x: hidden;
}
body.main-animation #main-animation {
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	opacity: 1;
	animation: 2.1s ease 0s 1 normal forwards running main-animation;
}
body.main-animation #main-animation .main-text {
	position: absolute;
	top: 20%;
	left: 15%;
	z-index: 2;
	animation: toDown 0.3s ease-in forwards running;
}
body.main-animation #main-animation .main-img-1,
body.main-animation #main-animation .main-img-2 {
	position: absolute;
	width: 70%;
	top: 50%;
	right: -15%;
	transform: translateY(-50%);
	z-index: 1;
}
body.main-animation #main-animation .main-img-1 {
	--mask-width: 220%;
	-webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0.15) 100%);
	-webkit-mask-size: var(--mask-width) 100%;
	-webkit-mask-repeat: no-repeat;
	animation: maskSweep 1.5s ease-out forwards running;
}

@media screen and (max-width: 1620px) {
	body.main-animation #main-animation .main-text {
		left: 10%;
	}
}

@media screen and (max-width: 1220px) {
	body.main-animation #main-animation .main-text {
		left: 8%;
		max-width: 350px;
	}
}
@media screen and (max-width: 768px) {
	body.main-animation #main-animation .main-text {
		max-width: 300px;
	}
}

@media screen and (max-width: 576px) {
	body.main-animation #main-animation .main-text {
		max-width: 220px;
	}
	body.main-animation #main-animation .main-img-1,
	body.main-animation #main-animation .main-img-2 {
		width: 100%;
		top: 55%;
	}
}

@keyframes main-header {
	0% {
		-webkit-transform: translateY(-70px);
		-ms-transform: translateY(-70px);
		transform: translateY(-70px);
	}
	100% {
		-webkit-transform: translateY(0px);
		-ms-transform: translateY(0px);
		transform: translateY(0px);
	}
}
@keyframes main-timesale {
	0% {
		-webkit-transform: translateY(80px);
		-ms-transform: translateY(80px);
		transform: translateY(80px);
	}
	100% {
		-webkit-transform: translateY(0px);
		-ms-transform: translateY(0px);
		transform: translateY(0px);
	}
}
@keyframes main-btn-pay {
	0% {
		transform: scale(0);
	}
	100% {
		transform: scale(1);
	}
}
@keyframes main-wrap {
	0% {
		-webkit-transform: translateY(300px);
		-ms-transform: translateY(300px);
		transform: translateY(300px);
		transform: scale(0);
	}
	100% {
		-webkit-transform: translateY(0px);
		-ms-transform: translateY(0px);
		transform: translateY(0px);
		transform: scale(1);
	}
}

@keyframes main-animation {
	0% {
		opacity: 1;
	}
	95% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}
@keyframes maskSweep {
	0% {
		-webkit-mask-position: 0% 0%;
	}
	100% {
		-webkit-mask-position: 100% 0%;
	}
}
@keyframes toDown {
	0% {
		top: -10%;
	}
	100% {
		top: 20%;
	}
}
/*************************************************************************
en
*************************************************************************/
html[lang="en"] header .menu-box .menu-mypage,
html[lang="en"] header .menu-box .menu-info,
html[lang="en"] header .menu-box .menu-language {
	font-size: 1rem;
}
html[lang="en"] header .menu-box {
	gap: 1.5rem;
	padding-left: 1rem;
}
html[lang="en"] .table-done > tbody > tr > tr,
html[lang="en"] .table-done > tbody > tr > td,
html[lang="en"] .table-main > tbody > tr > tr,
html[lang="en"] .table-main > tbody > tr > td {
	display: block;
	width: 100% !important;
}

html[lang="en"] .table-done > tbody > tr > td:first-child,
html[lang="en"] .table-main > tbody > tr > td:first-child {
	padding-bottom: 0;
}
html[lang="en"] .table-done > tbody > tr > td:last-child,
html[lang="en"] .table-main > tbody > tr > td:last-child {
	padding-top: 0;
}
html[lang="en"] .sale-banner-body > div * {
	font-size: 0.7rem !important;
}
html[lang="en"] .sale-banner-body > span {
	font-size: 2rem;
}
html[lang="en"] .sale-banner-body ~ p {
	font-size: 0.8rem;
}
html[lang="en"] #btn-to-pay span {
	font-size: 0.75rem;
}
html[lang="en"] .timesale-text > p > span:first-child {
	display: block;
	font-size: 1.3rem;
}
html[lang="en"] .timesale-text > p > span:last-child {
	font-size: 0.875rem;
}
html[lang="en"] .terms input[type="checkbox"] {
	background: url("../img/bg-input-off-en.png") no-repeat center;
}
html[lang="en"] .terms input[type="checkbox"]:checked {
	background: url("../img/bg-input-on-en.png") no-repeat center;
}
@media (max-width: 1200px) {
	html[lang="en"] .timesale-text > p > span:first-child {
		font-size: 1rem;
	}
}
@media (max-width: 576px) {
	html[lang="en"] h1 ~ .align-items-center {
		flex-direction: column;
		align-items: start !important;
	}
	html[lang="en"] .position-sticky .sale-banner-body > div {
		width: 160px;
	}
}
