.font26 {
  --fontsize: 2.6rem;
  font-size: var(--fontsize);
}

.font28 {
  --fontsize: 2.8rem;
  font-size: var(--fontsize);
}

.font30 {
  --fontsize: 3.0rem;
  font-size: var(--fontsize);
}

.font32 {
  --fontsize: 3.2rem;
  font-size: var(--fontsize);
}

.font34 {
  --fontsize: 3.4rem;
  font-size: var(--fontsize);
}

.font36 {
  --fontsize: 3.6rem;
  font-size: var(--fontsize);
}

.font48 {
  --fontsize: 4.8rem;
  font-size: var(--fontsize);
}

.font54 {
  --fontsize: 5.4rem;
  font-size: var(--fontsize);
}

.font64 {
  --fontsize: 6.4rem;
  font-size: var(--fontsize);
}

.font78 {
  --fontsize: 7.8rem;
  font-size: var(--fontsize);
}

.font80 {
  --fontsize: 8.0rem;
  font-size: var(--fontsize);
}

@media (hover: hover) and (pointer: fine) {
  .cursor .inner {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    margin: -50% -50%;
    opacity: 0;
    -webkit-transition: width 0.2s cubic-bezier(0.25, 1, 0.5, 1), height 0.2s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.2s cubic-bezier(0.25, 1, 0.5, 1);
    transition: width 0.2s cubic-bezier(0.25, 1, 0.5, 1), height 0.2s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.2s cubic-bezier(0.25, 1, 0.5, 1);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .cursor.on .inner {
    gap: 0 6px;
    background: #1c1c1c;
    opacity: 1;
    z-index: 2;
  }
}

.cursor {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 2;
  pointer-events: none;
}

.cursor * {
  color: #ffffff;
  font-size: 1.5rem;
}

.cursor img {
  opacity: 0;
}

.socialBox {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.socialList {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0 28px;
  position: fixed;
  bottom: 40px;
  z-index: 2;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}

.socialList li a {
  gap: 0 8px;
  color: #ffffff;
  font-weight: 700;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.socialList.colorBlack {
  -webkit-filter: invert(0.88);
          filter: invert(0.88);
}

.moreText {
  font-weight: 600;
}

main h2 {
  color: #000000;
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.2962;
}

main .title.column {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 35px 0;
}

main .buttonBox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0 40px;
}

main section .top {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

main .visual {
  width: 100%;
  height: 100vh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  overflow: hidden;
  /* height: calc(var(--vh, 1vh) * 100); */
}

/* main .visual :root {
  --vh: 100%;
}

@supports (-webkit-touch-callout: none) {
  main .visual {
    height: -webkit-fill-available;
    min-height: -webkit-fill-available;
  }
} */

main .visual .visualSlideBox {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

main .visual .swiper {
  width: 100%;
  height: 100%;
}

main .visual .bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
}

main .visual .bg::before {
  content: "";
  display: block;
  background: rgba(255, 255, 255, 0.2);
  position: absolute;
  top: 0;
  left: -100%;
  bottom: 0;
  -webkit-transition: all 0s;
  transition: all 0s;
  width: 100%;
  height: 100%;
}

main .visual .bg.bg1 {
  background-image: url("/img/main/visualBg1.jpg");
}

main .visual .bg.bg2 {
  background-image: url("/img/main/visualBg2.jpg");
}

main .visual .bg.bg3 {
  background-image: url("/img/main/visualBg3.jpg");
}

main .visual .bg.on::before {
  left: 100%;
  opacity: 0;
  -webkit-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

main .visual .videoBox,
main .visual .videoBox video {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
}
main .visual .videoBox {
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: -2;
  width: 100%;
  height: 100%;
}

main .visual .videoBox video {
  min-width: 100%;
  min-height: 100%;
}

main .visual .title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  padding: 0 0 130px;
  width: 100%;
  height: 100%;
}

main .visual h2 {
  color: #ffffff;
  line-height: 1.2;
  opacity: 0;
  -webkit-transform: translateX(-60px);
          transform: translateX(-60px);
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
  font-family: 'pretendard', sans-serif;
}

main .visual .title.on h2 {
  opacity: 1;
  -webkit-transform: translateX(0);
          transform: translateX(0);
  -webkit-transition: all 1.4s;
  transition: all 1.4s;
}

main .visual .bottom,
main .visual .swiper-pagination {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

main .visual .bottom,
main .visual .swiper-pagination {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

main .visual .bottom {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  padding: 0 0 80px;
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
}

main .visual .swiper-pagination {
  width: auto;
  gap: 20px 0;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 0;
  position: relative;
}

main .visual .swiper-pagination::before {
  content: "/";
  color: rgba(255, 255, 255, 0.6);
  font-size: 2.0rem;
  font-weight: 300;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%) rotate(60deg);
          transform: translate(-50%, -50%) rotate(60deg);
}

main .visual .swiper-pagination span {
  color: rgba(255, 255, 255, 0.6);
  font-size: 1.8rem;
  font-weight: 300;
}

main .visual .swiper-pagination span::before {
  content: "0";
}

main .visual .swiper-pagination span.swiper-pagination-current {
  color: #ffffff;
  font-size: 2.0rem;
  font-weight: 700;
}

main .business .itemBox,
main .link .itemBox {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 0 85px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

main .business .icon,
main .link .icon {
  height: 70px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

main .business dl,
main .link dl {
  text-align: center;
}

main .business dl *,
main .link dl * {
  letter-spacing: -0.025em;
}

main .business dl dt,
main .link dl dt {
  color: #000000;
}

main .business dl dd,
main .link dl dd {
  color: #666666;
  font-weight: 300;
  line-height: 1.625;
}

main .who .whoSlideBox {
  width: calc(200% + 60px);
}

main .who .item {
  position: relative;
}

main .who h3 {
  color: #ffffff;
  text-align: right;
  letter-spacing: -0.010em;
  line-height: 1.2916;
  position: absolute;
  right: 55px;
  bottom: 55px;
}

main .who .img {
  border-radius: 20px;
  padding: 17.335% 0;
  position: relative;
  overflow: hidden;
}

main .who .img img {
  min-height: 100%;
  max-height: inherit;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

main .company .itemBox {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: (1fr)[3];
      grid-template-columns: repeat(3, 1fr);
  gap: 0 20px;
}

main .company .item {
  position: relative;
}

main .company .text {
  width: 100%;
  position: absolute;
  left: 50%;
  bottom: 35px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

main .company .text * {
  color: #ffffff;
}

main .company h5 {
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.5;
}

main .company .moreText {
  display: inline-block;
  opacity: 0;
  -webkit-transform: translateY(16px);
          transform: translateY(16px);
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}

main .company .item:hover .moreText {
  margin: 20px 0 0;
  opacity: 1;
  -webkit-transform: translateY(0px);
          transform: translateY(0px);
}

main .brand .brandSlideBox {
  width: 2400px;
}

main .brand .item {
  max-width: 1200px !important;
}

main .brand .item a {
  gap: 0 65px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

main .brand .text {
  padding: 30px 0 0;
}

main .brand .text p {
  color: #000000;
  font-size: 2.0rem;
  font-weight: 300;
  line-height: 1.6;
  margin: 30px 0 50px;
}

main .what {
  width: 100%;
  height: 100vh;
  position: relative;
}

main .what .contents {
  width: 100%;
  height: 100%;
}

main .what .top a {
  display: block;
  width: 120px;
  height: 120px;
  border: 1px solid #077c34;
  border-radius: 50%;
  position: relative;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}

main .what .top a > * {
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

main .what .top a span {
  color: #ffffff;
  font-size: 1.5rem;
  font-weight: 500;
  opacity: 0;
}

main .what .top a:hover {
  border-color: #077c34;
  background: #077c34;
  opacity: 1;
}

main .what .top a:hover .arrow {
  opacity: 0;
}

main .what .top a:hover span {
  opacity: 1;
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}

main .what .itemBox {
  width: 235%;
  width: 340%;
  height: 57.45%;
  padding: 0 100px 0 0;
  position: absolute;
}

main .what .itemBox .imgBox {
  padding: 0 0 0 20px;
}

main .what .textBox,
main .what ol,
main .what .text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

main .what .textBox {
  position: relative;
  margin: 50px 0 0;
}

main .what .line {
  width: 100%;
  height: 1px;
  background: #dddddd;
  z-index: -1;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

main .what .line::before, main .what .line::after {
  content: "";
  display: block;
  width: 5px;
  height: 5px;
  background: #cccccc;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

main .what .line::before {
  left: 0;
}

main .what .line::after {
  right: 0;
}

main .what .mobile {
  display: none;
}

main .what ol {
  width: 100%;
  -ms-flex-pack: distribute;
      justify-content: space-around;
  padding: 0 260px 0 0;
}

main .what ol li {
  height: 50px;
}

main .what .text {
  height: 100%;
  gap: 0 8px;
  background: #f7f6f1;
  border: 1px solid #077c34;
  border-radius: 25px;
  padding: 0 20px 0 5px;
}

main .what .text em {
  width: 34px;
  height: 34px;
  background: #077c34;
  border-radius: 50%;
  color: #ffffff;
  font-size: 1.4rem;
  font-weight: 500;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

main .what .text span {
  color: #077c34;
  font-size: 1.8rem;
  font-weight: 500;
}

main .business dl {
  margin: 75px 0 0;
}

main .business dl dt {
  color: #000000;
  margin: 0 0 25px;
}

main .factory {
  height: 100vh;
  position: relative;
}

main .factory .imgBox,
main .factory .img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
  -webkit-transform: translate3d(-50%, -50%, 0);
}

main .factory .imgBox {
  width: 1500px;
  height: 245px;
/*  padding: 6.35% 0;*/
  margin: 0 auto;
  z-index: -2;
  overflow: hidden;
  transition: all 0.4s;
}

main .factory .img img {
  max-width: inherit;
  max-height: inherit;
}

main .factory .contents {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 130px 0;
  justify-content: center;
}

main .factory .iconBox {
  display: flex;
  justify-content: space-around;
  opacity: 0;
  transform: translateY(60px);
  transition: all 0.4s;
}

main .factory .icon {
  height: 84px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

main .factory .iconBox p {
  color: #fff;
  font-size: 2.0rem;
  font-weight: 600;
  letter-spacing: -0.025em;
  margin: 35px 0 0;
}

main .factory.on * {
  color: #fff;
}

main .factory .imgBox.on {
  width: 100%;
  height: 100%;
}

main .factory .iconBox.on {
  opacity: 1;
  transform: translateY(0);
}

main .link dl {
  margin: 45px 0 0;
}

main .link dl dt {
  margin: 0 0 20px;
}
