@charset "utf-8";

body, div, ul, li, p, strong, span, b, h1, h2, h3, h4, h5, h6 {
    word-break: keep-all;
    line-height: 1.4;
}
h1, h2, h3, h4, h5, h6 {line-height: 1.3}
img {max-width: 100%;}
video {width: 100%;}
.desc {
    font-size: 24px;
    line-height: 1.6;
}
.more-btn {
    background: #18119A;
    border-radius: 5px;
    max-width: 400px;
    width: 100%;
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 24px;
    font-weight: bold;
    position: relative;
    overflow: hidden;
    transition: all .3s;
}
.more-btn::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    background: radial-gradient(circle, #251DC5FF 50%, transparent 50%);
    transform: translate(-50%, -50%);
    width: 0;
    height: 0;
    transition: width 0.3s ease-out, height 0.3s ease-out;
}
.more-btn b {
    color: #fff;
    z-index: 1;
    position: relative;
}
.more-btn:hover::after {
    width: 200%;
    height: 200%;
}
.admin-btn {
    position: relative;
    z-index: 10;
    margin: 30px auto 0;
    text-align: center;
    font-size: 20px;
    color: #ef2727;
    display: block;
}
.list-wrap {margin-left: 10px;}
.list-wrap li {
    display: flex;
    align-items: center;
}
.list-wrap li::before {
    content: "";
    background: #050505;
    display: block;
    width: 4px;
    height: 4px;
    border-radius: 4px;
}
.list-wrap li > div {
    width: calc(100% - 4px);
    font-size: 24px;
    padding-left: 15px;
}
@media all and (max-width: 767px) {
    .desc {font-size: 15px;}
    .more-btn {
        max-width: 250px;
        height: 50px;
        font-size: 16px;
    }
    .list-wrap li > div {
        font-size: 16px;
        padding-left: 10px;
    }
    .aos-desktop-only[data-aos] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/*main*/
.main {background: #efefef;}
.main section {position: relative;}
.main .title {
    margin-bottom: 70px;
    text-align: center;
}
.main .title h2 {
    font-size: 60px;
    font-weight: normal;
}
.main .title h2 b {font-weight: 800;}
.main .title h2 strong {
    display: block;
    font-size: 92px;
}
.main .title .desc {margin-top: 10px;}
.main .section-0 {
    background: #191919;
    padding: 280px 0 180px;
}
.main .section-0 .txt {
    max-width: 1520px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.main .section-0 .txt .logo {
    flex: 0 1 auto;
    max-width: 1000px;
    width: 100%;
}
.main .section-0 .txt .logo a {
    background: url(/img/assets/logo_white.png) center / cover no-repeat;
    display: block;
    aspect-ratio: 227 / 22.4;
    visibility: hidden;
}
.main .section-0 .txt .bar {
    display: block;
    width: 2px;
    height: 100px;
    background: #fff;
    margin: 0 30px;
}
.main .section-0 .txt p {
    font-size: 18px;
    color: #fff;
}
.main .section-1 {
    background: url(/img/assets/main_section1_bg.jpg) center / cover no-repeat;
    height: 1080px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.main .section-1 .txt .title {margin-bottom: 50px;}
.main .section-1 .txt h2 {color: #fff;}
.main .section-1 .txt .more-btn {margin: 0 auto;}
.main .section-2 {padding: 200px 0;}
.main .section-2 .container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    max-width: 1520px;
}
.main .section-2 .container > div {width: 50%;}
.main .section-2 .title {text-align: left;}
.main .section-3 {
    padding: 180px 0;
    height: 1080px;
}
.main .section-3 .container {
    max-width: 1360px;
    height: 100%;
    position: relative;
}
.main .section-3 .title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    z-index: 1;
}
.main .section-3 ul li {position: absolute;}
.main .section-3 ul li.tag-1 {top: 8%; left: 8%;}
.main .section-3 ul li.tag-2 {top: 18%; left: 60%;}
.main .section-3 ul li.tag-3 {top: 3%; right: 0;}
.main .section-3 ul li.tag-4 {top: 72%; left: 0;}
.main .section-3 ul li.tag-5 {top: 92%; left: 28%;}
.main .section-3 ul li.tag-6 {top: 82%; right: 3%;}
.main .section-3 ul li span {
    font-size: 24px;
    background: rgba(250, 250, 250, 0.1);
    padding: 15px 20px;
    border-radius: 5px;
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}
.main .section-4 {padding: 250px 0;}
.main .section-4 .title h2 img {
    max-width: 420px;
    width: 100%;
}
.main .section-4 ul {
    display: flex;
    flex-wrap: wrap;
}
.main .section-4 ul li {
    width: calc((100% - 60px)/3);
    margin-right: 30px;
    background: #fff;
    box-shadow: 0 10px 50px rgba(0,0,0,0.1);
    border-radius: 6px;
    padding: 80px 20px;
    text-align: center;
}
.main .section-4 ul li:last-child {margin-right: 0;}
.main .section-4 ul li .ico {
    border: 1px solid #F1F6FA;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 40px;
    width: 80px;
    aspect-ratio: 1 / 1;
}
.main .section-4 ul li p {font-size: 40px;}
.main .section-5 {
    background: #fff;
    padding: 180px 0;
}
.main .section-5 .container {position: relative;}
.main .section-5 .txt {
    position: absolute;
    top: 44%;
    transform: translateY(-50%);
    left: 0;
    z-index: 1;
}
.main .section-5 .txt .title {
    text-align: left;
    margin-bottom: 50px;
}
.main .section-5 .txt p {font-size: 40px;}
.main .section-5 .txt strong {
    display: block;
    font-size: 60px;
    color: #18119A;
    margin-top: 50px;
}
.main .section-5 .img {
    text-align: right;
    margin-right: -50px;
}
.main .section-6 {padding: 300px 0 160px;}
.main .section-6 .container {
    position: relative;
    height: 100%;
}
.main .section-6 h3 {
    font-size: 40px;
    margin-bottom: 30px;
    font-weight: normal;
}
.main .section-6 h3 b {font-weight: 800;}
.main .section-6 .top > div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 120px;
}
.main .section-6 .top > div:last-child {margin-bottom: 0;}
.main .section-6 .top .txt {width: 50%;}
.main .section-6 .top .txt img {
    margin-left: -50px;
    margin-bottom: -10px;
}
.main .section-6 .top .img {width: 50%;}
.main .section-6 .bottom {margin-top: 200px;}
.main .section-6 .bottom h3 {
    font-size: 60px;
    margin-bottom: 120px;
    padding: 0 100px;
}
.main .section-6 .bottom .inner {
    background: #FAFAFA;
    max-width: 1520px;
    margin: 0 auto;
    padding: 120px 0;
}
.main .section-6 .bottom .video-wrap {overflow: hidden;}
.main .section-6 .bottom .video-wrap video {
    width: 144%;
    margin: 0 -22%;
}
.main .section-7 {
    padding: 200px 0;
    overflow: hidden;
}
.main .section-7 .slider-controls {
    max-width: 1300px;
    margin: 0 auto 120px;
}
.main .section-7 .slider-controls ul {display: flex;}
.main .section-7 .slider-controls ul li {
    flex: 1;
    font-size: 18px;
    font-weight: 500;
    color: transparent;
    cursor: pointer;
    padding-bottom: 15px;
    border-bottom: 2px solid #B9B9B9;
    text-align: center;
    user-select: none;
}
.main .section-7 .slider-controls ul li.active {
    color: #18119A;
    border-bottom-color: #18119A;
}
.main .section-7 .service-slider {width: 100vw;}
.main .section-7 .swiper-slide .container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
.main .section-7 .swiper-slide .txt {width: 50%;}
.main .section-7 .swiper-slide .txt .title {
    margin-bottom: 0;
    text-align: left;
}
.main .section-7 .swiper-slide .txt .title h2 {margin-bottom: 30px;}
.main .section-7 .swiper-slide .txt .title .desc {line-height: 1.6;}
.main .section-7 .swiper-slide .img {
    width: 50%;
    height: 450px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.main .section-8 {padding: 330px 0;}
.main .section-8 h3 {
    font-size: 40px;
    font-weight: 500;
    text-align: center;
    margin-bottom: 120px;
}
.main .section-8 .partner-list,
.main .section-8 .partner-list * {
    pointer-events: none !important;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
}

.main .section-8 .slick-list {margin: 0 -100px;}
.main .section-8 .slick-slide {
    height: 116px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 100px;
}
.main .section-8 .slick-slide img {
    max-width: 100%;
    max-height: 100%;
}
.main-fab {
    position: fixed;
    right: 30px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 24px;
    height: 42px;
    font-size: 18px;
    font-weight: 500;
    border: 1px solid #18119A;
    background: #18119A;
    color: #fff;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.5s ease;
}
.main-fab.show {
    opacity: 1;
    pointer-events: auto;
}
@media all and (max-width: 1520px) {
    .main .section-0 .txt {padding: 0 80px;}
    .main .section-0 .txt .logo {width: 800px;}
    .main .section-2,
    .main .section-3 {
        padding-left: 80px;
        padding-right: 80px;
    }
    .main .section-3 .title {width: 100%;}
}
@media all and (max-width: 1300px) {
    .main .section-2,
    .main .section-3 {
        padding-left: 0;
        padding-right: 0;
    }
    .main .section-5 .txt {left: 80px;}
}
@media all and (max-width: 1024px) {
    .main .section-0 {padding: 200px 0 150px;}
    .main .section-0 .txt {
        padding: 0 40px;
        flex-wrap: wrap;
        justify-content: start;
    }
    .main .section-0 .txt .logo {
        width: 100%;
        margin-bottom: 80px;
    }
    .main .section-0 .txt .bar {
        height: 60px;
        margin: 0;
    }
    .main .section-0 .txt p {padding-left: 30px;}
    .main .section-2 {padding: 200px 0 150px;}
    .main .section-2 .container > div {
        width: 100%;
        text-align: center;
    }
    .main .section-2 .img img {
        max-width: 650px;
        width: 100%;
    }
    .main .section-3 {padding: 150px 0;}
    .main .section-4 {padding: 150px 0;}
    .main .section-4 ul li p {font-size: 30px;}
    .main .section-5 .txt {
        position: static;
        transform: none;
        text-align: center;
    }
    .main .section-5 .txt .title {text-align: center;}
    .main .section-5 .img {
        text-align: center;
        margin: 50px 0 0;
    }
    .main .section-6 {padding: 200px 0 150px;}
    .main .section-6 .top > div {margin-bottom: 100px;}
    .main .section-6 .top .txt {
        width: 100%;
        text-align: center;
    }
    .main .section-6 .top .img {
        width: 100%;
        text-align: center;
    }
    .main .section-6 .top .img img {
        max-width: 700px;
        width: 100%;
    }
    .main .section-6 .bottom {margin-top: 120px;}
    .main .section-6 .bottom h3 {
        font-size: 40px;
        width: 100%;
        text-align: center;
        margin-bottom: 100px;
        padding: 0;
    }
    .main .section-6 .bottom .inner {padding: 100px 50px;}
    .main .section-7 {padding: 150px 0;}
    .main .section-7 .swiper-slide .txt {width: 100%;}
    .main .section-7 .swiper-slide .txt .title {text-align: center;}
    .main .section-7 .swiper-slide .img {
        width: 100%;
        height: auto;
        margin-top: 80px;
    }
    .main .section-8 {padding: 150px 0 200px;}
    .main .section-8 .slick-list {margin: 0 -50px;}
    .main .section-8 .slick-slide {
        height: 80px;
        margin: 0 50px;
    }
    .main-fab {display: none;}
}
@media all and (max-width: 991px) {
    .main .section-0 .txt .logo a {width: 100%;}
}
@media all and (max-width: 767px) {
    .main .title {margin-bottom: 30px;}
    .main .title h2 {font-size: 30px;}
    .main .title h2 strong {font-size: 40px;}
    .main .section-0 {padding: 55px 0;}
    .main .section-0 .txt {padding: 0 20px;}
    .main .section-0 .txt .logo {margin-bottom: 30px;}
    .main .section-0 .txt .bar {height: 35px;}
    .main .section-0 .txt p {
        padding-left: 15px;
        font-size: 15px;
    }
    .main .section-1 {height: 600px;}
    .main .section-1 .txt .title {margin-bottom: 30px;}
    .main .section-2 {padding: 80px 0;}
    .main .section-3 {
        padding: 0;
        height: 500px;
    }
    .main .section-3 .title {
        position: static;
        transform: none;
    }
    .main .section-3 ul li {
        position: static;
        margin-bottom: 20px;
        text-align: center;
    }
    .main .section-3 ul li:last-child {margin-bottom: 0;}
    .main .section-3 ul li span {
        font-size: 15px;
        padding: 10px 15px;
        display: inline-block;
    }
    .main .section-4 {padding: 80px 0;}
    .main .section-4 .title h2 img {max-width: 200px;}
    .main .section-4 ul li {
        width: 100%;
        margin: 0 0 15px;
        padding: 30px;
    }
    .main .section-4 ul li:last-child {margin-bottom: 0;}
    .main .section-4 ul li .ico {margin-bottom: 20px;}
    .main .section-4 ul li p {font-size: 20px;}
    .main .section-5 {padding: 80px 0;}
    .main .section-5 .txt .title {margin-bottom: 20px;}
    .main .section-5 .txt p {font-size: 20px;}
    .main .section-5 .txt strong {
        font-size: 30px;
        margin-top: 20px;
    }
    .main .section-5 .img {margin-top: 30px;}
    .main .section-6 {padding: 80px 0;}
    .main .section-6 h3 {
        font-size: 24px;
        margin-bottom: 15px;
    }
    .main .section-6 .top .txt img {
        width: 100px;
        margin-left: -20px;
    }
    .main .section-6 .top > div {margin-bottom: 30px;}
    .main .section-6 .top .img img {max-width: 300px;}
    .main .section-6 .bottom {margin-top: 50px;}
    .main .section-6 .bottom .inner {padding: 40px 20px;}
    .main .section-6 .bottom h3 {
        font-size: 24px !important;
        margin-bottom: 40px !important;
    }
    .main .section-6 .bottom .video-wrap video {
        width: 153%;
        margin: 0 -25%;
    }
    .main .section-7 {padding: 0;}
    .main .section-7 .slider-controls {margin-bottom: 50px;}
    .main .section-7 .slider-controls ul li {
        font-size: 15px;
        padding: 0 5px 10px;
    }
    .main .section-7 .swiper-slide .txt .title h2 {margin-bottom: 10px;}
    .main .section-7 .swiper-slide .img {margin-top: 30px;}
    .main .section-7 .swiper-slide .img img {
        max-width: 280px;
        max-height: 220px;
    }
    .main .section-8 {padding: 80px 0;}
    .main .section-8 h3 {
        font-size: 24px;
        margin-bottom: 50px;
    }
    .main .section-8 .slick-list {margin: 0 -30px;}
    .main .section-8 .slick-slide {
        height: 40px;
        margin: 0 30px;
    }
    .main .section-8 .slick-slide img {
        max-width: 180px;
        max-height: 30px;
    }
}

/*sub*/
.sub section {position: relative;}
.sub .title {margin-bottom: 50px;}
.sub .title h3 {
    font-size: 60px;
    font-weight: 800;
    color: #fff;
}
.sub .title h4 {
    font-size: 40px;
    font-weight: 800;
}
@media all and (max-width: 767px) {
    .sub .title {margin-bottom: 30px;}
    .sub .title h3 {font-size: 30px;}
    .sub .title h4 {font-size: 24px;}
}

/*pricing*/
.sub-pricing .section-1 {padding-bottom: 280px;}
.sub-pricing .section-1 .service-list {
    display: flex;
    flex-wrap: wrap;
}
.sub-pricing .section-1 .service-list > li {width: 20%;}
.sub-pricing .section-1 .service-list > li .ico {
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.sub-pricing .section-1 .service-list > li h3 {
    font-size: 40px;
    margin: 40px 0 20px;
}
.sub-pricing .section-1 .service-list > li h3 span {
    font-weight: normal;
    font-size: 24px;
    margin-left: 6px;
}
.sub-pricing .section-2 {
    background: #18119A;
    padding: 120px 0;
}
.sub-pricing .section-2 .container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
.sub-pricing .section-2 .container > div {width: 50%;}
.sub-pricing .section-2 .txt .more-btn {
    background: #050505;
    color: #fff;
    height: 45px;
    font-size: 18px;
    max-width: 330px;
}
.sub-pricing .section-2 .txt .more-btn::after {background: radial-gradient(circle, #151515 50%, transparent 50%);}
.sub-pricing .section-2 .txt .more-btn b {font-weight: 500;}

/* 계산기 메인 컨테이너 */
.sub-pricing .calculator-wrapper {
    width: 320px;
    aspect-ratio: 320 / 400;
    position: relative;
    animation: floatAnimation 4s ease-in-out infinite;
    margin: 0 auto;
}
@keyframes floatAnimation {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    25% { transform: translateY(-8px) rotate(-1deg); }
    75% { transform: translateY(5px) rotate(1deg); }
}

/* 계산기 본체 */
.sub-pricing .calculator-body {
    width: 100%;
    height: 100%;
    background: linear-gradient(145deg, #f0f4f8 0%, #dde4ed 100%);
    border-radius: 28px;
    padding: 35px 30px;
    box-shadow:
            0 25px 50px rgba(0,0,0,0.08),
            0 10px 20px rgba(0,0,0,0.04),
            inset 0 1px 2px rgba(255,255,255,0.9);
    position: relative;
    overflow: hidden;
}

/* 계산기 상단 디스플레이 */
.sub-pricing .calc-display {
    width: 100%;
    height: 70px;
    background: linear-gradient(135deg, #2d3748 0%, #1a202c 100%);
    border-radius: 12px;
    padding: 15px 20px;
    margin-bottom: 30px;
    position: relative;
    overflow: hidden;
    box-shadow:
            inset 0 2px 4px rgba(0,0,0,0.3),
            0 1px 0 rgba(255,255,255,0.1);
}

/* 숫자 디스플레이 */
.sub-pricing .display-value {
    color: #18119A;
    font-size: 28px;
    font-weight: 700;
    font-family: 'Monaco', 'Courier New', monospace;
    text-align: right;
    position: relative;
    height: 32px;
    overflow: hidden;
    margin-top: 15px;
}
.sub-pricing .number-roller {
    position: absolute;
    right: 0;
    animation: rollNumbers 4s ease-in-out infinite;
}
@keyframes rollNumbers {
    0%, 10% { transform: translateY(0); }
    25% { transform: translateY(-32px); }
    50% { transform: translateY(-64px); }
    75% { transform: translateY(-96px); }
    90%, 100% { transform: translateY(-96px); }
}
.sub-pricing .number-item {
    height: 32px;
    line-height: 32px;
}

/* 스캔 라인 효과 */
.sub-pricing .scan-line {
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg,
    transparent,
    rgba(24,17,154,0.3),
    transparent);
    animation: scanEffect 3s linear infinite;
}
@keyframes scanEffect {
    0% { left: -100%; }
    100% { left: 100%; }
}

/* 버튼 그리드 */
.sub-pricing .button-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}
.sub-pricing .calc-btn {
    aspect-ratio: 1;
    background: white;
    border-radius: 12px;
    position: relative;
    box-shadow:
            0 3px 6px rgba(0,0,0,0.05),
            0 1px 2px rgba(0,0,0,0.08);
    transition: all 0.2s ease;
    cursor: pointer;
}
.sub-pricing .calc-btn::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 6px;
    height: 6px;
    background: #cbd5e0;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: all 0.2s ease;
}

/* 활성 버튼 */
.sub-pricing .calc-btn:nth-child(4n) {
    background: linear-gradient(135deg, #18119A 0%, #120d7a 100%);
}
.sub-pricing .calc-btn:nth-child(4n)::before {
    background: white;
    width: 8px;
    height: 8px;
}

/* 버튼 애니메이션 */
.sub-pricing .calc-btn:nth-child(1) { animation: btnPress 4s ease-in-out infinite 0.1s; }
.sub-pricing .calc-btn:nth-child(5) { animation: btnPress 4s ease-in-out infinite 0.3s; }
.sub-pricing .calc-btn:nth-child(9) { animation: btnPress 4s ease-in-out infinite 0.5s; }
.sub-pricing .calc-btn:nth-child(2) { animation: btnPress 4s ease-in-out infinite 0.7s; }
.sub-pricing .calc-btn:nth-child(6) { animation: btnPress 4s ease-in-out infinite 0.9s; }
.sub-pricing .calc-btn:nth-child(10) { animation: btnPress 4s ease-in-out infinite 1.1s; }
.sub-pricing .calc-btn:nth-child(3) { animation: btnPress 4s ease-in-out infinite 1.3s; }
.sub-pricing .calc-btn:nth-child(7) { animation: btnPress 4s ease-in-out infinite 1.5s; }
.sub-pricing .calc-btn:nth-child(11) { animation: btnPress 4s ease-in-out infinite 1.7s; }
.sub-pricing .calc-btn:nth-child(4) { animation: btnPress 4s ease-in-out infinite 1.9s; }
.sub-pricing .calc-btn:nth-child(8) { animation: btnPress 4s ease-in-out infinite 2.1s; }
.sub-pricing .calc-btn:nth-child(12) { animation: btnPress 4s ease-in-out infinite 2.3s; }
@keyframes btnPress {
    0%, 95%, 100% {
        transform: scale(1);
        box-shadow: 0 3px 6px rgba(0,0,0,0.05);
    }
    97% {
        transform: scale(0.92);
        box-shadow: 0 1px 3px rgba(0,0,0,0.08);
    }
}

/* 하단 차트 */
.sub-pricing .chart-section {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    height: 80px;
    padding: 0 5px;
}
.sub-pricing .chart-bar {
    width: 22%;
    background: linear-gradient(to top, #18119A, #2319c4);
    border-radius: 6px 6px 0 0;
    position: relative;
    transform-origin: bottom;
    box-shadow: 0 -2px 8px rgba(24,17,154,0.2);
}
.sub-pricing .chart-bar-1 {
    height: 100%;
    animation: barReduce1 4s ease-in-out infinite;
}
.sub-pricing .chart-bar-2 {
    height: 85%;
    animation: barReduce2 4s ease-in-out infinite;
}
.sub-pricing .chart-bar-3 {
    height: 70%;
    animation: barReduce3 4s ease-in-out infinite;
}
.sub-pricing .chart-bar-4 {
    height: 55%;
    animation: barReduce4 4s ease-in-out infinite;
}
@keyframes barReduce1 {
    0%, 20% { height: 100%; }
    80%, 100% { height: 75%; }
}
@keyframes barReduce2 {
    0%, 20% { height: 85%; }
    80%, 100% { height: 60%; }
}
@keyframes barReduce3 {
    0%, 20% { height: 70%; }
    80%, 100% { height: 45%; }
}
@keyframes barReduce4 {
    0%, 20% { height: 55%; }
    80%, 100% { height: 30%; }
}

/* 플로팅 파티클 */
.sub-pricing .particles {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none;
    overflow: hidden;
}
.sub-pricing .particle {
    position: absolute;
    border-radius: 50%;
    animation: particleFloat 6s ease-in-out infinite;
}
.sub-pricing .particle-1 {
    width: 40px;
    height: 40px;
    background: rgba(24,17,154,0.15);
    bottom: -40px;
    left: 20%;
    animation-delay: 0s;
}
.sub-pricing .particle-2 {
    width: 30px;
    height: 30px;
    background: rgba(24,17,154,0.2);
    bottom: -30px;
    right: 25%;
    animation-delay: 2s;
}
.sub-pricing .particle-3 {
    width: 35px;
    height: 35px;
    background: rgba(24,17,154,0.18);
    bottom: -35px;
    left: 60%;
    animation-delay: 4s;
}
@keyframes particleFloat {
    0% {
        transform: translateY(0) scale(0);
        opacity: 0;
    }
    20% {
        transform: translateY(-50px) scale(1);
        opacity: 1;
    }
    80% {
        transform: translateY(-250px) scale(1);
        opacity: 1;
    }
    100% {
        transform: translateY(-350px) scale(0.3);
        opacity: 0;
    }
}

/* 배경 장식 요소 */
.sub-pricing .bg-decoration {
    position: absolute;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(24,17,154,0.1), transparent);
    animation: bgPulse 4s ease-in-out infinite;
}
.sub-pricing .bg-decoration-1 {
    top: -50px;
    right: -50px;
    width: 150px;
    height: 150px;
}
.sub-pricing .bg-decoration-2 {
    bottom: -30px;
    left: -30px;
    width: 100px;
    height: 100px;
    animation-delay: 2s;
}
@keyframes bgPulse {
    0%, 100% { transform: scale(1); opacity: 0.5; }
    50% { transform: scale(1.1); opacity: 0.8; }
}
@media all and (max-width: 991px) {
    .sub-pricing .section-1 .service-list {margin-bottom: -80px;}
    .sub-pricing .section-1 .service-list > li {
        width: 33.33%;
        margin-bottom: 80px;
    }
    .sub-pricing .section-2 .container > div {width: 100%;}
    .sub-pricing .section-2 .txt {
        text-align: center;
        margin-bottom: 80px;
    }
    .sub-pricing .section-2 .txt .more-btn {margin: 0 auto;}
}
@media all and (max-width: 767px) {
    .sub-pricing .section-1 {padding-bottom: 80px;}
    .sub-pricing .section-1 .service-list {margin-bottom: -40px;}
    .sub-pricing .section-1 .service-list > li {
        width: 50%;
        margin-bottom: 40px;
    }
    .sub-pricing .section-1 .service-list > li .ico {
        width: 50px;
        height: 40px;
        margin: 0 auto;
    }
    .sub-pricing .section-1 .service-list > li .ico img {
        max-width: 100%;
        max-height: 100%;
    }
    .sub-pricing .section-1 .service-list > li h3 {
        font-size: 24px;
        margin: 12px 0 10px;
        text-align: center;
    }
    .sub-pricing .section-1 .service-list > li h3 span {font-size: 16px;}
    .sub-pricing .section-1 .service-list > li .list-wrap {
        width: fit-content;
        margin: 0 auto;
    }
    .sub-pricing .section-2 {padding: 80px 0;}
    .sub-pricing .section-2 .txt {margin-bottom: 50px;}
    .sub-pricing .section-2 .txt .more-btn {
        max-width: 250px;
        font-size: 16px;
    }
    .sub-pricing .calculator-wrapper {width: 200px;}
    .sub-pricing .calculator-body {padding: 25px 20px;}
}

/*about*/
.sub-about .section-1 {
    background: url(/img/assets/about_section1_bg.jpg) center / cover no-repeat;
    padding: 200px 0 280px;
    color: #fff;
}
.sub-about .section-2 {padding: 150px 0;}
.sub-about .section-2 .title {
    text-align: center;
    margin-bottom: 80px;
}
.sub-about .section-2 .box-wrap {
    display: flex;
    flex-wrap: wrap;
}
.sub-about .section-2 .box-wrap > div {
    width: calc((100% - 20px)/2);
    margin-right: 20px;
    text-align: center;
    background: #fff;
    box-shadow: 0 10px 50px rgb(0,0,0,0.15);
    padding: 70px;
}
.sub-about .section-2 .box-wrap > div:last-child {margin-right: 0;}
.sub-about .section-2 .box-wrap h5 {
    font-size: 40px;
    font-weight: 800;
    margin-bottom: 20px;
}
.sub-about .section-2 .box-wrap p {
    font-size: 18px;
    color: #7b7b7b;
}
.sub-about .section-2 .box-wrap table {
    width: 100%;
    border-collapse: collapse;
    max-width: 356px;
    margin: 50px auto 0;
}
.sub-about .section-2 .box-wrap table th,
.sub-about .section-2 .box-wrap table td {padding: 15px 0;}
.sub-about .section-2 .box-wrap table th {
    font-size: 18px;
    color: #7b7b7b;
    text-align: left;
    font-weight: normal;
}
.sub-about .section-2 .box-wrap table td {
    font-size: 24px;
    font-weight: 500;
    text-align: right;
}
.sub-about .section-3 {
    background: #fff;
    padding: 150px 0;
}
.sub-about .section-3 .container {
    display: flex;
    flex-wrap: wrap;
    align-items: start;
}
.sub-about .section-3 .title {width: 220px;}
.sub-about .section-3 .content {
    width: calc(100% - 220px);
    padding-top: 10px;
}
.sub-about .section-3 .content p {
    margin-bottom: 35px;
    font-size: 24px;
}
.sub-about .section-3 .content p b {
    margin-right: 20px;
    font-weight: 600;
}
.sub-about .section-3 .content .map {
    width: 100%;
    height: 450px;
    overflow: hidden;
}
.sub-about .section-3 .content .map iframe {
    width: 100% !important;
    height: 100% !important;
}
@media all and (max-width: 767px) {
    .sub-about .section-1 {padding: 100px 0 150px;}
    .sub-about .section-2 {padding: 80px 0;}
    .sub-about .section-2 .title {margin-bottom: 30px;}
    .sub-about .section-2 .box-wrap > div {
        width: 100%;
        margin: 0 0 15px;
        padding: 30px;
    }
    .sub-about .section-2 .box-wrap > div:last-child {margin-bottom: 0;}
    .sub-about .section-2 .box-wrap h5 {
        font-size: 24px;
        margin-bottom: 10px;
    }
    .sub-about .section-2 .box-wrap p {font-size: 15px;}
    .sub-about .section-2 .box-wrap table {margin-top: 20px;}
    .sub-about .section-2 .box-wrap table th, .sub-about .section-2 .box-wrap table td {padding: 5px 0;}
    .sub-about .section-2 .box-wrap table th {font-size: 15px;}
    .sub-about .section-2 .box-wrap table td {font-size: 18px;}
    .sub-about .section-3 {padding: 80px 0;}
    .sub-about .section-3 .title {width: 100%;}
    .sub-about .section-3 .content {
        width: 100%;
        padding: 0;
    }
    .sub-about .section-3 .content p {
        font-size: 16px;
        margin-bottom: 20px;
    }
    .sub-about .section-3 .content p b {
        display: block;
        margin: 0 0 5px;
    }
}