@charset "utf-8";

/* 로그인 */
.login-area {max-width:470px; margin:0 auto;}
.login-tab {text-align:center; border-bottom:4px solid #28ac9a; margin-bottom:50px;}
.login-tab ul {display:flex; padding:0 2px;}
.login-tab ul li {flex:1; border:4px solid #dfdfdf; border-bottom:0; margin:0 -2px; border-radius:10px 10px 0 0;}
.login-tab ul li a {display:block; color:#333; font-size:18px; font-weight:500; line-height:60px;}
.login-tab ul li.active {position:relative; z-index:2; border-color:#28ac9a;}
.login-tab ul li.active:after {content:""; position:absolute; left:0; right:0; bottom:-4px; height:4px; background:#fff;}
.login-tab ul li.active a {color:#009189; font-weight:700;}
.login-content .group {margin-bottom:8px;}
.login-content .group .input {display:block; width:100%; height:54px; font-size:16px;}
.login-content .links {display:flex; justify-content:space-between; margin-top:14px; font-size:14px; color:#505050; font-weight:500; line-height:1.5em;}
.login-content .links a:hover {text-decoration:underline;}
.login-content .links .bar {display:inline-block; vertical-align:middle; margin:-.2em 12px 0; width:1px; height:16px; background:#ddd;}
.login-content .btn-pack {display:block; width:100%; margin-top:10px;}
.login-content .btn-pack.focus {margin-top:20px;}
.login-content .btn-pack.xlarge {font-weight:500;}

.sns-login {text-align:center; margin-top:50px;}
.sns-login .tit {position:relative; color:#333; font-size:15px; font-weight:400; line-height:1.3em; margin-bottom:35px;}
.sns-login .tit:before {content:""; position:absolute; top:50%; left:0; margin-top:-1px; width:100%; height:1px; background:#ddd;}
.sns-login .tit span {display:inline-block; position:relative; padding:0 30px; background:#fff;}
.sns-login a {margin:0 12px;}

/* 약관동의 */
.agree-wrap {max-width:680px; margin:0 auto 50px;}
.agree-wrap .group {margin-top:40px;}
.agree-wrap .group:first-child {margin-top:0;}
.agree-wrap .agree-tit {color:#333; font-size:20px; font-weight:600; line-height:1.3em;}
.agree-wrap .agree-tit .checkbox label:before {margin-top:-.02em; width:24px; height:24px; background:#fff url("../images/member/checkbox.png") 50% 50% no-repeat; border:2px solid #ccc; border-radius:100%;}
.agree-wrap .agree-tit .checkbox input:checked + label:before {background-color:#28ac9a; border-color:#28ac9a; background-image:url("../images/member/checkbox_on.png");}
.agree-wrap .agree-box {position:relative; max-height:175px; margin-top:17px; padding:16px 20px; border:1px solid #ddd; overflow:auto;}
.agree-wrap .agree-box .terms-wrap {color:#767676; font-size:14px;}
.agree-wrap .agree-box .terms-wrap .sec {margin-bottom:20px;}
.agree-wrap .agree-box .terms-wrap .sec h3 {color:#767676; font-size:14px; font-weight:400; margin-bottom:0;}
.agree-wrap .agree-box .terms-wrap .sec strong {font-weight:400;}

.terms-wrap {font-weight:400; color:#666; line-height:1.75em;}
.terms-wrap .sec {margin-bottom:40px;}
.terms-wrap .sec h3 {color:#222; font-size:1.1em; font-weight:700; margin-bottom:7px;}
.terms-wrap .sec p {margin-bottom:1em;}
.terms-wrap .sec strong {font-weight:700;}
.terms-wrap .sec ol li {padding-left:1em; text-indent:-1em;}
.terms-wrap .sec ol li ol li {padding-left:1.35em; text-indent:-1.35em;}
.terms-wrap .policy-contact {display:flex; padding:20px 0; background:#fafafa; border:1px solid #e5e5e5; margin-bottom:1em;}
.terms-wrap .policy-contact dl {flex:1; padding:0 20px; border-left:1px solid #e5e5e5;}
.terms-wrap .policy-contact dl:first-child {border-left:0;}
.terms-wrap .policy-contact dt {font-weight:500; color:#333; margin-bottom:12px;}

/* 회원가입 */
.join-form {max-width:900px; margin:0 auto;}
.join-form .required {color:#fd8239}
.join-form .join-form-txt {color:#505050; font-weight:400; line-height:1.4em; margin-bottom:12px;}
.join-form table {width:100%; border-collapse:collapse; border-spacing:0px; border-top:2px solid #868686; font-size:16px; line-height:1.5em;}
.join-form table th {padding:12px 15px; border:1px solid #ddd; background:#fafafa; font-weight:700; color:#333;}
.join-form table td {padding:12px 20px; border:1px solid #ddd; color:#505050;}
.join-form tr th:first-child,
.join-form tr td:first-child {border-left:0;}
.join-form tr th:last-child,
.join-form tr td:last-child {border-right:0;}
.join-form input[readonly] {background-color:#fff; color:#505050;}
.join-form .help-text {display:inline-block; margin-left:10px; color:#767676;}
.join-form + .buttons {margin-top:50px;}

/* 가입완료 */
.join-complete {text-align:center;}
.join-complete .tit {color:#28ac9a; font-size:28px; font-weight:700; line-height:1.4em; margin-bottom:30px;}
.join-complete .txt {color:#333; font-size:18px; line-height:1.8em;}
.join-complete .icon {width:180px; height:180px; background:#28ac9a url("../images/member/complete.png") 50% 50% no-repeat; border-radius:100%; margin:36px auto 45px;}
.join-complete .buttons {margin:0;}

/* 게정찾기 */
.find-area {max-width:470px; margin:0 auto;}
.find-tab {text-align:center; border-bottom:4px solid #28ac9a; margin-bottom:50px;}
.find-tab ul {display:flex; padding:0 2px;}
.find-tab ul li {flex:1; border:4px solid #dfdfdf; border-bottom:0; margin:0 -2px; border-radius:10px 10px 0 0;}
.find-tab ul li a {display:block; color:#333; font-size:18px; font-weight:500; line-height:60px;}
.find-tab ul li.active {position:relative; z-index:2; border-color:#28ac9a;}
.find-tab ul li.active:after {content:""; position:absolute; left:0; right:0; bottom:-4px; height:4px; background:#fff;}
.find-tab ul li.active a {color:#009189; font-weight:700;}
.find-content .group {margin-bottom:8px;}
.find-content .group .input {display:block; width:100%; height:54px; font-size:16px;}
.find-content .btn-pack {display:block; width:100%; margin-top:10px;}
.find-content .btn-pack.focus {margin-top:30px;}
.find-content .btn-pack.xlarge {font-weight:500;}
.find-result {text-align:center; padding:34px 42px; color:#505050; font-size:18px; font-weight:400; line-height:1.75em; background:#fafafa; border-top:2px solid #28ac9a; border-bottom:1px solid #ddd;}
.find-result h4 {font-size:22px; font-weight:700; line-height:1.4em; margin-bottom:20px;}
.find-result p:first-child {margin-bottom:10px;}
.find-result .name {color:#28ac9a; font-size:30px; font-weight:700; line-height:1.5em;}

/* 회원탈퇴 */
.member-leave .txt {text-align:center; color:#505050; line-height:1.7em; margin-bottom:40px;}
.member-leave .txt .tit {color:#333; font-size:20px; line-height:1.5em; margin-bottom:15px;}
.member-leave .form {max-width:470px; margin:0 auto 40px; padding:50px; color:#666; font-size:16px; line-height:1.5em; background:#f9f9f9; border:1px solid #e5e5e5; border-radius:10px;}
.member-leave .form .group {display:flex; align-items:center; margin-bottom:20px;}
.member-leave .form .group:last-child {margin-bottom:0;}
.member-leave .form .group .label-tt {width:90px; color:#222; font-weight:700;}
.member-leave .form .group .text-id,
.member-leave .form .group .input {flex:1 1 auto; min-width:0; width:1%;}/* Registration forms based on the supplied registration page. */
.reg-form{max-width:1200px;margin:40px auto;font-size:18px}.reg-form h3{margin:48px 0 25px;padding-bottom:20px;border-bottom:2px solid #111;font-size:28px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 36px}.reg-form .field{display:flex;flex-direction:column;gap:10px;font-weight:500}.reg-form input:not([type=checkbox]):not([type=radio]),.reg-form select{width:100%;padding:17px 18px;border:1px solid #ddd;background:#f7f7f9;border-radius:4px;box-sizing:border-box;font:inherit;color:#222}.reg-form input:focus{outline:2px solid #2930ed;outline-offset:2px}.reg-form input[type=checkbox],.reg-form input[type=radio]{width:20px;height:20px;accent-color:#2930ed;vertical-align:middle;margin-right:8px}.reg-form .hint{font-size:14px;color:#888}.reg-form fieldset{border:0;border-bottom:1px solid #ddd;padding:24px 0}.reg-form legend{font-weight:600;padding-top:24px}.reg-form .checks,.reg-form .radios,.reg-form .check-row,.reg-form .radio-row{display:flex;flex-wrap:wrap;gap:16px 24px}.reg-form label{line-height:1.8}.agree-row,.agree-line,.agree-all{padding:20px 0;border-bottom:1px solid #ddd}.agree-more{border:0;background:none;color:#2930ed;text-decoration:underline;cursor:pointer;font:inherit;margin-left:16px}.agree-panel{padding:24px;background:#f6f7fa;margin:16px 0;max-height:300px;overflow:auto;font-size:16px}.agree-panel table{border-collapse:collapse;width:100%}.agree-panel th,.agree-panel td{border:1px solid #ddd;padding:12px}.reg-form button[type=submit]{display:flex;justify-content:space-between;align-items:center;min-width:240px;margin:36px auto 0;padding:20px 28px;border:0;border-radius:1000px;background:#2930ed;color:#fff;font:inherit;cursor:pointer}.field-err{color:#2930ed;margin-top:20px}.find-area{max-width:620px;margin:auto}.find-area .field{margin-bottom:24px}.find-area form>a{display:block;text-align:center;margin-top:24px}.reg-form [hidden]{display:none!important}
@media(max-width:767px){.form-grid{grid-template-columns:1fr;gap:22px}.agree-panel{padding:16px}.reg-form h3{font-size:24px}.reg-form .hint-spacer{display:none}}
.reg-form legend{display:block;position:static;width:auto;height:auto;clip:auto;overflow:visible;visibility:visible;font-size:18px;line-height:1.6;margin-bottom:18px}.reg-form .opts{display:flex;flex-wrap:wrap;gap:14px 26px}.reg-form .opts.col{flex-direction:column}.reg-form .opt{display:flex;align-items:center;gap:6px;font-weight:400}.reg-form .opt.with-text{flex-wrap:wrap}.reg-form .opt .inline-input{width:240px!important;margin-left:10px}.reg-form .survey-top,.reg-form .survey-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px}.reg-form .agree-item-row{padding:22px 0;border-bottom:1px solid #ddd}.reg-form .agree-head{display:flex;justify-content:space-between;align-items:center;gap:18px}.reg-form .agree-legal-note{padding:24px;background:#f6f7fa;margin-bottom:24px}.reg-form .check.all{display:block;padding:20px 0;border-bottom:2px solid #111;font-weight:600}
@media(max-width:767px){.reg-form .survey-top,.reg-form .survey-grid{grid-template-columns:1fr;gap:0}.reg-form .agree-head{align-items:flex-start;flex-direction:column;gap:8px}.reg-form .agree-more{margin-left:0}.reg-form .opt .inline-input{width:100%!important;margin-left:0}}

/* Registration lookup: framed heading and separate form card. */
.find-area.lookup-card {max-width:800px;padding:64px 56px 56px;border:1px solid #dfe5f0;border-radius:36px;background:#fff;box-shadow:0 16px 50px #2930ed0b;box-sizing:border-box;}
.lookup-card-heading {text-align:center;margin-bottom:40px;}
.lookup-card-heading .eyebrow {font-size:16px;letter-spacing:3px;color:#66738b;font-weight:650;margin-bottom:22px;}
.festival-content .lookup-card-heading h3 {font-size:44px;color:#111;margin-bottom:24px;}
.lookup-card-heading>p:last-child {font-size:18px;line-height:1.7;color:#66738b;}
.lookup-card .reg-form {margin:0;padding:40px;border:1px solid #dfe5f0;border-radius:28px;box-shadow:0 6px 20px #17243d08;}
.lookup-card .field {text-align:left;font-size:18px;font-weight:600;}
.lookup-card .field em {color:#2930ed;font-style:normal;}
.lookup-card .reg-form input {border-color:#dfe5f0!important;background:#fcfdff!important;border-radius:12px!important;font-size:18px!important;}
.lookup-card #lookupMsg:not(:empty) {margin-top:24px;color:#666;font-size:16px;line-height:1.6;}
@media(max-width:767px) {.find-area.lookup-card {padding:36px 20px 24px;border-radius:24px;}.lookup-card .reg-form {padding:24px 18px;border-radius:20px;}.festival-content .lookup-card-heading h3 {font-size:28px;}.lookup-card-heading .eyebrow {font-size:13px;letter-spacing:2px;}.lookup-card-heading>p:last-child {font-size:16px;}}

.festival-content .lookup-card-heading h3 {font-weight:800;}

.lookup-card-heading .eyebrow {letter-spacing:-0.02em;}

#lookupForm button.festival-action {font-size:20px;font-weight:600;position:relative;justify-content:center;text-align:center;padding-left:56px;padding-right:56px;}
#lookupForm button.festival-action>span {position:absolute;right:28px;top:50%;transform:translateY(-50%);}

/* Avoid doubled top spacing between the survey legend and options. */
#regForm .survey-top fieldset {padding-top:0;padding-bottom:24px;}

/* Restore visible survey legends hidden by the shared reset. */
#regForm legend {text-indent:0;color:#222;font-weight:700;}
.register-form-notice {display:flex;align-items:center;justify-content:center;text-align:center;flex-wrap:wrap;gap:16px 28px;padding:24px 32px;border:1px solid #dfe5f0;border-radius:40px;background:linear-gradient(110deg,#fff,#eef5ff);box-shadow:0 5px 18px #17243d08;color:#142448;font-size:18px;line-height:1.6;}
.register-form-notice>strong {font-weight:700;}
.register-form-notice>span {display:flex;flex-wrap:wrap;justify-content:center;gap:8px 12px;}
.register-form-required {max-width:1200px;margin:24px auto 0;color:#737373;font-size:16px;}
@media(max-width:767px) {.register-form-notice {padding:24px;border-radius:24px;align-items:center;flex-direction:column;font-size:16px;}}

#regForm .required-mark {color:#2930ed;font-style:normal;}

#regForm button[type=submit] {justify-content:center;text-align:center;font-size:20px;font-weight:500;}

.register-form-notice {width:100%;max-width:1200px;min-height:80px;box-sizing:border-box;margin-inline:auto;}
@media(min-width:1600px) {.register-form-notice {height:80px;padding-block:12px;}}

#regForm input:not([type=checkbox]):not([type=radio]):not([type=hidden]), #regForm select {height:64px;box-sizing:border-box;}

#regForm input[aria-invalid="true"] {border-color:#ff2345;background:#fff7f8;}
#regForm .input-error {display:block;color:#e60024;font-size:16px;font-weight:600;line-height:1.5;margin-top:6px;}

#regForm button[type=submit] {width:300px;max-width:100%;min-width:0;min-height:70px;box-sizing:border-box;justify-content:space-between;padding:20px 28px;border:0;border-radius:1000px;background:linear-gradient(110deg,#061b3d 0%,#105cff 58%,#32bff0 100%);color:#fff;box-shadow:0 10px 24px #2930ed20;transition:filter .2s;}
#regForm button[type=submit]:hover {filter:brightness(1.1);}

#lookupForm button.festival-action {width:300px;max-width:100%;min-width:0;min-height:70px;box-sizing:border-box;justify-content:space-between;text-align:left;padding:20px 28px;border:0;border-radius:1000px;background:linear-gradient(110deg,#061b3d 0%,#105cff 58%,#32bff0 100%);color:#fff;box-shadow:0 10px 24px #2930ed20;transition:filter .2s;}
#lookupForm button.festival-action>span {position:static;transform:none;}
#lookupForm button.festival-action:hover {filter:brightness(1.1);}

.register-form-welcome {margin:0 0 40px;text-align:center;}
.festival-content .register-form-welcome h3 {font-size:48px;font-weight:700;line-height:1.4;letter-spacing:-1.5px;color:#222;}
.register-form-welcome p {margin-top:28px;font-size:22px;line-height:1.6;color:#222;}
.register-form-notice {justify-content:center;column-gap:64px;}
@media(max-width:767px) {.festival-content .register-form-welcome h3 {font-size:32px;letter-spacing:-1px;}.register-form-welcome p {font-size:18px;margin-top:20px;}.register-form-welcome {margin-bottom:28px;}}
