@charset 'utf-8';

:root {
  --baseFont: 'Pretendard', 'Noto Sans KR', 'Malgun Gothic', 'verdana',
    sans-serif;

  --mainColor: #3960ad;
  --mainRGB: 227, 4, 19;
  --green: #80ba27;
  --greenRGB: 128, 186, 39;

  --borderColor: #dbdbdb;

  --headerH: 90px;

  --vh: 100%;
  --resizeVH: 90vh;

  --aosP: 100px;
  --aosM: -100px;
  --aosT: 500ms;
}

[data-aos]{ transition-duration: var(--aosT) !important; }

a:focus, button:focus, select:focus,
a:active, button:active, select:active {
    outline: none;
    box-shadow: none; 
}

a, button, select, input,div {
    -webkit-tap-highlight-color: transparent;
}

* {
  box-sizing: border-box;
  word-break: keep-all;
}
body.lock {
  overflow: hidden;
}
body {
  font-family: var(--baseFont);
  font-size: 16px;
  letter-spacing: -0.02em;
  line-height: 1.3;
}
body * {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

/* inner */
.w1820 {
  max-width: 1900px;
  width: 100%;
  margin: 0 auto;
  padding: 0 40px;
}
.w1600 {
  max-width: 1680px;
  width: 100%;
  margin: 0 auto;
  padding: 0 40px;
}

.w1560 {
  max-width: 1640px;
  width: 100%;
  margin: 0 auto;
  padding: 0 40px;
}

.w1000 {
  max-width: 1080px;
  width: 100%;
  margin: 0 auto;
  padding: 0 40px;
}

@media screen and (max-width: 720px) {
  .w1560,
  .w1000 {
    padding: 0 20px;
  }
}

.w1200 {
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  padding: 0 40px;
}

.pt-120 {
    padding-top: 12.0rem;
}

.pb-160 {
    padding-bottom: 16.0rem;
}

@media screen and (max-width: 720px) {
  /* .pt-120 {
    padding-top: 6.0rem;
}

.pb-160 {
    padding-bottom: 8.0rem;
} */
}

/* button set */

.bg-main {
    background-color:#54B9CB;
    color:#fff !important;
    transition: all 0.3s ease-in;
}

.bg-main:hover {
    background-color:#3960AD
}

.bg-white {
    background-color:#fff;
    color:#444 !important;
    transition: all 0.3s ease-in;
}

.bd-gray {
    border-color:#e1e1e1 !important;
    transition: all 0.3s ease-in;
}

.bd-gray:hover {
    border-color:#444 !important;
}

.bd-main {
    border-color:#54B9CB;
    transition: all 0.3s ease-in;
}

.btn-big {
    display: block;
    text-align: center;
    border-radius: 40px;
    padding: 21.3px 10px;
    border: 1px solid;
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1.3;
}

/* slick */
.slick-slider {
  overflow: hidden;
}
.slick-track {
  margin: 0;
}
.slick-slide {
  outline: none;
}

/* scroll-y */
.scroll-y {
  overflow-x: clip;
  overflow-y: auto;
}
.scroll-y::-webkit-scrollbar {
  width: 45px;
  height: 45px;
}
.scroll-y::-webkit-scrollbar-thumb {
  min-height: 100px;
  background: #222;
  background-clip: padding-box;
  border: 20px solid transparent;
  border-radius: 100px;
}
.scroll-y::-webkit-scrollbar-track {
  background: #eee;
  background-clip: padding-box;
  border: 20px solid transparent;
  border-radius: 100px;
}

/* aos */
[data-aos] {
  transition-duration: var(--aosT);
}

@media (hover: hover) and (pointer: fine) {
  :root {
    --resizeVH: var(--vh);
  }
}

@media screen and (max-width: 1700px) {
  :root {
    --headerH: 90px;
  }
  html {
    font-size: 50%;
  }
}

@media screen and (max-width: 1550px) {
  :root {
    --headerH: 80px;
  }
}

@media screen and (max-width: 1280px) {
  :root {
    --aosP: 50px;
    --aosM: -50px;
  }

  html {
    font-size: 40%;
  }
}

@media screen and (max-width: 900px) {
  html {
    font-size: 35%;
  }
}

@media screen and (max-width: 720px) {
      :root {
    --headerH: 60px;
  }
  header h1 img {
        width: auto;
        height: 28px;
    }
}

/* header */
header {
  --before: 180px;
  --after: 180px;
  --snsH: 40px;
  --radiusH: 60px;
}
header {
  width: 100%;
  text-align: center;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.1) 0%,
    rgba(0, 0, 0, 0) 100%
  );
}

header .header-wrap {
    width: 100%;
    margin: 0 auto;
    padding: 0 40px;
}
header .blackBg {
  width: 100%;
  height: 100vh;
  background: rgba(0, 0, 0, 0.6);
  position: fixed;
  top: 0;
  left: 0;
  z-index: -2;
  opacity: 0;
  transition: opacity 0.4s;
  pointer-events: none;
}
header .navBg {
  height: var(--navH);
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: -1;
  opacity: 0;
  transition: opacity 0.4s;
  pointer-events: none;
}
header .flex-box {
  height: var(--headerH);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
header .flex-box > * {
  display: flex;
  align-items: center;
}

header nav {
  opacity: 1;
  transition: opacity var(--aosT);
}
header nav .all,
header nav .hidden {
  display: none;
}
header .depth01 {
  display: flex;
}
header .depth01 > li {
  width: var(--before);
  position: relative;
  z-index: 10;
  transition: width 0.4s;
}
header .depth01 > li > a {
  height: var(--headerH);
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 18px;
  font-weight: 600;
  color: #fff;
  text-stroke: 0.012em transparent;
  -webkit-text-stroke: 0.012em transparent;
  position: relative;
  transition: color 0.4s, text-stroke-color 0.4s;
}
header .depth01 > li > div {
  /* width: var(--after); */
  height: var(--navH);
  position: absolute;
  top: 0;
  left: 50%;
  z-index: -1;
  transform: translateX(-50%);
  opacity: 0;
  transition: opacity 0.4s;
  pointer-events: none;
}

header .depth01 > li > a::after {
  content: '';
  width: 6px;
  height: 6px;
  background: var(--mainColor);
  position: absolute;
  border-radius: 50%;
  top: 30px;
  left: 45px;
  transition: opacity 0.4s;
  opacity: 0;
}

header .depth02 {
  width: 176px;
  margin: calc(var(--headerH) - 15px) 0 15px;
  background-color: var(--mainColor);
  border-radius: 12px;
  padding: 24px 0;
}
header .depth02 > li > a {
  display: block;
  font-size: 18px;
  font-weight: 600;
  color: rgba(255,255,255,0.5);
  line-height: 1.3;
  padding: 8px 0;
  transition: color 0.4s;
}

header .options {
  width: 180px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 40px;
}

header .options .lang ul {
  display: flex;
  flex-wrap: nowrap;
  gap: 0 16px;
}

header .options .lang ul > li {
  position: relative;
}
header .options .lang ul > li:first-child::after {
  content: '';
  position: absolute;
  display: block;
  width: 1px;
  height: 10px;
  right: -9px;
  top: 50%;
  border-radius: 50%;
  transform: translatey(-50%);
  background-color: rgba(255, 255, 255, 0.25);
}

header .options .lang ul > li a {
  font-size: 16px;
  color: #fff;
  opacity: 0.5;
  font-family: 'Outfit';
  font-weight: 500;
}

header .options .lang ul > li.on a {
  opacity: 1;
}

header .options .more {
width: 28px;
  height: 28px;
}

header .options button {
  padding: 0;
  margin: 0;
  background: transparent;
  border: 0;
  box-sizing: border-box;
  cursor: pointer;
  position: relative;
  width: 28px;
  height: 28px;
}

.wrapper {
  position: absolute;
  top:0;
  left:0;
  width: 100%;
  height: 100%;
  transition: transform 0.3s ease-in-out;
}
  body:not(.open) .menu:hover .wrapper {
  transform: rotate(90deg);
}

  .menu span {
    position: absolute;
    width: 12px;
    height: 12px;
    border-radius: 2px;
  }

  .top-left {
    top: 0;
    left: 0;
    background-color: rgba(255,255,255,0.5);
  }

  .top-right {
    top: 0;
    left: 16px; 
    background-color: rgba(255,255,255, 1);
    border-top-right-radius: 6px !important;
  }

  .bottom-left {
    top: 16px; 
    left: 0;
    background-color: rgba(255,255,255, 1);
    border-bottom-left-radius: 6px !important;
  }

  .bottom-right {
    top: 16px;
    left: 16px;
    background-color: rgba(255,255,255,0.5);
  }


  @keyframes move-tl {
    0%, 100% { transform: translate(0, 0); } /* 원래 위치 */
    50% { transform: translate(2px, 2px); } /* 중앙으로 2px 이동 */
  }
  @keyframes move-tr {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(-2px, 2px); }
  }
  @keyframes move-bl {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(2px, -2px); }
  }
  @keyframes move-br {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(-2px, -2px); }
  }

  .animate-tl { animation: move-tl 0.3s ease-in-out 1; }
  .animate-tr { animation: move-tr 0.3s ease-in-out 1; }
  .animate-bl { animation: move-bl 0.3s ease-in-out 1; }
  .animate-br { animation: move-br 0.3s ease-in-out 1; }

  body:not(.open) .menu:hover .wrapper > span.top-right {
    background-color: #3960AD !important;
    
  }
  body:not(.open) .menu:hover .wrapper > span.bottom-left {
    background-color:#009444 !important;
    
    
  }

  @media screen and (max-width: 1700px) {
    header .navBg,header .depth01 > li > div  {
  height: 60px !important;
}
  }


/* header - hover */
header.hover::after {
  opacity: 1;
}
header.hover .navBg {
  opacity: 1;
}
header.hover .options .lang ul > li a {
  color: #444;
}

header.hover .options .lang ul > li:first-child::after {
  background-color: rgba(68, 68, 68, 0.25);
}

@media screen and (hover: hover) and (pointer: fine) {
  header:hover .depth01 > li > a {
    color: #1b1b1b;
    text-stroke-color: #1b1b1b;
    -webkit-text-stroke-color: #1b1b1b;
  }

  header .depth01 > li:hover > div {
    opacity: 1;
    pointer-events: unset;
  }

  header .depth01 > li:hover > a,
  header.sub-header .depth01 > li:hover > a {
    color: var(--mainColor);
    text-stroke-color: var(--mainColor);
    -webkit-text-stroke-color: var(--mainColor);
  }
  header .depth01 > li:hover > a::after,
  header.sub-header .depth01 > li:hover > a::after {
    /* transform: scaleX(1); */
    opacity: 1;
  }
  header .depth02 > li:hover > a {
    color: #fff;
  }
     
  
  body:not(.open) header:hover .menu > .wrapper > span {
    background-color: #D0E3E5;
  }

  body:not(.open) header:hover .menu > .wrapper > span.top-right {
    top: 0;
    left: 16px; 
    background-color: #54B9CB;
    border-top-right-radius: 6px !important;
  } 
  body:not(.open) header:hover .menu > .wrapper > span.bottom-left {
    top: 16px; 
    left: 0;
    background-color: #8DC63F;
    border-bottom-left-radius: 6px !important;
  }
}

@media screen and (max-width: 1750px) {
  /* header {
    --before: 150px;
    --after: 180px;
    --radiusH: 55px;
  } */
  header nav {
    margin-left: 40px;
  }
}

@media screen and (max-width: 1650px) {
  /* header {
    --before: 145px;
    --snsH: 37px;
    --radiusH: 50px;
  } */

  header nav {
    margin-left: 20px;
  }

  header .radius a {
    font-size: 15px;
    padding: 0 13px;
  }
  header .radius a i {
    width: 12px;
    height: 14px;
    margin-right: 7px;
  }
  header .radius button {
    padding: 0 18px;
  }
}

@media screen and (max-width: 1550px) {
  /* header {
    --before: 140px;
    --after: 160px;
  } */
  header .depth01 > li > a {
    font-size: 16px;
  }
  header .depth02 > li > a {
    font-size: 16px;
  }
}

@media screen and (max-width: 1420px) {
  header nav {
    display: none !important;
  }

  header .options {
    width:inherit;
    gap: 0 20px;
  }
}

@media screen and (max-width: 720px) {
  header .header-wrap {
    padding: 0 20px;
  }
}

/* menu */
#menu {
  --left: 680px;
  --ptb: 80px;
  --delay: var(--aosT);
}
#menu {
  width: 100%;
  height: 100%;
  background: #030a17;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  transform-origin: top;
  opacity: 0;
  clip-path: inset(0 0 100% 0);
  transition: clip-path 0.3s ease-out, opacity 0.3s ease-out;
}

#menu .mobile {
  display: none;
}
#menu > div,
#menu nav {
  height: 100%;
}
#menu nav .all,
#menu nav .hidden {
  display: none;
}
#menu nav a {
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1.3;
  transition: color 0.4s;
}
#menu nav {
  display: flex;
  flex-direction: column;
  justify-content: center;
  /* transform: translateY(var(--aosP));
  opacity: 0;
  transition: transform 0.5s var(--aosT), opacity 0.5s var(--aosT); */
}
#menu .depth01 {
  position: relative;
  padding: calc(var(--ptb) - 10px) 0;
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: flex-start;
}
#menu .depth01 > li {
  width: var(--left);
}
#menu .depth01 > li > a {
  display: block;
  font-size: 4rem;
  padding: 30px 0;
  text-align:center;
  border-bottom: rgba(255,255,255,0.25) 1px solid;
}
#menu .depth01 > li > div {
  width: 100%;
  padding: 45px 0;
  transition: opacity 0.4s;
}
/* #menu .depth01 > li:not(.on) > div {
  pointer-events: none;
} */
 
#menu .depth02 > li > a {
  display: block;
  font-size: 24px;
  padding: 15px 0;
  text-align: center;
}

#menu .depth01 > li.on > a {
  color: #fff;
}

.depth02 > li.mob {
    display:none;
}

/* body - open */
body.open {
  overflow: hidden;
}

body.open header.sub-header {
  background: transparent;
}

body.open header.sub-header .options .lang ul > li a {
  color: #fff;
}

body.open header::after {
  opacity: 0;
}
body.open header nav {
  opacity: 0;
  pointer-events: none;
}

body.open header .menu .wrapper {
  transform: rotate(0);
}

body.open header .menu span:nth-of-type(2),
body.open header .menu span:nth-of-type(3) {
  display: none;
}

body.open header .menu span:nth-of-type(1),
body.open header .menu span:nth-of-type(4) {
  width: 28px;
  height: 2px;
  border-radius: 2px; 
  transition: all 0.3s ease-in;
  left:0;
  background-color: #fff;
}

body.open header .menu span:nth-of-type(1) {
  top: 14px;
  left: 0;
  transform-origin: center;
  transform: rotate(45deg);
}

body.open header .menu span:nth-of-type(4) {
  top: auto;
  bottom: 12px;
  transform-origin: center;
  transform: rotate(-45deg);
  left: 0;
}

body.open #menu {
  --delay: 0.1s;
  clip-path: inset(0 0 0% 0);
  
  /* 투명도 1 */
  opacity: 1;
  
  /* 4. (핵심) 열릴 때만 0.1초 딜레이 적용 */
  transition-delay: 0.1s;
}

@media screen and (hover: hover) and (pointer: fine) {
  #menu .depth01 > li:hover > a {
    color: #fff;
    border-bottom: 1px solid #fff;
    transition: border 0.4s;
  }
  #menu .depth02 > li:hover > a {
    color: #fff;
  }
}

@media screen and (max-width: 900px) {
#menu .pc {
    display: none;
  }
  #menu .mobile {
    display: block;
  }
  #menu .mobile .depth02 > li.mob {
    display:block;
}
 #menu > div {
    padding: calc(var(--headerH) + 15px) 40px 0;
  }

  #menu nav {
    height: 100%;
    overflow-x: clip;
    overflow-y: auto;
    -ms-overflow-style: none;
    justify-content: unset;
  }
  #menu nav::-webkit-scrollbar {
    display: none;
  }
  #menu nav .all {
    display: block;
  }
  #menu .depth01 {
    display: block;
    padding: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.3);
  }
  #menu .depth01::after {
    display: none;
  }
  #menu .depth01 > li {
    width: 100%;
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  }
  #menu .depth01 > li > a {
    font-size: 6rem;
    color: #fff;
    padding: 15px;
    text-align:left;
    border: 0 !important;
  }
  #menu .depth01 > li > div {
    width: 100%;
    background: #fff;
    border-radius: 20px;
    position: static;
    padding: 10px 0;
    margin-bottom: 20px;
    opacity: 1 !important;
    pointer-events: unset !important;
    display: none;
  }
  #menu .depth02 > li > a {
    color: rgba(17, 17, 17, 0.5);
    padding: 10px 20px;
    text-align: left;
  } 
}

@media screen and (max-width: 900px) and (hover: hover) and (pointer: fine) {
  #menu .depth02 > li:hover > a {
    color: #111;
  }
}

@media screen and (max-width: 720px) {
    #menu > div {
        padding: calc(var(--headerH) + 15px) 20px 0;
    }
    #menu .depth01 > li > a {
        font-size: 22px;
        padding:10px 15px;
    }

    #menu .depth02 > li > a {
        font-size: 16px;
    }
}

/* sub header*/

header.sub-header {
  background: #fff;
  position: relative;
}

header.sub-header .depth01 > li > a {
    color: #1b1b1b;
    text-stroke-color: #1b1b1b;
    -webkit-text-stroke-color: #1b1b1b;
}

header.sub-header .options .lang ul > li a {
  color: #444;
}

header.sub-header .options .lang ul > li:first-child::after {
  background-color: rgba(68, 68, 68, 0.25);
}

  header.sub-header .menu > .wrapper > span {
    background-color: #D0E3E5;
  }

  header.sub-header .menu > .wrapper > span.top-right {
    top: 0;
    left: 16px; 
    background-color: #54B9CB;
    border-top-right-radius: 6px !important;
  } 
  header.sub-header .menu > .wrapper > span.bottom-left {
    top: 16px; 
    left: 0;
    background-color: #8DC63F;
    border-bottom-left-radius: 6px !important;
  }
  
/* color fix header */

header.color-header {
  background: transparent;
}

header.color-header .depth01 > li > a {
    color: #1b1b1b;
    text-stroke-color: #1b1b1b;
    -webkit-text-stroke-color: #1b1b1b;
}

header.color-header .options .lang ul > li a {
  color: #444;
}

header.color-header .options .lang ul > li:first-child::after {
  background-color: rgba(68, 68, 68, 0.25);
}

  header.color-header .menu > .wrapper > span {
    background-color: #D0E3E5;
  }

  header.color-header .menu > .wrapper > span.top-right {
    top: 0;
    left: 16px; 
    background-color: #54B9CB;
    border-top-right-radius: 6px !important;
  } 
  header.color-header .menu > .wrapper > span.bottom-left {
    top: 16px; 
    left: 0;
    background-color: #8DC63F;
    border-bottom-left-radius: 6px !important;
  }


/* container */

.container {
      max-width: 1640px;
    width: 100%;
    margin: 0 auto;
    padding: 0 40px;
  box-sizing: border-box;
}
@media screen and (max-width: 720px) {
    .container {
        padding: 0 20px;
    }
}



/* footer */
footer {
    position: relative;
}
footer .footerWrap {
    background-color:#030a17;
    padding: 12.0rem 0;
}

footer #footerAllMenu > div > ul {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: space-between;
}

footer #footerAllMenu > div > ul > li {
    flex: 50%;
}

footer #footerAllMenu > div > .depth01 > li > a{
    font-size: 24px;
    color:rgba(255,255,255,0.75);
    font-family: 'Outfit', sans-serif;
    font-weight: 600;
    line-height: 1.25;
}

footer #footerAllMenu > div > .depth01 > li > div {
    margin-top:24px;
}

footer #footerAllMenu .depth02  {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px 0;
}

footer #footerAllMenu .depth02 > li > a {
    font-size: 16px;
    color:rgba(255,255,255,0.75);
    font-weight: 300;
}

footer #footerInfo .infoHead {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: space-between;
    padding-top: 8.0rem;
    margin: 8.0rem 0 4.0rem;
    border-top: 1px solid rgba(255,255,255,0.25);
}

footer #footerInfo .infoHead .right > .sns {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 0 16px;
}

footer #footerInfo .infoLinks {
    margin-bottom: 24px;
}

footer #footerInfo .infoLinks ul {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0 8px;
}

footer #footerInfo .infoLinks ul > li > a {
    display:block;
    font-size: 14px;
    color:rgba(255,255,255,0.75);
    font-weight: 500;
    padding: 7px 12px;
    background-color:rgba(255,255,255,0.10);
    border-radius: 25px;
}

footer #footerInfo .infoCompany {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-end;
    justify-content: space-between;
}

footer #footerInfo .infoCompany > .left .infoLine:not(:last-of-type) {
    margin-bottom:12px;
}

footer #footerInfo .infoCompany > .left .infoLine > ul{
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: flex-start;
    gap:0 25px;
}

footer #footerInfo .infoCompany > .left .infoLine > ul > li {
    position: relative;
    font-size: 16px;
    font-weight: 300;
    color: rgba(255,255,255,0.75);
}
footer #footerInfo .infoCompany > .left .infoLine > ul > li:not(:last-child)::after {
    content: '';
    position: absolute;
    display: block;
    width: 1px;
    height: 10px;
    right: -12px;
    top: 50%;
    border-radius: 50%;
    transform: translatey(-50%);
    background-color: rgba(217, 217, 217, 0.25);
}

footer #footerInfo .infoCompany > .right .copyright {
    font-family: 'Outfit', sans-serif;
    font-size: 16px;
    font-weight: 300;
    color: rgba(255,255,255,0.75);
}

@media screen and (max-width: 1250px) {
  footer #footerInfo .infoCompany {
    display: block;
  }

  footer #footerInfo .infoCompany .right {
    margin-top: 12px;
  }
}

@media screen and (max-width: 960px) {
    footer #footerAllMenu {
        display:none;
    }
    footer #footerInfo .infoHead {
        margin-top:0;
        border:0;
        padding-top:0;
    }

    footer #footerInfo .infoCompany {
        display: block;
    }

    footer #footerInfo .infoCompany > .left .infoLine > ul {
        flex-wrap: wrap;
        gap: 10px 25px;
    }

    footer #footerInfo .infoCompany .right {
        margin-top: 12px;
    }
}

@media screen and (max-width: 720px) {
    footer .footerWrap {
        padding: 5.5rem 0;
    }

    footer #footerInfo .infoHead {
        align-items: center;
    }

    footer #footerInfo .infoHead .left img {
        width: auto;
        height: 28px;
    }

    footer #footerInfo .infoHead .right > .sns {
        gap: 0 8px;
    }

    footer #footerInfo .infoHead .right > .sns img {
        width: auto;
        height: 22px;
    }

    footer #footerInfo .infoLinks ul > li > a {
        font-size: 12px;
    }

    footer #footerInfo .infoCompany > .left .infoLine > ul > li {
        font-size: 13px;
    }

    footer #footerInfo .infoCompany > .right .copyright {
        font-size: 13px;
    }
}

/* btn top */
.btn-top {
    position:absolute;
    top: -76px;
    right: 40px;
    z-index: 5;
    --rowH: 80px;
    --rimitH: 100px;
}

@keyframes stretch-up {
  0%, 100% {
    /* 시작과 끝: 원래 높이 */
    height: var(--rowH);
  }
  50% {
    /* 중간: 10px 늘어난 높이 */
    height: var(--rimitH);
  }
}
.btn-top a:hover .stylized-shape {
  animation: stretch-up 1s ease-in-out infinite;
}

.btn-top span {
    display:block;
    font-family: 'Outfit',sans-serif;
    font-size: 16px;
    font-weight: 500;
    color:#1b1b1b;
    line-height: 1.3;
    writing-mode: vertical-rl;
}

.stylized-shape {
  width: 2px;
  height: 80px;
  background-color: #1b1b1b;
  border-radius: 6px;
  position: absolute;
  bottom: 45px;
  left: 9px; /* 또는 right: 0 등, 부모 기준의 가로 위치 */
}

.stylized-shape::before {
  content: '';
  position: absolute;
  width: 2px;
  background-color: #1b1b1b;
  border-radius: 6px;
  height: 16px; 
  top: -15px; 
  left: 2px;
  transform-origin: bottom left;
  transform: rotate(134deg);
}


@media screen and (max-width:960px) {
    .btn-top {
    --rowH: 40px;
    --rimitH: 60px;
}
 .btn-top {
    right: 15px;
  } 

  .btn-top span {
    font-size: 14px;
  }

.stylized-shape {
  width: 3px;
  height: 40px;
  bottom: 30px;
}

.stylized-shape::before {
  width: 3px;
  height: 13px;
  top: -13px;
}


}


/* popup */

#popup {
    position: fixed;
    top:0;
    left:0;
    width:100%;
    height:100%;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease-in-out;
}

#popup.is-open {
    opacity: 1;
    visibility: visible;
}

#popup .popup-bg {
    position: fixed;
    top:0;
    left:0;
    z-index: 9999;
    width:100%;
    height:100%;
    background-color:rgba(0,0,0,0.6);
}

#popup .popup-wrap {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 99999;
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: center;
    gap: 0 12px;
    /* width:90%; */
    padding:0 20px;
}

#popup .popup-wrap .popup-view {
    max-width:566px;
    width: 100%;
    border-radius: 24px;
    overflow: hidden;
}

#popup .popup-wrap .popup-close button {
    background:transparent;
    margin:0;
    padding:0;
    border:0;
    box-shadow: none;
    width:24px;
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 4px 0;
}

#popup .popup-wrap .popup-close button i {
     display: inline-block; 
    width: 24px; 
    height: 24px; 
    background: url("/img/common/pop_close.png") no-repeat center center / contain; 
}

 #popup .popup-wrap .popup-close button span{

    display: block;
    font-family: 'Outfit', sans-serif;
    font-size: 16px;
    font-weight: 500;
    color: #fff;
    line-height: 1.3;
    writing-mode: vertical-rl;
 }

 #popup .popup-wrap .popup-content {
    background-color:#fff;
    border-radius: 24px;
    overflow: hidden;
}

@media screen and (max-width:520px) {
    #popup .popup-wrap {
        flex-wrap: wrap;
        flex-direction: column-reverse;
        align-items: flex-end;
        padding:0;
        width: 90%;
        gap: 10px 0;
    }
    #popup .popup-wrap .popup-close button {
        flex-wrap: nowrap;
        flex-direction: row-reverse;
        width:100%;
        gap:0 4px;
    }
    #popup .popup-wrap .popup-close button span {
        writing-mode: inherit;
    }

    #popup .download {
        width: 100%;
    }
}
    



body.scroll-locked {
    overflow: hidden;
}

/* main policy pop */
.pop-policy {
    max-width: 1200px;
}
.pop-policy .policy {
    padding: 60px;
    width:100%;
    overflow-x: clip;
    overflow-y: auto;
    max-height: 740px;
}

.pop-policy .policy::-webkit-scrollbar{ width: 45px; height: 45px; }
.pop-policy .policy::-webkit-scrollbar-thumb{ min-height: 100px; background: #DBDBDB; background-clip: padding-box; border: 20px solid transparent; border-radius: 100px; }
.pop-policy .policy::-webkit-scrollbar-track{ background: transparent; background-clip: padding-box; border: 20px solid transparent; border-radius: 100px; }


@media screen and (max-width:720px) {
 .pop-policy .policy {
    padding: 30px;
    padding-right:0;
}   
}

/* downloadForm */
#popup .download {
    width: 76.0rem;
}
#downloadForm { padding-top: 6.0rem; }

#downloadForm .grid-form > div {
    width:100%;
    padding: 0 6.0rem;
}

#downloadForm .form-head {
    margin-bottom: 4.0rem;
}

#downloadForm .form-head strong {
    font-size:3.2rem;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: -0.2px;
    color:#1b1b1b;
}

#downloadForm .form-head p {
    margin-top: 2.0rem;
    font-size: 1.8rem;
    font-weight: 300;
    color:#aaa;
    line-height: 1.6;
    letter-spacing: -0.2px;
}

#downloadForm .form-button {
    background-color:#8DC63F;
}
#downloadForm .form-button button {
    width:100%;
    background-color: transparent;
    border:0;
    margin:0;
    box-shadow: none;
    text-align: center;
    padding: 2.2rem 0;
    color:#fff;
    font-size:2.0rem;
    font-family: 'OutFit', sans-serif;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: -0.2px;
}

@media screen and (max-width:720px) {
  #downloadForm {
    padding-top: 20px;
  }

  #downloadForm .grid-form > div {
    padding: 0 20px;
  }

  #downloadForm .form-head strong {
    font-size: 17px;
  }

  #downloadForm .form-head p {
    font-size: 13px;
    margin-top: 10px;
  }

  #downloadForm .form-button button {
    font-size: 14px;
  }
}

@media screen and (max-width:520px) {
    #popup .download {
        width: 100%;
    }
}

/* tab */

.tabs {
    margin-bottom: 12.0rem;
}

.tap-menu {
    width:100%;
    position: relative;
}

.tap-menu ul {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 0 8px;
}

.tap-menu ul li {
    width:100%;
}

.tap-menu ul li a {
    display:block;
    width:100%;
    padding: 27px 15px;
    background-color:#f5f6f3;
    text-align:center;
    border-radius: 8px;
    overflow: hidden;
    font-size:2.0rem;
    color:#9c9e9a;
    font-weight:500;
    line-height: 1.3;
    letter-spacing: -0.2px;
}

.tap-menu ul li.on a {
    color:#fff;
    background-color:#8DC63F;
}

@media screen and (max-width:720px) {

  .tabs {
    margin-bottom: 8.0rem;
  }

        .tap-menu ul {
      flex-wrap: wrap;
      gap: 8px;
    }
    .tap-menu ul  li {
      flex: calc(33.3333334% - 8px);
    }

  .tap-menu ul li a {
    padding: 15px 10px;
    font-size: 12px;
    /* min-height: 62px; */
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: center;
  }
  
}

/* policy */
.policy .tit {
   padding-bottom: 4.0rem;
}
.policy .tit h4 {
  font-size: 60px;
  color:#1b1b1b;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.2px;
}

/* privacy */
.privacy{
	--mtb: 16px;
}
.privacy .p-box {
    border-bottom: 1px solid #444;
    padding-bottom:8.0rem;
    margin-bottom: 8.0rem;
}
.privacy .p-box p {
    font-size:20px;
    line-height: 1.6;
    letter-spacing: -0.2px;
    font-weight: 300;
}
.privacy .sec-box > div:not(:last-of-type) {
  margin-bottom:6.0rem;
}
.privacy .sec-box h6{ 
  line-height: 1.3; 
  font-size: 28px; 
  font-weight: 500; 
  margin-bottom: 4.0rem; 
  color:#1b1b1b; 
}
.privacy .sec-box > div > .desc {
    margin-bottom: 3.6rem;
}
.privacy .sec-box > div > .desc p {
    color:#666;
    line-height: 1.6;
    font-size: 18px;
    font-weight: 300;
    letter-spacing: -0.2px;
}
.privacy .list { margin-bottom: 3.2rem;}
.privacy .list .numbering {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0 1.0rem;
}
.privacy .list .numbering > * {
  font-size: 18px;
  font-weight: 500;
  color:#444;
  line-height: 1.6;
  letter-spacing: -0.2px;

}
.privacy .list p.desc {
  margin-top: 2.4rem;
  font-size: 18px;
  font-weight: 300;
  color:#666;
  line-height: 1.6;
  letter-spacing: -0.2px;
}
.privacy .list dl,
.privacy .list ul {
  margin-top:2.4rem;
}
.privacy .list dl dd > ul {
  margin-top:1.6rem;
}
.privacy .list dl dd > ul > li:not(:last-child){
  margin-bottom:.8rem;
}
.privacy .list dl dt {
  margin-bottom: 1.6rem;
  font-size: 16px;
  font-weight: 500;
  color:#444;
  line-height: 1.6;
  letter-spacing: -0.2px;
}
.privacy .list dl dd {
  font-size: 16px;
  font-weight: 300;
  color:#666;
  line-height: 1.6;
  letter-spacing: -0.2px;
}
.privacy .list dl dd:not(:last-child) {
  margin-bottom: .8rem;
}
.privacy .list > ul > li {
   font-size: 16px;
  font-weight: 500;
  color:#444;
  line-height: 1.6;
  letter-spacing: -0.2px;
}
.privacy .list > ul > li:not(:last-child) {
  margin-bottom: 1.6rem;
}
.privacy .list .hyphen,
.privacy .list .dot{ padding-left: 1.2rem; position: relative; }
.privacy .list .hyphen::before{ content: "-"; position: absolute; top: 0; left: 0; }
.privacy .list .dot::before{ content: "·"; position: absolute; top: 0; left: 0; }
.privacy .list .tableWrap {
  margin-top:2.4rem;
}

@media screen and (max-width: 1280px){
  .privacy > * {
    font-size: 17px;
  }

  .policy .tit h4 {
    font-size: 30px;
  }

  .privacy .p-box p {
    font-size: 18px;
  }

  .privacy .sec-box h6 {
    font-size: 20px;
  }

  .privacy .sec-box > div > .desc p {
    font-size: 16px;
  }

  .privacy .list .numbering > * {
    font-size: 15px;
  }

  .privacy .list p.desc,
  .privacy .list dl dd {
    font-size: 14px;
  }
}
