:root {
  --gap80: 80px;
  --gap120: 120px;
  --gap160: 160px;
  --gap180: 180px;
  --gap200: 200px;
  --color-main: #F8B500;
  --color-sub: #2973B7;
  --color-white: #FFFFFF;
  --color-black: #000000;
  --color-border: #E5E5E5;
  --font60: 6.0rem;
  --font42: 4.2rem;
  --font40: 4.0rem;
  --font28: 2.8rem;
  --font-pretendard: "Pretendard", sans-serif;
}

* {
  line-height: 1.3;
  letter-spacing: -0.02em;
}

html,
body {
  width: 100%;
  max-width: 100%;
}

hr,
figure {
  padding: 0;
  margin: 0;
}

pre {
  white-space: pre-wrap;
}

textarea {
  resize: none;
}

hr {
  border: none;
}

#wrap {
  width: 100%;
  max-width: 100%;
  font-size: 1.6rem;
  overflow-x: clip;
}

.w1760 {
  max-width: 1760px;
  margin: 0 auto;
  width: 100%;
  height: 100%;
}

.w1600 {
  max-width: 1600px;
  margin: 0 auto;
  width: 100%;
  height: 100%;
}

.tab-contents > div {
  position: absolute;
  top: -222222px;
  left: -222222px;
}
.tab-contents > div.on {
  position: relative;
  top: auto;
  left: auto;
}

.ani {
  transition: all 0.6s ease-in-out;
}
.ani.down {
  transform: translateY(-60px);
}
.ani.up {
  transform: translateY(60px);
}
.ani.left {
  transform: translateX(60px);
}
.ani.right {
  transform: translateX(-60px);
}
.ani.opacity {
  opacity: 0;
}
.ani.on.down, .ani.on.up {
  transform: translateY(0);
}
.ani.on.left, .ani.on.right {
  transform: translateX(0);
}
.ani.on.opacity {
  opacity: 1;
}

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

.dimmed {
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.6);
  z-index: 1;
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.dimmed.on {
  z-index: 2;
}

.menu-button {
  width: 50px;
  height: 50px;
  border: 2px solid var(--color-border);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

header {
  width: 100%;
  height: 100px;
  background: var(--color-white);
  position: relative;
  z-index: 1;
}
header .header-box {
  width: 100%;
  height: 100%;
}
header .header-box > *:not(.gnb-wrap) {
  flex-shrink: 0;
}
header .logo-box {
  row-gap: 0;
  column-gap: 20px;
}
header .logo-box h1 {
  width: 249px;
}
header .logo-box a {
  display: block;
  width: 100%;
}
/* header .logo-box .logo {
  width: 124px;
} */
header .gnb-wrap,
header .gnb-list,
header .depth1,
header .depth1 > li {
  height: 100%;
}
header .gnb-wrap {
  margin: 0 30px 0 auto;
}
header .gnb-list {
  display: flex;
  column-gap: 30px;
  padding: 15px 0;
  position: relative;
  z-index: 2;
}
header .gnb-list > div {
  height: 100%;
  display: flex;
  align-items: center;
  border: 2px solid var(--color-border);
  border-radius: 10px;
  padding: 0 30px;
}
header nav .depth-box {
  column-gap: 15px;
}
header .gnb-list .depth1,
header .gnb-list .depth1 > li {
  display: flex;
  align-items: center;
}
header .gnb-list .depth1 > li {
  position: relative;
  z-index: 1;
}
header .depth1 a,
header .depth1-name {
  color: #111;
  font-size: 1.8rem;
  font-weight: 800;
}
header .depth1-name {
  display: inline-flex;
  align-items: center;
  column-gap: 10px;
  line-height: 1;
  margin-right: 15px;
}
header .depth1-name figure,
header .depth1-name figure img {
  transition: all 0.4s;
}
header .depth1-name figure {
  width: 25px;
  height: 25px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-border);
  border-radius: 50%;
}
header .depth1-name figure img {
  filter: brightness(0);
}
header .depth-list {
  display: flex;
  align-items: center;
}
header .depth-list li {
  padding: 0 25px;
}
header .depth-list a {
  display: inline-flex;
  color: #555;
  font-size: 1.5rem;
  font-weight: 700;
  position: relative;
  transition: all 0.4s;
}
header .depth-list a::after {
  content: '';
  display: block;
  width: 0;
  height: 1px;
  background: var(--color-black);
  position: absolute;
  left: 50%;
  bottom: -2px;
  transform: translateX(-50%);
  transition: all 0.4s;
}
header .depth-list .depth2 {
  opacity: 0;
}
header .depth-list a:hover {
  color: var(--color-black);
}
header .depth-list a:hover::after {
  width: 100%;
}
header .depth1-name.on figure {
  background: var(--color-main);
}
header .depth1-name.on figure img {
  filter: inherit;
}
/* header nav .depth1 > li::after {
  content: "";
  display: block;
  width: 0;
  height: 2px;
  background: var(--color-main);
  z-index: 1;
  transition: all 0.4s;
  position: absolute;
  top: calc(100% - 1px);
  left: 50%;
  transform: translateX(-50%);
}
header nav .depth1 > li > a {
  align-items: center;
  color: #111;
  font-size: 1.8rem;
  font-size: 2.0rem;
  font-weight: 800;
  padding: 0 30px;
  transition: all 0.4s;
}
header .depth1-name {
}
header nav .depth1 > li:first-child {
  margin-right: 20px;
}
header nav .depth1 > li:first-child > a {
  position: relative;
}
header nav .depth1 > li:first-child > a::after {
  content: "";
  display: block;
  width: 1px;
  height: 70px;
  background: #e5e5e5;
  background: #999;
  position: absolute;
  top: 50%;
  right: -10px;
  transform: translateY(-50%);
}
header nav .depth1 > li:not(:first-child) {
  height: 50%;
}
header nav .depth1 > li:not(:first-child) > a {
  font-size: 1.7rem;
  font-weight: 700;
}
header nav .depth1 > li:not(:first-child):not(:last-child) > a {
  position: relative;
}
header nav .depth1 > li:not(:first-child):not(:last-child) > a::after {
  content: "";
  display: block;
  width: 1px;
  height: 20px;
  background: #e5e5e5;
  background: #999;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}
header nav .depth1 > li:hover::after, header nav .depth1 > li.on::after {
  width: 100%;
}
header nav .depth1 > li:hover > a, header nav .depth1 > li.on > a {
  color: var(--color-main);
}
header nav .depth2 {
  opacity: 0;
} */
header .gnb-box {
  width: 100%;
  height: 145px;
  border-top: 1px solid var(--color-border);
  z-index: 1;
  display: none;
  position: absolute;
  top: 100px;
  left: 50%;
  transform: translateX(-50%);
}
header .gnb-box .inner {
  width: 100%;
  height: 100%;
}
header .gnb-box .title,
header .gnb-box .depth2-box {
  width: 100%;
  height: 100%;
}
header .gnb-box .title {
  background: #F8F8F8;
  padding-left: 8.5%;
}
header .gnb-box .title h3 {
  color: #111;
  font-size: 3.8rem;
  font-weight: 600;
}
header .gnb-box .depth2-box {
  max-width: 73.95%;
  flex-shrink: 0;
  background: var(--color-white);
  position: relative;
}
header .gnb-box .depth2 {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(4, 285px);
  padding: 0 60px;
  opacity: 0;
  pointer-events: none;
  row-gap: 0;
  column-gap: 20px;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
header .gnb-box .depth2 li {
  width: 100%;
  height: 65px;
  position: relative;
  opacity: 0;
  transform: translateX(20px);
  transition: all 0.4s ease-in-out, opacity 0.2s;
}
header .gnb-box .depth2 li * {
  transition: all 0.4s;
}
header .gnb-box .depth2 li::before, header .gnb-box .depth2 li::after {
  content: "";
  display: block;
  border-radius: 10px;
  z-index: -1;
  transition: all 0.4s;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
header .gnb-box .depth2 li::before {
  border: 1px solid var(--color-border);
}
header .gnb-box .depth2 li::after {
  border: 2px solid var(--color-main);
  opacity: 0;
}
header .gnb-box .depth2 li a {
  color: #ccc;
  font-size: 1.8rem;
  font-weight: 600;
  padding: 0 20px;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
}
header .gnb-box .depth2 li .angle {
  width: 25px;
  height: 25px;
  background: var(--color-main);
  border-radius: 50%;
  opacity: 0;
  transform: translateX(-20px);
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
}
header .gnb-box .depth2 li:hover::before {
  opacity: 0;
}
header .gnb-box .depth2 li:hover::after {
  opacity: 1;
}
header .gnb-box .depth2 li:hover a {
  color: var(--color-main);
}
header .gnb-box .depth2 li:hover .angle {
  opacity: 1;
  transform: translateX(0);
}
header .gnb-box .depth2.on {
  opacity: 1;
  pointer-events: inherit;
}
header .gnb-box .depth2.on li {
  opacity: 1;
  transform: translateX(0);
}
header .gnb-box .depth2.on li:nth-child(1) {
  transition-delay: 0.3s;
}
header .gnb-box .depth2.on li:nth-child(2) {
  transition-delay: 0.4s;
}
header .gnb-box .depth2.on li:nth-child(3) {
  transition-delay: 0.5s;
}
header .gnb-box .depth2.on li:nth-child(4) {
  transition-delay: 0.6s;
}
header .gnb-box .depth2.on li:nth-child(5) {
  transition-delay: 0.7s;
}
header .gnb-box .depth2.on li:nth-child(6) {
  transition-delay: 0.8s;
}
header .menu-button {
  row-gap: 3px;
}
header .menu-button span {
  display: block;
  width: 16px;
  height: 2px;
  background: var(--color-black);
}
header.menu-on {
  z-index: 0;
}

/* 20250429 추가 */
.gnb-br { display: none; }

.site-map {
  width: 100%;
  max-width: 1760px;
  z-index: 2;
  display: none;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.site-map .inner {
  width: 100%;
  background: var(--color-white);
  border-radius: 0;
  padding: 200px 40px;
  position: relative;
  overflow: hidden;
  transition: all 0.6s;
}
.site-map .menu-button {
  position: absolute;
  top: 30px;
  left: auto;
  right: 30px;
}
.site-map .depth1 {
  height: 375px;
  text-align: center;
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
}
.site-map .depth1::before {
  content: "";
  display: block;
  width: 66.6666666667%;
  height: 100%;
  background-size: calc(25% - 0.2px) 100%;
  background-image: linear-gradient(to right, var(--color-border) 0%, transparent 1px, transparent 100%);
  z-index: -1;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.site-map .depth1 * {
  font-family: var(--font-pretendard);
  line-height: 1.3;
}
.site-map .depth1 > li {
  position: relative;
}
.site-map .depth1 > li::after {
  content: "";
  display: block;
  background: var(--color-white);
  transition: all 0.8s ease-in-out;
  width: 100%;
  height: 100%;
  position: absolute;
  top: auto;
  left: 0;
  right: 0;
  bottom: 0;
}
.site-map .depth1 > li > a {
  color: #111;
  font-size: 2.6rem;
  font-weight: 600;
}
.site-map .depth2 {
  padding: 40px 0;
}
.site-map .depth2 > li > a {
  display: block;
  color: #ccc;
  font-size: 1.8rem;
  font-weight: 500;
  padding: 10px 0;
  transform: translateY(20px);
  transition: all 0.4s ease-in-out;
}
.site-map .depth2 > li:hover > a {
  color: var(--color-main);
  font-weight: 600;
}
.site-map .symbol {
  width: 30.905%;
  position: absolute;
  top: auto;
  left: auto;
  right: -10.5%;
  bottom: -5%;
}
.site-map.on .inner {
  border-radius: 40px;
}
.site-map.on .depth1 > li::after {
  height: 0;
  opacity: 0;
  transition-delay: 0.4s;
}
.site-map.on .depth2 > li > a {
  transform: translateY(0);
  transition-delay: 0.6s;
}

footer {
  width: 100%;
  height: 100px;
  border-top: 1px solid var(--color-border);
}
footer .footer-box {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
}
footer .footer-box * {
  font-family: var(--font-pretendard);
  line-height: 1;
}
footer .footer-box > a {
  color: #666;
}
footer a {
  font-weight: 600;
}
footer ul,
footer ul li a {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
}
footer ul {
  margin-left: auto;
  column-gap: 20px;
}
footer ul li a {
  column-gap: 10px;
}
footer ul li span {
  color: #ccc;
}

.pop-wrap a {
  color: #333;
}