:root{
    --bg:#f5f7fb;
    --bg2:#eef3ff;
    --text:#1d2433;
    --muted:#6f7a8f;
    --line:#e6ebf2;
    --primary:#2f5bff;
    --primary2:#1b44db;
    --dark:#1f2937;
    --card:#ffffff;
    --shadow:0 20px 60px rgba(31, 41, 55, 0.10);
    --radius-xl:28px;
    --radius-lg:20px;
    --radius-md:14px;
    --max:1320px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    font-family:'Noto Sans KR', Arial, "맑은 고딕", "Malgun Gothic", sans-serif;
    color:var(--text);
    background:
        radial-gradient(circle at top center, rgba(47,91,255,.08), transparent 35%),
        linear-gradient(180deg, #f8fbff 0%, #f5f7fb 38%, #ffffff 100%);
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,textarea,select{font:inherit}

.container{
    width:min(calc(100% - 32px), var(--max));
    margin:0 auto;
}
/* header */
.top-wrap{
    position:sticky;
    top:0;
    z-index:100;
    padding:12px 0 0;
    backdrop-filter:blur(10px);
}

.topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    min-height:88px;
    padding:16px 22px;
    background:rgba(255,255,255,.88);
    border:1px solid rgba(225,232,242,.9);
    border-radius:30px;
    box-shadow:0 10px 35px rgba(30,41,59,.06);
}

.brand{
    display:flex;
    align-items:center;
    gap:12px;
    font-weight:800;
    font-size:34px;
    letter-spacing:-1px;
    color:#173b86;
    white-space:nowrap;
}
.brand-logo{
    height:36px; /* 원하는 크기로 조절 */
    display:block;
}

.brand{
    display:flex;
    align-items:center;
}
.brand-mark{
    width:34px;
    height:34px;
    border-radius:10px;
    background:linear-gradient(135deg, #183981 0%, #2f5bff 100%);
    position:relative;
    overflow:hidden;
}

.brand-mark:before,
.brand-mark:after{
    content:"";
    position:absolute;
    background:#fff;
    border-radius:999px;
    opacity:.95;
}

.brand-mark:before{
    width:22px;
    height:8px;
    left:6px;
    top:6px;
    transform:rotate(-38deg);
}
.brand-mark:after{
    width:22px;
    height:8px;
    left:6px;
    bottom:6px;
    transform:rotate(-38deg);
}

.nav{
    display:flex;
    align-items:center;
    gap:32px;
    flex:1;
    margin-left:20px;
}

.nav a{
    font-size:17px;
    font-weight:700;
    color:#5d6880;
}

.nav a:hover{color:#1d2433}

.nav-actions{
    display:flex;
    align-items:center;
    gap:12px;
    white-space:nowrap;
}

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:54px;
    padding:0 24px;
    border:0;
    border-radius:16px;
    cursor:pointer;
    transition:.22s ease;
    font-weight:800;
}

.btn:hover{transform:translateY(-1px)}

.btn-outline{
    background:linear-gradient(180deg,#8c93a8,#6a7187);
    color:#fff;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.35);
}
.btn-primary{
    background:linear-gradient(180deg,#4772ff,#2449d7);
    color:#fff;
    box-shadow:0 12px 30px rgba(47,91,255,.28);
}
.btn-dark{
    background:linear-gradient(180deg,#3c4655,#202833);
    color:#fff;
    box-shadow:0 12px 28px rgba(31,41,55,.18);
}

.btn.small{
    height:46px;
    padding:0 20px;
    border-radius:14px;
    font-size:15px;
}

.full-btn{width:100%}

.mobile-menu-btn{display:none}

.mobile-menu{
    display:none;
    margin-top:10px;
    background:#fff;
    border:1px solid #e5ebf4;
    border-radius:20px;
    padding:14px;
    box-shadow:0 16px 32px rgba(31,41,55,.08);
}

.mobile-menu-list{
    display:grid;
    gap:10px;
}

.mobile-menu-list a{
    padding:12px 14px;
    border-radius:14px;
    background:#fff;
    font-weight:500;
	font-size:16px; /* 여기 추가 */
}

.mobile-menu-list .mobile-login{
    background:#eef3ff;
    color:#2449d7;
    font-weight:600;
}

/* hero */
.hero{
    position:relative;
    overflow:hidden;
    padding:72px 0 44px;
}

.hero-bg{
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        radial-gradient(circle at 50% 30%, rgba(47,91,255,.12), transparent 22%),
        linear-gradient(180deg, rgba(47,91,255,.00) 0%, rgba(47,91,255,.05) 45%, rgba(47,91,255,0) 100%);
}

.hero-lines{
    position:absolute;
    left:50%;
    top:180px;
    transform:translateX(-50%);
    width:min(1100px, 90vw);
    height:520px;
    pointer-events:none;
    opacity:.7;
    background:
        linear-gradient(180deg, rgba(47,91,255,.00) 0%, rgba(47,91,255,.12) 70%, rgba(47,91,255,0) 100%);
    mask-image:repeating-linear-gradient(to right, rgba(0,0,0,1) 0 3.5%, rgba(0,0,0,0) 3.5% 8%);
    filter:blur(14px);
}

.hero-inner{
    position:relative;
    z-index:2;
    text-align:center;
    padding-top:80px;
}

.eyebrow{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 14px;
    border-radius:999px;
    background:rgba(47,91,255,.08);
    color:#2f5bff;
    font-size:14px;
    font-weight:800;
    margin-bottom:24px;
}

h1{
    margin:0;
    font-size:70px;
    line-height:1.16;
    letter-spacing:-3px;
    font-weight:800;
    color:#1b2230;
}

.accent{color:var(--primary)}

.hero-sub{
    margin:26px auto 0;
    max-width:820px;
    color:#707b92;
    font-size:28px;
    line-height:1.55;
    letter-spacing:-1px;
    font-weight:500;
}

.hero-actions{
    margin-top:34px;
    display:flex;
    justify-content:center;
    gap:18px;
    flex-wrap:wrap;
}

/* reveal */
.reveal-up{
    opacity:0;
    transform:translateY(50px);
    transition:
        opacity .8s ease,
        transform .8s cubic-bezier(.2,.65,.2,1);
    will-change:opacity, transform;
}
.reveal-up.is-visible{
    opacity:1;
    transform:translateY(0);
}
.reveal-up.delay-1{transition-delay:.12s}
.reveal-up.delay-2{transition-delay:.24s}
.reveal-up.delay-3{transition-delay:.36s}

/* common buttons */
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:54px;
    padding:0 24px;
    border:0;
    border-radius:16px;
    cursor:pointer;
    transition:.22s ease;
    font-weight:800;
}
.btn:hover{transform:translateY(-1px)}
.btn-outline{
    background:linear-gradient(180deg,#8c93a8,#6a7187);
    color:#fff;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.35);
}
.btn-primary{
    background:linear-gradient(180deg,#4772ff,#2449d7);
    color:#fff;
    box-shadow:0 12px 30px rgba(47,91,255,.28);
}
.btn-dark{
    background:linear-gradient(180deg,#3c4655,#202833);
    color:#fff;
    box-shadow:0 12px 28px rgba(31,41,55,.18);
}
.full-btn{width:100%}

/* hero */
.hero{
    position:relative;
    overflow:hidden;
    padding:8px 0 54px;
}
.hero-bg{
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        radial-gradient(circle at 50% 30%, rgba(47,91,255,.12), transparent 22%),
        linear-gradient(180deg, rgba(47,91,255,0) 0%, rgba(47,91,255,.05) 45%, rgba(47,91,255,0) 100%);
}
.hero-lines{
    position:absolute;
    left:50%;
    top:180px;
    transform:translateX(-50%);
    width:min(1100px, 90vw);
    height:520px;
    pointer-events:none;
    opacity:.7;
    background:
        linear-gradient(180deg, rgba(47,91,255,0) 0%, rgba(47,91,255,.12) 70%, rgba(47,91,255,0) 100%);
    mask-image:repeating-linear-gradient(to right, rgba(0,0,0,1) 0 3.5%, rgba(0,0,0,0) 3.5% 8%);
    filter:blur(14px);
}
.hero-inner{
    position:relative;
    z-index:2;
    text-align:center;
    padding-top:46px;
}
.eyebrow{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 14px;
    border-radius:999px;
    background:rgba(47,91,255,.08);
    color:#2f5bff;
    font-size:14px;
    font-weight:800;
    margin-bottom:24px;
}
h1{
    margin:0;
    font-size:60px;
    line-height:1.15;
    letter-spacing:-3px;
    font-weight:600;
    color:#1b2230;
}
.accent{color:var(--primary)}
.hero-sub{
    margin:26px auto 0;
    max-width:900px;
    color:#707b92;
    font-size:25px;
    line-height:1.55;
    letter-spacing:-1px;
    font-weight:500;
}
.hero-actions{
    margin-top:34px;
    display:flex;
    justify-content:center;
    gap:18px;
    flex-wrap:wrap;
}

/* sections */
.section{
    padding:92px 0;
}
.section-alt{
    background:linear-gradient(180deg,#f7faff 0%, #ffffff 100%);
}
.section-head{
    text-align:center;
    margin-bottom:54px;
}
.section-kicker{
    color:#2f5bff;
    font-size:15px;
    font-weight:600;
    margin-bottom:12px;
}
.section-kicker.left{text-align:left}
.section-title{
    margin:0;
    font-size:44px;
    line-height:1.22;
    letter-spacing:-1.9px;
    font-weight:400;
}
.section-desc{
    max-width:900px;
    margin:18px auto 0;
    color:#1b2230;
    font-size:16px;
    line-height:1.75;
    font-weight:500;
}

/* feature cards */
.feature-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:22px;
}
.feature-card{
    background:rgba(255,255,255,.9);
    border:1px solid #e5ebf4;
    border-radius:24px;
    padding:28px;
    box-shadow:var(--shadow);
    transition:all .25s ease;
}
.feature-card:hover{
    transform:translateY(-6px);
    box-shadow:0 25px 60px rgba(47,91,255,.15);
}
.feature-icon{
    width:56px;
    height:56px;
    border-radius:16px;
    background:linear-gradient(135deg, rgba(47,91,255,.12), rgba(47,91,255,.03));
    display:flex;
    align-items:center;
    justify-content:center;
    color:#2f5bff;
    font-size:20px;
    font-weight:700;
    margin-bottom:18px;
}
.feature-title{
    color:#1b2230;
    font-size:20px;
    font-weight:600;
    letter-spacing:-1px;
    margin-bottom:12px;
}
.feature-text{
    color:#465066;
    line-height:1.8;
    font-size:15px;
    font-weight:500;
}

.preview-shot{
    margin-top:16px;
}
.preview-shot img{
    width:100%;
    border-radius:16px;
    display:block;
    border:1px solid #e7edf7;
    box-shadow:0 16px 40px rgba(31,41,55,.08);
    transition:transform .35s ease, box-shadow .35s ease;
    background:#fff;
}
.feature-card:hover .preview-shot img{
    transform:scale(1.02);
    box-shadow:0 20px 50px rgba(47,91,255,.12);
}

/* process cards */
.price-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:22px;
}
.price-card{
    background:#fff;
    border:1px solid #e5ebf4;
    border-radius:24px;
    padding:30px;
    box-shadow:var(--shadow);
    transition:all .25s ease;
}
.price-card:hover{
    transform:translateY(-6px);
    box-shadow:0 24px 54px rgba(47,91,255,.12);
}
.price-card.recommend{
    border:2px solid #2f5bff;
    transform:translateY(-8px);
}
.price-name{
    font-size:18px;
    font-weight:700;
    margin-bottom:10px;
    color:#2f5bff;
}
.price-amount{
    font-size:34px;
    font-weight:600;
    letter-spacing:-1.8px;
    margin-bottom:8px;
}
.price-note{
    color:#7b879d;
    font-size:14px;
    font-weight:700;
    margin-bottom:22px;
}
.price-list{
    display:grid;
    gap:12px;
    margin-bottom:24px;
}
.price-list div{
    padding:12px 14px;
    border-radius:14px;
    background:#f8fbff;
    color:#5f6c84;
    font-size:14px;
    font-weight:500;
}

/* contact */
.cta-wrap{
    position:relative;
    overflow:hidden;
}
.cta-box{
    background:
        radial-gradient(circle at top right, rgba(47,91,255,.12), transparent 32%),
        linear-gradient(180deg, #ffffff 0%, #f6f9ff 100%);
    border:1px solid #e5ebf4;
    border-radius:34px;
    box-shadow:var(--shadow);
    padding:38px;
}
.cta-grid{
    display:grid;
    grid-template-columns:1fr 520px;
    gap:30px;
    align-items:start;
}
.cta-copy h3{
    margin:0 0 14px;
    font-size:38px;
    line-height:1.28;
    letter-spacing:-1.6px;
    font-weight:700;
}
.cta-copy p{
    margin:0;
    color:#708099;
    font-size:18px;
    line-height:1.8;
    font-weight:500;
}
.trial-steps{
    margin-top:28px;
    display:grid;
    gap:12px;
}
.trial-steps div{
    padding:16px 18px;
    border-radius:18px;
    background:#f8fbff;
    border:1px solid #e6edf7;
    font-weight:500;
    color:#49566e;
}

.form-card{
    background:#0f172a;
    color:#fff;
    border-radius:26px;
    padding:26px;
    box-shadow:0 22px 50px rgba(15,23,42,.25);
}
.form-card h4{
    margin:0 0 18px;
    font-size:26px;
    letter-spacing:-1px;
}
.form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}
.field{
    display:flex;
    flex-direction:column;
    gap:8px;
}
.field.full{
    grid-column:1 / -1;
}
.label{
    font-size:13px;
    font-weight:500;
    color:#c4d0e6;
}
.input,
.textarea{
    width:100%;
    border:1px solid rgba(255,255,255,.14);
    background:rgba(255,255,255,.08);
    color:#fff;
    border-radius:14px;
    padding:14px 16px;
    outline:none;
}
.input::placeholder,
.textarea::placeholder{
    color:#9fb0ca;
}
.input:focus,
.textarea:focus{
    border-color:#5d88ff;
    background:rgba(255,255,255,.11);
}
.textarea{
    min-height:140px;
    resize:vertical;
}
.submit-row{
    margin-top:18px;
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
}
.submit-btn{min-width:180px}

.alert{
    margin-bottom:18px;
    padding:14px 16px;
    border-radius:14px;
    font-size:14px;
    font-weight:500;
}
.alert.ok{
    background:#ecfdf5;
    color:#166534;
    border:1px solid #bbf7d0;
}
.alert.error{
    background:#fef2f2;
    color:#991b1b;
    border:1px solid #fecaca;
}
/* footer */
.footer{
    background:#0f172a;
    color:#cbd5e1;
    margin-top:5px;
    padding:10px 0 30px;
}

.footer-grid{
    display:grid;
    grid-template-columns:2fr 1fr 1fr 1fr 1.5fr;
    gap:40px;
}

.footer-col{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.footer-brand{
    font-size:22px;
    font-weight:900;
    color:#fff;
    margin-bottom:10px;
}

.footer-title{
    font-size:16px;
    font-weight:800;
    color:#94a3b8;
    margin-bottom:10px;
}

.footer-col a{
    color:#cbd5e1;
    font-size:14px;
    text-decoration:none;
}

.footer-col a:hover{
    color:#fff;
}

.footer-info div{
    font-size:15px;
	font-weight:400;
    color:#94a3b8;
    line-height:1.7;
}

.footer-cert img{
    width:120px;
    border-radius:8px;
    background:#fff;
    padding:6px;
}

.footer-bottom{
    margin-top:40px;
    padding-top:20px;
    border-top:1px solid rgba(255,255,255,0.08);
    text-align:center;
    font-size:13px;
    color:#64748b;
}
/* responsive */
@media (max-width: 1200px){
    h1{font-size:650px}
    .hero-sub{font-size:25px}
    .section-title{font-size:46px}
    .stats-grid{grid-template-columns:repeat(3, minmax(0, 1fr))}
    .cta-grid{grid-template-columns:1fr}
}

@media (max-width: 992px){
    .nav{display:none}
    .mobile-menu-btn{
        display:inline-flex;
        width:48px;
        height:48px;
        border-radius:14px;
        border:1px solid #e2e8f0;
        background:#fff;
        align-items:center;
        justify-content:center;
        font-size:18px;
        font-weight:700;
    }
    .brand{font-size:28px}
    .hero-inner{padding-top:50px}
    h1{
        font-size:52px;
        letter-spacing:-2px;
    }
    .hero-sub{font-size:22px}
    .section-title{font-size:40px}
    .feature-title{font-size:22px}
    .feature-grid,
    .price-grid{
        grid-template-columns:1fr;
    }
    .dashboard-body{grid-template-columns:1fr}
    .dashboard-side{display:none}
    .stats-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}
}

@media (max-width: 640px){
    .container{width:min(calc(100% - 20px), var(--max))}
    .topbar{
        min-height:auto;
        padding:14px;
        border-radius:22px;
    }
    .brand{font-size:22px}
    .nav-actions{gap:8px}
    .nav-actions .btn-outline,
    .nav-actions .btn-dark{
        display:none;
    }
    .btn{
        height:48px;
        padding:0 18px;
        border-radius:14px;
        font-size:15px;
    }
    .hero{padding:36px 0 24px}
    h1{
        font-size:36px;
        line-height:1.3;
        letter-spacing:-1.4px;
    }
    .hero-sub{
        font-size:19px;
        line-height:1.7;
        margin-top:18px;
    }
    .hero-actions{
        gap:12px;
        flex-direction:column;
        align-items:center;
    }
    .hero-actions .btn{
        width:100%;
        max-width:280px;
    }
    .section{padding:70px 0}
    .section-title{
        font-size:30px;
        line-height:1.35;
    }
    .section-desc{
        font-size:16px;
        line-height:1.7;
    }
    .dashboard-main{padding:18px}
    .dash-title{font-size:24px}
    .stat-value{font-size:34px}
    .stats-grid{grid-template-columns:1fr}
    .feature-title{font-size:20px}
    .feature-text{
        font-size:15px;
        line-height:1.7;
    }
    #preview .feature-card img{
        height:auto;
        max-height:420px;
        object-fit:contain;
    }
    .cta-box{padding:20px}
    .cta-copy h3{font-size:30px}
    .form-card{padding:18px}
    .form-grid{grid-template-columns:1fr}
    .footer-box{flex-direction:column}
}

@media (max-width: 992px){
    .footer-grid{
        grid-template-columns:1fr 1fr;
        gap:30px;
    }

    .footer-cert{
        grid-column:1 / -1;
    }
}

@media (max-width: 640px){
    .footer{
        padding:40px 0 20px;
    }

    .footer-grid{
        grid-template-columns:1fr;
        gap:20px;
    }

    .footer-cert{
        text-align:center;
    }

    .footer-cert img{
        margin:0 auto;
    }
}
body.modal-open{
    overflow:hidden;
}

/* footer */
.footer{
    background:#0f172a;
    color:#cbd5e1;
    margin-top:80px;
    padding:60px 0 30px;
}

.footer-grid{
    display:grid;
    grid-template-columns:2fr 1fr 1fr 1fr 1.2fr;
    gap:40px;
}

.footer-col{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.footer-brand{
    font-size:22px;
    font-weight:900;
    color:#fff;
    margin-bottom:10px;
}

.footer-title{
    font-size:15px;
    font-weight:800;
    color:#94a3b8;
    margin-bottom:10px;
}

.footer-col a{
    color:#cbd5e1;
    font-size:14px;
    text-decoration:none;
}

.footer-col a:hover{
    color:#fff;
}

.footer-info div{
    font-size:13px;
    color:#94a3b8;
    line-height:1.8;
}

.footer-cert img{
    width:120px;
    border-radius:8px;
    background:#fff;
    padding:6px;
}

.footer-bottom{
    margin-top:40px;
    padding-top:20px;
    border-top:1px solid rgba(255,255,255,0.08);
    text-align:center;
    font-size:13px;
    color:#64748b;
}

/* modal */
.footer-modal{
    position:fixed;
    inset:0;
    z-index:9999;
    display:none;
}

.footer-modal.open{
    display:block;
}

.footer-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(15, 23, 42, .68);
}

.footer-modal-dialog{
    position:relative;
    width:min(760px, calc(100% - 24px));
    max-height:calc(100vh - 48px);
    margin:24px auto;
    background:#fff;
    border-radius:22px;
    box-shadow:0 30px 80px rgba(15,23,42,.35);
    overflow:hidden;
    z-index:1;
}

.footer-modal-head{
    padding:22px 26px 18px;
    border-bottom:1px solid #e5ebf4;
    background:#f8fbff;
}

.footer-modal-head h3{
    margin:0;
    font-size:22px;
    color:#172033;
    font-weight:600;
    letter-spacing:-.8px;
}

.footer-modal-body{
    padding:22px 26px 26px;
    color:#425066;
    font-size:14px;
    line-height:1.8;
    max-height:calc(100vh - 140px);
    overflow:auto;
}

.footer-modal-body h4{
    margin:18px 0 8px;
    color:#1d2433;
    font-size:17px;
    font-weight:600;
}

.footer-modal-body p{
    margin:0 0 10px;
}

.footer-modal-close{
    position:absolute;
    top:14px;
    right:16px;
    width:38px;
    height:38px;
    border:0;
    border-radius:999px;
    background:#e9eef8;
    color:#1d2433;
    font-size:24px;
    line-height:1;
    cursor:pointer;
    z-index:2;
}

.footer-modal-close:hover{
    background:#dbe5f7;
}

@media (max-width: 992px){
    .footer-grid{
        grid-template-columns:1fr 1fr;
        gap:30px;
    }

    .footer-cert{
        grid-column:1 / -1;
    }
}

@media (max-width: 640px){
    .footer{
        padding:40px 0 20px;
    }

    .footer-grid{
        grid-template-columns:1fr;
        gap:20px;
    }

    .footer-cert{
        text-align:center;
    }

    .footer-cert img{
        margin:0 auto;
    }

    .footer-modal-dialog{
        width:calc(100% - 16px);
        margin:8px auto;
        max-height:calc(100vh - 16px);
        border-radius:16px;
    }

    .footer-modal-head{
        padding:18px 18px 14px;
    }

    .footer-modal-head h3{
        font-size:20px;
        padding-right:34px;
    }

    .footer-modal-body{
        padding:18px 18px 20px;
        font-size:14px;
    }

    .footer-modal-body h4{
        font-size:16px;
    }

    .footer-modal-close{
        top:10px;
        right:10px;
        width:34px;
        height:34px;
        font-size:22px;
    }
}
.mobile-menu{
    display:none;
    margin-top:10px;
    background:#fff;
    border:1px solid #e5ebf4;
    border-radius:20px;
    padding:14px;
    box-shadow:0 16px 32px rgba(31,41,55,.08);
}

.mobile-menu.open{
    display:block;
}