@charset "UTF-8";
/* ==========================================================================
공통 스타일 변수
========================================================================== */
/* ─────────────────────────────────────────
   fluid() — clamp 유틸 함수
   최솟값은 디자인 결정값(px 고정), 최댓값은 피그마 PC값
   ─────────────────────────────────────────
   사용법: fluid($min-px, $max-px, $vp-min: 375, $vp-max: 1920)
   예시  : font-size: fluid(16, 22);  → 최소 16px, 최대 22px
           padding  : fluid(20, 60);  → 최소 20px, 최대 60px
   ───────────────────────────────────────── */
:root {
  --header-height: clamp(64px, 5.5262135922rem + 2.3300970874vw, 10rem);
  --layout: 1520px;
  --layout-md: 1760px;
  --layout-lg: 1920px;
  --vh: 1px;
  --font: "Pretendard";
  --font-en: "Google Sans Flex";
  --icon: remixicon;
  --fs-xs: 1.2rem;
  --fs-sm: 1.4rem;
  --fs-md: 1.6rem;
  --fs-lg: 2.4rem;
  --fs-xl: 3.2rem;
  --fs-2xl: 4.8rem;
  --fs-3xl: 6.4rem;
  --lh-sm: 1.25;
  --lh-md: 1.5;
  --lh-lg: 1.6;
  --br-xxs: 0.4rem;
  --br-xs: 0.8rem;
  --br-sm: 1.2rem;
  --br-md: 1.6rem;
  --br-lg: 2rem;
  --br-xl: 2.4rem;
  --trs: 0.3s ease-in-out;
  /* ─────────────────────────────────────────
   Spacing 토큰 — fluid($min-px, $max-px)
   ───────────────────────────────────────── */
  --space-inner-x: clamp(20px, 0.786407767rem + 3.2362459547vw, 7rem);
  --primary: #092844;
  --second: #003768;
  --point: #c21f23;
  --primary-10: #d8e5fd;
  --primary-20: #b1cefb;
  --primary-30: #86aff9;
  --primary-40: #4c87f6;
  --primary-50: #0b50d0;
  --second-10: #d6e0eb;
  --second-20: #bacbde;
  --second-30: #90b0d5;
  --second-40: #6b96c7;
  --second-50: #1c589c;
  --point-10: #fde8e8;
  --point-20: #fac5c5;
  --point-30: #f6a3a3;
  --point-40: #f17272;
  --point-50: #cc2d2d;
  --gray-0: #ffffff;
  --gray-5: #f4f5f6;
  --gray-10: #e6e8ea;
  --gray-20: #cdd1d5;
  --gray-30: #b1b8be;
  --gray-40: #8a949e;
  --gray-50: #6d7882;
  --gray-60: #58616a;
  --gray-70: #464c53;
  --gray-80: #33363d;
  --gray-90: #1e2124;
  --gray-95: #131416;
  --gray-100: #000000;
  --black-950: #111111;
  --black-900: #222222;
  --black-800: #424242;
  --black-700: #616161;
  --black-600: #757575;
  --black-500: #9e9e9e;
  --black-400: #bdbdbd;
  --black-300: #e0e0e0;
  --black-200: #eeeeee;
  --black-100: #f5f5f5;
  --black-50: #fafafa;
  --layer-dim: rgba(0, 0, 0, 0.4);
  --red: #c41d2d;
  --deep-blue: #00326e;
  --dark-blue: #082036;
  --blue: #133d92;
  --cool-gray: #70839a;
  --white: #ffffff;
  --black: #000000;
  --color-success: #1e7e34;
  --color-success-bg: #d1fae5;
  --color-warning: #d97706;
  --color-warning-bg: #fef3c7;
  --color-error: #dc2626;
  --color-error-bg: #fee2e2;
  --color-01: #0f71c8;
  --color-02: #713cbb;
  --color-03: #cd4c65;
  --color-04: #2f9c82;
  --color-05: #70839a;
}

/*-------------------------------------------------
title       : 상단띠배너
Author      : PLAN I
Create date : 2024-10-25
-------------------------------------------------*/
.topbanner {
  --tbH: 15rem;
  --tbB: 12rem;
  position: relative;
  z-index: 80;
}
.topbanner .open {
  position: absolute;
  right: 0;
  top: 100%;
  z-index: 999;
  height: 4rem;
  margin-top: -1px;
  padding: 0 1rem 0 1.5rem;
  outline: 0 none;
  border-radius: 0 0 0 0.5rem;
  border-left: 1px solid #d8d8d8;
  border-bottom: 1px solid #d8d8d8;
  background-color: #eef2f7;
  font-size: 1.5rem;
  text-align: center;
  line-height: var(--hnb);
}
.topbanner .open::after {
  font-family: remixicon;
  content: "\ea4e";
  display: inline-block;
  position: relative;
  top: -0.1rem;
  vertical-align: middle;
  transition: all 0.2s;
}
.topbanner .open b {
  color: #000;
}
.topbanner .open strong {
  font-weight: inherit;
}
.topbanner.active #topbanner {
  visibility: visible;
  overflow: hidden;
  width: 100%;
  height: var(--tbH);
  opacity: 1;
  transition: all 0.2s;
  border-top: 1px solid #d8d8d8;
  border-bottom: 1px solid #d8d8d8;
}
.topbanner.active .open::after {
  transform: rotate(180deg) translateY(0.1rem);
}

#topbanner {
  visibility: hidden;
  overflow: hidden;
  width: 0;
  height: 0;
  opacity: 0;
  min-width: 100%;
  background-color: #eef2f7;
  transition: all 0.2s;
}
#topbanner .group {
  overflow: hidden;
  height: 100%;
  position: relative;
}
#topbanner .swiper {
  position: relative;
  z-index: 0;
  height: 100%;
  overflow: hidden;
}
#topbanner .swiper.swiper-vertical > .list {
  flex-direction: column;
}
#topbanner .list {
  display: flex;
  position: relative;
  width: 100%;
  z-index: 1;
  transition-property: transform;
  box-sizing: content-box;
}
#topbanner .arrs button {
  overflow: hidden;
  width: 2rem;
  height: 2rem;
  line-height: 2rem;
  font-size: 2rem;
  z-index: 2;
}
#topbanner .arrs button[class*=prev]::before {
  font-family: remixicon;
  content: "\ea64";
  display: flex;
  width: 100%;
  height: 100%;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: inherit;
}
#topbanner .arrs button[class*=next]::before {
  font-family: remixicon;
  content: "\ea6e";
  display: flex;
  width: 100%;
  height: 100%;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: inherit;
}
#topbanner .btns button {
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  overflow: hidden;
  width: 2rem;
  height: 2rem;
  text-align: center;
  line-height: 2rem;
  vertical-align: middle;
  display: none;
  font-size: 2rem;
  right: 3.5rem;
  z-index: 2;
}
#topbanner .btns button.active {
  display: inline;
}
#topbanner .btns button.play::before {
  font-family: remixicon;
  content: "\f00a";
  display: flex;
  width: 100%;
  height: 100%;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: inherit;
}
#topbanner .btns button.stop::before {
  font-family: remixicon;
  content: "\f1a0";
  display: flex;
  width: 100%;
  height: 100%;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: inherit;
}
#topbanner .control {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  z-index: 10;
  height: 4rem;
  padding: 0 6rem 0 4.5rem;
  border-radius: 4rem;
  border: 1px solid #d8d8d8;
  background-color: #fff;
  line-height: 4rem;
  pointer-events: auto;
}
#topbanner .control p {
  display: inline;
  position: relative;
}
#topbanner .pager {
  position: relative;
  top: -0.2rem;
}
#topbanner .pager span {
  display: inline-block;
  position: relative;
  width: 2rem;
  height: 2rem;
  vertical-align: middle;
  cursor: pointer;
  background: none;
}
#topbanner .pager span::before {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  width: 60%;
  height: 60%;
  border-radius: 100%;
  border: 1px solid #fff;
  content: "";
  transition: all 0.2s;
  background-color: #666;
}
#topbanner .pager span[class*=active]::before {
  background-color: #000;
}
#topbanner .close1 {
  display: inline-block;
  overflow: hidden;
  width: 2.5rem;
  height: 2.5rem;
  text-align: center;
  line-height: 2.5rem;
  vertical-align: middle;
  position: absolute;
  right: 3rem;
  top: 3rem;
  z-index: 1;
  font-size: 2.5rem;
}
#topbanner .close1::before {
  font-family: remixicon;
  content: "\f4c8";
  display: flex;
  width: 100%;
  height: 100%;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: inherit;
  transform: rotate(0);
  transition: all 0.2s;
}
#topbanner .close1:hover::before, #topbanner .close1:focus::before {
  transform: rotate(180deg);
}
#topbanner .close2 {
  padding-left: 3rem;
  text-align: left;
  position: absolute;
  right: 2rem;
  bottom: 2rem;
  z-index: 1;
}
#topbanner .close2::before {
  font-family: remixicon;
  content: "\eb7b";
  display: inline-block;
  overflow: hidden;
  width: 2rem;
  height: 2rem;
  text-align: center;
  line-height: 2rem;
  vertical-align: middle;
  position: absolute;
  left: 0;
  top: 0.2rem;
  border-radius: 0.4rem;
  border: 1px solid #d8d8d8;
  color: transparent;
  transition: all 0.2s;
}
#topbanner .close2:hover::before, #topbanner .close2:focus::before {
  color: inherit;
}
#topbanner .item {
  display: flex;
  overflow: hidden;
  position: relative;
  flex-shrink: 0;
  width: 100%;
  height: var(--tbH);
  justify-content: center;
  flex-direction: column;
}
#topbanner .item img {
  left: 50%;
  transform: translateX(-50%);
  position: absolute;
  top: 0;
  max-width: inherit;
  height: 100%;
  transition: all 0.2s;
}
#topbanner .item strong, #topbanner .item span {
  width: 100%;
  max-width: 100%;
  margin-left: auto !important;
  margin-right: auto !important;
  display: block;
  padding-left: 6rem;
  text-align: left;
}
#topbanner .item span {
  overflow: hidden;
  line-height: 2rem;
  text-overflow: ellipsis;
  display: -webkit-box;
  max-height: 4rem;
  line-clamp: 2;
  -webkit-line-clamp: 2;
  box-orient: vertical;
  -webkit-box-orient: vertical;
  margin-bottom: 3rem;
}
#topbanner .item:hover img, #topbanner .item:focus img {
  transform: translateX(-50%) scale(1.2);
  opacity: 0.75;
}
#topbanner .item:hover strong, #topbanner .item:focus strong {
  text-decoration: underline;
}
#topbanner .item strong {
  position: relative;
  margin-bottom: 0.5rem;
  font-size: 2rem;
}
#topbanner .item strong::before {
  font-family: remixicon;
  content: "\f2a1";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 4rem;
}

@media (max-width: 1450px) {
  .topbanner .open {
    display: none;
  }
}
@media (max-width: 768px) {
  .topbanner {
    --tbB: 9rem;
  }
  .topbanner .open span {
    display: none;
  }
}
/*-------------------------------------------------
title       : 하단배너
Author      : PLAN I
Create date : 2024-10-25
-------------------------------------------------*/
.footbanner {
  position: relative;
  padding: 2rem 6rem;
  border-top: 1px solid #d8d8d8;
}
.footbanner .item {
  flex-shrink: 0;
  width: auto;
}
.footbanner .pager, .footbanner .count {
  display: none;
}
.footbanner .btns button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  overflow: hidden;
  width: 2rem;
  height: 2rem;
  text-align: center;
  line-height: 2rem;
  vertical-align: middle;
  display: none;
  font-size: 0;
  right: 7rem;
  z-index: 9;
}
.footbanner .btns button.active {
  display: inline-block;
}
.footbanner .btns button.play::before {
  font-family: remixicon;
  content: "\f00a";
  display: flex;
  width: 100%;
  height: 100%;
  font-size: 2rem;
  color: inherit;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: inherit;
}
.footbanner .btns button.stop::before {
  font-family: remixicon;
  content: "\f1a0";
  display: flex;
  width: 100%;
  height: 100%;
  font-size: 2rem;
  color: inherit;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: inherit;
}
.footbanner .list {
  display: flex;
  align-items: center;
  transition-property: transform;
  box-sizing: content-box;
}
.footbanner .list img {
  max-height: 5.5rem;
  margin: 0 auto;
}
.footbanner .arrs button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  overflow: hidden;
  width: 4rem;
  height: 4rem;
  text-align: center;
  line-height: 4rem;
  vertical-align: middle;
  font-size: 0;
  border-radius: 100%;
  border: 1px solid #d8d8d8;
  background-color: #fff;
  transition: all 0.2s;
  z-index: 9;
}
.footbanner .arrs button[class*=prev] {
  left: 2rem;
}
.footbanner .arrs button[class*=prev]::before {
  font-family: remixicon;
  content: "\ea64";
  display: flex;
  width: 100%;
  height: 100%;
  font-size: 2rem;
  color: inherit;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: inherit;
}
.footbanner .arrs button[class*=next] {
  right: 2rem;
}
.footbanner .arrs button[class*=next]::before {
  font-family: remixicon;
  content: "\ea6e";
  display: flex;
  width: 100%;
  height: 100%;
  font-size: 2rem;
  color: inherit;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: inherit;
}
.footbanner .arrs button:hover, .footbanner .arrs button:focus {
  border-color: #000;
  background-color: #000;
  color: #fff;
}
.footbanner .arrs button.swiper-button-lock, .footbanner .arrs button.swiper-button-disabled {
  visibility: visible;
  pointer-events: auto;
}
.footbanner .arrs button.swiper-button-lock:hover, .footbanner .arrs button.swiper-button-lock:focus, .footbanner .arrs button.swiper-button-disabled:hover, .footbanner .arrs button.swiper-button-disabled:focus {
  border-color: #d8d8d8;
  background-color: #fff;
  color: inherit;
}

/*-------------------------------------------------
title       : 모달팝업
Author      : PLAN I
Create date : 2024-10-25
-------------------------------------------------*/
.modalpopup {
  --width2: calc(100% - 6rem);
  --mpArr: -8rem;
}
.modalpopup .open {
  display: inline-block;
  width: 10rem;
  height: 10rem;
  text-align: center;
  vertical-align: middle;
  top: 50%;
  transform: translateY(-50%);
  overflow: visible;
  position: fixed;
  left: 5rem;
  z-index: 777;
  border-radius: 100%;
  background-color: #000;
  color: #fff;
  line-height: 1.2;
}
.modalpopup .open span {
  display: block;
}
.modalpopup .open b {
  color: red;
}
.modalpopup .open::before {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  z-index: -1;
  width: 100%;
  height: 100%;
  border-radius: 100%;
  background-color: #000;
  content: "";
  opacity: 0;
}
.modalpopup .open:hover::before {
  animation: modalpopup 1s infinite;
}
.modalpopup.active .open {
  visibility: hidden;
}
.modalpopup.active #modalpopup {
  visibility: visible;
  overflow: visible;
  width: 100%;
  height: 100%;
  opacity: 1;
  transition: all 0.2s;
  left: 0;
  top: 0;
}

@keyframes modalpopup {
  0% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(2);
  }
}
#modalpopup {
  visibility: hidden;
  overflow: hidden;
  width: 0;
  height: 0;
  opacity: 0;
  display: flex;
  position: fixed;
  left: 50%;
  top: 50%;
  z-index: 888;
  backdrop-filter: blur(5px);
  background-color: rgba(0, 0, 0, 0.5);
  color: #fff;
  align-items: center;
}
#modalpopup h2 {
  margin-bottom: 2rem;
  font-size: 5rem;
}
#modalpopup .group {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  max-width: var(--width2);
  margin-left: auto !important;
  margin-right: auto !important;
}
#modalpopup .list {
  display: flex;
  width: auto;
}
#modalpopup .count {
  position: absolute;
  right: 4.6rem;
  top: 2rem;
  left: auto;
  width: auto;
  height: 4.5rem;
  padding: 0 2rem;
  border-radius: 4.5rem;
  background-color: #000;
  line-height: 4.5rem;
}
#modalpopup .arrs button {
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  display: inline-block;
  overflow: hidden;
  width: 5rem;
  height: 5rem;
  text-align: center;
  line-height: 5rem;
  vertical-align: middle;
  font-size: 5rem;
  z-index: 1;
  text-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);
}
#modalpopup .arrs button[class*=prev] {
  position: absolute;
  left: var(--mpArr);
}
#modalpopup .arrs button[class*=prev]::before {
  font-family: remixicon;
  content: "\ea64";
  display: flex;
  width: 100%;
  height: 100%;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: inherit;
}
#modalpopup .arrs button[class*=next] {
  position: absolute;
  right: var(--mpArr);
}
#modalpopup .arrs button[class*=next]::before {
  font-family: remixicon;
  content: "\ea6e";
  display: flex;
  width: 100%;
  height: 100%;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: inherit;
}
#modalpopup .btns button {
  overflow: hidden;
  width: 4.5rem;
  height: 4.5rem;
  text-align: center;
  line-height: 4.5rem;
  vertical-align: middle;
  display: none;
  font-size: 2rem;
  position: absolute;
  right: 0;
  top: 2rem;
  border-radius: 100%;
  background-color: #000;
}
#modalpopup .btns button.active {
  display: inline;
}
#modalpopup .btns button.play::before {
  font-family: remixicon;
  content: "\f00a";
  display: flex;
  width: 100%;
  height: 100%;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: inherit;
}
#modalpopup .btns button.stop::before {
  font-family: remixicon;
  content: "\f1a0";
  display: flex;
  width: 100%;
  height: 100%;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: inherit;
}
#modalpopup .swiper:not(.swiper-initialized) .list {
  display: flex;
  justify-content: center;
}
#modalpopup .swiper:not(.swiper-initialized) + .control .count, #modalpopup .swiper:not(.swiper-initialized) + .control .arrs, #modalpopup .swiper:not(.swiper-initialized) + .control .btns {
  display: none;
}
#modalpopup .pager {
  margin: 2rem 0;
  text-align: center;
}
#modalpopup .pager span {
  display: inline-block;
  position: relative;
  width: 2rem;
  height: 2rem;
  vertical-align: middle;
  cursor: pointer;
  background: none;
}
#modalpopup .pager span::before {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  width: 60%;
  height: 60%;
  border-radius: 100%;
  border: 1px solid #fff;
  content: "";
  transition: all 0.2s;
}
#modalpopup .pager span[class*=active]::before {
  background-color: #fff;
}
#modalpopup .item {
  display: flex;
  overflow: hidden;
  align-items: center;
}
#modalpopup .item img {
  transition: all 0.2s;
}
#modalpopup .item:last-child {
  margin-right: 0;
}
#modalpopup .item:hover img, #modalpopup .item:focus img {
  transform: scale(1.2);
  opacity: 0.75;
}
#modalpopup .close {
  margin-top: 2rem;
  text-align: center;
}
#modalpopup .close button {
  height: 4.5rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  line-height: calc(4.5rem - 2px);
  padding: 0 2rem;
  border-radius: 4.5rem;
}
#modalpopup .close button::after {
  font-family: remixicon;
  content: "\eb99";
  display: inline-block;
  position: relative;
  top: -0.1rem;
  vertical-align: middle;
  margin-left: 0.5rem;
  transform: rotate(0);
  transition: all 0.2s;
}
#modalpopup .close button:hover::after, #modalpopup .close button:focus::after {
  transform: rotate(180deg);
}

@media (max-width: 1600px) {
  .modalpopup {
    --mpArr: -3rem;
  }
  .modalpopup .open {
    left: 1rem;
  }
}
@media (max-width: 500px) {
  #modalpopup .item {
    width: 34rem;
    margin-right: 1rem;
  }
}
#layerpopup .group {
  position: fixed;
  z-index: 999;
  min-width: 25rem;
  max-width: 100%;
  width: auto !important;
  height: auto !important;
  box-shadow: 0 0 3rem rgba(0, 0, 0, 0.1);
  background-color: #fff;
}
#layerpopup .group a {
  display: block;
  overflow: hidden;
}
#layerpopup .group a,
#layerpopup .group a img {
  transition: all 0.2s;
}
#layerpopup .group a img {
  min-width: 100%;
  height: auto !important;
}
#layerpopup .group a:hover, #layerpopup .group a:focus {
  background-color: #000;
}
#layerpopup .group a:hover img, #layerpopup .group a:focus img {
  transform: scale(1.2);
  opacity: 0.7;
}
#layerpopup .control {
  display: flex;
  padding: 1.5rem;
}
#layerpopup .close {
  margin-left: auto;
}
#layerpopup .close::after {
  font-family: remixicon;
  content: "\eb99";
  display: inline-block;
  position: relative;
  top: -0.2rem;
  margin-left: 0.25rem;
  vertical-align: middle;
  transform: rotate(0);
  transition: all 0.2s;
}
#layerpopup .close:hover::after, #layerpopup .close:focus::after {
  transform: rotate(180deg);
}

@media (max-width: 500px) {
  #layerpopup .group {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    position: absolute;
    left: 50% !important;
    top: 50% !important;
  }
}
.btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  width: fit-content;
  height: 5.2rem;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: var(--lh-md);
  letter-spacing: -0.02em;
  border-radius: var(--br-xxs);
  padding: 1.2rem 3.2rem;
}
.btn > i {
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
}
.btn.white {
  border: 1px solid var(--white);
  color: var(--white);
}
.btn.white.blue {
  color: #003768;
  background: var(--white);
}
.btn.white:hover {
  background: var(--white);
  color: var(--primary);
}
.btn.navy {
  height: 4.8rem;
  padding: 0 1.6rem;
  font-size: 1.6rem;
  border: 1px solid #04132b;
  color: #04132b;
}
.btn.navy > i {
  font-size: 1.6rem;
}
.btn.navy:hover {
  background: var(--white);
  color: #04132b;
}
.btn.download {
  height: 4.8rem;
  padding: 0 1.6rem;
  font-size: 1.6rem;
  background: var(--white);
  border: 1px solid var(--dark-blue);
  color: var(--dark-blue);
}
.btn.download > i {
  font-size: 1.6rem;
}
.btn.download:hover {
  background: var(--dark-blue);
  color: var(--white);
}
.btn.sm {
  height: 4rem;
  padding: 0 2rem;
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: normal;
}
.btn.sm > i {
  font-size: 1.6rem;
}
.btn.md {
  height: 6.4rem;
  padding: 0 2.4rem;
}
.btn.lg {
  height: 5.6rem;
  padding: 0 2.4rem;
  font-size: 1.8rem;
}
.btn.primary-fill {
  background: #00326e;
  color: var(--white);
}
.btn.primary-fill:hover, .btn.primary-fill:focus-visible {
  background: var(--primary);
  color: var(--white);
}
.btn.icon {
  width: fit-content;
  height: auto;
  padding: 0;
}
.btn.icon i {
  color: var(--primary);
  font-size: clamp(20px, 1.7087378641rem + 0.7766990291vw, 3.2rem);
}
.btn-top {
  position: fixed;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(4px, 0.3757281553rem + 0.0647249191vw, 0.5rem);
  right: clamp(12px, -7.2rem + 10.9375vw, 4rem);
  bottom: var(--btn-top-bottom, clamp(12px, -7.2rem + 10.9375vw, 4rem));
  width: clamp(44px, 4.0116504854rem + 1.0355987055vw, 6rem);
  height: clamp(44px, 4.0116504854rem + 1.0355987055vw, 6rem);
  border: 1px solid #bbb;
  border-radius: 50%;
  background: #fff;
  filter: drop-shadow(0 4px 16px rgba(0, 0, 0, 0.1));
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(2rem);
  transition: opacity 0.35s ease, transform 0.35s ease, visibility 0s linear 0.35s;
}
.btn-top.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition-delay: 0s;
}
.btn-top:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 3px;
}
.btn-top-icon {
  display: block;
  width: clamp(10px, 0.9742718447rem + 0.0686084142vw, 1.106rem);
  max-width: none;
  pointer-events: none;
}
.btn-top-label {
  color: #333;
  font-family: var(--font-en);
  font-size: clamp(11px, 0.9786407767rem + 0.3236245955vw, 1.6rem);
  font-weight: 500;
  line-height: normal;
  word-break: auto-phrase;
  text-wrap: balance;
  overflow-wrap: anywhere;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .btn .btn-top {
    transition: none;
  }
}
@media print {
  .btn .btn-top {
    display: none;
  }
}
@media (max-width: 768px) {
  .btn {
    gap: 4px;
    height: 40px;
    font-size: 14px;
    padding: 0 16px;
  }
  .btn > i {
    font-size: 16px;
  }
  .btn.more {
    flex-shrink: 0;
    gap: 4px;
    height: 36px;
    padding: 5px 12px;
    font-size: 13px;
  }
  .btn.more > i {
    font-size: 12px;
  }
  .btn.md {
    height: 36px;
    font-size: 14px;
    padding: 0 16px;
  }
  .btn.md > i {
    font-size: 16px;
  }
  .btn.lg {
    height: 40px;
    font-size: 14px;
    padding: 0 16px;
  }
}

/*-------------------------------------------------
메인
-------------------------------------------------*/
br.mobile {
  display: none;
}
@media (max-width: 768px) {
  br.mobile {
    display: block;
  }
}

#container {
  background: #f3f4f5;
}

.is-main-animation-pending .visual-info {
  visibility: hidden;
}

.section-title {
  color: #111;
  font-family: var(--font-en);
  font-size: clamp(28px, 1.732038835rem + 2.8478964401vw, 7.2rem);
  font-weight: 600;
  line-height: 1.2;
}
.section-title.white {
  color: var(--white);
}
.section-title-cont {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.swiper-button-more {
  display: block;
  width: 2.4rem;
  height: 2.4rem;
}

/*-------------------------------------------------
section1
-------------------------------------------------*/
.visual {
  position: relative;
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
  transition: opacity 0.3s ease;
}
.visual.is-visual-loading {
  visibility: hidden;
  opacity: 0;
}
.visual-hero {
  position: relative;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
}
.visual-hero .swiper-wrapper,
.visual-hero .visual-item {
  height: 100%;
}
.visual-hero .visual-item {
  display: flex;
  align-items: flex-end;
}
.visual-media {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}
.visual-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}
.visual-item {
  display: flex;
  align-items: flex-end;
  position: relative;
  font-family: var(--font-en);
}
.visual-copy {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--layout-md);
  padding: 0 var(--space-inner-x) clamp(140px, 13.0291262136rem + 2.5889967638vw, 18rem);
  margin: 0 auto;
  pointer-events: none;
}
.visual-copy::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(50% - 50vw);
  width: 100vw;
  z-index: -1;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #082036 100%);
  pointer-events: none;
}
.visual-info-title {
  font-family: var(--font-en);
  font-size: clamp(36px, 2.7262135922rem + 2.3300970874vw, 7.2rem);
  font-weight: 600;
  line-height: 1.2;
  color: var(--white);
}
.visual-info-title .visual-title-line {
  display: block;
  width: 100%;
  overflow: hidden;
}
.visual-info-title .visual-title-line-text {
  display: block;
  will-change: transform, opacity;
}
.visual-info-desc {
  margin-top: 20px;
  overflow: hidden;
  font-family: var(--font-en);
  font-size: clamp(16px, 1.454368932rem + 0.3883495146vw, 2.2rem);
  color: rgba(255, 255, 255, 0.8);
}
.visual-info-desc-text {
  display: block;
  will-change: transform, opacity;
}
.visual-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: absolute;
  left: 50%;
  bottom: clamp(60px, 5.5145631068rem + 1.2944983819vw, 8rem);
  z-index: 3;
  width: 100%;
  max-width: var(--layout-md);
  padding: 0 var(--space-inner-x);
  transform: translateX(-50%);
  pointer-events: none;
}
.visual-controls-inner {
  display: contents;
}
.visual-controls .btn.white {
  margin-left: auto;
  pointer-events: auto;
}
.visual-slider-controls {
  position: static !important;
  transform: none !important;
  pointer-events: auto;
}
.visual-slider-controls .academy-progress {
  display: flex !important;
  position: static;
}
.visual-slider-controls .swiper-controller {
  display: flex;
  align-items: center;
}
.visual-slider-controls .swiper-controller button {
  justify-content: center;
  align-items: center;
  width: 4.8rem;
  height: 4.8rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--white);
  cursor: pointer;
}
.visual .swiper-button-next, .visual .swiper-button-prev {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 50%;
  z-index: 1;
  width: 4.8rem;
  height: 4.8rem;
  border: 0;
  border-radius: 50%;
  background: color-mix(in srgb, var(--gray-90) 60%, transparent);
}
.visual .swiper-navigation-icon {
  width: 2rem;
  height: 2rem;
}
.visual .swiper-navigation-icon path {
  fill: #fff;
}
.visual .swiper-button-prev {
  left: 0;
  translate: 50% -50%;
}
.visual .swiper-button-next {
  right: 0;
  translate: -50% -50%;
}
.visual .swiper-indicator {
  position: absolute;
  bottom: 3rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  text-align: center;
}
.visual .swiper-controller button {
  color: var(--white);
}

@media (min-width: 1025px) {
  .visual {
    /* &-hero {
        height: v.fluid(720, 1080, 1025, 1920);
        height: min(100svh, clamp(720px, 30.7709497207rem + 40.2234636872vw, 108rem));
    } */
  }
}
.business {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.business-section {
  position: relative;
  z-index: 1;
  margin-top: 0;
  padding-top: clamp(80px, 6.3009708738rem + 4.5307443366vw, 15rem);
  padding-bottom: clamp(80px, 7.2718446602rem + 1.9417475728vw, 11rem);
  overflow: hidden;
  background: var(--dark-blue);
}
.business-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: url("/resources/images/mps/main/business-section_bg.png") center bottom/cover no-repeat;
  pointer-events: none;
}
.business-section > .inner {
  position: relative;
  z-index: 1;
}
.business-title {
  display: block;
  color: var(--white);
  font-size: clamp(28px, 2.3145631068rem + 1.2944983819vw, 4.8rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.02em;
  text-align: right;
}
.business-title-cont {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  overflow: hidden;
}
.business-title-sub {
  flex-shrink: 0;
  color: var(--white);
  font-family: var(--font-en);
  font-size: clamp(17px, 1.5300970874rem + 0.4530744337vw, 2.4rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: -0.02em;
}
.business-list {
  width: 100%;
  margin-top: 8rem;
  overflow: visible;
}
.business-list.swiper {
  overflow: visible;
}
.business-item {
  display: flex;
  flex-direction: column;
  height: auto !important;
  overflow: hidden;
}
.business-item-img {
  flex-shrink: 0;
  aspect-ratio: 486/324;
  border-radius: var(--br-sm);
  overflow: hidden;
}
.business-item-img img {
  width: calc(100% + 1px);
  height: 100%;
  object-fit: cover;
}
.business-item-info {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  padding: 2.4rem 6rem 0 0;
}
.business-item-title {
  color: var(--white);
  font-size: clamp(20px, 1.8058252427rem + 0.5177993528vw, 2.8rem);
  font-family: var(--font-en);
  font-weight: 500;
  line-height: 1.4;
}
.business-item-desc {
  color: rgba(255, 255, 255, 0.7);
  font-size: clamp(14px, 1.3029126214rem + 0.2588996764vw, 1.8rem);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: -0.02em;
}
.business-pagination {
  display: none;
}
.business .btn {
  margin-top: 40px;
}

@media (min-width: 1025px) {
  .business-section {
    position: relative;
    width: 100%;
    margin-top: 0;
    padding-top: clamp(120px, 8.5642458101rem + 3.3519553073vw, 15rem);
    padding-bottom: clamp(80px, 4.5642458101rem + 3.3519553073vw, 11rem);
  }
}
/*-------------------------------------------------
section2
-------------------------------------------------*/
.academy {
  position: relative;
  height: 100dvh;
}
.academy .swiper-wrapper {
  height: 100%;
}
.academy .section-title {
  color: var(--white);
  font-size: clamp(36px, 2.7262135922rem + 2.3300970874vw, 7.2rem);
}
.academy-title {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 4rem;
  width: clamp(560px, 52.1165048544rem + 10.355987055vw, 72rem);
  height: 100%;
  padding: clamp(48px, 2.0815533981rem + 7.2491909385vw, 16rem) clamp(20px, 0.5436893204rem + 3.8834951456vw, 8rem);
  background: rgba(0, 50, 110, 0.9);
  backdrop-filter: blur(15px);
  z-index: 1;
}
.academy-info {
  display: flex;
  flex-direction: column;
  gap: 4.8rem;
}
.academy-info-cont {
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
}
.academy-info-title {
  color: var(--white);
  font-size: clamp(20px, 1.7087378641rem + 0.7766990291vw, 3.2rem);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.02em;
}
.academy-info-desc {
  color: rgba(255, 255, 255, 0.7);
  font-size: clamp(14px, 1.3029126214rem + 0.2588996764vw, 1.8rem);
  font-weight: 500;
  line-height: 1.5;
  word-break: auto-phrase;
}
.academy-info-contact {
  display: flex;
  gap: 1rem;
}
.academy-img {
  height: 100%;
  overflow: hidden;
}
.academy-img picture {
  display: block;
  height: 100%;
}
.academy-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.academy-progress {
  position: absolute;
  right: clamp(20px, 0.5436893204rem + 3.8834951456vw, 8rem);
  bottom: clamp(40px, 3.5145631068rem + 1.2944983819vw, 6rem);
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 1.2rem;
}
.academy-progress-item {
  --progress: 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.8rem;
  height: 4.8rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgb(255, 255, 255);
  cursor: pointer;
  font-family: var(--font-en);
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1;
}
.academy-progress-item svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}
.academy-progress-item circle {
  fill: none;
  stroke-width: 3;
}
.academy-progress-item .academy-progress-track {
  stroke: rgba(255, 255, 255, 0.3);
  stroke-width: 1;
}
.academy-progress-item .academy-progress-circle {
  stroke: var(--white);
  stroke-dasharray: 1;
  stroke-dashoffset: calc(1 - var(--progress));
  opacity: 0;
  transition: opacity 0.2s ease;
}
.academy-progress-item span {
  position: relative;
  z-index: 1;
  font-family: var(--font-en);
  font-size: clamp(15px, 1.427184466rem + 0.1941747573vw, 1.8rem);
  font-weight: 500;
  line-height: 150%;
}
.academy-progress-item.active {
  color: var(--white);
}
.academy-progress-item.active .academy-progress-circle {
  opacity: 1;
}

/*-------------------------------------------------
section3
-------------------------------------------------*/
.section3 {
  padding: clamp(80px, 6.0582524272rem + 5.1779935275vw, 16rem) 0 clamp(40px, 3.5145631068rem + 1.2944983819vw, 6rem);
  overflow-x: hidden;
}

.news {
  margin-top: 40px;
}
.news.swiper {
  overflow: visible;
}
.news-list {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  box-sizing: border-box;
}
.news-item.swiper-slide {
  flex-shrink: 0;
  width: calc((100% - 6rem) / 3);
  height: auto;
}
.news-item-link {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1.6rem;
  background: var(--white);
  border-radius: var(--br-md);
}
.news-item-thumb {
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: var(--br-xs);
  overflow: hidden;
}
.news-item-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.news-item-info {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  padding: 3rem 2rem;
}
.news-item-text {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.news-item-title {
  color: #333;
  font-size: clamp(20px, 1.9029126214rem + 0.2588996764vw, 2.4rem);
  font-weight: 700;
  line-height: 130%; /* 3.12rem */
  letter-spacing: -0.02em;
}
.news-item-title, .news-item-desc {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}
.news-item-desc, .news-item-date {
  color: #757575;
  font-size: clamp(15px, 1.4757281553rem + 0.0647249191vw, 1.6rem);
  line-height: 150%;
}
.news-item-desc {
  font-weight: 500;
}
.news-pagination {
  display: none;
}

.slider-pagination {
  display: none;
}

/*-------------------------------------------------
section4
-------------------------------------------------*/
.section4 {
  position: relative;
  padding: clamp(40px, 3.5145631068rem + 1.2944983819vw, 6rem) 0 clamp(60px, 4.5436893204rem + 3.8834951456vw, 12rem);
  overflow-x: hidden;
}

.notice {
  position: relative;
  margin-top: 40px;
}
.notice-title {
  margin-bottom: 2.4rem;
  font-size: 3.2rem;
}
.notice-list {
  display: flex;
  flex-wrap: wrap;
}
.notice-item {
  width: 100%;
}
.notice-item:last-child .notice-item-link {
  border-bottom: none;
}
.notice-item-link {
  display: flex;
  align-items: center;
  gap: 2.4rem;
  width: 100%;
  padding: 4rem 0;
  border-bottom: 1px solid #555;
}
.notice-item-category {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 9rem;
  padding: 0.8rem 0;
  color: #757575;
  font-size: clamp(14px, 1.3514563107rem + 0.1294498382vw, 1.6rem);
  font-weight: 500;
  line-height: 1;
}
.notice-item-title {
  flex: 1 0 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
  color: #333;
  text-overflow: ellipsis;
  font-size: clamp(20px, 1.854368932rem + 0.3883495146vw, 2.6rem);
  font-weight: 500;
  line-height: 130%;
  letter-spacing: -0.02em;
}
.notice-item-date {
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 12rem;
  color: #757575;
  font-size: clamp(15px, 1.427184466rem + 0.1941747573vw, 1.8rem);
  font-weight: 400;
  line-height: 120%;
  letter-spacing: -0.01em;
  margin-left: auto;
  text-align: right;
}

.rolling {
  position: absolute;
  bottom: 1.2rem;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  overflow: hidden;
  white-space: nowrap;
}
.rolling-content {
  display: inline-flex;
  width: max-content;
  animation: rolling 30s linear infinite;
  will-change: transform;
  backface-visibility: hidden;
}
.rolling-item {
  flex: 0 0 auto;
  padding-right: 4rem;
  color: #e2e4e6;
  font-family: var(--font-en);
  font-size: clamp(48px, 3.0524271845rem + 4.6601941748vw, 12rem);
  font-weight: 700;
  line-height: 110%;
  text-transform: uppercase;
}

@keyframes rolling {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(-33.333333%, 0, 0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .rolling-content {
    animation: none;
    transform: none;
  }
}
/*-------------------------------------------------
section5
-------------------------------------------------*/
.section5 {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-height: 100dvh;
  isolation: isolate;
  overflow: clip;
}
.section5::before {
  content: "";
  position: sticky;
  top: 0;
  z-index: 0;
  grid-area: 1/1;
  align-self: start;
  display: block;
  height: 100dvh;
  background: url("/resources/images/mps/main/archive-1.webp") no-repeat left center/cover;
  pointer-events: none;
}
.section5 > .inner {
  position: relative;
  z-index: 1;
  grid-area: 1/1;
  width: 100%;
  padding-top: clamp(80px, 7.0291262136rem + 2.5889967638vw, 12rem);
}

.archive {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  justify-content: space-between;
  gap: 4rem;
}
.archive-title {
  position: sticky;
  top: clamp(40px, 3.0291262136rem + 2.5889967638vw, 8rem);
  z-index: 2;
  transform: translateY(0);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 4rem;
  margin-bottom: 0;
}
.archive-cont {
  flex: 0 0 82rem;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  gap: 2rem;
  padding-bottom: clamp(80px, 6.0582524272rem + 5.1779935275vw, 16rem);
}
.archive-item {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  width: calc(50% - 1rem);
  height: fit-content;
  padding: 4.8rem 4rem;
  border-radius: var(--br-sm);
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(30px);
  transition: background 0.2s ease-in-out;
}
.archive-item:nth-child(2) {
  margin-top: 8rem;
}
.archive-item:nth-child(3) {
  margin-top: -8rem;
}
.archive-item:nth-child(5) {
  margin-top: -8rem;
}
.archive-item.highlight {
  background: rgba(15, 113, 200, 0.9);
  backdrop-filter: blur(25px);
}
.archive-item.highlight .archive-item-category {
  color: var(--white);
}
.archive-item.highlight .archive-item-util .btn {
  background: var(--white);
  color: var(--second);
}
.archive-item-category {
  color: #70e8ce;
  font-size: clamp(13px, 1.227184466rem + 0.1941747573vw, 1.6rem);
  font-weight: 700;
  line-height: 130%;
  letter-spacing: -0.02em;
}
.archive-item-link {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.archive-item-title, .archive-item-desc {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.archive-item-title {
  -webkit-line-clamp: 2;
  height: clamp(56px, 5.0660194175rem + 1.4239482201vw, 7.8rem);
  color: var(--white);
  font-size: clamp(18px, 1.5572815534rem + 0.6472491909vw, 2.8rem);
  font-weight: 700;
  line-height: 140%;
  letter-spacing: -0.02em;
}
.archive-item-desc {
  height: 6.9rem;
  -webkit-line-clamp: 3;
  color: rgba(255, 255, 255, 0.7);
  font-size: clamp(13px, 1.2514563107rem + 0.1294498382vw, 1.5rem);
  font-weight: 600;
  line-height: 150%;
}
.archive-item-util {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 6.4rem;
}
.archive-item-date {
  color: rgba(255, 255, 255, 0.5);
  font-size: clamp(13px, 1.227184466rem + 0.1941747573vw, 1.6rem);
  font-weight: 400;
  line-height: 150%;
}

.popupzone {
  flex-basis: 29rem;
  border-radius: 1.2rem;
}
.popupzone-list a {
  display: block;
}
.popupzone-list img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 1.2rem;
}
/*-------------------------------------------------
탭
-------------------------------------------------*/
.tab {
  display: flex;
  gap: 0.8rem;
  position: relative;
}
.tab-area {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.tab-btn {
  display: flex;
  min-width: 5.6rem;
  height: 4rem;
  padding: 0 0.4rem;
  justify-content: center;
  align-items: center;
  font-weight: 700;
  position: relative;
  white-space: nowrap;
}
.tab-btn::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 0.3rem;
  background-color: var(--second-50);
  transition: 0.3s;
}
.tab-btn.active {
  color: var(--second-50);
}
.tab-btn.active::before {
  left: 0;
  width: 100%;
}
.tab-panel {
  display: none;
  width: 100%;
  position: relative;
}
.tab-panel.active {
  display: block;
}
.tab-panel .more {
  position: absolute;
  right: 0;
  top: 0;
  transform: translateY(-200%);
  transition: 0.25s;
  border-radius: 0.4rem;
  padding: 0.2rem 0.4rem;
  gap: 0.4rem;
}

@media (max-width: 1800px) {
  .visual-info {
    padding: 0 var(--space-inner-x) clamp(60px, 5.5145631068rem + 1.2944983819vw, 8rem);
  }
}
@media (max-width: 1280px) {
  .academy {
    height: auto;
  }
  .academy-title {
    position: static;
    gap: 48px;
    width: 100%;
    height: fit-content;
    background: rgb(0, 55, 104);
  }
  .academy-info {
    gap: 32px;
  }
  .academy-info-cont {
    gap: 20px;
  }
  .academy .swiper-slide {
    display: flex;
    flex-direction: column-reverse;
  }
}
@media (max-width: 1180px) {
  .archive {
    flex-direction: column;
    flex-wrap: nowrap;
  }
  .archive .section-title br {
    display: none;
  }
  .archive-cont {
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    max-height: none;
  }
  .archive-title {
    position: static;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    width: 100%;
  }
}
@media (max-width: 1024px) {
  .visual {
    /* &-hero {
        height: v.fluid(667, 720, 375, 1024);
        height: min(100svh, clamp(667px, 63.637596302rem + 8.1664098613vw, 72rem));
    } */
  }
  .visual-copy {
    padding-bottom: clamp(133px, 12.8955315871rem + 1.0785824345vw, 14rem);
  }
  .visual-controls {
    bottom: clamp(54px, 5.4rem + 0vw, 5.4rem);
  }
  .section5::before {
    background-position-x: 25%;
  }
}
@media (max-height: 600px) {
  .visual {
    /* &-hero {
        height: 100svh;
    } */
  }
}
@media (max-width: 768px) {
  .visual {
    /* &-hero {
        height: 100vh;
        height: 100svh;
    } */
  }
  .visual-info-desc-text {
    word-break: auto-phrase;
    text-wrap: balance;
  }
  .visual-slider-controls {
    display: none !important;
  }
  .visual-copy {
    padding-bottom: clamp(133px, 13.3rem + 0vw, 13.3rem);
  }
  .visual-controls .btn.white {
    margin-left: 0;
  }
  .business {
    align-items: stretch;
  }
  .business-list {
    margin-top: 40px;
  }
  .business-item {
    width: 280px !important;
    height: auto !important;
    overflow: hidden;
    border-radius: 8px;
  }
  .business-item-img {
    border-radius: 8px;
  }
  .business-item-info {
    gap: 12px;
    padding: 16px 0 0;
  }
  .business .btn {
    margin: 28px auto 0;
  }
  .academy-img {
    aspect-ratio: 1/1;
  }
  .news {
    margin-top: 24px;
  }
  .news-item.swiper-slide {
    width: 280px;
    height: auto;
  }
  .news-item-link {
    padding: 12px;
  }
  .news-item-thumb {
    aspect-ratio: 16/9;
    border-radius: 4px;
    overflow: hidden;
  }
  .news-item-info {
    gap: 12px;
    padding: 16px 12px;
  }
  .news-item-text {
    gap: 12px;
  }
  .slider-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 28px;
  }
  .slider-pagination-bullet {
    display: block;
    width: 30px;
    height: 3px;
    padding: 0;
    border: 0;
    background: rgba(255, 255, 255, 0.3);
    cursor: pointer;
  }
  .slider-pagination-bullet.active {
    background: var(--white);
  }
  .slider-pagination.blue .slider-pagination-bullet {
    background: #ddd;
  }
  .slider-pagination.blue .slider-pagination-bullet.active {
    background: #1e7dd1;
  }
  .notice {
    margin-top: 24px;
  }
  .notice-item-link {
    flex-wrap: wrap;
    gap: 8px;
    padding: 20px 0;
  }
  .notice-item-title {
    flex: 0 0 100%;
    width: 100%;
  }
  .notice-item-category {
    position: relative;
    order: 2;
    width: fit-content;
    padding: 0;
    padding-right: 8px;
  }
  .notice-item-category:after {
    content: "";
    width: 1px;
    height: 10px;
    position: absolute;
    border-left: 1px solid #aaa;
    top: 50%;
    left: 100%;
    transform: translateY(-50%);
  }
  .notice-item-date {
    order: 3;
    margin-left: 0;
    width: fit-content;
    padding: 0;
  }
  .archive {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 24px;
  }
  .archive-cont {
    gap: 20px;
  }
  .archive-item {
    gap: 20px;
    width: 100%;
    padding: 28px;
  }
  .archive-item:nth-child(2), .archive-item:nth-child(3), .archive-item:nth-child(5) {
    margin-top: 0;
  }
  .archive-item-link {
    gap: 16px;
  }
  .archive-item-title {
    height: fit-content;
  }
  .archive-item-util {
    margin-top: 46px;
  }
  .swiper-scrollbar {
    display: block;
  }
}
@media (max-width: 480px) {
  .business-title {
    text-align: center;
  }
  .business-title-cont {
    flex-direction: column;
    align-items: center;
  }
}
*:has(> .swiper) {
  min-width: 0;
}

/* swiper slider - 메인 슬라이드 */
.swiper {
  display: block;
  position: relative;
  z-index: 1;
  width: 100%;
  overflow: hidden;
  padding: 0;
  margin-left: auto;
  margin-right: auto;
  list-style: none;
}
.swiper-wrapper {
  display: flex;
  transform: translate3d(0px, 0, 0);
  z-index: 1;
  width: 100%;
  transition-property: transform;
  box-sizing: content-box;
}
.swiper-pointer-events {
  touch-action: pan-y;
}
.swiper-slide {
  display: block;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  width: 100%;
  height: 100%;
  transition-property: transform;
}
.swiper-scrollbar {
  display: none;
  background: var(--gray-0);
}
.swiper-scrollbar-drag {
  background: var(--primary-50);
}
.swiper-button {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 50%;
  z-index: 1;
  width: 4rem;
  height: 4rem;
  margin-top: initial;
  border: 1px solid #e4e4e4;
  border-radius: 4rem;
  background: #fff;
  font-size: 2.4rem;
  transition: var(--trs);
  gap: 0;
}
.swiper-button:hover {
  background: var(--second-10);
}
.swiper-button i::after {
  width: 2.4rem;
  height: 2.4rem;
}
.swiper-button-disabled {
  opacity: 0.7;
  cursor: auto;
  pointer-events: none;
}
.swiper-button-prev {
  width: 2.4rem;
  height: 2.4rem;
}
.swiper-button-prev i::after {
  transform: rotate(180deg);
}
.swiper-button-prev .swiper-navigation-icon {
  transform: rotateY(180deg);
}
.swiper-button-next {
  width: 2.4rem;
  height: 2.4rem;
}
.swiper-indicator {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.swiper-navigation {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.swiper-navigation button {
  display: flex;
  justify-content: center;
  align-items: center;
}
.swiper-navigation-icon {
  width: 1.4rem;
  height: 1.4rem;
}
.swiper-navigation-icon path {
  fill: var(--gray-90);
}
.swiper-controller button {
  display: none;
  font-size: 2.4rem;
}
.swiper-controller button.active {
  display: flex !important;
}
.swiper-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
}
.swiper-pagination-bullets {
  flex-wrap: wrap;
}
.swiper-pagination-bullet {
  width: 2.5rem;
  height: 2.5rem;
  overflow: hidden;
  padding: 0.7rem;
  cursor: pointer;
}
.swiper-pagination-bullet::before {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 0.5rem;
  background: var(--gray-30);
  transition: 0.2s;
  content: "";
}
.swiper-pagination-bullet-active {
  width: 2.7rem;
  padding-left: 0.2rem;
  padding-right: 0.2rem;
}
.swiper-pagination-bullet-active::before {
  background: var(--primary-50);
  border-color: transparent;
}
.swiper-pagination-current {
  color: var(--primary-50);
}
.swiper-3d {
  perspective: 1200px;
}
.swiper-3d .swiper-cube-shadow,
.swiper-3d .swiper-slide {
  transform-style: preserve-3d;
}
.swiper-3d .swiper-css-mode .swiper-wrapper {
  perspective: 1200px;
}
.swiper-3d .swiper-wrapper {
  transform-style: preserve-3d;
}
.swiper-fade .swiper-free-mode .swiper-slide {
  transition-timing-function: ease-out;
}
.swiper-fade .swiper-slide {
  pointer-events: none;
  transition-property: opacity;
}
.swiper-fade .swiper-slide .swiper-slide {
  pointer-events: none;
}
.swiper-fade .swiper-slide-active,
.swiper-fade .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}
.swiper-autoheight {
  height: auto;
}
.swiper-autoheight .swiper-wrapper {
  align-items: flex-start;
  transition-property: transform, height;
}
.swiper-autoheight .swiper-slide {
  height: auto;
}
.swiper-backface-hidden .swiper-slide {
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}