:root {
  --color-main: #255CA7;
  --color-sub: #1EB9EE;
  --color-white: #FFFFFF;
  --color-black: #000000;
  --font-pretendard: 'Pretendard', sans-serif;
  --font-poppins: 'Poppins', sans-serif;
  --gradient: linear-gradient(90deg, #255CA7 0%, #154595 100%);
}

.font45 {
  --fontsize: 4.5rem;
  font-size: var(--fontsize);
}

.font50 {
  --fontsize: 5.0rem;
  font-size: var(--fontsize);
}

.font60 {
  --fontsize: 6.0rem;
  font-size: var(--fontsize);
}

@media (max-width: 1820px) {
  .w1780,
  .w1600,
  .w1400 {
    padding: 0 20px;
  }
  .subText {
    padding: 60px;
  }
  .subText > div h3 {
    max-width: 20%;
  }
  .subText ol b {
    width: 40px;
  }
}

@media (max-width: 1600px) {
  main .update .imgBox {
    width: 100%;
  }
  main .data .itemBox {
    gap: 0 20px;
    padding: 0;
  }
  .subText {
    padding: 40px;
  }
  .subText .font45 {
    font-size: 3.6rem;
  }
  .subText .number {
    padding: 30px;
  }
  .distribution .circle p {
    font-size: 2.6rem;
  }
  .topButton {
    right: 20px;
    bottom: 20px;
  }
  .topButton.absolute {
    top: -80px;
  }
}

@media (max-width: 1400px) {
  .font60 {
    font-size: calc(var(--fontsize) * 0.72);
  }
  .font50,
  .font45 {
    font-size: calc(var(--fontsize) * 0.74);
  }
  main .infra .flexBox {
    gap: 0 40px;
  }
  main .infra .text {
    width: 58%;
  }
  main .data .scroll-x {
	overflow-x: scroll;
  }
  main .data .itemBox {
	width: 1360px;
  }
  /* main .data .itemBox {
    gap: 0 10px;
  }
  main .data .itemBox .imgBox .img {
    width: calc(100% + 30px);
  }
  main .data .itemBox .source ul {
    padding: 0 10px;
  }
  main .data .itemBox .technology .img {
    right: -5px;
  }
  main .data .itemBox .lodge .img {
    left: -5px;
  }
  main .data .itemBox .lodge ul {
    -webkit-transform: translateX(15px);
            transform: translateX(15px);
  }
  main .data .itemBox .service ul {
    padding: 0 20px;
  } */
  .subText .number.grid2 {
    -ms-grid-columns: (auto)[1];
        grid-template-columns: repeat(1, auto);
    gap: 0;
  }
  .subText .number.grid2 ol:last-child {
    border-top: 1px solid #e5e5e5;
  }
  .distribution .circle p {
    font-size: 2.3rem;
  }
  .distribution .big {
    width: 62%;
  }
  .distribution .rightBox {
    gap: 0 2%;
    padding: 30px;
  }
  .distribution .rightBox .circle {
    width: calc(48% - 50px);
    padding: calc(24% - 25px) 0;
  }
  .boxes .topImg {
    padding: 30px;
  }
  footer .footerBox {
    gap: 30px 40px;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  footer .symbol {
    width: 100%;
  }
}

@media (max-width: 1200px) {
  html,
  body {
    font-size: 56.25%;
  }
  main .visual {
    height: 80vh;
  }
  main .visual .slideWrap {
    margin: 10% 0 0;
  }
  main .visual .title p {
    font-size: 1.5rem;
  }
  main .visual .scroll {
    display: none;
  }
  main .infra .itemBox {
    gap: 30px 0;
    margin: 50px 0 0;
  }
  main .infra h6 span {
    font-size: 4.8rem;
  }
  /* main .data .itemBox {
    max-width: 740px;
    gap: 40px;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin: 60px auto 0;
  }
  main .data .itemBox .item {
    width: calc(50% - 20px);
    max-width: 350px;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  main .data .itemBox .imgBox {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  main .data .itemBox .imgBox .img {
    width: calc(100% + 60px);
  }
  main .data .itemBox .source ul,
  main .data .itemBox .service ul {
    padding: 0 40px;
  }
  main .data .itemBox .technology .img {
    right: -20px;
  }
  main .data .itemBox .lodge .img {
    left: -20px;
  } */
  #sv {
    height: 360px;
  }
  #sv .flexBox p {
    font-size: 1.9rem;
  }
  .subContents{
	padding-top: 12vw;
  }
  .subContents #lnb {
    height: 80px;
    /* margin: 80px 0; */
	margin: 30px 0;
  }
  .subTitle {
    margin: 80px 0;
  }
  .subText > div {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 20px 0;
  }
  .subText > div h3 {
    max-width: 100%;
  }
  .subText ul li {
    max-width: calc((100% - 30px) / 4);
    height: 100px;
  }
  .distribution .arrow {
    width: 60px;
  }
  .distribution .rightBox {
    width: calc(54.6875% + 20px);
  }
  .distribution .rightBox .circle {
    width: calc(48% - 30px);
    padding: calc(24% - 15px) 0;
  }
  .cars .itemBox {
    max-width: 100%;
    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;
  }
  .cars .itemBox .img {
    width: 32%;
  }
  .cars .itemBox .text img {
    max-width: 100%;
  }
  .cars .itemBox .text1 {
    width: 52%;
    left: 1.2vw;
    right: auto;
  }
  .cars .itemBox .text2 {
    width: 43%;
    top: 17%;
    left: auto;
    right: 2vw;
  }
  .cars .itemBox .text3 {
    width: 49%;
    left: 1vw;
    right: auto;
    bottom: 28%;
  }
  .boxes .topImg {
    padding: 20px 0;
  }
  footer .family {
    width: 200px;
    position: absolute;
    top: 20px;
    right: 20px;
  }
  footer .family button {
    height: 50px;
  }
  footer .family ul {
    bottom: 55px;
  }
  footer .family ul li a {
    padding: 6px 20px;
  }
}

@media (max-width: 960px) {
  main section:not(.visual) .box {
    padding: 80px 0;
  }
  main .update .point {
    width: 50%;
    padding: 25% 0;
  }
  main .infra .flexBox {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 40px 0;
  }
  main .infra .text {
    width: 100%;
  }
  main .infra .itemBox {
    -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
  main .infra figure {
    width: 40%;
    margin: 0 0 0 auto;
  }
  .distribution .itemBox {
    width: 100%;
    max-width: 560px;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin: 0 auto;
  }
  .distribution .itemBox > .arrow {
    width: 60px;
    height: 1px;
    margin: 20px 0;
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
    -webkit-transform-origin: center;
            transform-origin: center;
  }
  .distribution .leftBox,
  .distribution .rightBox {
    width: 100%;
  }
  .distribution .leftBox {
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: normal !important;
        -ms-flex-direction: column !important;
            flex-direction: column !important;
  }
  .distribution .list {
    width: 90%;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: 0 20px;
    margin-right: 0;
  }
  .distribution .list .circle {
    width: calc((100% - 60px) / 4);
    padding: calc(((100% - 60px) / 4) / 2) 0;
  }
  .distribution .list .circle:first-child, .distribution .list .circle:last-child {
    margin: 0;
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
  }
  .distribution .big {
    width: 38%;
  }
  .distribution .big figure {
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
  }
  .distribution .rightBox {
    padding: 10px;
  }
  .consulting .itemBox {
    gap: 80px;
  }
  footer .contact {
    gap: 0 7px;
  }
}

@media (max-width: 850px){
  footer .contact {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 10px 0;
  }
  footer .contact em {
    display: block;
    width: 62px;
  }
  footer .contact hr {
    display: none;
  }
}

@media (max-width: 768px) {
  .font60 {
    font-size: calc(var(--fontsize) * 0.64);
  }
  .font50,
  .font45 {
    font-size: calc(var(--fontsize) * 0.66);
  }
  header .depth1 > li > a {
    padding: 0 20px;
  }
  .siteMap .inner {
    padding: 0 40px;
  }
  .siteMap nav {
    padding: 40px 0;
  }
  .siteMap .depth1 > li > a {
    font-size: 2.8rem;
  }
  .siteMap .depth2 > li > a {
    font-size: 1.7rem;
  }
  .paddingBox {
    padding: 70px 0;
  }
  .paddingBox.topX {
    padding: 0 0 70px;
  }
  .paddingBox.bottomX {
    padding: 70px 0 0;
  }
  main .visual {
    height: 60vh;
  }
  main .visual .swiper-pagination {
    margin: 0 0 20px;
  }
  main .visual .swiper-pagination li {
    width: 44px;
    height: 44px;
  }
  main .visual .swiper-pagination circle {
    cx: 22.5;
    cy: 22.5;
    r: 20;
  }
  main .visual .link {
    width: calc(100% - 40px);
  }
  main .visual .link li {
    width: 100%;
    height: 65px;
  }
  main .visual .link li:hover {
    height: 95px;
  }
  main .visual .link a {
    padding: 0 20px;
  }
  main section:not(.visual) .smallTitle {
    font-size: 1.5rem;
  }
  main section:not(.visual) .title p {
    font-size: 1.7rem;
  }
  main .update .title {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 10px 0;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
  main .update .swiper-pagination {
    gap: 0 10px;
    margin: 30px 0 20px;
  }
  main .update .swiper-pagination button {
    padding: 10px 20px;
  }
  main .infra h2 {
    margin: 15px 0 10px;
  }
  main .infra h6 span {
    font-size: 3.6rem;
  }
  /* main .data .itemBox {
    gap: 20px;
  }
  main .data .itemBox .source ul,
  main .data .itemBox .service ul {
    padding: 0 20px;
  } */
  #sv .flexBox p br {
    display: none;
  }
  .subContents #lnb {
    height: 75px;
    /* margin: 60px 0; */
  }
  .subText .font45 {
    font-size: 2.6rem;
  }
  .subText ul {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 10px;
  }
  .subText ul li {
    max-width: calc(50% - 5px);
  }
  .distribution .circle span {
    font-size: 1.5rem;
  }
  .distribution .circle p {
    font-size: 1.8rem;
  }
  .distribution .arrow {
    width: 40px;
  }
  .distribution .list {
    width: 100%;
    gap: 0 5px;
  }
  .distribution .list .circle {
    width: calc((100% - 15px) / 4);
    padding: calc(((100% - 15px) / 4) / 2) 0;
  }
  .distribution .list .circle:nth-child(2) {
    -webkit-transform: translateX(-10px);
            transform: translateX(-10px);
  }
  .distribution .list .circle:nth-child(3) {
    -webkit-transform: translateX(10px);
            transform: translateX(10px);
  }
  .distribution .rightBox .circle {
    width: calc(48% - 20px);
    padding: calc(24% - 10px) 0;
  }
  .consulting .itemBox {
    gap: 40px;
  }
  .consulting .itemBox .item {
    max-width: calc(50% - 20px);
  }
  .vision .subTitle p {
    font-size: 1.7rem;
  }
  .vision .subTitle p br {
    display: none;
  }
  /* footer .contact {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 10px 0;
  }
  footer .contact em {
    display: block;
    width: 62px;
  }
  footer .contact hr {
    display: none;
  } */
}

@media (max-width: 640px) {
  .font60 {
    font-size: calc(var(--fontsize) * 0.52);
  }
  .font50,
  .font45 {
    font-size: calc(var(--fontsize) * 0.56);
  }
  header {
    height: 70px;
  }
  header .logo {
    width: 120px;
  }
  header nav {
    margin: 0 20px 0 auto;
  }
  header .depth1 {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
  header .depth1 > li > a {
    font-size: 1.6rem;
    padding: 4px 0;
  }
  .siteMap .inner {
    max-width: 340px;
    padding: 0 20px;
  }
  .siteMap .top {
    height: 70px;
  }
  .siteMap .logo {
    display: block;
    width: 120px;
  }
  .siteMap nav {
    padding: 20px 0;
  }
  .siteMap .depth1 {
    gap: 20px 0;
  }
  .siteMap .depth1 > li > a {
    font-size: 2.4rem;
  }
  .siteMap .depth2 {
    margin: 20px 0 0;
  }
  .siteMap .depth2 > li > a {
    font-size: 1.7rem;
  }
  main .visual {
    height: 50vh;
  }
  main .visual .slideWrap {
    margin: 18% 0 0;
  }
  main .visual .link li {
    height: 50px;
  }
  main .visual .link a {
    font-size: 1.5rem;
    padding: 0 10px;
  }
  main .visual .link span {
    font-size: 12px;
  }
  main .visual .link li:hover {
    height: 65px;
  }
  main .visual .link li:hover span {
    margin: 10px 0 0;
  }
  main .infra .itemBox {
    -ms-grid-columns: (1fr)[1];
        grid-template-columns: repeat(1, 1fr);
    gap: 20px 0;
  }
  main .infra .item p {
    margin: 10px 0 0;
  }
  main .infra figure {
    width: 50%;
  }
  /* main .data .itemBox {
    gap: 30px 0;
  }
  main .data .itemBox .item {
    width: 100%;
    height: auto;
    -webkit-box-ordinal-group: inherit !important;
        -ms-flex-order: inherit !important;
            order: inherit !important;
    padding: 30px 0;
  }
  main .data .itemBox .item:not(.source) ul li {
    font-size: 1.9rem;
  }
  main .data .itemBox .service ul {
    gap: 10px 0;
  }
  main .data .itemBox .imgBox .img {
    display: none;
  }
  main .data .itemBox .imgBox ul {
    gap: 10px 0;
    padding: 0 20px;
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  main .data .itemBox .imgBox ul li {
    border: 1px solid #E6E6E6;
    border-radius: 50px;
    font-weight: 500;
    padding: 15px 20px;
  }
  main .data .itemBox .technology ul li {
    background: #255CA7;
  }
  main .data .itemBox .lodge ul li {
    background: #213877;
  } */
  #sv {
    height: 260px;
  }
  #sv .flexBox p {
    font-size: 1.7rem;
  }
  .subContents #lnb {
	height: 50px;
  }
  .subTitle {
    margin: 60px 0 40px;
  }
  .subTitle h3 {
    margin: 20px 0 10px;
  }
  .subText {
    padding: 30px 20px;
    margin: 60px 0 80px;
  }
  .subText .font45 {
    font-size: 2.2rem;
  }
  .subText .number {
    padding: 0 15px;
  }
  .subText ol li {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 5px 0;
    padding: 15px 0;
  }
  .subText ol b {
    width: 100%;
  }
  .subText ol p {
    font-size: 1.6rem;
    line-height: 1.3;
  }
  .subText ul li {
    height: 80px;
    font-size: 1.7rem;
  }
  .consulting .itemBox {
    gap: 10px;
  }
  .consulting .itemBox .item {
    max-width: calc(50% - 5px);
  }
  .consulting .itemBox h6 {
    font-size: 1.6rem;
    bottom: 14%;
  }
  .vision {
    padding: 60px 0 0;
  }
  .vision .topImg h3 {
    font-size: 2.1rem;
  }
  .vision .itemBox {
    padding: 60px 0 80px;
  }
  footer .family {
    width: 180px;
  }
  footer .family button {
    height: 40px;
  }
  footer .family ul {
    bottom: 45px;
  }
  footer .family ul li a {
    padding: 6px 20px;
  }
}
