@charset "UTF-8";
/*
Copyright (c) 2021 Kil Hyung-jin, with Reserved Font Name Pretendard.
https://github.com/orioncactus/pretendard

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
*/
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap");
.board-default__item .contents a.subject, .board-gallery__item .contents .subject, .board-faq__title .subject, .board-view__header .subject {
  font-size: var(--gj-fs-body-xl);
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-bold);
  word-break: break-all;
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media (max-width: 640px) {
  .board-default__item .contents a.subject, .board-gallery__item .contents .subject, .board-faq__title .subject, .board-view__header .subject {
    font-size: var(--gj-fs-body-lg);
  }
}
.board-view .board-default__item .contents a.subject, .board-default__item .contents .board-view a.subject, .board-view .board-gallery__item .contents .subject, .board-gallery__item .contents .board-view .subject, .board-view .board-faq__title .subject, .board-faq__title .board-view .subject, .board-view .board-view__header .subject, .board-view__header .board-view .subject {
  font-size: var(--gj-fs-body-2xl);
}
@media (max-width: 1024px) {
  .board-view .board-default__item .contents a.subject, .board-default__item .contents .board-view a.subject, .board-view .board-gallery__item .contents .subject, .board-gallery__item .contents .board-view .subject, .board-view .board-faq__title .subject, .board-faq__title .board-view .subject, .board-view .board-view__header .subject, .board-view__header .board-view .subject {
    font-size: var(--gj-fs-body-lg);
  }
}
.board-default__item .contents a.subject:hover, .board-gallery__item .contents .subject:hover, .board-faq__title .subject:hover, .board-view__header .subject:hover {
  text-decoration: underline;
}

.board-default__item .contents .info > p, .board-gallery__item .contents .info > p, .board-view__header .info > p {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  gap: var(--gj-spacer-xs);
  color: var(--gj-color-text-sub);
}
@media (max-width: 640px) {
  .board-default__item .contents .info > p, .board-gallery__item .contents .info > p, .board-view__header .info > p {
    font-size: var(--gj-fs-body-sm);
  }
}
.board-default__item .contents .info > p.file, .board-gallery__item .contents .info > p.file, .board-view__header .info > p.file {
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-medium);
}
.board-default__item .contents .info > p.file i, .board-gallery__item .contents .info > p.file i, .board-view__header .info > p.file i {
  color: var(--gj-color-primary);
}
.board-default__item .contents .info > p.secret, .board-gallery__item .contents .info > p.secret, .board-view__header .info > p.secret {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: 2px;
  border: 1px solid var(--gj-color-mono-500);
  border-radius: var(--gj-round-full);
  padding: 0 var(--gj-spacer-sm);
  height: 2.4rem;
  font-size: var(--gj-fs-body-sm);
  color: var(--gj-color-mono-500);
  font-weight: var(--gj-fw-medium);
}
.board-default__item .contents .info > p.secret .lucide, .board-gallery__item .contents .info > p.secret .lucide, .board-view__header .info > p.secret .lucide {
  width: 1.4rem;
  height: 1.4rem;
  color: var(--gj-color-mono-500);
  stroke-width: 2;
}

.module-program__item:hover .module-program__thumb, .board-gallery__item:hover .thumbnail, .module__item .thumbnail {
  position: relative;
}
.module-program__item:hover .module-program__thumb::after, .board-gallery__item:hover .thumbnail::after, .module__item .thumbnail::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.module-program__item:hover .module-program__thumb:hover, .board-gallery__item:hover .thumbnail:hover, .module__item .thumbnail:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(45, 212, 191, 0.3);
}
.module-program__item:hover .module-program__thumb:hover::after, .board-gallery__item:hover .thumbnail:hover::after, .module__item .thumbnail:hover::after {
  background-color: rgba(45, 212, 191, 0.1);
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
.module-program__item:hover .module-program__thumb:hover img, .board-gallery__item:hover .thumbnail:hover img, .module__item .thumbnail:hover img {
  transform: scale(1.02);
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}

.modal__card, .dialog {
  background: var(--gj-color-surface-white);
  border-radius: var(--gj-round-2xl);
  padding: var(--gj-spacer-lg);
  min-width: 40rem;
  max-width: 90vw;
  box-shadow: 0 1rem 1rem rgba(0, 0, 0, 0.15);
}

:root {
  --gj-fs-display-xs: 2.4rem;
  --gj-fs-display-sm: 4rem;
  --gj-fs-display-md: 5.6rem;
  --gj-fs-display-lg: 6.4rem;
  --gj-fs-display-xl: 7.2rem;
  --gj-fs-title-sm: 2.4rem;
  --gj-fs-title-md: 3.2rem;
  --gj-fs-title-lg: 4rem;
  --gj-fs-title-xl: 4.8rem;
  --gj-fs-title-2xl: 5.6rem;
  --gj-fs-body-sm: 1.5rem;
  --gj-fs-body-md: 1.6rem;
  --gj-fs-body-lg: 1.8rem;
  --gj-fs-body-xl: 2rem;
  --gj-fs-body-2xl: 2.4rem;
  --gj-fw-light: 300;
  --gj-fw-normal: 400;
  --gj-fw-medium: 500;
  --gj-fw-bold: 700;
  --gj-fw-bolder: 800;
  --gj-color-white: #fff;
  --gj-color-black: #000;
  --gj-color-primary: #2dd4bf;
  --gj-color-secondary: #4338ca;
  --gj-color-red: #db2777;
  --gj-color-yellow: #eab308;
  --gj-color-green: #10b981;
  --gj-color-blue: #3b82f6;
  --gj-color-gray: #94a3b8;
  --gj-color-mono-50: #f8fafc;
  --gj-color-mono-100: #f1f5f9;
  --gj-color-mono-200: #e2e8f0;
  --gj-color-mono-300: #cbd5e1;
  --gj-color-mono-400: #94a3b8;
  --gj-color-mono-500: #64748b;
  --gj-color-mono-600: #475569;
  --gj-color-mono-700: #334155;
  --gj-color-mono-800: #1e293b;
  --gj-color-mono-900: #0f172a;
  --gj-color-text-primary: #1e293b;
  --gj-color-text-base: #475569;
  --gj-color-text-sub: #64748b;
  --gj-color-text-info: #94a3b8;
  --gj-color-text-disabled: #cbd5e1;
  --gj-color-text-white: #fff;
  --gj-color-surface-bg: #f1f5f9;
  --gj-color-surface-line: #cbd5e1;
  --gj-color-surface-white: #fff;
  --gj-color-surface-dark: #1e293b;
  --gj-color-surface-primary: #14b8a6;
  --gj-spacer-xs: 0.4rem;
  --gj-spacer-sm: 0.8rem;
  --gj-spacer-md: 1.6rem;
  --gj-spacer-lg: 2.4rem;
  --gj-spacer-xl: 3.2rem;
  --gj-spacer-2xl: 4rem;
  --gj-spacer-3xl: 4.8rem;
  --gj-spacer-4xl: 5.6rem;
  --gj-spacer-5xl: 6.4rem;
  --gj-spacer-6xl: 7.2rem;
  --gj-round-sm: .4rem;
  --gj-round-md: .8rem;
  --gj-round-lg: 1.2rem;
  --gj-round-xl: 1.6rem;
  --gj-round-2xl: 2.4rem;
  --gj-round-3xl: 3.2rem;
  --gj-round-full: 999px;
}

@font-face {
  font-family: "Pretendard";
  font-weight: 900;
  font-display: swap;
  src: local("Pretendard Black"), url("/fonts/pretendard/woff2/Pretendard-Black.woff2") format("woff2"), url("/fonts/pretendard/woff/Pretendard-Black.woff") format("woff");
}
@font-face {
  font-family: "Pretendard";
  font-weight: 700;
  font-display: swap;
  src: local("Pretendard Bold"), url("/fonts/pretendard/woff2/Pretendard-Bold.woff2") format("woff2"), url("/fonts/pretendard/woff/Pretendard-Bold.woff") format("woff");
}
@font-face {
  font-family: "Pretendard";
  font-weight: 500;
  font-display: swap;
  src: local("Pretendard Medium"), url("/fonts/pretendard/woff2/Pretendard-Medium.woff2") format("woff2"), url("/fonts/pretendard/woff/Pretendard-Medium.woff") format("woff");
}
@font-face {
  font-family: "Pretendard";
  font-weight: 400;
  font-display: swap;
  src: local("Pretendard Regular"), url("/fonts/pretendard/woff2/Pretendard-Regular.woff2") format("woff2"), url("/fonts/pretendard/woff/Pretendard-Regular.woff") format("woff");
}
@font-face {
  font-family: "Pretendard";
  font-weight: 300;
  font-display: swap;
  src: local("Pretendard Light"), url("/fonts/pretendard/woff2/Pretendard-Light.woff2") format("woff2"), url("/fonts/pretendard/woff/Pretendard-Light.woff") format("woff");
}
@font-face {
  font-family: "ChangwonDanggamAsak";
  src: url("/fonts/CWDangamAsac-Bold.woff") format("woff");
  font-weight: normal;
  font-display: swap;
}
html,
body {
  position: relative;
  width: 100%;
  height: 100%;
  font-family: "Pretendard", "맑은 고딕", "MalgumGothic", sans-serif;
  color: var(--gj-color-text-base);
  font-weight: var(--gj-fw-normal);
  line-height: 1.5;
  word-break: keep-all;
  word-wrap: break-word;
  -webkit-tap-highlight-color: transparent;
  scroll-behavior: smooth;
  letter-spacing: -0.03rem;
}

html {
  font-size: 62.5%;
}

body {
  font-size: 1.6rem;
  overflow-x: hidden;
}
@media (max-width: 640px) {
  body {
    font-size: 1.5rem;
  }
}

::-moz-selection {
  background: var(--gj-color-primary);
  color: var(--gj-color-text-white);
}

::selection {
  background: var(--gj-color-primary);
  color: var(--gj-color-text-white);
}

body,
div,
p,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
li,
dl,
dt,
dd,
table,
th,
td,
form,
fieldset,
legend,
input,
textarea,
a,
button,
select,
ul,
li,
span,
em,
label,
:before,
:after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  -webkit-text-size-adjust: none;
  font-family: inherit;
  line-height: 1.5;
  letter-spacing: inherit;
}

pre {
  font-family: inherit;
}

input,
textarea,
a,
button,
select,
span,
label,
:before,
:after {
  font-size: inherit;
  font-weight: inherit;
}

h1,
h2,
h3,
h4,
h5,
h6,
strong {
  font-weight: var(--gj-fw-bold);
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section {
  display: block;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

img,
fieldset {
  border: 0;
}

fieldset {
  min-width: 100%;
}

img {
  max-width: 100%;
  vertical-align: top;
}

ul,
ol {
  list-style: none;
}

em,
address,
i {
  font-style: normal;
}

a,
a:hover,
a:active,
a:focus {
  color: inherit;
  text-decoration: none;
}

button,
input[type=submit],
input[type=button] {
  overflow: visible;
  margin: 0;
  background-color: transparent;
  border: none;
  -webkit-appearance: button;
  appearance: button;
  cursor: pointer;
  font: inherit;
  color: inherit;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
  padding: 0;
  border: 0;
}

textarea {
  resize: none;
}

label {
  cursor: pointer;
}

select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

input[type=text],
input[type=tel],
input[type=password],
input[type=file],
input[type=number],
input[type=email],
input[type=date],
input[type=search],
textarea {
  -webkit-box-shadow: none;
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  -webkit-tap-highlight-color: transparent;
  color: var(--gj-color-text-base);
}

caption {
  position: static !important;
  margin: 0 !important;
}

table {
  table-layout: fixed;
  max-width: none;
  width: auto;
  min-width: 100%;
  border-collapse: collapse;
}

[role=button] {
  cursor: pointer;
}

.blind,
.sr-only,
legend,
caption {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.hide {
  display: none !important;
}

.show {
  display: block !important;
}

.sr-only, .hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

hr {
  border: none;
  width: 100%;
  height: 1px;
  background: var(--gj-color-surface-line);
}

.font-heading {
  font-family: "ChangwonDanggamAsak", "Pretendard", "맑은 고딕", "MalgumGothic", sans-serif;
}

.skip-navigation {
  position: relative;
  width: 100%;
  text-align: center;
  z-index: 10000;
}
.skip-navigation dt, .skip-navigation dd {
  transform: none;
}
.skip-navigation dt {
  width: 100%;
  height: 0;
  font-size: 0;
  line-height: 0;
}
.skip-navigation a {
  display: block;
  position: absolute;
  top: -9999px;
  left: 0;
  width: 100%;
  height: 0;
  z-index: 100;
}
.skip-navigation a:hover, .skip-navigation a:focus, .skip-navigation a:active {
  top: 0;
  height: 30px;
  background: #2dd4bf;
  line-height: 30px;
  color: #fff;
}

body.locked {
  overflow: hidden !important;
  -ms-touch-action: none !important;
  touch-action: none !important;
}

#wrapper {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  position: relative;
  width: 100%;
  min-height: 100vh;
  height: auto;
}

.container {
  position: relative;
  flex-grow: 1;
  padding-top: 9.6rem;
  padding-bottom: 8rem;
}
@media (max-width: 768px) {
  .container {
    padding-top: 7.2rem;
    padding-bottom: 4.8rem;
  }
}
.container--main {
  padding-top: 0;
  overflow: hidden;
}
.container--flex {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 9.6rem;
  background: transparent;
  z-index: 1000;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
@media (max-width: 768px) {
  .header {
    height: 7.2rem;
  }
}
.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
  width: 100%;
  height: 100%;
  padding: 0 var(--gj-spacer-3xl);
}
@media (max-width: 1280px) {
  .header__inner {
    padding: 0 var(--gj-spacer-lg);
    gap: var(--gj-spacer-xl);
  }
}
.header__util {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-direction: row;
  gap: var(--gj-spacer-md);
  margin-left: auto;
  z-index: 10;
}
@media (max-width: 768px) {
  .header__util {
    opacity: 0;
    visibility: hidden;
    width: 0;
  }
  .header__util--active {
    opacity: 1;
    visibility: visible;
    width: auto;
    -webkit-transition: all 0.5s ease 0.3s;
    -o-transition: all 0.5s ease 0.3s;
    transition: all 0.5s ease 0.3s;
    position: absolute;
    left: 2.4rem;
  }
}
.header__util .util-line {
  color: var(--gj-color-surface-line);
}
.header__util .util-btn {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-xs);
  color: var(--gj-color-text-white);
  font-weight: var(--gj-fw-medium);
}
.header__util .util-btn .lucide {
  width: 1.6rem;
  height: 1.6rem;
}
.header--active .header__util .util-btn, .header--fixed .header__util .util-btn, .header--page .header__util .util-btn {
  color: var(--gj-color-text-primary);
}
.header::before {
  content: "";
  display: block;
  position: absolute;
  top: 9.6rem;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--gj-color-surface-white);
  opacity: 0.2;
  z-index: 10;
}
@media (max-width: 768px) {
  .header::before {
    top: 7.2rem;
  }
}
.header::after {
  content: "";
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 0;
  background: var(--gj-color-surface-white);
  opacity: 0;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
@media (min-width: 1280px) {
  .header--active::before {
    background: var(--gj-color-surface-line);
    opacity: 0.5;
  }
  .header--active::after {
    height: 36rem;
    opacity: 1;
  }
}
@media (min-width: 1280px) and (max-width: 1280px) {
  .header--active::after {
    display: none;
  }
}
@media (min-width: 1280px) {
  .header--page::before {
    background: var(--gj-color-surface-line);
    opacity: 0.5;
  }
}
.header--fixed, .header--page {
  background: var(--gj-color-surface-white);
}
.header--fixed::after, .header--page::after {
  -webkit-box-shadow: 0 0 0.8rem rgba(0, 0, 0, 0.16);
  box-shadow: 0 0 0.8rem rgba(0, 0, 0, 0.16);
}
.header--fixed {
  -webkit-box-shadow: 0 0 0.8rem rgba(0, 0, 0, 0.16);
  box-shadow: 0 0 0.8rem rgba(0, 0, 0, 0.16);
}
.header--fixed::before {
  background: transparent;
}

h1.logo {
  width: 13.9rem;
  height: 6.1rem;
}
@media (min-width: 1280px) {
  h1.logo {
    z-index: 10;
  }
}
@media (max-width: 768px) {
  h1.logo {
    width: 10.4rem;
    height: 4.6rem;
  }
}
h1.logo a {
  display: block;
  width: 100%;
  height: 100%;
  background: url("/images/common/logo.svg") no-repeat center/cover;
}
@media (min-width: 1280px) {
  .header--active h1.logo a {
    background: url("/images/common/logo-dark.svg") no-repeat center/cover;
  }
}
.header--fixed h1.logo a, .header--page h1.logo a {
  background: url("/images/common/logo-dark.svg") no-repeat center/cover;
}

@media (min-width: 1280px) {
  .gnb {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 0;
    z-index: 10;
  }
}
@media (max-width: 1280px) {
  .gnb {
    position: fixed;
    top: 0;
    bottom: 0;
    left: auto;
    right: -100%;
    width: 100%;
    padding: 8rem var(--gj-spacer-lg);
    background-color: var(--gj-color-surface-white);
    transform: none;
    -webkit-transition: right 0.5s ease 0s;
    -o-transition: right 0.5s ease 0s;
    transition: right 0.5s ease 0s;
  }
  .gnb--active {
    right: 0;
  }
}
.gnb > ul {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
}
@media (min-width: 1280px) {
  .gnb > ul {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: row;
  }
}
@media (min-width: 1280px) {
  .gnb__item {
    height: 9.6rem;
    text-align: center;
  }
}
.gnb__item > a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  height: 5.6rem;
  font-size: var(--gj-fs-body-xl);
  color: var(--gj-color-text-primary);
}
@media (min-width: 1280px) {
  .gnb__item > a {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: row;
    position: relative;
    height: 100%;
    padding: 0 var(--gj-spacer-xl);
    color: var(--gj-color-text-white);
    font-size: var(--gj-fs-body-lg);
    font-weight: var(--gj-fw-medium);
  }
  .gnb__item > a .lucide {
    display: none;
  }
  .gnb__item > a::before {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 3rem;
    height: 0.4rem;
    margin-left: 3rem;
    background: var(--gj-color-primary);
    opacity: 0;
    -webkit-transition: all 0.5s ease 0s;
    -o-transition: all 0.5s ease 0s;
    transition: all 0.5s ease 0s;
  }
}
@media (max-width: 1660px) {
  .gnb__item > a {
    padding: 0 var(--gj-spacer-lg);
  }
}
@media (max-width: 1440px) {
  .gnb__item > a {
    padding: 0 var(--gj-spacer-md);
  }
}
@media (max-width: 1280px) {
  .gnb__item > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-direction: row;
  }
  .gnb__item > a .lucide {
    color: var(--gj-color-text-info);
  }
}
.gnb__item--active > a, .gnb__item--selected > a {
  font-weight: var(--gj-fw-bold);
}
.gnb__item--active > a .lucide, .gnb__item--selected > a .lucide {
  transform: rotate(180deg);
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
  color: var(--gj-color-text-primary);
}
.gnb__item--active > a::before, .gnb__item--selected > a::before {
  margin-left: -1.5rem;
  opacity: 1;
}
.header--active .gnb__item a, .header--fixed .gnb__item a, .header--page .gnb__item a {
  color: var(--gj-color-text-primary);
}
.gnb__depth {
  position: relative;
  width: 100%;
  min-height: 0;
}
@media (max-width: 1280px) {
  .gnb__depth {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
    transition: max-height 0.35s ease, opacity 0.35s ease;
  }
}
@media (min-width: 1280px) {
  .gnb__depth {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(2rem);
    -webkit-transition: opacity transform ease 0s;
    -o-transition: opacity transform ease 0s;
    transition: opacity transform ease 0s;
  }
}
.gnb__depth .depth2 {
  opacity: 0.8;
  padding: var(--gj-spacer-md);
}
@media (max-width: 1280px) {
  .gnb__depth .depth2 {
    padding: 0 var(--gj-spacer-md) var(--gj-spacer-md);
  }
}
.gnb__depth .depth2 li {
  font-size: var(--gj-fs-body-lg);
  line-height: 4rem;
}
@media (min-width: 1280px) {
  .gnb__depth .depth2 li {
    position: relative;
    top: 2rem;
    opacity: 0;
    font-size: var(--gj-fs-body-md);
  }
}
.gnb__item--active .gnb__depth .depth2 {
  opacity: 1;
}
.gnb__item--active .gnb__depth .depth2 a {
  font-weight: var(--gj-fw-medium);
}
.gnb__item--active .gnb__depth .depth2 a:hover {
  font-weight: var(--gj-fw-bold);
}
@media (max-width: 1280px) {
  .gnb__item--active .gnb__depth .depth2 a {
    color: var(--gj-color-text-sub);
  }
}
.gnb__depth--active {
  visibility: visible;
  opacity: 1;
}
@media (min-width: 1280px) {
  .gnb__depth--active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
}
@media (max-width: 1280px) {
  .gnb__depth--active {
    max-height: 500px;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}
.gnb__depth--active .depth2 li {
  top: 0;
  opacity: 1;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
.gnb__depth--active .depth2 li:nth-child(1) {
  transition-delay: 0s;
}
.gnb__depth--active .depth2 li:nth-child(2) {
  transition-delay: 0.1s;
}
.gnb__depth--active .depth2 li:nth-child(3) {
  transition-delay: 0.2s;
}
.gnb__depth--active .depth2 li:nth-child(4) {
  transition-delay: 0.3s;
}
.gnb__depth--active .depth2 li:nth-child(5) {
  transition-delay: 0.4s;
}

.mmenu-btn {
  display: none;
  width: 4rem;
  height: 4rem;
  padding: 0.8rem 0.5rem;
  z-index: 100;
}
@media (max-width: 1280px) {
  .mmenu-btn {
    display: block;
  }
}
@media (max-width: 768px) {
  .mmenu-btn {
    width: 3.2rem;
    height: 3.2rem;
    padding: 0.4rem;
  }
}
.mmenu-btn span[class*=bar] {
  display: block;
  position: relative;
  width: 3rem;
  height: 2px;
  opacity: 1;
  background: var(--gj-color-surface-white);
  transform: rotate(0deg);
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
@media (max-width: 768px) {
  .mmenu-btn span[class*=bar] {
    width: 2.4rem;
  }
}
.mmenu-btn span.bar2, .mmenu-btn span.bar3 {
  margin-top: 0.8rem;
}
.mmenu-btn--active span[class*=bar] {
  background: var(--gj-color-text-primary);
  width: 3.2rem;
}
.mmenu-btn--active span.bar1 {
  top: 50%;
  transform: rotate(45deg);
}
.mmenu-btn--active span.bar2 {
  opacity: 0;
}
.mmenu-btn--active span.bar3 {
  margin-top: 0;
  transform: rotate(-45deg);
}
.header--fixed .mmenu-btn span[class*=bar], .header--page .mmenu-btn span[class*=bar] {
  background: var(--gj-color-surface-dark);
}

.page {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-xl);
  width: 100%;
  flex-grow: 1;
}
@media (max-width: 1280px) {
  .page {
    gap: var(--gj-spacer-lg);
  }
}
@media (max-width: 640px) {
  .page {
    gap: var(--gj-spacer-md);
  }
}
.page__inner {
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
}
@media (max-width: 1440px) {
  .page__inner {
    padding: 0 var(--gj-spacer-lg);
  }
}
@media (max-width: 640px) {
  .page__inner {
    padding: 0 var(--gj-spacer-md);
  }
}
.page__head {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-xl);
  padding-top: 8rem;
}
@media (max-width: 1280px) {
  .page__head {
    gap: var(--gj-spacer-lg);
    padding-top: var(--gj-spacer-4xl);
  }
}
@media (max-width: 768px) {
  .page__head {
    gap: var(--gj-spacer-md);
    padding-top: var(--gj-spacer-2xl);
  }
}
@media (max-width: 640px) {
  .page__head {
    padding-top: 2.4rem;
  }
}
.page__head::after {
  content: "";
  display: block;
  width: 0.4rem;
  height: 8rem;
  background-color: var(--gj-color-primary);
}
@media (max-width: 1280px) {
  .page__head::after {
    height: 6rem;
  }
}
@media (max-width: 768px) {
  .page__head::after {
    height: 4rem;
  }
}
.page__title {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
}
.page__title h2 {
  font-size: var(--gj-fs-title-xl);
  font-family: "ChangwonDanggamAsak", "Pretendard", "맑은 고딕", "MalgumGothic", sans-serif;
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-regular);
}
@media (max-width: 1024px) {
  .page__title h2 {
    font-size: var(--gj-fs-title-lg);
  }
}
@media (max-width: 768px) {
  .page__title h2 {
    font-size: var(--gj-fs-title-md);
  }
}
.page__title span {
  font-size: var(--gj-fs-body-lg);
  text-align: center;
}
@media (max-width: 640px) {
  .page__title span {
    font-size: var(--gj-fs-body-md);
  }
}
.page__body {
  flex-grow: 1;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-4xl);
  width: 100%;
}
@media (max-width: 640px) {
  .page__body {
    gap: var(--gj-spacer-2xl);
  }
}
.page__subtitle {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
}
@media (max-width: 1280px) {
  .page__subtitle {
    gap: var(--gj-spacer-sm);
  }
}
.page__subtitle h3 {
  font-size: var(--gj-fs-title-lg);
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-text-primary);
}
@media (max-width: 1280px) {
  .page__subtitle h3 {
    font-size: var(--gj-fs-title-md);
  }
}
@media (max-width: 768px) {
  .page__subtitle h3 {
    font-size: var(--gj-fs-title-sm);
  }
}
.page__nav {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
@media (max-width: 768px) {
  .page__nav {
    gap: var(--gj-spacer-sm);
  }
}
.page__nav .lucide {
  width: 1.6rem;
  height: 1.6rem;
  color: var(--gj-color-surface-line);
}
.page__nav .lucide.home {
  width: 2.4rem;
  height: 2.4rem;
  color: var(--gj-color-primary);
}
@media (max-width: 768px) {
  .page__nav .lucide.home {
    width: 2rem;
    height: 2rem;
  }
}
.page__nav p {
  color: var(--gj-color-text-primary);
  font-size: var(--gj-fs-body-lg);
}
@media (max-width: 1024px) {
  .page__nav p {
    font-size: var(--gj-fs-body-md);
  }
}
@media (max-width: 640px) {
  .page__nav p {
    font-size: var(--gj-fs-body-md);
  }
}
.page__nav p.current {
  font-weight: var(--gj-fw-bold);
}
.page__tabmenu {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
@media (max-width: 768px) {
  .page__tabmenu {
    gap: var(--gj-spacer-sm);
  }
}
.page__tabmenu .tabmenu__item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  min-width: 12rem;
  height: 4.8rem;
  border-radius: 999px;
  padding: 0 var(--gj-spacer-md);
  background-color: var(--gj-color-mono-400);
  color: var(--gj-color-text-white);
  font-size: var(--gj-fs-body-lg);
}
@media (max-width: 1280px) {
  .page__tabmenu .tabmenu__item {
    font-size: var(--gj-fs-body-md);
  }
}
@media (max-width: 768px) {
  .page__tabmenu .tabmenu__item {
    min-width: auto;
    height: 4rem;
  }
}
.page__tabmenu .tabmenu__item--active {
  background-color: var(--gj-color-primary);
  font-weight: var(--gj-fw-bold);
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(45, 212, 191, 0.3);
}
@media (max-width: 768px) {
  .page__tabmenu .tabmenu__item--active {
    transition: box-shadow 0.25s, transform 0.25s;
    box-shadow: 0 0 0 0.4rem rgba(45, 212, 191, 0.3);
  }
}
.page__tabmenu .tabmenu__item:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(148, 163, 184, 0.3);
}

.marquee {
  --gap: var(--gj-spacer-xl);
  --speed: 6s;
  overflow: hidden;
  width: 100%;
}
.marquee__inner {
  display: flex;
  align-items: center;
  gap: var(--gap);
  padding-inline: var(--gap);
  will-change: transform;
  animation: marquee var(--speed) linear infinite;
}
.marquee__inner img,
.marquee__inner svg {
  height: 28rem;
  flex: 0 0 auto;
}
@keyframes marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .marquee__inner {
    animation: none;
  }
}

.footer {
  position: relative;
  background: var(--gj-color-white);
  border-top: 1px solid var(--gj-color-surface-line);
  color: var(--gj-color-text-primary);
}
.footer__inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-direction: row;
  gap: var(--gj-spacer-4xl);
  max-width: 1440px;
  width: 100%;
  margin: 0 auto;
  padding: var(--gj-spacer-3xl) 0;
  text-align: center;
}
@media (max-width: 1440px) {
  .footer__inner {
    padding: var(--gj-spacer-3xl) var(--gj-spacer-xl);
  }
}
@media (max-width: 768px) {
  .footer__inner {
    padding: var(--gj-spacer-2xl) var(--gj-spacer-md);
  }
}
@media (max-width: 768px) {
  .footer__inner {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
    gap: var(--gj-spacer-lg);
  }
}
.footer__logo {
  display: block;
  background: url("/images/common/logo-dark.svg") no-repeat center/cover;
  width: 16.5rem;
  height: 7.2rem;
}
@media (min-width: 768px) and (max-width: 1280px) {
  .footer__logo {
    display: none;
  }
}
@media (max-width: 768px) {
  .footer__logo {
    width: 13.2rem;
    height: 5.76rem;
  }
}
@media (max-width: 640px) {
  .footer__logo {
    display: none;
  }
}
.footer__info {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
  margin-left: auto;
}
@media (max-width: 1280px) {
  .footer__info {
    margin-left: 0;
  }
}
@media (max-width: 768px) {
  .footer__info {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
  }
}
.footer__info .info__links {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
.footer__info .info__links > a {
  font-weight: var(--gj-fw-bold);
}
@media (max-width: 640px) {
  .footer__info .info__links > a {
    font-size: var(--gj-fs-body-sm);
  }
}
.footer__info .info__copy {
  text-align: left;
}
@media (max-width: 768px) {
  .footer__info .info__copy {
    text-align: center;
    font-size: var(--gj-fs-body-sm);
  }
}
.footer__info .info__copy .siteinfo {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
@media (max-width: 768px) {
  .footer__info .info__copy .siteinfo {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0 var(--gj-spacer-md);
    font-size: var(--gj-fs-body-sm);
  }
}
.footer__sns {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-sm);
}
.footer__sns strong {
  font-size: var(--gj-fs-body-lg);
}
@media (max-width: 768px) {
  .footer__sns strong {
    display: none;
  }
}
.footer__sns .sns {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
}
.footer__sns .sns__item {
  width: 4rem;
  height: 4rem;
}
.footer__sns .sns__item--insta {
  background: url("/images/sns/sns_insta.png") no-repeat center/cover;
}
.footer__sns .sns__item--yt {
  background: url("/images/sns/sns_youtube.png") no-repeat center/cover;
}
.footer__sns .sns__item--blog {
  background: url("/images/sns/sns_blog.png") no-repeat center/cover;
}

.bannerzone {
  position: relative;
  height: auto;
  border-top: 1px solid #cbd5e1;
  background-color: #fff;
}
.bannerzone__inner {
  position: relative;
  max-width: 1440px;
  width: 100%;
  margin: 0 auto;
  padding: var(--gj-spacer-xl) 4.8rem;
}
@media (max-width: 768px) {
  .bannerzone__inner {
    padding: var(--gj-spacer-md) 5.6rem;
  }
}
.bannerzone__btn {
  display: block;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 4.8rem;
  height: 4.8rem;
  opacity: 0.5;
}
@media (max-width: 768px) {
  .bannerzone__btn {
    width: 3.6rem;
    height: 3.6rem;
  }
}
.bannerzone__btn svg {
  stroke-width: 1.5;
  width: 100%;
  height: 100%;
}
.bannerzone__btn--prev {
  left: 0;
}
.bannerzone__btn--next {
  right: 0;
}
.bannerzone__btn:hover {
  opacity: 1;
}

.modal {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  background: rgba(0, 0, 0, 0.35);
  z-index: 1000;
}
.modal__card {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-lg);
}
@media (max-width: 768px) {
  .modal__card {
    min-width: 90vw;
    width: 90vw;
  }
}
.modal__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
}
.modal__title h2 {
  font-size: var(--gj-fs-title-sm);
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-bold);
}
.modal__body--box {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-xs);
  padding: var(--gj-spacer-md);
  background-color: var(--gj-color-surface-bg);
  border-radius: var(--gj-round-xl);
  color: var(--gj-color-text-primary);
  text-align: center;
}
.modal__close {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-xs);
  margin-left: auto;
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-bold);
}
.modal__close:hover {
  color: var(--gj-color-primary);
}
.modal__close .lucide {
  width: 2.4rem;
  height: 2.4rem;
}
.modal__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
}
.modal.hidden {
  display: none;
}

.dialog {
  display: none;
  box-sizing: border-box;
  max-height: 80vh;
  border: none;
  width: min(76rem, 90%);
  z-index: 1000;
}
@media (max-width: 768px) {
  .dialog {
    min-width: 100vw;
    width: 100vw;
    min-height: 100vh;
    border-radius: 0;
  }
}
.dialog[open], .dialog[open] > form {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-xl);
}
.dialog__header {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  background-color: var(--gj-color-surface-white);
  gap: var(--gj-spacer-md);
  padding-top: var(--gj-spacer-md);
}
@media (max-width: 640px) {
  .dialog__header {
    gap: var(--gj-spacer-sm);
    padding-top: 0;
  }
}
.dialog__title {
  font-size: var(--gj-fs-title-lg);
  color: var(--gj-color-text-primary);
  font-family: "ChangwonDanggamAsak", "Pretendard", "맑은 고딕", "MalgumGothic", sans-serif;
}
@media (max-width: 640px) {
  .dialog__title {
    font-size: var(--gj-fs-title-md);
  }
}
.dialog__body {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
  overflow-y: auto;
}
.dialog__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
  position: sticky;
  bottom: 0;
}

.badge--fill.badge--primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #2dd4bf;
  color: #fff;
  text-transform: uppercase;
}

.badge--fill.badge--secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #4338ca;
  color: #fff;
  text-transform: uppercase;
}

.badge--fill.badge--red {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #db2777;
  color: #fff;
  text-transform: uppercase;
}

.badge--fill.badge--yellow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #eab308;
  color: #fff;
  text-transform: uppercase;
}

.badge--fill.badge--green {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #10b981;
  color: #fff;
  text-transform: uppercase;
}

.badge--fill.badge--blue {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #3b82f6;
  color: #fff;
  text-transform: uppercase;
}

.badge--fill.badge--gray {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #94a3b8;
  color: #fff;
  text-transform: uppercase;
}

.badge--fill.badge--dark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #1e293b;
  color: #fff;
  text-transform: uppercase;
}

.badge--outline.badge--primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  outline: 1px solid #2dd4bf;
  outline-offset: -1px;
  color: #2dd4bf;
  background-color: transparent;
  text-transform: uppercase;
}

.badge--outline.badge--secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  outline: 1px solid #4338ca;
  outline-offset: -1px;
  color: #4338ca;
  background-color: transparent;
  text-transform: uppercase;
}

.badge--outline.badge--red {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  outline: 1px solid #db2777;
  outline-offset: -1px;
  color: #db2777;
  background-color: transparent;
  text-transform: uppercase;
}

.badge--outline.badge--yellow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  outline: 1px solid #eab308;
  outline-offset: -1px;
  color: #eab308;
  background-color: transparent;
  text-transform: uppercase;
}

.badge--outline.badge--green {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  outline: 1px solid #10b981;
  outline-offset: -1px;
  color: #10b981;
  background-color: transparent;
  text-transform: uppercase;
}

.badge--outline.badge--blue {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  outline: 1px solid #3b82f6;
  outline-offset: -1px;
  color: #3b82f6;
  background-color: transparent;
  text-transform: uppercase;
}

.badge--outline.badge--gray {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  outline: 1px solid #94a3b8;
  outline-offset: -1px;
  color: #94a3b8;
  background-color: transparent;
  text-transform: uppercase;
}

.badge--outline.badge--dark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  outline: 1px solid #1e293b;
  outline-offset: -1px;
  color: #1e293b;
  background-color: transparent;
  text-transform: uppercase;
}

.badge--reverse.badge--primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #ccfbf1;
  color: #2dd4bf;
  text-transform: uppercase;
}

.badge--reverse.badge--secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #e0e7ff;
  color: #4338ca;
  text-transform: uppercase;
}

.badge--reverse.badge--red {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #ffe4e6;
  color: #db2777;
  text-transform: uppercase;
}

.badge--reverse.badge--yellow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #fef9c3;
  color: #eab308;
  text-transform: uppercase;
}

.badge--reverse.badge--green {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #d1fae5;
  color: #10b981;
  text-transform: uppercase;
}

.badge--reverse.badge--blue {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  color: #3b82f6;
  text-transform: uppercase;
}

.badge--reverse.badge--gray {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #e2e8f0;
  color: #94a3b8;
  text-transform: uppercase;
}

.badge--reverse.badge--dark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .8rem;
  border-radius: .8rem;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #e2e8f0;
  color: #1e293b;
  text-transform: uppercase;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
  cursor: pointer;
}
.btn--lg {
  gap: var(--gj-spacer-sm);
  min-width: 14rem;
  height: 5.6rem;
  border-radius: var(--gj-round-xl);
  font-size: var(--gj-fs-body-lg);
  padding-inline: var(--gj-spacer-lg);
  font-weight: var(--gj-fw-bold);
}
@media (max-width: 1024px) {
  .btn--lg {
    height: 5.2rem;
    padding-inline: var(--gj-spacer-lg);
    font-size: var(--gj-fs-body-md);
  }
}
.btn--md {
  gap: var(--gj-spacer-xs);
  height: 4.8rem;
  border-radius: var(--gj-round-md);
  font-size: var(--gj-fs-body-md);
  padding-inline: var(--gj-spacer-md);
  font-weight: var(--gj-fw-medium);
}
@media (max-width: 1024px) {
  .btn--md {
    height: 4.8rem;
    padding-inline: var(--gj-spacer-md);
    font-size: var(--gj-fs-body-sm);
  }
}
.btn--sm {
  gap: var(--gj-spacer-xs);
  height: 4rem;
  border-radius: var(--gj-round-md);
  font-size: var(--gj-fs-body-md);
  padding-inline: var(--gj-spacer-md);
  font-weight: var(--gj-fw-medium);
}
@media (max-width: 1024px) {
  .btn--sm {
    height: 4rem;
    padding-inline: var(--gj-spacer-md);
    font-size: var(--gj-fs-body-sm);
  }
}
.btn--xs {
  gap: var(--gj-spacer-xs);
  height: 3.2rem;
  border-radius: var(--gj-round-sm);
  font-size: var(--gj-fs-body-sm);
  padding-inline: var(--gj-spacer-sm);
  font-weight: var(--gj-fw-medium);
}
@media (max-width: 1024px) {
  .btn--xs {
    height: 3rem;
    padding-inline: var(--gj-spacer-sm);
    font-size: var(--gj-fs-body-sm);
  }
}
.btn--xs .lucide {
  width: 1.4rem;
  height: 1.4rem;
}
.btn--dark {
  background-color: #1e293b;
  color: #fff;
}
.btn--dark:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(30, 41, 59, 0.3);
  color: #fff;
}
.btn--primary {
  background-color: #2dd4bf;
  color: #fff;
}
.btn--primary:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(45, 212, 191, 0.3);
  color: #fff;
}
.btn--red {
  background-color: #db2777;
  color: #fff;
}
.btn--red:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(219, 39, 119, 0.3);
  color: #fff;
}
.btn--red.btn--outline {
  background-color: var(--gj-color-surface-white);
  color: #db2777;
  border: 1px solid #db2777;
}
.btn--red.btn--outline:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(219, 39, 119, 0.3);
  color: #db2777;
  background-color: var(--gj-color-surface-white);
}
.btn--gray {
  background-color: #94a3b8;
  color: #fff;
}
.btn--gray:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(148, 163, 184, 0.3);
  color: #fff;
}
.btn--gray.btn--outline {
  background-color: var(--gj-color-surface-white);
  color: #94a3b8;
  border: 1px solid #94a3b8;
}
.btn--gray.btn--outline:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(148, 163, 184, 0.3);
  color: #94a3b8;
  background-color: var(--gj-color-surface-white);
}
.btn--outline {
  background-color: var(--gj-color-surface-white);
  color: #1e293b;
  border: 1px solid #1e293b;
}
.btn--outline:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(30, 41, 59, 0.3);
  color: #1e293b;
  background-color: var(--gj-color-surface-white);
}
.btn--full {
  display: flex;
  flex-grow: 1;
}
@media (min-width: 768px) {
  .btn--ml {
    margin-left: auto;
  }
  .btn--mr {
    margin-right: auto;
  }
}

.form-set {
  display: grid;
  gap: var(--gj-spacer-md) var(--gj-spacer-3xl);
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 1024px) {
  .form-set {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-direction: column;
  }
}
.form-set__item {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
@media (max-width: 1024px) {
  .form-set__item {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-direction: column;
    gap: var(--gj-spacer-xs);
  }
}
.form-set__item > label {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  min-width: 10rem;
  min-height: 4rem;
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-bold);
}
@media (max-width: 1024px) {
  .form-set__item > label {
    min-height: auto;
  }
}
.form-set__item--full {
  grid-column: span 2;
}
.form-set__item--required > label::after {
  content: "*";
  color: var(--gj-color-red);
  margin-left: var(--gj-spacer-xs);
}
.form-set__control {
  flex-grow: 1;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-xs);
}
.form-set__error {
  color: var(--gj-color-red);
  font-size: var(--gj-fs-body-sm);
}
.form-set--full {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
}

.input-set {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-xs);
}

.input {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  border: 1px solid var(--gj-color-surface-line);
  border-radius: var(--gj-round-md);
  height: 4rem;
  background-color: var(--gj-color-surface-white);
  transition: border-color 0.2s;
}
.input:focus-within {
  border-color: var(--gj-color-primary);
}
@media (max-width: 640px) {
  .input {
    flex-grow: 1;
  }
}
.input input {
  width: 100%;
  height: 100%;
  border: none;
  outline: none;
  background: transparent;
  padding: 0 var(--gj-spacer-sm);
}
.input input::placeholder {
  color: var(--gj-color-mono-400);
}
.input__icon-btn {
  position: absolute;
  right: 0.8rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}
.input__icon-btn:hover .input__icon {
  opacity: 1;
}
.input__icon {
  width: 2.4rem;
  height: 2.4rem;
  stroke: var(--gj-color-mono-300);
  opacity: 0.7;
  transition: opacity 0.2s;
}
.input--error {
  border-color: var(--gj-color-danger);
}
.input--success {
  border-color: var(--gj-color-success);
}
.input--disabled {
  opacity: 0.6;
  pointer-events: none;
}
.input--password {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  position: relative;
}
.input--plaintext {
  border: none;
}
.input--plaintext input {
  padding: 0;
}

.textarea {
  width: 100%;
  border: 1px solid var(--gj-color-surface-line);
  border-radius: var(--gj-round-md);
  padding: var(--gj-spacer-sm);
}

.select {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  border: 1px solid var(--gj-color-surface-line);
  border-radius: var(--gj-round-md);
  height: 4rem;
  background-color: var(--gj-color-surface-white);
  cursor: pointer;
  transition: border-color 0.2s, background-color 0.2s;
  /* 상태 */
}
.select:focus-within {
  border-color: var(--gj-color-primary);
}
.select select {
  width: 100%;
  height: 100%;
  padding: 0 var(--gj-spacer-lg) 0 var(--gj-spacer-sm);
  border: none;
  background: none;
  font: inherit;
  color: var(--gj-color-mono-900);
  appearance: none;
  cursor: pointer;
}
.select select:focus {
  outline: none;
}
.select select:disabled {
  cursor: not-allowed;
  opacity: 0.6;
}
.select::after {
  content: "";
  position: absolute;
  right: 0;
  width: 2.4rem;
  height: 2.4rem;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  background-color: var(--gj-color-mono-800);
  transition: transform 0.2s;
  pointer-events: none;
}
.select--open::after {
  transform: rotate(180deg);
}
.select--error {
  border-color: var(--gj-color-danger);
}
.select--success {
  border-color: var(--gj-color-success);
}
.select--disabled {
  opacity: 0.6;
  pointer-events: none;
}

.form-check {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  min-height: 4rem;
}
.form-check > span {
  position: relative;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
  padding-right: var(--gj-spacer-sm);
}
.form-check > span::before {
  content: "";
  display: block;
  width: 2rem;
  height: 2rem;
  background-color: var(--gj-color-surface-white);
  border: 1px solid var(--gj-color-surface-line);
  border-radius: var(--gj-round-sm);
}
.form-check > span::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.form-check--radio > span::before {
  border-radius: var(--gj-round-full);
}
.form-check > input[type=radio], .form-check > input[type=checkbox] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.form-check > input[type=radio]:checked + span::before, .form-check > input[type=checkbox]:checked + span::before {
  border-color: var(--gj-color-primary);
}
.form-check > input[type=checkbox]:checked + span::before {
  background-color: var(--gj-color-primary);
}
.form-check > input[type=checkbox]:checked + span::after {
  left: 0;
  width: 2rem;
  height: 2rem;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") no-repeat center;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") no-repeat center;
  mask-size: 1.6rem auto;
  -webkit-mask-size: 1.6rem auto;
  background-color: var(--gj-color-surface-white);
}
.form-check > input[type=radio]:checked + span::after {
  left: 0.4rem;
  width: 1.2rem;
  height: 1.2rem;
  border-radius: var(--gj-round-full);
  background-color: var(--gj-color-primary);
}

.progress-bar {
  position: relative;
  width: 100%;
}
.progress-bar__list {
  display: grid;
  max-width: 64rem;
  margin: 0 auto;
}
.progress-bar__list--step3 {
  grid-template-columns: repeat(3, 1fr);
}
.progress-bar__title {
  font-size: var(--gj-fs-body-lg);
  font-weight: var(--gj-fw-medium);
  text-align: center;
  color: var(--gj-color-text-info);
}
.progress-bar__item--active .progress-bar__title {
  color: var(--gj-color-primary);
  font-weight: var(--gj-fw-bold);
}
@media (max-width: 1280px) {
  .progress-bar__title {
    font-size: var(--gj-fs-body-md);
  }
}
@media (max-width: 640px) {
  .progress-bar__title {
    font-size: var(--gj-fs-body-sm);
  }
}
.progress-bar__item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
}
.progress-bar__item::before {
  content: "";
  display: block;
  width: 1.4rem;
  height: 1.4rem;
  background-color: var(--gj-color-gray);
  border-radius: var(--gj-round-full);
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.6rem rgba(148, 163, 184, 0.3);
  margin-top: var(--gj-spacer-sm);
  z-index: 1;
}
@media (max-width: 640px) {
  .progress-bar__item::before {
    width: 1rem;
    height: 1rem;
    transition: box-shadow 0.25s, transform 0.25s;
    box-shadow: 0 0 0 0.4rem rgba(148, 163, 184, 0.3);
  }
}
.progress-bar__item:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 1.4rem;
  display: block;
  border-top: 1px dotted var(--gj-color-gray);
}
@media (max-width: 640px) {
  .progress-bar__item:after {
    top: 1.2rem;
  }
}
.progress-bar__item:first-child::after {
  left: 50%;
}
.progress-bar__item:last-child::after {
  right: 50%;
}
.progress-bar__item--active::before {
  background-color: var(--gj-color-primary);
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.6rem rgba(45, 212, 191, 0.3);
}
@media (max-width: 640px) {
  .progress-bar__item--active::before {
    transition: box-shadow 0.25s, transform 0.25s;
    box-shadow: 0 0 0 0.4rem rgba(45, 212, 191, 0.3);
  }
}

.calendar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
  width: 100%;
  font-family: "Montserrat", "Pretendard", "맑은 고딕", "MalgumGothic", sans-serif;
}
.calendar__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  gap: var(--gj-spacer-lg);
}
.calendar__nav > strong {
  font-size: var(--gj-fs-body-2xl);
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-text-primary);
}
.calendar__nav > a {
  display: block;
  width: 2.4rem;
  height: 2.4rem;
}
.calendar__nav > a .lucide {
  width: 100%;
  height: 100%;
  stroke: var(--gj-color-text-info);
  stroke-width: 3px;
}
.calendar__nav > a:hover .lucide {
  stroke: var(--gj-color-text-primary);
}
.calendar__grid {
  width: 100%;
}

.calendar-grid {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
}
.calendar-grid__row {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}
.calendar-grid__row--header {
  margin-bottom: var(--gj-spacer-xs);
}
.calendar-grid__cell {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-medium);
}
.calendar-grid__cell.sun {
  color: var(--gj-color-red);
}
.calendar-grid__cell .day-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  width: 4.8rem;
  height: 4.8rem;
  font-weight: var(--gj-fw-medium);
  border-radius: var(--gj-round-full);
  cursor: pointer;
}
.calendar--range .calendar-grid__cell .day-btn {
  width: 100%;
}
.calendar-grid__row--header .calendar-grid__cell {
  height: 4rem;
}
.calendar-grid__cell.selectable .day-btn {
  cursor: pointer;
}
.calendar-grid__cell.muted .day-btn, .calendar-grid__cell.disabled .day-btn {
  cursor: not-allowed;
  color: var(--gj-color-text-disabled);
}
.calendar-grid__cell.selected .day-btn {
  background-color: var(--gj-color-primary) !important;
  color: var(--gj-color-white);
  font-weight: var(--gj-fw-bold);
  cursor: pointer;
}
.calendar-grid__cell.range-start .day-btn {
  background-color: var(--gj-color-primary);
  color: var(--gj-color-white);
  font-weight: var(--gj-fw-bold);
  border-radius: var(--gj-round-full) 0 0 var(--gj-round-full);
  cursor: pointer;
}
.calendar-grid__cell.range-between .day-btn {
  background-color: var(--gj-color-primary);
  color: var(--gj-color-white);
  font-weight: var(--gj-fw-bold);
  border-radius: 0;
  cursor: pointer;
}
.calendar-grid__cell.range-end .day-btn {
  background-color: var(--gj-color-primary);
  color: var(--gj-color-white);
  font-weight: var(--gj-fw-bold);
  border-radius: 0 var(--gj-round-full) var(--gj-round-full) 0;
  cursor: pointer;
}
.calendar-grid__cell.today .day-btn {
  width: 4.8rem;
  border: 1px solid var(--gj-color-surface-line);
}
.calendar-grid__cell.today.range-start .day-btn, .calendar-grid__cell.today.range-end .day-btn, .calendar-grid__cell.today.range-between .day-btn {
  width: 100%;
  border: none;
}

.slot {
  display: grid;
  grid-template-columns: repeat(auto-fit, 11rem);
  grid-template-rows: repeat(auto-fit, 7.2rem);
  gap: var(--gj-spacer-md);
}
@media (max-width: 640px) {
  .slot {
    grid-template-columns: repeat(3, minmax(8rem, 1fr));
  }
}
.slot__item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  height: 7.2rem;
  padding: 0 var(--gj-spacer-sm);
  background-color: var(--gj-color-surface-bg);
  border: 1px solid var(--gj-color-surface-line);
  border-radius: var(--gj-round-md);
}
.slot__item strong {
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-text-primary);
}
.slot__item .remain {
  font-size: var(--gj-fs-body-sm);
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-green);
}
.slot__item .remain--less {
  color: var(--gj-color-red);
}
.slot__item--active {
  background: var(--gj-color-surface-white);
  outline: 2px solid var(--gj-color-primary);
  outline-offset: -1px;
}
.slot__item--soldout {
  background: var(--gj-color-mono-300);
}
.slot__item--soldout strong {
  color: var(--gj-color-text-sub) !important;
}
.slot__item--soldout .remain {
  color: var(--gj-color-text-info) !important;
}

.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
.pagination__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  width: 1.6rem;
  height: 1.6rem;
}
@media (max-width: 640px) {
  .pagination__btn {
    display: none;
  }
}
.pagination__btn .lucide {
  stroke: var(--gj-color-text-info);
  stroke-width: 3px;
}
.pagination__btn:hover .lucide {
  stroke: var(--gj-color-text-primary);
}
.pagination__numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
}
@media (max-width: 640px) {
  .pagination__numbers {
    display: none;
  }
}
.pagination__select {
  display: none;
}
@media (max-width: 640px) {
  .pagination__select {
    display: block;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: row;
    gap: var(--gj-spacer-md);
  }
  .pagination__select label {
    color: var(--gj-color-text-primary);
    font-weight: var(--gj-fw-bold);
    font-size: var(--gj-fs-body-md);
  }
  .pagination__select .select {
    min-width: 10rem;
  }
}

.pagination-numbers__item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  font-family: "Montserrat", "Pretendard", "맑은 고딕", "MalgumGothic", sans-serif;
  font-size: var(--gj-fs-body-lg);
  color: var(--gj-color-text-info);
  min-width: 3.2rem;
  height: 4rem;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
.pagination-numbers__item--active {
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-bold);
  border-bottom-color: var(--gj-color-primary);
}
.pagination-numbers__item:not(.pagination-numbers__item--active):hover {
  color: var(--gj-color-text-primary);
  border-bottom-color: var(--gj-color-surface-line);
}

/* 전체 오버레이 (배경 흐림 + 중앙 정렬) */
.popupzone {
  position: fixed;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
}
.popupzone__inner {
  position: relative;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-lg);
  max-width: 86.4rem;
}
@media (max-width: 1024px) {
  .popupzone__inner {
    max-width: 42rem;
  }
}
@media (max-width: 768px) {
  .popupzone__inner {
    max-width: 80vw;
    gap: var(--gj-spacer-md);
  }
}
.popupzone__slider {
  display: flex;
  align-items: stretch;
  justify-content: center;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
.popupzone__item {
  display: flex !important;
  flex-direction: column;
  justify-content: stretch;
  width: 42rem;
  border-radius: var(--gj-round-xl);
  overflow: hidden;
  text-align: center;
  background-color: var(--gj-color-surface-white);
}
@media (max-width: 1024px) {
  .popupzone__item {
    margin-left: 0;
  }
}
.popupzone__item ~ .popupzone__item {
  margin-left: var(--gj-spacer-md);
}
.popupzone__image {
  flex-grow: 1;
}
.popupzone__image img {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}
.popupzone__content {
  flex-grow: 1;
}
.popupzone__content .title {
  font-size: 1.3rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}
.popupzone__content .content {
  font-size: 1rem;
  line-height: 1.5;
  color: #333;
}
.popupzone__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
.popupzone__actions button {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  gap: var(--gj-spacer-xs);
  padding: var(--gj-spacer-sm) var(--gj-spacer-md);
  background-color: rgba(30, 41, 59, 0.7);
  border-radius: var(--gj-round-full);
  color: var(--gj-color-text-white);
}
.popupzone__actions button .lucide {
  width: 1.8rem;
  height: 1.8rem;
}
.popupzone__actions button:hover {
  background-color: var(--gj-color-mono-800);
  font-weight: var(--gj-fw-bold);
}
.popupzone__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  color: var(--gj-color-text-white);
}
.popupzone__arrow .lucide {
  width: 4.8rem;
  height: 4.8rem;
  stroke-width: 1;
}
.popupzone__arrow--prev {
  left: -4.8rem;
}
.popupzone__arrow--next {
  right: -4.8rem;
}

.visual {
  position: relative;
  width: 100%;
  min-height: 100vh;
  height: 100%;
  background-color: #1e293b;
}
.visual__float {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-xl);
  z-index: 10;
  width: 100%;
}
@media (max-width: 1280px) {
  .visual__float {
    gap: var(--gj-spacer-md);
  }
}
.visual__control {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  position: relative;
  gap: var(--gj-spacer-lg);
  min-width: 32rem;
  height: 4rem;
  text-align: center;
  z-index: 10;
}
.visual__control .control__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  width: 2.4rem;
  height: 2.4rem;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
  color: var(--gj-color-text-white);
  position: relative;
  opacity: 0.7;
}
.visual__control .control__btn:hover {
  transform: scale(1.2);
  opacity: 1;
}
.visual__control .control__dots > ul {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
.visual__control .control__dots li {
  position: relative;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
.visual__control .control__dots li button {
  width: 2.4rem;
  height: 2.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  color: #fff;
  font-size: var(--gj-fs-body-2xl);
  cursor: pointer;
  opacity: 0.4;
}
.visual__control .control__dots li button::before {
  content: "0";
}
.visual__control .control__dots li::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 4rem;
  display: block;
  width: 0;
  height: 0.4rem;
  background-color: var(--gj-color-white);
}
.visual__control .control__dots li.slick-active {
  padding-right: 9.6rem;
}
@media (max-width: 640px) {
  .visual__control .control__dots li.slick-active {
    padding-right: 7.6rem;
  }
}
.visual__control .control__dots li.slick-active button {
  opacity: 1;
  font-weight: var(--gj-fw-bold);
}
.visual__control .control__dots li.slick-active::after {
  animation: dotsBar 4.5s both;
  animation-delay: 0.3s;
  animation-fill-mode: forwards;
}
.visual__control .control__dots li.slick-active::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 4rem;
  display: block;
  width: 8rem;
  height: 0.4rem;
  background-color: var(--gj-color-white);
  opacity: 0.4;
}
@media (max-width: 640px) {
  .visual__control .control__dots li.slick-active::before {
    width: 6rem;
  }
}
.visual__control .control__dots li:hover button, .visual__control .control__dots li:focus button {
  font-weight: var(--gj-fw-bold);
}
.visual__content {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-lg);
}
@media (max-width: 640px) {
  .visual__content {
    gap: var(--gj-spacer-md);
  }
}
.visual__content .slogan {
  width: 75.3rem;
  height: 17.8rem;
  animation: textDown 0.8s both;
  animation-delay: 0.3s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@media (max-width: 1440px) {
  .visual__content .slogan {
    width: 70rem;
    height: 16rem;
  }
}
@media (max-width: 1280px) {
  .visual__content .slogan {
    width: 65rem;
    height: 15rem;
  }
}
@media (max-width: 1024px) {
  .visual__content .slogan {
    width: 60rem;
    height: 14rem;
  }
}
@media (max-width: 768px) {
  .visual__content .slogan {
    width: 50rem;
    height: 12rem;
  }
}
@media (max-width: 640px) {
  .visual__content .slogan {
    padding: 0 var(--gj-spacer-2xl);
    width: 100%;
    height: auto;
  }
}
@media (max-width: 480px) {
  .visual__content .slogan {
    padding: 0 var(--gj-spacer-lg);
  }
}
.visual__content .slogan img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.visual__content p.text {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  font-size: var(--gj-fs-display-xs);
  color: var(--gj-color-text-white);
  animation: textDown 0.8s both;
  animation-delay: 0.6s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@media (max-width: 1280px) {
  .visual__content p.text {
    font-size: var(--gj-fs-body-xl);
  }
}
@media (max-width: 1024px) {
  .visual__content p.text {
    font-size: var(--gj-fs-body-lg);
  }
}
@media (max-width: 640px) {
  .visual__content p.text {
    font-size: var(--gj-fs-body-md);
  }
}
@media (max-width: 480px) {
  .visual__content p.text {
    display: block;
    text-align: center;
  }
}
.visual__slide {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 0;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
.visual__slide .slick-list,
.visual__slide .slick-track {
  height: 100%;
}
.visual__slide .slide-item {
  width: 100%;
  height: 100%;
}
.visual__slide .slide-item .item-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  -webkit-transition: all 8s ease 0s;
  -o-transition: all 8s ease 0s;
  transition: all 8s ease 0s;
}
.visual__slide .slide-item .item-img video,
.visual__slide .slide-item .item-img img {
  width: 100%;
  height: 100%;
  opacity: 0.6;
  object-fit: cover;
}

.main-sect {
  position: relative;
  background-color: var(--gj-color-white);
}
.main-sect__inner {
  width: 1440px;
  margin: 0 auto;
  padding: 20rem 0;
}
@media (max-width: 1660px) {
  .main-sect__inner {
    width: 100%;
    padding: 16rem var(--gj-spacer-4xl);
  }
}
@media (max-width: 1280px) {
  .main-sect__inner {
    padding: 14rem var(--gj-spacer-3xl);
  }
}
@media (max-width: 768px) {
  .main-sect__inner {
    padding: 12rem var(--gj-spacer-3xl);
  }
  .main-sect__program .main-sect__inner {
    padding-top: 16rem;
  }
}
.main-sect__point .main-sect__inner {
  min-height: 1080px;
}
@media (max-width: 1280px) {
  .main-sect__point .main-sect__inner {
    min-height: auto;
  }
}
.main-sect__news .main-sect__inner {
  min-height: auto;
}
@media (max-width: 640px) {
  .main-sect__inner {
    padding: var(--gj-spacer-5xl) var(--gj-spacer-lg);
  }
  .main-sect__program .main-sect__inner {
    padding-top: 12rem;
  }
}
.main-sect__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
  position: relative;
  z-index: 10;
}
@media (max-width: 1024px) {
  .main-sect__title {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    gap: var(--gj-spacer-lg);
  }
}
.main-sect__title .title {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-lg);
}
@media (max-width: 1660px) {
  .main-sect__title .title {
    gap: var(--gj-spacer-md);
  }
}
@media (max-width: 768px) {
  .main-sect__title .title {
    gap: var(--gj-spacer-sm);
  }
}
.main-sect__title h2 {
  font-family: "ChangwonDanggamAsak", "Pretendard", "맑은 고딕", "MalgumGothic", sans-serif;
  font-size: var(--gj-fs-display-lg);
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-normal);
  line-height: 1.2;
}
@media (max-width: 1660px) {
  .main-sect__title h2 {
    font-size: var(--gj-fs-title-2xl);
  }
}
@media (max-width: 1440px) {
  .main-sect__title h2 {
    font-size: var(--gj-fs-title-xl);
  }
}
@media (max-width: 768px) {
  .main-sect__title h2 {
    font-size: var(--gj-fs-title-lg);
  }
}
@media (max-width: 640px) {
  .main-sect__title h2 {
    font-size: var(--gj-fs-title-md);
  }
}
.main-sect__title .desc {
  font-size: var(--gj-fs-title-sm);
}
@media (max-width: 1660px) {
  .main-sect__title .desc {
    font-size: var(--gj-fs-body-xl);
  }
}
@media (max-width: 768px) {
  .main-sect__title .desc {
    font-size: var(--gj-fs-body-lg);
  }
}
@media (max-width: 640px) {
  .main-sect__title .desc {
    font-size: var(--gj-fs-body-md);
  }
}
.main-sect__program .main-sect__title {
  width: 100%;
}
@media (min-width: 1280px) {
  .main-sect__program .main-sect__title {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    gap: 6.4rem;
    width: auto;
  }
}
.main-sect__program .main-sect__title h2 {
  color: var(--gj-color-text-white);
}
.main-sect__program .main-sect__title .desc {
  color: var(--gj-color-mono-100);
}
.main-sect__title .btns {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
}
.main-sect__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
  padding: 0 var(--gj-spacer-lg);
  height: 6.4rem;
  font-size: var(--gj-fs-body-lg);
  border-radius: var(--gj-round-full);
  border: 2px solid var(--gj-color-primary);
  color: var(--gj-color-primary);
  font-weight: var(--gj-fw-bold);
}
@media (max-width: 1440px) {
  .main-sect__btn {
    height: 5.6rem;
    font-size: var(--gj-fs-body-md);
  }
}
@media (max-width: 768px) {
  .main-sect__btn {
    padding: 0 var(--gj-spacer-md);
    height: 4.8rem;
  }
}
.main-sect__btn:hover {
  background-color: var(--gj-color-primary);
  color: var(--gj-color-white);
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
.main-sect__btn--secondary {
  border-color: var(--gj-color-mono-600);
  color: var(--gj-color-mono-600);
}
.main-sect__btn--secondary:hover {
  background-color: var(--gj-color-mono-600);
  color: var(--gj-color-white);
}
.main-sect__program .main-sect__btn {
  border-color: var(--gj-color-white);
  color: var(--gj-color-white);
}
.main-sect__program .main-sect__btn:hover {
  background-color: var(--gj-color-white);
  color: var(--gj-color-primary);
}
.main-sect__program {
  background-color: var(--gj-color-surface-primary);
}

.main-sect__point .main-sect__content {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-3xl);
  padding-top: 10rem;
}
@media (max-width: 1024px) {
  .main-sect__point .main-sect__content {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    gap: var(--gj-spacer-2xl);
    padding-top: var(--gj-spacer-4xl);
  }
}
.main-sect__point .point-feature {
  flex-shrink: 0;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
}
.main-sect__point .point-feature__item {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-2xl);
  position: relative;
  padding-bottom: var(--gj-spacer-xl);
}
@media (max-width: 640px) {
  .main-sect__point .point-feature__item {
    gap: var(--gj-spacer-lg);
  }
}
.main-sect__point .point-feature__item::before {
  content: "";
  display: block;
  width: 1.6rem;
  height: 1.6rem;
  background-color: var(--gj-color-primary);
  border-radius: var(--gj-round-full);
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(45, 212, 191, 0.3);
  margin-top: 1.2rem;
  margin-left: var(--gj-spacer-sm);
}
.main-sect__point .point-feature__item:after {
  content: "";
  position: absolute;
  left: 1.6rem;
  top: 1.2rem;
  display: block;
  width: 1px;
  height: 100%;
  background-color: var(--gj-color-primary);
}
.main-sect__point .point-feature__item:last-child::after {
  display: none;
}
.main-sect__point .point-feature__item .feature {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
}
.main-sect__point .point-feature__item .feature strong {
  font-size: var(--gj-fs-body-2xl);
  color: var(--gj-color-text-primary);
}
@media (max-width: 1440px) {
  .main-sect__point .point-feature__item .feature strong {
    font-size: var(--gj-fs-body-xl);
  }
}
@media (max-width: 640px) {
  .main-sect__point .point-feature__item .feature strong {
    font-size: var(--gj-fs-body-lg);
  }
}
.main-sect__point .point-feature__item .feature span {
  font-size: var(--gj-fs-body-lg);
  font-weight: var(--gj-fw-medium);
}
@media (max-width: 640px) {
  .main-sect__point .point-feature__item .feature span {
    font-size: var(--gj-fs-body-md);
  }
}
.main-sect__point .point-visual {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-xl);
  z-index: 0;
  transform: translateX(20rem);
}
@media (max-width: 1660px) {
  .main-sect__point .point-visual {
    transform: translateX(8rem);
  }
}
@media (max-width: 1440px) {
  .main-sect__point .point-visual {
    transform: translateX(0);
  }
}
.main-sect__point .point-visual__item {
  position: relative;
  width: 40rem;
  height: 40rem;
  border-radius: var(--gj-round-2xl);
}
@media (max-width: 1440px) {
  .main-sect__point .point-visual__item {
    width: 32rem;
    height: 32rem;
  }
}
@media (max-width: 768px) {
  .main-sect__point .point-visual__item {
    width: 26rem;
    height: 26rem;
  }
}
@media (max-width: 640px) {
  .main-sect__point .point-visual__item {
    width: 22rem;
    height: 22rem;
  }
}
.main-sect__point .point-visual__item--1, .main-sect__point .point-visual__item--3 {
  margin-top: 10rem;
}
.main-sect__point .point-visual__item--2, .main-sect__point .point-visual__item--4 {
  margin-bottom: 10rem;
}
.main-sect__point .point-visual__item img {
  display: block;
  width: 100%;
  height: auto;
  position: relative;
  z-index: 2;
}
.main-sect__point .point-visual__item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--bg-img) center/cover no-repeat;
  filter: blur(8px) brightness(1.4);
  opacity: 0.5;
  transform: translate(1.2rem, 1.2rem);
  z-index: 1;
}
.main-sect__point .coin-deco {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.main-sect__point .coin-deco .coin {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12rem;
  height: 12rem;
  animation: floatCoin 4s ease-in-out infinite;
  transform-origin: center;
}
@media (max-width: 1660px) {
  .main-sect__point .coin-deco .coin {
    width: 10rem;
    height: 10rem;
  }
}
@media (max-width: 1024px) {
  .main-sect__point .coin-deco .coin {
    display: none;
  }
}
.main-sect__point .coin-deco .coin--1 {
  --tx: 610%;
  --ty: -260%;
  transform: translate(var(--tx), var(--ty));
  animation-delay: 0s;
}
@media (max-width: 1660px) {
  .main-sect__point .coin-deco .coin--1 {
    --tx: 700%;
    --ty: -280%;
  }
}
.main-sect__point .coin-deco .coin--2 {
  --tx: -790%;
  --ty: -330%;
  transform: translate(var(--tx), var(--ty));
  animation-delay: 0.6s;
}
@media (max-width: 1660px) {
  .main-sect__point .coin-deco .coin--2 {
    --tx: -810%;
  }
}
.main-sect__point .coin-deco .coin--3 {
  --tx: -200%;
  --ty: 250%;
  transform: translate(var(--tx), var(--ty));
  z-index: 10;
  animation-delay: 1.2s;
}
@media (max-width: 1660px) {
  .main-sect__point .coin-deco .coin--3 {
    --tx: -360%;
    --ty: 150%;
  }
}
.main-sect__point .coin-deco .coin--4 {
  --tx: 160%;
  --ty: -170%;
  transform: translate(var(--tx), var(--ty));
  animation-delay: 1.8s;
}
@media (max-width: 1660px) {
  .main-sect__point .coin-deco .coin--4 {
    --tx: 80%;
    --ty: -160%;
  }
}
.main-sect__point .coin-deco .coin--5 {
  --tx: 740%;
  --ty: 260%;
  transform: translate(var(--tx), var(--ty));
  z-index: 10;
  animation-delay: 2.4s;
}
@media (max-width: 1660px) {
  .main-sect__point .coin-deco .coin--5 {
    --tx: 640%;
    --ty: 380%;
  }
}
.main-sect__point .coin-deco .coin--6 {
  --tx: -740%;
  --ty: 230%;
  transform: translate(var(--tx), var(--ty));
  z-index: 10;
  animation-delay: 1.4s;
}
@media (max-width: 1660px) {
  .main-sect__point .coin-deco .coin--6 {
    --tx: -880%;
    --ty: 270%;
  }
}

.main-sect__program {
  position: relative;
  overflow: hidden;
  height: 100vh;
}
.main-sect__program .main-sect__inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-direction: row;
}
@media (max-width: 1280px) {
  .main-sect__program .main-sect__inner {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
  }
}
.main-sect__program .main-sect__title {
  flex-shrink: 0;
}
@media (max-width: 1280px) {
  .main-sect__program .main-sect__content {
    overflow-x: auto;
    padding-top: 8rem;
  }
}
@media (max-width: 640px) {
  .main-sect__program .main-sect__content {
    padding-top: var(--gj-spacer-4xl);
  }
}
.main-sect__program .program__list {
  display: grid;
  grid-template-columns: repeat(2, 36rem);
  gap: var(--gj-spacer-3xl);
  align-items: start;
  position: relative;
  padding-bottom: 40rem;
  transform: translateY(0);
  z-index: 10;
}
@media (max-width: 1440px) {
  .main-sect__program .program__list {
    grid-template-columns: repeat(2, 28rem);
  }
}
@media (max-width: 1280px) {
  .main-sect__program .program__list {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: row;
    gap: var(--gj-spacer-2xl);
    flex-wrap: nowrap;
    overflow: visible;
    width: max-content;
    padding-bottom: 0;
    padding-right: 20rem;
  }
}
@media (max-width: 640px) {
  .main-sect__program .program__list {
    gap: var(--gj-spacer-xl);
  }
}
.main-sect__program .program__item {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-direction: column;
  height: 48rem;
  padding: var(--gj-spacer-lg);
  border-radius: var(--gj-round-2xl);
  overflow: hidden;
  z-index: 1;
}
@media (max-width: 1440px) {
  .main-sect__program .program__item {
    height: 38rem;
  }
}
@media (max-width: 1280px) {
  .main-sect__program .program__item {
    width: 26rem;
    height: 32rem;
  }
}
@media (max-width: 640px) {
  .main-sect__program .program__item {
    width: 20rem;
    height: 28rem;
    padding: var(--gj-spacer-md);
  }
}
.main-sect__program .program__item:nth-child(1), .main-sect__program .program__item:nth-child(3), .main-sect__program .program__item:nth-child(5) {
  transform: translateY(80%);
}
@media (max-width: 1280px) {
  .main-sect__program .program__item:nth-child(1), .main-sect__program .program__item:nth-child(3), .main-sect__program .program__item:nth-child(5) {
    transform: translateY(0);
  }
}
.main-sect__program .program__item:nth-child(7) {
  grid-column: 2;
  grid-row: 4;
}
@media (max-width: 1280px) {
  .main-sect__program .program__item:nth-child(7) {
    grid-column: 1;
  }
}
.main-sect__program .program__item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 60%, rgba(0, 0, 0, 0) 100%);
  z-index: 0;
  pointer-events: none;
}
.main-sect__program .program__item:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(255, 255, 255, 0.3);
}
.main-sect__program .program__item:hover::after {
  background: linear-gradient(to top, rgba(45, 212, 191, 0.6) 0%, rgba(45, 212, 191, 0.2) 60%, rgba(45, 212, 191, 0.2) 100%);
}
.main-sect__program .program__badges {
  z-index: 1;
}
.main-sect__program .program__name {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  z-index: 1;
  color: var(--gj-color-text-white);
}
.main-sect__program .program__name strong {
  font-size: var(--gj-fs-body-2xl);
  font-weight: var(--gj-fw-bold);
}
@media (max-width: 1440px) {
  .main-sect__program .program__name strong {
    font-size: var(--gj-fs-body-xl);
  }
}
@media (max-width: 1024px) {
  .main-sect__program .program__name strong {
    font-size: var(--gj-fs-body-lg);
  }
}
.main-sect__program .program__name span {
  font-size: var(--gj-fs-body-lg);
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media (max-width: 1440px) {
  .main-sect__program .program__name span {
    font-size: var(--gj-fs-body-md);
  }
}
@media (max-width: 640px) {
  .main-sect__program .program__name span {
    font-size: var(--gj-fs-body-sm);
  }
}
.main-sect__program .program__img {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -1;
}
.main-sect__program .program__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.main-sect__program .marquee {
  position: absolute;
  bottom: 4rem;
  left: 0;
  right: 0;
  z-index: 0;
}
.main-sect__program .marquee img {
  max-width: none;
}

.main-sect__news .news__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--gj-spacer-3xl);
  margin-top: 8rem;
}
@media (max-width: 1440px) {
  .main-sect__news .news__list {
    gap: var(--gj-spacer-lg);
  }
}
@media (max-width: 1280px) {
  .main-sect__news .news__list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 768px) {
  .main-sect__news .news__list {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    gap: var(--gj-spacer-lg);
    margin-top: var(--gj-spacer-2xl);
  }
}
@media (max-width: 640px) {
  .main-sect__news .news__list {
    gap: var(--gj-spacer-md);
  }
}
.main-sect__news .news__item {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
  padding: var(--gj-spacer-lg);
  border-radius: var(--gj-round-2xl);
  background-color: var(--gj-color-surface-bg);
}
@media (max-width: 640px) {
  .main-sect__news .news__item {
    gap: var(--gj-spacer-sm);
  }
}
.main-sect__news .news__item:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(45, 212, 191, 0.3);
  background-color: var(--gj-color-white);
  outline: 6px solid var(--gj-color-primary);
  outline-offset: -6px;
}
.main-sect__news .news__item strong {
  font-size: var(--gj-fs-body-xl);
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-bold);
  word-break: break-all;
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media (max-width: 1440px) {
  .main-sect__news .news__item strong {
    font-size: var(--gj-fs-body-lg);
  }
}
@media (max-width: 640px) {
  .main-sect__news .news__item strong {
    font-size: var(--gj-fs-body-md);
  }
}
.main-sect__news .news__item .desc {
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  word-break: break-all;
}
@media (max-width: 640px) {
  .main-sect__news .news__item .desc {
    font-size: var(--gj-fs-body-sm);
  }
}

.marquee {
  --gap: var(--gj-spacer-xl);
  --speed: 6s;
  overflow: hidden;
  width: 100%;
}
.marquee__inner {
  display: flex;
  align-items: center;
  gap: var(--gap);
  padding-inline: var(--gap);
  will-change: transform;
  animation: marquee var(--speed) linear infinite;
}
.marquee__inner img,
.marquee__inner svg {
  height: 28rem;
  flex: 0 0 auto;
  opacity: 0.2;
}
@media (max-width: 1440px) {
  .marquee__inner img,
  .marquee__inner svg {
    height: 24rem;
  }
}
@media (max-width: 768px) {
  .marquee__inner img,
  .marquee__inner svg {
    height: 20rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .marquee__inner {
    animation: none;
  }
}

@keyframes textDown {
  from {
    transform: translateY(-3rem);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
@keyframes dotsBar {
  from {
    width: 0;
  }
  to {
    width: 8rem;
  }
}
@media (max-width: 640px) {
  @keyframes dotsBar {
    from {
      width: 0;
    }
    to {
      width: 6rem;
    }
  }
}
/* 둥둥 떠다니는 애니메이션 */
@keyframes floatCoin {
  0% {
    transform: translate(var(--tx), var(--ty)) translateY(0) rotate(0deg);
  }
  50% {
    transform: translate(var(--tx), var(--ty)) translateY(-2rem) rotate(20deg);
  }
  100% {
    transform: translate(var(--tx), var(--ty)) translateY(0) rotate(0deg);
  }
}
@keyframes marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}
.module {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-lg);
}
.module--form {
  max-width: 64rem;
  margin: 0 auto;
}
.module__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
}
@media (max-width: 768px) {
  .module__head {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
    gap: var(--gj-spacer-md);
  }
}
.module__util {
  flex-shrink: 0;
  color: var(--gj-color-text-primary);
}
@media (max-width: 768px) {
  .module__util {
    display: none;
  }
}
.module__sch-btn {
  width: 2.4rem;
  height: 2.4rem;
}
.module__sch-btn .lucide {
  width: 100%;
  height: 100%;
}
.module__sch {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
@media (max-width: 640px) {
  .module__sch {
    flex-direction: column;
    gap: var(--gj-spacer-xs);
  }
}
.module__sch .input-set {
  gap: var(--gj-spacer-md);
}
.module__sch .select,
.module__sch .input {
  height: 4rem;
  border-color: transparent;
  border-bottom: 1px solid var(--gj-color-text-primary);
  border-radius: 0;
}
.module__sch .input {
  max-width: 24rem;
}
.module__sch .select {
  min-width: 8rem;
  max-width: 12rem;
}
.module__body {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
}
.module__item--null {
  grid-column: 1/-1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: var(--gj-spacer-sm);
  height: 16rem;
  margin-top: var(--gj-spacer-md);
  background-color: var(--gj-color-surface-bg);
  border-radius: var(--gj-round-lg);
  border-bottom: 0;
  font-weight: var(--gj-fw-bold);
  font-size: var(--gj-fs-body-lg);
  color: var(--gj-color-text-info);
}
.module__item--null::before {
  content: "";
  width: 2.4rem;
  height: 2.4rem;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='8' x2='12' y2='12'/%3E%3Cline x1='12' y1='16' x2='12' y2='16'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  background-color: var(--gj-color-text-info);
}
.module__item--disabled {
  opacity: 0.5;
}
.module__item em {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.module__foot {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--gj-spacer-lg);
  padding-top: var(--gj-spacer-xl);
  padding-bottom: var(--gj-spacer-xl);
}
@media (max-width: 768px) {
  .module__foot {
    padding-top: var(--gj-spacer-lg);
  }
}
@media (max-width: 640px) {
  .module__foot {
    padding-top: var(--gj-spacer-sm);
  }
}
.module__foot .btns {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
  width: 100%;
  background-color: var(--gj-color-white);
  z-index: 10;
}
@media (max-width: 768px) {
  .module__foot .btns {
    position: sticky;
    bottom: 0;
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-direction: column;
  }
  .module__foot .btns .btn {
    display: flex;
    flex-grow: 1;
    min-width: 0;
  }
}
@media (min-width: 768px) {
  .module__foot .btns.border-top {
    border-top: 1px solid var(--gj-color-surface-line);
    padding-top: var(--gj-spacer-md);
  }
}
.module__foot .btns__group {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
}
@media (min-width: 768px) {
  .module__foot .btns__group--ml {
    margin-left: auto;
  }
  .module__foot .btns__group--mr {
    margin-right: auto;
  }
}

.board-default {
  border-top: 2px solid var(--gj-color-mono-800);
  padding: 0;
}
.board-default__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
  gap: var(--gj-spacer-lg);
  padding: var(--gj-spacer-lg) 0;
  border-bottom: 1px solid var(--gj-color-surface-line);
}
@media (max-width: 768px) {
  .board-default__item {
    gap: var(--gj-spacer-md);
    padding: var(--gj-spacer-md) 0;
  }
}
@media (max-width: 640px) {
  .board-default__item {
    padding: var(--gj-spacer-md) var(--gj-spacer-sm);
  }
}
.board-default__item--header {
  padding: var(--gj-spacer-md) 0;
}
.board-default__item--header p {
  display: block !important;
  text-align: center;
  color: var(--gj-color-text-primary) !important;
  font-weight: var(--gj-fw-bold) !important;
}
@media (max-width: 1280px) {
  .board-default__item--header {
    display: none;
  }
}
.board-default__item--notice {
  background: var(--gj-color-surface-bg);
}
.board-default__item .contents {
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
}
@media (max-width: 1024px) {
  .board-default__item .contents {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-direction: column;
    gap: var(--gj-spacer-sm);
  }
}
.board-default__item .contents .subject {
  flex-grow: 1;
}
.board-default__item .contents .info {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  flex-wrap: wrap;
}
@media (max-width: 1280px) {
  .board-default__item .contents .info {
    gap: var(--gj-spacer-md);
  }
}
@media (min-width: 1280px) {
  .board-default__item .contents .info > p.date {
    width: 12rem;
  }
  .board-default__item .contents .info > p.writer {
    width: 16rem;
  }
  .board-default__item .contents .info > p.hit {
    width: 8rem;
  }
}
.board-default__item .contents .info > p:not(.secret) .lucide {
  width: 1.6rem;
  height: 1.6rem;
}
@media (min-width: 1280px) {
  .board-default__item .contents .info > p:not(.secret) .lucide {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }
}
.board-default__item .number {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  width: 8rem;
}
@media (max-width: 640px) {
  .board-default__item .number {
    display: none;
  }
}
.board-default__item .number .lucide {
  color: var(--gj-color-secondary);
}
.board-default__item .status {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
}

.board-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gj-spacer-3xl);
}
@media (max-width: 1024px) {
  .board-gallery {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  .board-gallery {
    grid-template-columns: repeat(1, 1fr);
    gap: var(--gj-spacer-xl);
  }
}
.board-gallery--event {
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 1440px) {
  .board-gallery--event {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 1024px) {
  .board-gallery--event {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  .board-gallery--event {
    grid-template-columns: repeat(1, 1fr);
    gap: var(--gj-spacer-xl);
  }
}
.board-gallery--R, .board-gallery--L {
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 1440px) {
  .board-gallery--R, .board-gallery--L {
    grid-template-columns: repeat(1, 1fr);
  }
}
.board-gallery__item {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-lg);
}
@media (max-width: 640px) {
  .board-gallery__item {
    gap: var(--gj-spacer-md);
  }
}
.board-gallery__item:hover .subject {
  text-decoration: underline;
}
.board-gallery__item .thumbnail {
  width: auto;
  height: auto;
  flex-shrink: 0;
  display: block;
  aspect-ratio: 1.5;
  background-color: var(--gj-color-mono-400);
  border-radius: var(--gj-round-2xl);
  overflow: hidden;
}
.board-gallery__item .thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
.board-gallery__item .contents {
  flex-grow: 1;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-sm);
  padding: 0 var(--gj-spacer-sm);
}
@media (max-width: 640px) {
  .board-gallery__item .contents {
    gap: var(--gj-spacer-xs);
  }
}
.board-gallery__item .contents .desc {
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.board-gallery__item .contents .info {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-md);
  flex-wrap: wrap;
}
@media (max-width: 1280px) {
  .board-gallery__item .contents .info {
    gap: var(--gj-spacer-md);
  }
}
.board-gallery__item .contents .info > p:not(.secret) .lucide {
  width: 1.6rem;
  height: 1.6rem;
}
.board-gallery__item--R, .board-gallery__item--L {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: row;
}
@media (max-width: 640px) {
  .board-gallery__item--R, .board-gallery__item--L {
    flex-direction: column !important;
  }
}
.board-gallery__item--R .thumbnail, .board-gallery__item--L .thumbnail {
  width: 36rem;
  height: auto;
  flex-shrink: 0;
  display: block;
  aspect-ratio: 1.5;
  background-color: var(--gj-color-mono-400);
  border-radius: var(--gj-round-2xl);
  overflow: hidden;
}
.board-gallery__item--R .thumbnail img, .board-gallery__item--L .thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
@media (max-width: 1024px) {
  .board-gallery__item--R .thumbnail, .board-gallery__item--L .thumbnail {
    width: 28rem;
  }
}
@media (max-width: 640px) {
  .board-gallery__item--R .thumbnail, .board-gallery__item--L .thumbnail {
    width: 100%;
  }
}
@media (min-width: 640px) {
  .board-gallery__item--R .contents, .board-gallery__item--L .contents {
    padding: var(--gj-spacer-md) 0;
  }
}
.board-gallery__item--event .thumbnail {
  width: 100%;
  height: auto;
  flex-shrink: 0;
  display: block;
  aspect-ratio: 1;
  background-color: var(--gj-color-mono-400);
  border-radius: var(--gj-round-2xl);
  overflow: hidden;
}
.board-gallery__item--event .thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
.board-gallery__item--R {
  flex-direction: row;
}
.board-gallery__item--L {
  flex-direction: row-reverse;
}
.board-gallery__item--T {
  flex-direction: column-reverse;
}
.board-gallery__item--B {
  flex-direction: column;
}

.board-faq {
  border-top: 2px solid var(--gj-color-mono-800);
  padding: 0;
}
.board-faq__item {
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
  border-bottom: 1px solid var(--gj-color-surface-dark);
}
.board-faq__item--active .board-faq__answer {
  max-height: 200px;
  opacity: 1;
  padding-top: var(--gj-spacer-md);
  padding-bottom: var(--gj-spacer-md);
}
.board-faq__item--active .board-faq__icon {
  transform: rotate(180deg);
}
.board-faq__item:hover:not(.board-faq__item--active) .board-faq__question {
  background-color: var(--gj-color-surface-bg);
}
.board-faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
  width: 100%;
  padding: var(--gj-spacer-lg) var(--gj-spacer-md);
  cursor: pointer;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
@media (max-width: 640px) {
  .board-faq__question {
    padding: var(--gj-spacer-md) var(--gj-spacer-sm);
  }
}
.board-faq__title {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
}
.board-faq__title::before {
  content: "Q.";
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-primary);
  font-size: var(--gj-fs-body-xl);
}
.board-faq__icon {
  width: 2.4rem;
  height: 2.4rem;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
.board-faq__answer {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  padding-left: var(--gj-spacer-md);
  padding-right: var(--gj-spacer-md);
  border-top: 1px solid var(--gj-color-surface-line);
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}

.board-view {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  border-top: 0.2rem solid var(--gj-color-mono-800);
  border-bottom: 0.1rem solid var(--gj-color-mono-800);
}
.board-view__header {
  border-bottom: 1px solid var(--gj-color-text-primary);
}
.board-view__header .post-top {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-xs);
  padding: var(--gj-spacer-lg) var(--gj-spacer-sm);
  position: relative;
}
@media (max-width: 640px) {
  .board-view__header .post-top {
    padding: var(--gj-spacer-md) var(--gj-spacer-sm);
  }
}
.board-view__header .title-write {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-sm);
}
.board-view__header .info {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-md);
  flex-wrap: wrap;
  border-top: 1px solid var(--gj-color-surface-line);
  padding: var(--gj-spacer-md) var(--gj-spacer-sm);
}
@media (max-width: 1280px) {
  .board-view__header .info {
    gap: var(--gj-spacer-md);
  }
}
@media (max-width: 640px) {
  .board-view__header .info {
    padding: var(--gj-spacer-sm);
  }
}
.board-view__header .info em {
  font-weight: var(--gj-fw-medium);
  color: var(--gj-color-text-primary);
}
.board-view .post {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
  padding: var(--gj-spacer-xl) var(--gj-spacer-sm);
  overflow-x: auto;
}
.board-view .post img {
  max-width: 100%;
  height: auto;
  margin: var(--gj-spacer-md) 0;
}
.board-view .urlbox,
.board-view .filebox {
  display: flex;
  align-items: stretch;
  padding: var(--gj-spacer-md) var(--gj-spacer-sm);
}
.board-view .urlbox > p,
.board-view .filebox > p {
  display: flex;
  align-items: center;
  width: 12rem;
  padding: 1.6rem 0;
  justify-content: center;
  background: #f1f5f9;
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-medium);
}
.board-view .urlbox__list,
.board-view .filebox__list {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-sm);
}
.board-view .urlbox__item,
.board-view .filebox__item {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
}
.board-view .urlbox__item::before,
.board-view .filebox__item::before {
  content: "";
  width: 1.6rem;
  height: 1.6rem;
  background-color: var(--gj-color-primary);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}
.board-view .urlbox__item:hover,
.board-view .filebox__item:hover {
  text-decoration: underline;
}
.board-view .urlbox {
  border-bottom: 1px solid var(--gj-color-surface-line);
}
.board-view .urlbox__item::before {
  mask: url("data:image/svg+xml;utf8,          <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'>          <path vector-effect='non-scaling-stroke' d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/>          <path vector-effect='non-scaling-stroke' d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/>          </svg>");
}
.board-view .filebox {
  border-top: 1px solid var(--gj-color-surface-line);
}
.board-view .filebox__item::before {
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M21.44 11.05 12.88 19.6a5 5 0 0 1-7.07-7.07l8.56-8.56a3.5 3.5 0 0 1 4.95 4.95l-8.56 8.56a2 2 0 1 1-2.83-2.83l7.78-7.78'/%3E%3C/svg%3E");
}
.board-view .filebox__files {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-sm);
}
.board-view .filebox__file {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
@media (max-width: 640px) {
  .board-view .filebox__file {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-direction: column;
    gap: var(--gj-spacer-xs);
  }
}
.board-view .filebox__file .name {
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-medium);
}
.board-view .filebox__file .edit {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-xs);
}

.reply {
  display: flex;
  flex-direction: column;
  background: var(--gj-color-primary);
  border-radius: 2.4rem;
  padding: 2.4rem;
}
.reply__info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gj-spacer-lg);
  padding: 0 0.8rem;
  border-bottom: 1px solid var(--gj-color-surface-line);
}
.reply__info .writer {
  margin-right: auto;
  color: var(--gj-color-text-primary);
}
.reply__info .writer i {
  font-size: 90%;
  margin-right: 0.8rem;
}
.reply__info em {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.reply__post {
  padding: 2.4rem 0.8rem;
}

.module-program {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--gj-spacer-3xl);
}
@media (max-width: 1280px) {
  .module-program {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 1024px) {
  .module-program {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  .module-program {
    grid-template-columns: repeat(1, 1fr);
    gap: var(--gj-spacer-xl);
  }
}
.module-program__item {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
}
.module-program__thumb {
  width: auto;
  height: auto;
  flex-shrink: 0;
  display: block;
  aspect-ratio: 1;
  background-color: var(--gj-color-mono-400);
  border-radius: var(--gj-round-2xl);
  overflow: hidden;
}
.module-program__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
.module-program__contents {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-sm);
  padding: var(--gj-spacer-md) var(--gj-spacer-sm);
}
.module-program__contents .badges {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-xs);
}
.module-program__contents .title {
  font-size: var(--gj-fs-body-xl);
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-text-primary);
}
.module-program__item:hover .module-program__contents .title {
  text-decoration: underline;
}
.module-program__info {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-xs);
}
.module-program__info dl {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
}
.module-program__info dl dt {
  min-width: 7.2rem;
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-bold);
}
.module-program__info dl dd {
  color: var(--gj-color-text-sub);
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.program-view {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-5xl);
}
@media (max-width: 1024px) {
  .program-view {
    gap: var(--gj-spacer-3xl);
  }
}
.program-view__head {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-3xl);
}
@media (max-width: 1024px) {
  .program-view__head {
    gap: var(--gj-spacer-2xl);
  }
}
@media (max-width: 768px) {
  .program-view__head {
    gap: var(--gj-spacer-lg);
  }
}
@media (max-width: 640px) {
  .program-view__head {
    flex-direction: column;
    gap: var(--gj-spacer-xl);
  }
}
.program-view__body {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: row-reverse;
  gap: var(--gj-spacer-5xl);
  overflow: visible;
}
.program-view__content {
  flex-grow: 1;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-4xl);
}
.program-view__btns {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
  background-color: var(--gj-color-white);
  padding: var(--gj-spacer-md) 0 var(--gj-spacer-xl);
  z-index: 10;
}
@media (min-width: 1280px) {
  .program-view__btns:not(.always-show) {
    display: none;
  }
}
@media (max-width: 768px) {
  .program-view__btns {
    position: sticky;
    bottom: 0;
  }
  .program-view__btns .btn {
    display: flex;
    flex-grow: 3;
  }
  .program-view__btns .btn--outline {
    flex-grow: 1;
  }
}
@media (min-width: 768px) {
  .program-view__btns.border-top {
    border-top: 1px solid var(--gj-color-surface-line);
  }
}
.program-view__btns .btn--ml {
  margin-left: auto;
}
.program-view__btns .btn--mr {
  margin-right: auto;
}

.program-head__thumb {
  width: 40rem;
  height: auto;
  flex-shrink: 0;
  display: block;
  aspect-ratio: 1;
  background-color: var(--gj-color-mono-400);
  border-radius: var(--gj-round-2xl);
  overflow: hidden;
  flex-shrink: 0;
}
.program-head__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
@media (max-width: 1280px) {
  .program-head__thumb {
    width: 36rem;
  }
}
@media (max-width: 1024px) {
  .program-head__thumb {
    width: 30rem;
  }
}
@media (max-width: 768px) {
  .program-head__thumb {
    width: 24rem;
  }
}
@media (max-width: 640px) {
  .program-head__thumb {
    width: 100%;
  }
}
.program-head__contents {
  flex-grow: 1;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-xl);
  padding: var(--gj-spacer-lg);
}
@media (max-width: 1280px) {
  .program-head__contents {
    gap: var(--gj-spacer-lg);
    padding: var(--gj-spacer-md);
  }
}
@media (max-width: 1024px) {
  .program-head__contents {
    padding: 0;
  }
}
@media (max-width: 640px) {
  .program-head__contents {
    gap: var(--gj-spacer-md);
    padding: 0 var(--gj-spacer-sm);
  }
}
.program-head__contents-head {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
}
@media (max-width: 640px) {
  .program-head__contents-head {
    gap: var(--gj-spacer-sm);
  }
}
.program-head__contents-head .badges {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-xs);
}
.program-head__contents-head .title {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
}
.program-head__contents-head .title .name {
  font-size: var(--gj-fs-title-md);
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-text-primary);
}
@media (max-width: 1024px) {
  .program-head__contents-head .title .name {
    font-size: var(--gj-fs-title-sm);
  }
}
@media (max-width: 640px) {
  .program-head__contents-head .title .name {
    font-size: var(--gj-fs-body-xl);
  }
}
.program-head__contents-head .title .desc {
  font-size: var(--gj-fs-body-lg);
  color: var(--gj-color-text-primary);
}
@media (max-width: 1024px) {
  .program-head__contents-head .title .desc {
    font-size: var(--gj-fs-body-md);
  }
}
@media (max-width: 640px) {
  .program-head__contents-head .title .desc {
    font-size: var(--gj-fs-body-sm);
  }
}
.program-head__info {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
}
@media (max-width: 1024px) {
  .program-head__info {
    gap: var(--gj-spacer-sm);
  }
}
.program-head__info dl {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-lg);
}
@media (max-width: 640px) {
  .program-head__info dl {
    font-size: var(--gj-fs-body-sm);
  }
}
.program-head__info dl dt {
  min-width: 8rem;
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-bold);
}
@media (max-width: 640px) {
  .program-head__info dl dt {
    min-width: 6rem;
  }
}
.program-head__info dl dd {
  flex-grow: 1;
  color: var(--gj-color-text-sub);
}
.program-head__info dl dd.price {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  flex-wrap: wrap;
  column-gap: var(--gj-spacer-md);
}
.program-head__btns {
  padding-top: var(--gj-spacer-sm);
}
@media (max-width: 768px) {
  .program-head__btns {
    display: none;
  }
}

.program-side {
  flex-shrink: 0;
  position: sticky;
  align-self: flex-start;
  top: 14rem;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-lg);
  background-color: var(--gj-color-surface-bg);
  border-radius: var(--gj-round-2xl);
  padding: var(--gj-spacer-lg);
  width: 38rem;
}
@media (max-width: 1280px) {
  .program-side {
    display: none;
  }
}
.program-side .name {
  font-size: var(--gj-fs-title-sm);
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-text-primary);
}
.program-side__info {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-sm);
}
.program-side__info dl {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
.program-side__info dl dt {
  min-width: 6rem;
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-bold);
}
.program-side__info dl dd {
  flex-grow: 1;
  color: var(--gj-color-text-sub);
}
.program-side__info dl.price {
  margin-top: var(--gj-spacer-sm);
}
.program-side__info dl.price dd {
  text-align: right;
  font-size: var(--gj-fs-body-xl);
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-primary);
}
.program-side__info .price-list {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-xs);
}
.program-side__info .price-list p {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
}
.program-side__info ~ .program-side__info {
  border-top: 1px solid var(--gj-color-surface-line);
  padding-top: var(--gj-spacer-md);
  margin-top: calc(-1 * var(--gj-spacer-md) / 2);
}
.program-side__btns {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
}

.program-content--row {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: row;
}

.program-section {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-2xl);
}
.program-section__tabs {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: row;
  height: 5.6rem;
  border-bottom: 1px solid var(--gj-color-surface-line);
}
@media (max-width: 1024px) {
  .program-section__tabs {
    height: 4.8rem;
  }
}
.program-section__tab {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  height: 100%;
  font-size: var(--gj-fs-body-lg);
  font-weight: var(--gj-fw-medium);
  color: var(--gj-color-text-info);
  border-bottom: 4px solid transparent;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
@media (max-width: 1024px) {
  .program-section__tab {
    font-size: var(--gj-fs-body-md);
  }
}
.program-section__tab--active {
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-text-primary);
  border-color: var(--gj-color-primary);
}
.program-section__tab:hover:not(.program-tabs__item--active) {
  border-color: var(--gj-color-surface-line);
}
.program-section__content {
  position: relative;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-4xl);
  max-height: 56rem;
  padding: 0 var(--gj-spacer-md);
  overflow: hidden;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
.program-section__content.is-expanded {
  max-height: none;
}
.program-section__content.has-toggle {
  padding-bottom: 8rem;
}
.program-section__content .content-toggle-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  gap: var(--gj-spacer-md);
  width: 100%;
  background: var(--gj-color-surface-white);
  color: var(--gj-color-text-sub);
  border: 1px solid var(--gj-color-surface-line);
  font-weight: var(--gj-fw-bold);
  padding: var(--gj-spacer-md) var(--gj-spacer-md);
  border-radius: var(--gj-round-lg);
  z-index: 10;
}
@media (max-width: 1024px) {
  .program-section__content .content-toggle-btn {
    padding: var(--gj-spacer-sm) var(--gj-spacer-md);
  }
}
.program-section__content .content-toggle-btn:hover {
  border-color: var(--gj-color-mono-800);
  color: var(--gj-color-text-primary);
}
.program-section__content .content-toggle-btn i {
  margin-left: 0.4rem;
  transition: transform 0.3s ease;
}
.program-section__content .content-toggle-btn[data-state=expanded] i {
  transform: rotate(180deg);
}

.course__item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-xl);
  padding: var(--gj-spacer-md) 0;
}
.course__item::before {
  content: "";
  flex-shrink: 0;
  display: block;
  width: 1.6rem;
  height: 1.6rem;
  background-color: var(--gj-color-primary);
  border-radius: var(--gj-round-full);
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(45, 212, 191, 0.3);
  margin-top: 1.2rem;
  margin-left: var(--gj-spacer-sm);
}
.course__item:after {
  content: "";
  position: absolute;
  left: 1.6rem;
  top: 0;
  bottom: 0;
  display: block;
  width: 1px;
  background-color: var(--gj-color-primary);
}
.course__item:first-child {
  padding-top: 0;
}
.course__item:first-child::after {
  top: 50%;
}
.course__item:last-child {
  padding-bottom: 0;
}
.course__item:last-child::after {
  bottom: 50%;
}
.course__thumb {
  width: 10rem;
  height: auto;
  flex-shrink: 0;
  display: block;
  aspect-ratio: 1;
  background-color: var(--gj-color-mono-400);
  border-radius: var(--gj-round-2xl);
  overflow: hidden;
  border-radius: var(--gj-round-lg);
}
.course__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
.course__content {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
}
.course__content .title {
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-text-primary);
}

.reservation {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-4xl);
}
.reservation--form {
  max-width: 64rem;
  margin: 0 auto;
}
.reservation__head {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-lg);
  border-bottom: 1px solid var(--gj-color-surface-line);
  padding-bottom: var(--gj-spacer-xl);
}
.reservation__title {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-xs);
}
.reservation__title .name {
  font-size: var(--gj-fs-title-md);
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-text-primary);
}
@media (max-width: 1024px) {
  .reservation__title .name {
    font-size: var(--gj-fs-title-sm);
  }
}
.reservation__title .desc {
  font-size: var(--gj-fs-body-lg);
  color: var(--gj-color-text-primary);
}
@media (max-width: 1024px) {
  .reservation__title .desc {
    font-size: var(--gj-fs-body-md);
  }
}
.reservation__body {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-4xl);
}
.reservation__content {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-4xl);
}
.reservation__content--row {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: row;
}
@media (max-width: 1280px) {
  .reservation__content--row {
    flex-direction: column;
  }
}
.reservation__btns {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
  background-color: var(--gj-color-white);
  padding: var(--gj-spacer-xl) 0;
  z-index: 10;
}
@media (max-width: 768px) {
  .reservation__btns {
    position: sticky;
    bottom: 0;
    padding: var(--gj-spacer-lg) 0 var(--gj-spacer-xl);
  }
  .reservation__btns .btn {
    display: flex;
    flex-grow: 3;
  }
  .reservation__btns .btn--outline {
    flex-grow: 1;
  }
}
@media (min-width: 768px) {
  .reservation__btns.border-top {
    border-top: 1px solid var(--gj-color-surface-line);
  }
}
.reservation__btns .btn--ml {
  margin-left: auto;
}
.reservation__btns .btn--mr {
  margin-right: auto;
}

.reservation-block__slot-cal {
  flex-shrink: 0;
  width: 80rem;
}
@media (max-width: 1440px) {
  .reservation-block__slot-cal {
    width: auto;
  }
}
.reservation-block__cal {
  flex-shrink: 0;
  width: 36rem;
}
@media (max-width: 1280px) {
  .reservation-block__cal {
    width: auto;
  }
}
.reservation-block__person-opt {
  flex-grow: 1;
  flex-shrink: 0;
}

.program-datepicker {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-4xl);
}
@media (max-width: 768px) {
  .program-datepicker {
    flex-direction: column;
    gap: var(--gj-spacer-2xl);
  }
}
.program-datepicker__calendar {
  flex-shrink: 0;
  max-width: 36rem;
  width: 100%;
}
@media (max-width: 768px) {
  .program-datepicker__calendar {
    max-width: 100%;
  }
}
.program-datepicker__time {
  flex-grow: 1;
}

.person-opt {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
}
.person-opt__list {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-sm);
}
.person-opt__item {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
@media (max-width: 768px) {
  .person-opt__item {
    justify-content: space-between;
  }
}
.person-opt__item .title {
  color: var(--gj-color-text-primary);
}
.person-opt__item .title .remain {
  color: var(--gj-color-green);
  font-weight: var(--gj-fw-medium);
}
.person-opt__item .title .remain--row {
  color: var(--gj-color-red);
}
.person-opt__item .extra {
  margin-left: auto;
  font-size: var(--gj-fs-body-sm);
  color: var(--gj-color-text-info);
}
.person-opt__sum {
  display: none;
  border-top: 1px solid var(--gj-color-surface-line);
  padding-top: var(--gj-spacer-md);
  padding-bottom: var(--gj-spacer-sm);
}
.person-opt__sum strong {
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-text-primary);
}
.person-opt__sum .total {
  font-size: var(--gj-fs-body-xl);
  color: var(--gj-color-primary);
  font-weight: var(--gj-fw-bold);
}
@media (max-width: 1280px) {
  .person-opt__sum {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-direction: row;
  }
}
.person-opt .qty {
  height: 4.8rem;
  padding: 0 var(--gj-spacer-sm);
  flex-grow: 0;
}
.person-opt .qty__btn {
  width: 1.6rem;
  height: 1.6rem;
}
.person-opt .qty__btn .lucide {
  width: 100%;
  height: 100%;
  stroke: var(--gj-color-text-sub);
}
.person-opt .qty input[type=text] {
  width: 4rem;
  text-align: center;
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-text-primary);
}
.content-block__content .person-opt {
  background-color: var(--gj-color-surface-bg);
  padding: var(--gj-spacer-lg);
  border-radius: var(--gj-round-xl);
}
.content-block__content .person-opt__sum {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
}
.person-opt--null {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: var(--gj-spacer-xs);
  color: var(--gj-color-text-info);
  font-weight: var(--gj-fw-medium);
  min-height: 16rem;
}
.person-opt .content-block__info {
  border-bottom: 1px solid var(--gj-color-surface-line);
  padding-bottom: var(--gj-spacer-md);
}

.photo-mask-flow {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 28rem; /* 원하는 높이 */
}
@media (max-width: 1024px) {
  .photo-mask-flow {
    height: 24rem;
  }
}
@media (max-width: 640px) {
  .photo-mask-flow {
    height: 18rem;
  }
}
.photo-mask-flow__inner {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-image: url("/images/main/visual/visual01.jpg");
  -webkit-mask-image: url("/images/main/program/sign.svg");
  mask-image: url("/images/main/program/sign.svg");
  /* 마스크 설정 */
  mask-repeat: repeat-x;
  mask-size: auto 100%;
  -webkit-mask-repeat: repeat-x;
  -webkit-mask-size: auto 100%;
  /* 애니메이션 */
  animation: maskFlow 12s linear infinite;
}

/* 마스크가 흐르는 효과 */
@keyframes maskFlow {
  0% {
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
  }
  100% {
    -webkit-mask-position: 100% 0;
    mask-position: 100% 0;
  }
}
.greeting {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-xl);
  max-width: 80rem;
  text-align: center;
  margin: 0 auto;
  padding-bottom: 5.6rem;
}
@media (max-width: 1024px) {
  .greeting {
    max-width: 100%;
    padding-bottom: 4.8rem;
  }
}
.greeting .title {
  font-family: "ChangwonDanggamAsak", "Pretendard", "맑은 고딕", "MalgumGothic", sans-serif;
  font-size: var(--gj-fs-title-lg);
  color: var(--gj-color-text-primary);
  line-height: 120%;
}
@media (max-width: 1024px) {
  .greeting .title {
    font-size: var(--gj-fs-title-md);
  }
}
@media (max-width: 640px) {
  .greeting .title {
    font-size: var(--gj-fs-title-sm);
  }
}
.greeting .text {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
}
.greeting .text span {
  line-height: 160%;
}

.business {
  align-items: stretch !important;
}
.business__item {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
  background-color: #f0fdfa;
  border-radius: var(--gj-round-xl);
  border: 4px solid var(--gj-color-primary);
  padding: var(--gj-spacer-lg);
}
@media (max-width: 768px) {
  .business__item {
    gap: var(--gj-spacer-sm);
  }
}
@media (max-width: 640px) {
  .business__item {
    padding: var(--gj-spacer-md);
  }
}
.business__item strong {
  color: var(--gj-color-primary);
  font-weight: var(--gj-fw-bold);
  font-size: var(--gj-fs-body-xl);
}
@media (max-width: 1440px) {
  .business__item strong {
    font-size: var(--gj-fs-body-lg);
  }
}
@media (max-width: 768px) {
  .business__item strong {
    font-size: var(--gj-fs-body-md);
  }
}
.business__item .check-list {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-sm);
}
@media (max-width: 768px) {
  .business__item .check-list {
    gap: var(--gj-spacer-xs);
  }
}
.business__item .check-list p {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-medium);
}
.business__item .check-list p .lucide {
  width: 1.6rem;
  height: 1.6rem;
  stroke: var(--gj-color-primary);
  stroke-width: 3px;
}

.table-responsive {
  width: 100%;
  overflow-x: auto;
}

.table thead th {
  padding: var(--gj-spacer-sm);
  text-align: center;
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-bold);
  border-bottom: 2px solid var(--gj-color-mono-800);
  white-space: nowrap;
}
.table tbody td {
  border-bottom: 1px solid var(--gj-color-surface-line);
  height: 4.8rem;
  padding: var(--gj-spacer-sm);
  text-align: center;
  white-space: nowrap;
}
.table tbody td:not(:last-child) {
  border-right: 1px dotted var(--gj-color-surface-line);
}

.map {
  aspect-ratio: 3/1;
  background-color: var(--gj-color-surface-bg);
  border-radius: var(--gj-round-2xl);
}
@media (max-width: 768px) {
  .map {
    aspect-ratio: 4/3;
  }
}

.point-intro {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  width: 100%;
  gap: var(--gj-spacer-6xl);
}
@media (max-width: 768px) {
  .point-intro {
    gap: var(--gj-spacer-4xl);
  }
}
.point-intro__visual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-2xl);
  width: 100%;
  padding: 8rem var(--gj-spacer-lg);
  background: url("/images/point-intro.png") no-repeat center/cover;
  color: var(--gj-color-text-white);
  text-align: center;
}
@media (max-width: 1280px) {
  .point-intro__visual {
    padding: 6rem var(--gj-spacer-lg);
  }
}
@media (max-width: 768px) {
  .point-intro__visual {
    padding: 6rem var(--gj-spacer-md);
    gap: var(--gj-spacer-lg);
  }
}
@media (max-width: 640px) {
  .point-intro__visual {
    padding: 6rem 0;
  }
}
.point-intro__visual::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 0;
}
.point-intro__title {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  z-index: 1;
}
@media (max-width: 768px) {
  .point-intro__title {
    gap: var(--gj-spacer-sm);
  }
}
.point-intro__title .title {
  font-family: "ChangwonDanggamAsak", "Pretendard", "맑은 고딕", "MalgumGothic", sans-serif;
  font-size: var(--gj-fs-title-xl);
}
@media (max-width: 1280px) {
  .point-intro__title .title {
    font-size: var(--gj-fs-title-md);
  }
}
@media (max-width: 768px) {
  .point-intro__title .title {
    font-size: var(--gj-fs-title-sm);
    line-height: 110%;
  }
}
.point-intro__title .desc {
  font-size: var(--gj-fs-body-lg);
}
@media (max-width: 1280px) {
  .point-intro__title .desc {
    font-size: var(--gj-fs-body-md);
  }
}
@media (max-width: 640px) {
  .point-intro__title .desc {
    font-size: var(--gj-fs-body-sm);
  }
}
.point-intro__content {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  z-index: 1;
  max-width: 90rem;
}
@media (max-width: 640px) {
  .point-intro__content {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-direction: column;
    gap: var(--gj-spacer-sm);
  }
}
.point-intro__content > div {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  padding: 0 var(--gj-spacer-xl);
}
.point-intro__content > div:not(:last-child) {
  border-right: 1px solid var(--gj-color-surface-line);
}
@media (max-width: 640px) {
  .point-intro__content > div {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: row;
    gap: var(--gj-spacer-sm);
    padding: 0 var(--gj-spacer-md);
    text-align: left;
  }
  .point-intro__content > div:not(:last-child) {
    border-right: 0;
  }
}

.gujwa__visual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-2xl);
  width: 100%;
  padding: 8rem var(--gj-spacer-lg);
  background: url("/images/gujwa-intro.png") no-repeat center/cover;
  color: var(--gj-color-text-white);
  text-align: center;
}
@media (max-width: 1280px) {
  .gujwa__visual {
    padding: 6rem var(--gj-spacer-lg);
  }
}
@media (max-width: 768px) {
  .gujwa__visual {
    padding: 6rem var(--gj-spacer-md);
    gap: var(--gj-spacer-lg);
  }
}
@media (max-width: 640px) {
  .gujwa__visual {
    padding: 6rem 0;
  }
}
.gujwa__visual::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: rgba(0, 0, 0, 0.2);
  z-index: 0;
}
.gujwa__title {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  z-index: 1;
  gap: var(--gj-spacer-md);
}
.gujwa__title .title {
  font-family: "ChangwonDanggamAsak", "Pretendard", "맑은 고딕", "MalgumGothic", sans-serif;
  font-size: var(--gj-fs-title-2xl);
  line-height: 110%;
}
@media (max-width: 1280px) {
  .gujwa__title .title {
    font-size: var(--gj-fs-title-xl);
  }
}
@media (max-width: 768px) {
  .gujwa__title .title {
    font-size: var(--gj-fs-title-md);
  }
}
.gujwa__title .desc {
  font-size: var(--gj-fs-body-lg);
}
@media (max-width: 1280px) {
  .gujwa__title .desc {
    font-size: var(--gj-fs-body-md);
  }
}
@media (max-width: 640px) {
  .gujwa__title .desc {
    font-size: var(--gj-fs-body-sm);
  }
}
@media (min-width: 768px) {
  .gujwa__title .desc {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
  }
}

.content-wrap {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-4xl);
  padding-left: var(--gj-spacer-sm);
  padding-right: var(--gj-spacer-sm);
}

.content-block {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-xl);
}
@media (max-width: 768px) {
  .content-block {
    gap: var(--gj-spacer-lg);
  }
}
.content-block__title {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
  font-size: var(--gj-fs-body-lg);
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-secondary);
}
.content-block--box .content-block__title {
  color: var(--gj-color-text-primary);
}
.content-block--box .content-block__title::before {
  display: none;
}
.content-block__title::before {
  content: "";
  display: inline-block;
  width: 2rem;
  height: 0.4rem;
  background-color: var(--gj-color-secondary);
}
.content-block__title-big {
  text-align: center;
  font-size: var(--gj-fs-title-md);
  color: var(--gj-color-text-primary);
}
@media (max-width: 1280px) {
  .content-block__title-big {
    font-size: var(--gj-fs-title-sm);
  }
}
@media (max-width: 768px) {
  .content-block__title-big {
    font-size: var(--gj-fs-body-xl);
  }
}
.content-block__content {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-lg);
}
.content-block__text {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
}
.content-block__info {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
}
.content-block__info dl {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
@media (max-width: 768px) {
  .content-block__info dl {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-direction: column;
    gap: var(--gj-spacer-xs);
  }
}
.content-block__info dl dt {
  min-width: 10rem;
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-bold);
}
.content-block__info dl dd {
  color: var(--gj-color-text-sub);
}
.content-block__info dl dd strong {
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-bold);
}
.content-block__info dl dd.price {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  flex-wrap: wrap;
  column-gap: var(--gj-spacer-md);
}
.content-block__info--row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 1024px) {
  .content-block__info--row {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-direction: column;
  }
}
.content-block__info--row dl.colspan {
  grid-column: span 2;
}
.content-block__map {
  width: 100%;
  aspect-ratio: 5/2;
  border-radius: var(--gj-round-xl);
}
.content-block--box {
  gap: var(--gj-spacer-sm);
  padding: var(--gj-spacer-lg);
  background-color: var(--gj-color-surface-bg);
  border-radius: var(--gj-round-2xl);
  border: 1px solid var(--gj-color-surface-line);
}
.content-block .board-faq {
  border-top: 0;
}
.content-block .board-faq__question {
  padding: 0 var(--gj-spacer-md);
  height: 4.8rem;
}
.content-block .board-faq .subject {
  font-size: var(--gj-fs-body-md);
}
.content-block--notice {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
  background-color: #eff6ff;
  border: 1px solid #3b82f6;
  border-radius: var(--gj-round-xl);
  padding: var(--gj-spacer-md);
  color: #3b82f6;
  font-weight: var(--gj-fw-bold);
}
.content-block--notice .notice {
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
}
.content-block--notice .lucide {
  width: 2.4rem;
  height: 2.4rem;
  color: #3b82f6;
}
.content-block__row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-xl);
}
.content-block__row--col4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 1280px) {
  .content-block__row--col4 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  .content-block__row--col4 {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-direction: column;
    gap: var(--gj-spacer-md);
  }
}

.status-page {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-2xl);
  padding-bottom: var(--gj-spacer-6xl);
}
@media (max-width: 768px) {
  .status-page {
    gap: var(--gj-spacer-xl);
  }
}
@media (max-width: 640px) {
  .status-page {
    gap: var(--gj-spacer-lg);
  }
}
.status-page__inner {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
}
@media (max-width: 768px) {
  .status-page__inner {
    gap: var(--gj-spacer-sm);
  }
}
.status-page__img {
  width: 19.2rem;
  height: 19.6rem;
}
@media (max-width: 768px) {
  .status-page__img {
    width: 14.4rem;
    height: 14.8rem;
  }
}
.status-page__img img {
  width: 100%;
  height: 100%;
}
.status-page__text {
  text-align: center;
}
.status-page__text h1 {
  font-size: var(--gj-fs-title-md);
  margin-bottom: var(--gj-spacer-sm);
  color: var(--gj-color-text-primary);
}
@media (max-width: 768px) {
  .status-page__text h1 {
    font-size: var(--gj-fs-title-sm);
    margin-bottom: var(--gj-spacer-xs);
  }
}
@media (max-width: 640px) {
  .status-page__text h1 {
    font-size: var(--gj-fs-body-xl);
  }
}
@media (max-width: 640px) {
  .status-page__text .text {
    font-size: var(--gj-fs-body-sm);
  }
}
.status-page__text .text > a {
  font-weight: var(--gj-fw-bold);
  text-decoration: underline;
}
.status-page .point-intro__content {
  margin-top: var(--gj-spacer-md);
  padding-top: var(--gj-spacer-md);
}
@media (max-width: 640px) {
  .status-page .point-intro__content {
    border-top: 1px solid var(--gj-color-surface-line);
  }
}
.status-page .point-intro__content .item {
  gap: var(--gj-spacer-xs);
}
@media (max-width: 640px) {
  .status-page .point-intro__content .item {
    gap: var(--gj-spacer-md);
  }
}
.status-page .point-intro__content .item strong {
  font-size: var(--gj-fs-body-lg);
  color: var(--gj-color-primary);
}
@media (max-width: 768px) {
  .status-page .point-intro__content .item strong {
    font-size: var(--gj-fs-body-md);
  }
}
@media (max-width: 640px) {
  .status-page .point-intro__content .item strong {
    font-size: var(--gj-fs-body-sm);
  }
}

.root_daum_roughmap .wrap_map {
  height: 100% !important;
}
.root_daum_roughmap .map_border {
  display: none !important;
}
.root_daum_roughmap .cont {
  display: none;
}

.event-viewer__img {
  max-width: 100%;
  max-height: min(80vh, 720px);
  margin: 0 auto;
  display: block;
  background: var(--gj-color-surface-bg);
}
.event-viewer__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  background-color: rgba(30, 41, 59, 0.4);
  color: var(--gj-color-white);
  width: 4rem;
  height: 4rem;
  border-radius: var(--gj-round-full);
  cursor: pointer;
}
.event-viewer__btn:hover {
  background-color: rgba(30, 41, 59, 0.8);
}
.event-viewer__btn--prev {
  left: 1rem;
}
.event-viewer__btn--next {
  right: 1rem;
}

.policy-box {
  background-color: var(--gj-color-surface-bg);
  border-radius: var(--gj-round-xl);
  padding: var(--gj-spacer-lg);
}

.mini-tab {
  position: relative;
  width: 100%;
}
@media (max-width: 768px) {
  .mini-tab::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 4rem;
    background: linear-gradient(to right, rgba(255, 255, 255, 0), rgb(255, 255, 255) 80%);
  }
}
.mini-tab__list {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-sm);
  overflow-x: auto;
  padding-right: 4rem;
}
.mini-tab__item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  height: 4rem;
  padding: 0 var(--gj-spacer-md);
  border-radius: var(--gj-round-full);
  color: var(--gj-color-text-white);
  background-color: var(--gj-color-mono-300);
  font-weight: var(--gj-fw-medium);
  -webkit-transition: all 0.5s ease 0s;
  -o-transition: all 0.5s ease 0s;
  transition: all 0.5s ease 0s;
}
.mini-tab__item--active {
  background-color: var(--gj-color-surface-dark) !important;
  font-weight: var(--gj-fw-bold);
}
.mini-tab__item:hover {
  color: var(--gj-color-text-white);
  background-color: var(--gj-color-mono-400);
}

.stats {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
  border-radius: var(--gj-round-2xl);
  background-color: var(--gj-color-surface-bg);
  padding: var(--gj-spacer-lg);
  margin-bottom: var(--gj-spacer-md);
}
@media (max-width: 1024px) {
  .stats {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-direction: column;
    gap: var(--gj-spacer-md);
  }
}
.stats__profile {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
.stats__profile .user-profile {
  position: relative;
}
.stats__profile .user-profile__img {
  width: 6.4rem;
  height: 6.4rem;
  border-radius: var(--gj-round-full);
  overflow: hidden;
}
@media (max-width: 768px) {
  .stats__profile .user-profile__img {
    width: 4.8rem;
    height: 4.8rem;
  }
}
.stats__profile .user-profile__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.stats__profile .user-profile__del {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  width: 2rem;
  height: 2rem;
  border-radius: var(--gj-round-full);
  background-color: var(--gj-color-mono-800);
}
.stats__profile .user-profile__del .lucide {
  stroke: var(--gj-color-white);
}
.stats__profile .user-info {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
}
.stats__profile .user-info p {
  font-size: var(--gj-fs-body-xl);
  color: var(--gj-color-text-primary);
}
@media (max-width: 768px) {
  .stats__profile .user-info p {
    font-size: var(--gj-fs-body-md);
  }
}
.stats__profile .upload-profile {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
}
.stats__profile .upload-profile span {
  color: var(--gj-color-text-info);
}
.stats__profile .upload-profile label {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  gap: var(--gj-spacer-xs);
  width: 14rem;
  height: 3.2rem;
  font-weight: var(--gj-fw-bold);
  text-decoration: underline;
}
.stats__profile .upload-profile label .lucide {
  width: 1.6rem;
  height: 1.6rem;
}
.stats__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
.stats__list {
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  flex-direction: row;
  gap: var(--gj-spacer-xl);
}
@media (max-width: 1024px) {
  .stats__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(4rem, 1fr));
    border-top: 1px solid var(--gj-color-surface-line);
    padding-top: var(--gj-spacer-md);
  }
}
.stats__item {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
  min-width: 22rem;
  padding: 0 var(--gj-spacer-lg);
  border-left: 1px solid var(--gj-color-surface-line);
}
@media (max-width: 1440px) {
  .stats__item {
    min-width: 14rem;
  }
}
@media (max-width: 1024px) {
  .stats__item {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: row;
    gap: var(--gj-spacer-sm);
    min-width: auto;
    padding: 0;
    border: 0;
  }
}
.stats__item p {
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-text-sub);
  font-size: var(--gj-fs-body-lg);
}
@media (max-width: 1024px) {
  .stats__item p {
    font-size: var(--gj-fs-body-md);
  }
}
.stats__item strong {
  font-family: "Montserrat", "Pretendard", "맑은 고딕", "MalgumGothic", sans-serif;
  font-size: var(--gj-fs-title-md);
  color: var(--gj-color-text-primary);
}
@media (max-width: 1024px) {
  .stats__item strong {
    font-size: var(--gj-fs-title-sm);
  }
}

.mypage {
  border-top: 2px solid var(--gj-color-mono-800);
}
.mypage__item {
  position: relative;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  flex-direction: row;
  gap: var(--gj-spacer-4xl);
  padding: var(--gj-spacer-lg) 0;
  border-bottom: 1px solid var(--gj-color-surface-line);
}
@media (max-width: 768px) {
  .mypage__item {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-direction: column;
    gap: var(--gj-spacer-lg);
    padding: var(--gj-spacer-lg) var(--gj-spacer-sm);
  }
}
.mypage__item--deleted {
  opacity: 0.6;
}
.mypage__status {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-xs);
  min-width: 16rem;
}
.mypage__info {
  flex-grow: 1;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-4xl);
}
@media (max-width: 1280px) {
  .mypage__info {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-direction: column;
    gap: var(--gj-spacer-md);
  }
}
.mypage__info .product {
  flex: 1;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-xs);
  min-width: 26rem;
}
.mypage__info .product strong {
  font-size: var(--gj-fs-body-xl);
  color: var(--gj-color-text-primary);
}
.mypage__info .reservation {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-xs);
  width: 32rem;
}
@media (max-width: 1280px) {
  .mypage__info .reservation {
    width: 100%;
  }
}
.mypage__info .reservation > p {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-xs);
}
.mypage__info .reservation > p.color-primary {
  color: var(--gj-color-text-primary);
  font-weight: var(--gj-fw-medium);
}
.mypage__info .reservation em {
  display: none;
}
@media (max-width: 1280px) {
  .mypage__info .reservation em {
    display: block;
    font-weight: var(--gj-fw-bold);
    color: var(--gj-color-text-primary);
  }
}
.mypage__price {
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  flex-direction: column;
  min-width: 20rem;
}
@media (max-width: 768px) {
  .mypage__price {
    align-items: flex-start;
  }
}
.mypage__price .price {
  font-family: "Montserrat", "Pretendard", "맑은 고딕", "MalgumGothic", sans-serif;
  color: var(--gj-color-primary);
  font-weight: var(--gj-fw-bold);
}
.mypage__price .price strong {
  font-size: var(--gj-fs-body-2xl);
}
.mypage__price button {
  text-decoration: underline;
}
@media (max-width: 768px) {
  .mypage__price button {
    position: absolute;
    top: var(--gj-spacer-lg);
    right: var(--gj-spacer-lg);
  }
}

.oauth-btns {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-sm);
}
.oauth-btns .btn {
  gap: var(--gj-spacer-sm);
}
.oauth-btns .btn::before {
  content: "";
  width: 1.6rem;
  height: 1.6rem;
}
.oauth-btns .btn--kakao::before {
  background: url("/images/sns/sns_ico_kakao.png") no-repeat center/cover;
}
.oauth-btns .btn--google {
  border-color: #475569;
}
.oauth-btns .btn--google::before {
  background: url("/images/sns/sns_ico_google.png") no-repeat center/cover;
}
.oauth-btns .btn--clear {
  border-color: #e2e8f0;
}
.login__wrap {
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  width: 100%;
}
.login {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-lg);
  width: 36rem;
}
@media (max-width: 640px) {
  .login {
    width: 100%;
    padding: 0 var(--gj-spacer-lg);
    gap: var(--gj-spacer-md);
  }
}
.login__logo {
  display: block;
  background: url("/images/common/logo-dark.svg") no-repeat center/cover;
  width: 21.4rem;
  height: 9.3rem;
  margin: 0 auto;
}
@media (max-width: 480px) {
  .login__logo {
    width: 18rem;
    height: 7.8rem;
    margin-bottom: var(--gj-spacer-sm);
  }
}
.login__form {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-lg);
}
.login__form .form__fields {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-sm);
}
.login__form .form__fields .input {
  height: 4.8rem;
}
.login__form .form__fields .input input {
  padding: 0 var(--gj-spacer-md);
}
@media (max-width: 480px) {
  .login__form .form__fields .input {
    height: 4.4rem;
  }
  .login__form .form__fields .input input {
    padding: 0 var(--gj-spacer-sm);
  }
}
.login__form .form__actions {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
}
.login__form .form__actions .signup-row {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
.login__form .form__actions .signup-row span {
  font-weight: var(--gj-fw-medium);
}
.login__form .form__actions .signup-row a {
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-primary);
}
.login__form .form__actions .signup-row a:hover {
  text-decoration: underline;
}
.login .alert {
  font-weight: var(--gj-fw-medium);
}
.login .alert.warning {
  color: var(--gj-color-danger);
}
.login__sns {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
}
.login__sns strong {
  color: var(--gj-color-text-primary);
}
.login__sns .sns {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-lg);
}
.login__sns .sns__item {
  width: 5.6rem;
  height: 5.6rem;
  border-radius: var(--gj-round-full);
}
.login__sns .sns__item--kakao {
  background: url("/images/sns/sns_kakao.png") no-repeat center/cover;
}
.login__sns .sns__item--kakao:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(250, 204, 21, 0.3);
}
.login__sns .sns__item--naver {
  background: url("/images/sns/sns_naver.png") no-repeat center/cover;
}
.login__sns .sns__item--naver:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(74, 222, 128, 0.3);
}
.login__sns .sns__item--google {
  background: url("/images/sns/sns_google.png") no-repeat center/cover;
}
.login__sns .sns__item--google:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(148, 163, 184, 0.3);
}

.signup {
  gap: var(--gj-spacer-xl);
}
.signup__address {
  background-color: var(--gj-color-surface-bg);
  border-radius: var(--gj-round-lg);
  padding: var(--gj-spacer-xs) var(--gj-spacer-md);
  margin: var(--gj-spacer-xs) 0;
}
.signup__address .address-select {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
}
.signup__address .address-select__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
  padding: var(--gj-spacer-sm) 0;
  border-bottom: 1px solid var(--gj-color-surface-line);
}
.signup__address .address-select__item button {
  color: var(--gj-color-primary);
  font-weight: var(--gj-fw-bold);
  text-decoration: underline;
  padding: var(--gj-spacer-sm);
}
.signup .status-page {
  margin-bottom: var(--gj-spacer-xl);
}

.signup-terms {
  gap: var(--gj-spacer-md);
}
.signup-terms__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
}
.signup-terms__content {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
}
.signup-terms__text {
  background: var(--gj-color-surface-bg);
  border-radius: var(--gj-round-xl);
  padding: var(--gj-spacer-md);
  height: 16rem;
  overflow-y: auto;
}
.signup-terms__agree-all {
  border-top: 1px solid var(--gj-color-surface-line);
  padding-top: var(--gj-spacer-md);
  padding-bottom: var(--gj-spacer-lg);
  font-weight: var(--gj-fw-bold);
}

.error-page__wrap {
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  width: 100vw;
  height: 100vh;
}
.error-page {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  margin-top: -8rem;
}
@media (max-width: 640px) {
  .error-page {
    align-items: center;
    padding: 0 var(--gj-spacer-lg);
  }
}
.error-page__num {
  font-family: "ChangwonDanggamAsak", "Pretendard", "맑은 고딕", "MalgumGothic", sans-serif;
  font-size: 10rem;
  color: var(--gj-color-primary);
  line-height: 100%;
  margin-bottom: var(--gj-spacer-lg);
}
@media (max-width: 1024px) {
  .error-page__num {
    font-size: 8rem;
  }
}
@media (max-width: 640px) {
  .error-page__num {
    font-size: 6rem;
    text-align: center;
  }
}
.error-page__text {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-direction: column;
  color: var(--gj-color-text-primary);
}
@media (max-width: 640px) {
  .error-page__text {
    align-items: center;
    gap: var(--gj-spacer-sm);
    text-align: center;
  }
}
.error-page__text .title {
  font-size: var(--gj-fs-title-md);
  font-weight: var(--gj-fw-bold);
}
@media (max-width: 1024px) {
  .error-page__text .title {
    font-size: var(--gj-fs-title-sm);
  }
}
@media (max-width: 640px) {
  .error-page__text .title {
    font-size: var(--gj-fs-body-xl);
  }
  .error-page__text .title span {
    display: block;
  }
}
.error-page__text .desc {
  font-size: var(--gj-fs-body-lg);
}
@media (max-width: 640px) {
  .error-page__text .desc {
    font-size: var(--gj-fs-body-md);
  }
}
.error-page__btn {
  padding-top: var(--gj-spacer-xl);
}
.error-page__form {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-lg);
}
.error-page__form .form__fields {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-sm);
}
.error-page__form .form__fields .input {
  height: 4.8rem;
}
.error-page__form .form__fields .input input {
  padding: 0 var(--gj-spacer-md);
}
@media (max-width: 480px) {
  .error-page__form .form__fields .input {
    height: 4.4rem;
  }
  .error-page__form .form__fields .input input {
    padding: 0 var(--gj-spacer-sm);
  }
}
.error-page__form .form__actions {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
}
.error-page__form .form__actions .signup-row {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  gap: var(--gj-spacer-md);
}
.error-page__form .form__actions .signup-row span {
  font-weight: var(--gj-fw-medium);
}
.error-page__form .form__actions .signup-row a {
  font-weight: var(--gj-fw-bold);
  color: var(--gj-color-primary);
}
.error-page__form .form__actions .signup-row a:hover {
  text-decoration: underline;
}
.error-page .alert {
  font-weight: var(--gj-fw-medium);
}
.error-page .alert.warning {
  color: var(--gj-color-danger);
}
.error-page__sns {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  gap: var(--gj-spacer-md);
}
.error-page__sns strong {
  color: var(--gj-color-text-primary);
}
.error-page__sns .sns {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  gap: var(--gj-spacer-lg);
}
.error-page__sns .sns__item {
  width: 5.6rem;
  height: 5.6rem;
  border-radius: var(--gj-round-full);
}
.error-page__sns .sns__item--kakao {
  background: url("/images/sns/sns_kakao.png") no-repeat center/cover;
}
.error-page__sns .sns__item--kakao:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(250, 204, 21, 0.3);
}
.error-page__sns .sns__item--naver {
  background: url("/images/sns/sns_naver.png") no-repeat center/cover;
}
.error-page__sns .sns__item--naver:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(74, 222, 128, 0.3);
}
.error-page__sns .sns__item--google {
  background: url("/images/sns/sns_google.png") no-repeat center/cover;
}
.error-page__sns .sns__item--google:hover {
  transition: box-shadow 0.25s, transform 0.25s;
  box-shadow: 0 0 0 0.8rem rgba(148, 163, 184, 0.3);
}

/*# sourceMappingURL=style.css.map */
